

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Jalankan beban kerja stateful dengan penyimpanan data persisten dengan menggunakan Amazon EFS di Amazon EKS dengan AWS Fargate
<a name="run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate"></a>

*Ricardo Morais, Rodrigo Bersa, dan Lucio Pereira, Amazon Web Services*

## Ringkasan
<a name="run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate-summary"></a>

Pola ini memberikan panduan untuk mengaktifkan Amazon Elastic File System (Amazon EFS) sebagai perangkat penyimpanan untuk container yang berjalan di Amazon Elastic Kubernetes Service (Amazon EKS) dengan menggunakan AWS Fargate untuk menyediakan sumber daya komputasi Anda.

Pengaturan yang dijelaskan dalam pola ini mengikuti praktik terbaik keamanan dan memberikan keamanan saat istirahat dan keamanan dalam perjalanan secara default. Untuk mengenkripsi sistem file Amazon EFS Anda, ia menggunakan kunci AWS Key Management Service (AWS KMS), tetapi Anda juga dapat menentukan alias kunci yang mengirimkan proses pembuatan kunci KMS.

Anda dapat mengikuti langkah-langkah dalam pola ini untuk membuat namespace dan profil Fargate untuk aplikasi proof-of-concept (PoC), menginstal driver Amazon EFS Container Storage Interface (CSI) yang digunakan untuk mengintegrasikan cluster Kubernetes dengan Amazon EFS, mengkonfigurasi kelas penyimpanan, dan menyebarkan aplikasi PoC. Langkah-langkah ini menghasilkan sistem file Amazon EFS yang dibagi di antara beberapa beban kerja Kubernetes, berjalan di atas Fargate. Pola ini disertai dengan skrip yang mengotomatiskan langkah-langkah ini.

Anda dapat menggunakan pola ini jika Anda menginginkan persistensi data dalam aplikasi kontainer Anda dan ingin menghindari kehilangan data selama operasi penskalaan. Contoh:
+ **DevOps alat** — Skenario umum adalah mengembangkan integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) strategy. In this case, you can use Amazon EFS as a shared file system to store configurations among different instances of the CI/CD tool or to store a cache (for example, an Apache Maven repository) for pipeline stages among different instances of the CI/CDalat.
+ **Server web** — Skenario umum adalah menggunakan Apache sebagai server web HTTP. Anda dapat menggunakan Amazon EFS sebagai sistem file bersama untuk menyimpan file statis yang dibagikan di antara berbagai instance server web. Dalam skenario contoh ini, modifikasi diterapkan langsung ke sistem file alih-alih file statis yang dimasukkan ke dalam gambar Docker.

## Prasyarat dan batasan
<a name="run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate-prereqs"></a>

**Prasyarat**
+ Akun AWS yang aktif
+ Cluster Amazon EKS yang sudah ada dengan Kubernetes versi 1.17 atau yang lebih baru (diuji hingga versi 1.27)
+ Sistem file Amazon EFS yang sudah ada untuk mengikat Kubernetes StorageClass dan menyediakan sistem file secara dinamis
+ Izin administrasi klaster
+ Konteks dikonfigurasi untuk menunjuk ke cluster Amazon EKS yang diinginkan

**Batasan**
+ Ada beberapa batasan yang perlu dipertimbangkan saat Anda menggunakan Amazon EKS dengan Fargate. Misalnya, penggunaan beberapa konstruksi Kubernetes, seperti DaemonSets dan kontainer istimewa, tidak didukung. Untuk informasi selengkapnya, tentang batasan Fargate, lihat pertimbangan AWS [Fargate dalam dokumentasi Amazon](https://docs.aws.amazon.com/eks/latest/userguide/fargate.html#fargate-considerations) EKS.
+ Kode yang disediakan dengan pola ini mendukung workstation yang menjalankan Linux atau macOS.

**Versi produk**
+ AWS Command Line Interface (AWS CLI) versi 2 atau yang lebih baru
+ Driver Amazon EFS CSI versi 1.0 atau yang lebih baru (diuji hingga versi 2.4.8)
+ eksctl versi 0.24.0 atau yang lebih baru (diuji hingga versi 0.158.0)
+ jq versi 1.6 atau yang lebih baru
+ kubectl versi 1.17 atau yang lebih baru (diuji hingga versi 1.27)
+ Kubernetes versi 1.17 atau yang lebih baru (diuji hingga versi 1.27)

## Arsitektur
<a name="run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate-architecture"></a>

![Diagram arsitektur menjalankan beban kerja stateful dengan penyimpanan data persisten dengan menggunakan Amazon EFS](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2487e285-269b-415b-a270-877f973e3aaf/images/ec8de63c-3307-4010-9e03-2bd7b9881fff.png)


Arsitektur target terdiri dari infrastruktur berikut:
+ Awan pribadi virtual (VPC)
+ Dua Zona Ketersediaan
+ Subnet publik dengan gateway NAT yang menyediakan akses internet
+ Subnet pribadi dengan cluster Amazon EKS dan target pemasangan Amazon EFS (juga dikenal sebagai *titik pemasangan*)
+ Amazon EFS di tingkat VPC

Berikut ini adalah infrastruktur lingkungan untuk cluster Amazon EKS:
+ Profil AWS Fargate yang mengakomodasi konstruksi Kubernetes di tingkat namespace
+ Namespace Kubernetes dengan:
  + Dua pod aplikasi didistribusikan di seluruh Availability Zone
  + Satu klaim volume persisten (PVC) terikat pada volume persisten (PV) di tingkat cluster
+ PV di seluruh cluster yang terikat pada PVC di namespace dan yang menunjuk ke target pemasangan Amazon EFS di subnet pribadi, di luar cluster

## Alat
<a name="run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate-tools"></a>

**Layanan AWS**
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) adalah alat sumber terbuka yang dapat Anda gunakan untuk berinteraksi dengan layanan AWS dari baris perintah.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) membantu Anda membuat dan mengonfigurasi sistem file bersama di AWS Cloud. Dalam pola ini, ia menyediakan sistem file yang sederhana, terukur, dikelola sepenuhnya, dan dibagikan untuk digunakan dengan Amazon EKS.
+ [Amazon Elastic Kubernetes Service (Amazon](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) EKS) membantu Anda menjalankan Kubernetes di AWS tanpa perlu menginstal atau mengoperasikan cluster Anda sendiri.
+ [AWS Fargate](https://docs.aws.amazon.com/eks/latest/userguide/fargate.html) adalah mesin komputasi tanpa server untuk Amazon EKS. Ini membuat dan mengelola sumber daya komputasi untuk aplikasi Kubernetes Anda.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda.

**Alat-alat lainnya**
+ [Docker](https://www.docker.com/) adalah seperangkat produk platform as a service (PaaS) yang menggunakan virtualisasi pada tingkat sistem operasi untuk mengirimkan perangkat lunak dalam wadah.
+ [eksctl](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html) adalah utilitas baris perintah untuk membuat dan mengelola cluster Kubernetes di Amazon EKS.
+ [kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) adalah antarmuka baris perintah yang membantu Anda menjalankan perintah terhadap klaster Kubernetes.
+ [jq](https://stedolan.github.io/jq/download/) adalah alat baris perintah untuk mengurai JSON.

**Kode**

Kode untuk pola ini disediakan dalam [Konfigurasi GitHub Persistence dengan Amazon EFS di Amazon EKS menggunakan repo AWS Fargate](https://github.com/aws-samples/eks-efs-share-within-fargate). Skrip diatur oleh epik, di folder `epic01` melalui`epic06`, sesuai dengan urutan di bagian [Epik](#run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate-epics) dalam pola ini.

## Praktik terbaik
<a name="run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate-best-practices"></a>

Arsitektur target mencakup layanan dan komponen berikut, dan mengikuti praktik terbaik [AWS Well-Architected](https://aws.amazon.com/architecture/well-architected/) Framework:
+ Amazon EFS, yang menyediakan sistem file NFS elastis yang sederhana, dapat diskalakan, dan dikelola sepenuhnya. Ini digunakan sebagai sistem file bersama di antara semua replikasi aplikasi PoC yang berjalan di pod, yang didistribusikan dalam subnet pribadi dari kluster Amazon EKS yang dipilih.
+ Target pemasangan Amazon EFS untuk setiap subnet pribadi. Ini memberikan redundansi per Availability Zone dalam virtual private cloud (VPC) cluster.
+ Amazon EKS, yang menjalankan beban kerja Kubernetes. Anda harus menyediakan kluster Amazon EKS sebelum menggunakan pola ini, seperti yang dijelaskan di bagian [Prasyarat](#run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate-prereqs).
+ AWS KMS, yang menyediakan enkripsi saat istirahat untuk konten yang disimpan dalam sistem file Amazon EFS.
+ Fargate, yang mengelola sumber daya komputasi untuk kontainer sehingga Anda dapat fokus pada persyaratan bisnis alih-alih beban infrastruktur. Profil Fargate dibuat untuk semua subnet pribadi. Ini menyediakan redundansi per Availability Zone dalam virtual private cloud (VPC) cluster.
+ Kubernetes Pods, untuk memvalidasi bahwa konten dapat dibagikan, dikonsumsi, dan ditulis oleh berbagai instance aplikasi.

## Epik
<a name="run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate-epics"></a>

### Menyediakan kluster Amazon EKS (opsional)
<a name="provision-an-amazon-eks-cluster-optional"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat klaster Amazon EKS. | Jika Anda sudah memiliki cluster yang digunakan, lewati ke epik berikutnya. Buat klaster Amazon EKS di akun AWS Anda yang ada. Di [GitHub direktori](https://github.com/aws-samples/eks-efs-share-within-fargate/tree/master/bootstrap), gunakan salah satu pola untuk menyebarkan cluster Amazon EKS dengan menggunakan Terraform atau eksctl. Untuk informasi selengkapnya, lihat [Membuat klaster Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) di dokumentasi Amazon EKS. Dalam pola Terraform, ada juga contoh yang menunjukkan cara: menautkan profil Fargate ke cluster Amazon EKS Anda, membuat sistem file Amazon EFS, dan menerapkan driver Amazon EFS CSI di cluster Amazon EKS Anda. | Administrator AWS, administrator Terraform atau eksctl, administrator Kubernetes | 
| Variabel lingkungan ekspor. | Jalankan skrip env.sh. Ini memberikan informasi yang diperlukan pada langkah selanjutnya.<pre>source ./scripts/env.sh<br />Inform the AWS Account ID:<br /><13-digit-account-id><br />Inform your AWS Region:<br /><aws-Region-code><br />Inform your Amazon EKS Cluster Name:<br /><amazon-eks-cluster-name><br />Inform the Amazon EFS Creation Token:<br /><self-genereated-uuid></pre><br />Jika belum dicatat, Anda bisa mendapatkan semua informasi yang diminta di atas dengan perintah CLI berikut.<pre># ACCOUNT ID<br />aws sts get-caller-identity --query "Account" --output text</pre><pre># REGION CODE<br />aws configure get region</pre><pre># CLUSTER EKS NAME<br />aws eks list-clusters --query "clusters" --output text</pre><pre># GENERATE EFS TOKEN<br />uuidgen</pre> | Administrator sistem AWS | 

### Buat namespace Kubernetes dan profil Fargate yang ditautkan
<a name="create-a-kubernetes-namespace-and-a-linked-fargate-profile"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat namespace Kubernetes dan profil Fargate untuk beban kerja aplikasi. | Buat namespace untuk menerima beban kerja aplikasi yang berinteraksi dengan Amazon EFS. Jalankan `create-k8s-ns-and-linked-fargate-profile.sh` skrip. Anda dapat memilih untuk menggunakan nama namespace kustom atau namespace default yang disediakan. `poc-efs-eks-fargate`<br />**Dengan nama namespace aplikasi khusus:**<pre>export $APP_NAMESPACE=<CUSTOM_NAME><br />./scripts/epic01/create-k8s-ns-and-linked-fargate-profile.sh \<br />-c "$CLUSTER_NAME" -n "$APP_NAMESPACE"</pre><br />**Tanpa nama namespace aplikasi khusus:**<pre>./scripts/epic01/create-k8s-ns-and-linked-fargate-profile.sh \<br />    -c "$CLUSTER_NAME"</pre><br />di `$CLUSTER_NAME` mana nama cluster Amazon EKS Anda. `-n <NAMESPACE>`Parameternya opsional; jika tidak diinformasikan, nama namespace yang dihasilkan default akan diberikan. | Pengguna Kubernetes dengan izin yang diberikan | 

### Buat sistem file Amazon EFS
<a name="create-an-amazon-efs-file-system"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hasilkan token unik. | Amazon EFS memerlukan token pembuatan untuk memastikan operasi idempoten (memanggil operasi dengan token pembuatan yang sama tidak berpengaruh). Untuk memenuhi persyaratan ini, Anda harus menghasilkan token unik melalui teknik yang tersedia. Misalnya, Anda dapat membuat pengenal unik universal (UUID) untuk digunakan sebagai token pembuatan. | Administrator sistem AWS | 
| Buat sistem file Amazon EFS. | Buat sistem file untuk menerima file data yang dibaca dan ditulis oleh beban kerja aplikasi. Anda dapat membuat sistem file terenkripsi atau tidak terenkripsi. (Sebagai praktik terbaik, kode untuk pola ini menciptakan sistem terenkripsi untuk mengaktifkan enkripsi saat istirahat secara default.) Anda dapat menggunakan kunci AWS KMS simetris yang unik untuk mengenkripsi sistem file Anda. Jika kunci kustom tidak ditentukan, kunci yang dikelola AWS akan digunakan.<br />Gunakan skrip create-efs.sh untuk membuat sistem file Amazon EFS terenkripsi atau tidak terenkripsi, setelah Anda membuat token unik untuk Amazon EFS.<br />**Dengan enkripsi saat istirahat, tanpa kunci KMS:**<pre>./scripts/epic02/create-efs.sh \<br />    -c "$CLUSTER_NAME" \<br />    -t "$EFS_CREATION_TOKEN"</pre><br />di `$CLUSTER_NAME` mana nama cluster Amazon EKS Anda dan `$EFS_CREATION_TOKEN` merupakan token pembuatan unik untuk sistem file.<br />**Dengan enkripsi saat istirahat, dengan kunci KMS:**<pre>./scripts/epic02/create-efs.sh \<br />    -c "$CLUSTER_NAME" \<br />    -t "$EFS_CREATION_TOKEN" \<br />    -k "$KMS_KEY_ALIAS"</pre><br />di `$CLUSTER_NAME` mana nama kluster Amazon EKS Anda, `$EFS_CREATION_TOKEN` adalah token pembuatan unik untuk sistem file, dan `$KMS_KEY_ALIAS` merupakan alias untuk kunci KMS.<br />**Tanpa enkripsi:**<pre>./scripts/epic02/create-efs.sh -d \<br />    -c "$CLUSTER_NAME" \<br />    -t "$EFS_CREATION_TOKEN"</pre><br />di `$CLUSTER_NAME` mana nama cluster Amazon EKS Anda, `$EFS_CREATION_TOKEN` adalah token pembuatan unik untuk sistem file, dan `–d` menonaktifkan enkripsi saat istirahat. | Administrator sistem AWS | 
| Buat grup keamanan. | Buat grup keamanan untuk memungkinkan kluster Amazon EKS mengakses sistem file Amazon EFS. | Administrator sistem AWS | 
| Perbarui aturan masuk untuk grup keamanan. | Perbarui aturan masuk grup keamanan untuk mengizinkan lalu lintas masuk untuk pengaturan berikut:[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate.html) | Administrator sistem AWS | 
| Tambahkan target pemasangan untuk setiap subnet pribadi. | Untuk setiap subnet pribadi klaster Kubernetes, buat target mount untuk sistem file dan grup keamanan. | Administrator sistem AWS | 

### Instal komponen Amazon EFS ke dalam klaster Kubernetes
<a name="install-amazon-efs-components-into-the-kubernetes-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan driver Amazon EFS CSI. | Terapkan driver Amazon EFS CSI ke dalam cluster. Pengemudi menyediakan penyimpanan sesuai dengan klaim volume persisten yang dibuat oleh aplikasi. Jalankan `create-k8s-efs-csi-sc.sh` skrip untuk menyebarkan driver Amazon EFS CSI dan kelas penyimpanan ke dalam cluster.<pre>./scripts/epic03/create-k8s-efs-csi-sc.sh</pre><br />Skrip ini menggunakan `kubectl` utilitas, jadi pastikan konteksnya telah dikonfigurasi dan arahkan ke cluster Amazon EKS yang diinginkan. | Pengguna Kubernetes dengan izin yang diberikan | 
| Deploy kelas penyimpanan. | Menerapkan kelas penyimpanan ke dalam cluster untuk penyedia Amazon EFS (efs.csi.aws.com). | Pengguna Kubernetes dengan izin yang diberikan | 

### Instal aplikasi PoC ke dalam cluster Kubernetes
<a name="install-the-poc-application-into-the-kubernetes-cluster"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyebarkan volume persisten. | Terapkan volume persisten, dan tautkan ke kelas penyimpanan yang dibuat dan ke ID sistem file Amazon EFS. Aplikasi ini menggunakan volume persisten untuk membaca dan menulis konten. Anda dapat menentukan ukuran apa pun untuk volume persisten di bidang penyimpanan. Kubernetes membutuhkan bidang ini, tetapi karena Amazon EFS adalah sistem file elastis, ia tidak menerapkan kapasitas sistem file apa pun. Anda dapat menerapkan volume persisten dengan atau tanpa enkripsi. (Driver Amazon EFS CSI mengaktifkan enkripsi secara default, sebagai praktik terbaik.) Jalankan `deploy-poc-app.sh` skrip untuk menyebarkan volume persisten, klaim volume persisten, dan dua beban kerja.<br />**Dengan enkripsi dalam perjalanan:**<pre>./scripts/epic04/deploy-poc-app.sh \<br />    -t "$EFS_CREATION_TOKEN"</pre><br />di mana `$EFS_CREATION_TOKEN` adalah token penciptaan unik untuk sistem file.<br />**Tanpa enkripsi dalam perjalanan:**<pre>./scripts/epic04/deploy-poc-app.sh -d \<br />    -t "$EFS_CREATION_TOKEN"</pre><br />di `$EFS_CREATION_TOKEN` mana token pembuatan unik untuk sistem file, dan `–d` menonaktifkan enkripsi saat transit. | Pengguna Kubernetes dengan izin yang diberikan | 
| Terapkan klaim volume persisten yang diminta oleh aplikasi. | Terapkan klaim volume persisten yang diminta oleh aplikasi, dan tautkan ke kelas penyimpanan. Gunakan mode akses yang sama dengan volume persisten yang Anda buat sebelumnya. Anda dapat menentukan ukuran apa pun untuk klaim volume persisten di bidang penyimpanan. Kubernetes membutuhkan bidang ini, tetapi karena Amazon EFS adalah sistem file elastis, ia tidak menerapkan kapasitas sistem file apa pun. | Pengguna Kubernetes dengan izin yang diberikan | 
| Menyebarkan beban kerja 1. | Menerapkan pod yang mewakili beban kerja 1 dari aplikasi. Beban kerja ini menulis konten ke file`/data/out1.txt`. | Pengguna Kubernetes dengan izin yang diberikan | 
| Menyebarkan beban kerja 2. | Menerapkan pod yang mewakili beban kerja 2 dari aplikasi. Beban kerja ini menulis konten ke file`/data/out2.txt`. | Pengguna Kubernetes dengan izin yang diberikan | 

### Validasi persistensi, daya tahan, dan kemampuan berbagi sistem file
<a name="validate-file-system-persistence-durability-and-shareability"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Periksa status`PersistentVolume`. | Masukkan perintah berikut untuk memeriksa status file`PersistentVolume`.<pre>kubectl get pv</pre><br />Untuk keluaran contoh, lihat bagian [Informasi tambahan](#run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate-additional). | Pengguna Kubernetes dengan izin yang diberikan | 
| Periksa status`PersistentVolumeClaim`. | Masukkan perintah berikut untuk memeriksa status file`PersistentVolumeClaim`.<pre>kubectl -n poc-efs-eks-fargate get pvc</pre><br />Untuk keluaran contoh, lihat bagian [Informasi tambahan](#run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate-additional). | Pengguna Kubernetes dengan izin yang diberikan | 
| Validasi bahwa beban kerja 1 dapat menulis ke sistem file. | Masukkan perintah berikut untuk memvalidasi bahwa beban kerja 1 menulis ke. `/data/out1.txt`<pre>kubectl exec -ti poc-app1 -n poc-efs-eks-fargate -- tail -f /data/out1.txt</pre><br />Hasilnya mirip dengan yang berikut:<pre>...<br />Thu Sep  3 15:25:07 UTC 2023 - PoC APP 1<br />Thu Sep  3 15:25:12 UTC 2023 - PoC APP 1<br />Thu Sep  3 15:25:17 UTC 2023 - PoC APP 1<br />...</pre> | Pengguna Kubernetes dengan izin yang diberikan | 
| Validasi bahwa beban kerja 2 dapat menulis ke sistem file. | Masukkan perintah berikut untuk memvalidasi bahwa beban kerja 2 menulis ke. `/data/out2.txt`<pre>kubectl -n $APP_NAMESPACE exec -ti poc-app2 -- tail -f /data/out2.txt</pre><br />Hasilnya mirip dengan yang berikut:<pre>...<br />Thu Sep  3 15:26:48 UTC 2023 - PoC APP 2<br />Thu Sep  3 15:26:53 UTC 2023 - PoC APP 2<br />Thu Sep  3 15:26:58 UTC 2023 - PoC APP 2<br />...</pre> | Pengguna Kubernetes dengan izin yang diberikan | 
| Validasi bahwa beban kerja 1 dapat membaca file yang ditulis oleh beban kerja 2. | Masukkan perintah berikut untuk memvalidasi bahwa beban kerja 1 dapat membaca `/data/out2.txt` file yang ditulis oleh beban kerja 2.<pre>kubectl exec -ti poc-app1 -n poc-efs-eks-fargate -- tail -n 3 /data/out2.txt</pre><br />Hasilnya mirip dengan yang berikut:<pre>...<br />Thu Sep  3 15:26:48 UTC 2023 - PoC APP 2<br />Thu Sep  3 15:26:53 UTC 2023 - PoC APP 2<br />Thu Sep  3 15:26:58 UTC 2023 - PoC APP 2<br />...</pre> | Pengguna Kubernetes dengan izin yang diberikan | 
| Validasi bahwa beban kerja 2 dapat membaca file yang ditulis oleh beban kerja 1. | Masukkan perintah berikut untuk memvalidasi bahwa beban kerja 2 dapat membaca `/data/out1.txt` file yang ditulis oleh beban kerja 1.<pre>kubectl -n $APP_NAMESPACE exec -ti poc-app2 -- tail -n 3 /data/out1.txt</pre><br />Hasilnya mirip dengan yang berikut:<pre>...<br />Thu Sep  3 15:29:22 UTC 2023 - PoC APP 1<br />Thu Sep  3 15:29:27 UTC 2023 - PoC APP 1<br />Thu Sep  3 15:29:32 UTC 2023 - PoC APP 1<br />...</pre> | Pengguna Kubernetes dengan izin yang diberikan | 
| Validasi bahwa file disimpan setelah Anda menghapus komponen aplikasi. | Selanjutnya, Anda menggunakan skrip untuk menghapus komponen aplikasi (volume persisten, klaim volume persisten, dan pod), dan memvalidasi bahwa file `/data/out1.txt` dan `/data/out2.txt` disimpan dalam sistem file. Jalankan skrip `validate-efs-content.sh` menggunakan perintah berikut.<pre>./scripts/epic05/validate-efs-content.sh \<br />    -t "$EFS_CREATION_TOKEN"</pre><br />di mana `$EFS_CREATION_TOKEN` adalah token penciptaan unik untuk sistem file.<br />Hasilnya mirip dengan yang berikut:<pre>pod/poc-app-validation created<br />Waiting for pod get Running state...<br />Waiting for pod get Running state...<br />Waiting for pod get Running state...<br />Results from execution of 'find /data' on validation process pod:<br />/data<br />/data/out2.txt<br />/data/out1.txt</pre> | Pengguna Kubernetes dengan izin yang diberikan, Administrator sistem | 

### Memantau operasi
<a name="monitor-operations"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pantau log aplikasi. | Sebagai bagian dari operasi dua hari, kirimkan log aplikasi ke Amazon CloudWatch untuk pemantauan. | Administrator sistem AWS, pengguna Kubernetes dengan izin yang diberikan | 
| Pantau container Amazon EKS dan Kubernetes dengan Container Insights. | Sebagai bagian dari operasi dua hari, pantau sistem Amazon EKS dan Kubernetes dengan menggunakan Amazon Container Insights. CloudWatch Alat ini mengumpulkan, mengumpulkan, dan merangkum metrik dari aplikasi kontainer pada tingkat dan dimensi yang berbeda. Untuk informasi selengkapnya, lihat bagian [Sumber daya terkait](#run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate-resources). | Administrator sistem AWS, pengguna Kubernetes dengan izin yang diberikan | 
| Pantau Amazon EFS dengan CloudWatch. | Sebagai bagian dari operasi dua hari, pantau sistem file menggunakan Amazon CloudWatch, yang mengumpulkan dan memproses data mentah dari Amazon EFS menjadi metrik yang dapat dibaca, mendekati waktu nyata. Untuk informasi selengkapnya, lihat bagian [Sumber daya terkait](#run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate-resources). | Administrator sistem AWS | 

### Pembersihan sumber daya
<a name="clean-up-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bersihkan semua sumber daya yang dibuat untuk pola tersebut. | Setelah Anda menyelesaikan pola ini, bersihkan semua sumber daya, untuk menghindari biaya AWS. Jalankan `clean-up-resources.sh` skrip untuk menghapus semua sumber daya setelah Anda selesai menggunakan aplikasi PoC. Lengkapi salah satu opsi berikut.<br />**Dengan enkripsi saat istirahat, dengan kunci KMS:**<pre>./scripts/epic06/clean-up-resources.sh \<br />    -c "$CLUSTER_NAME" \<br />    -t "$EFS_CREATION_TOKEN" \<br />    -k "$KMS_KEY_ALIAS"</pre><br />di `$CLUSTER_NAME` mana nama kluster Amazon EKS Anda, `$EFS_CREATION_TOKEN` adalah token pembuatan untuk sistem file, dan `$KMS_KEY_ALIAS` merupakan alias untuk kunci KMS.<br />**Tanpa enkripsi saat istirahat:**<pre>./scripts/epic06/clean-up-resources.sh \<br />    -c "$CLUSTER_NAME" \<br />    -t "$EFS_CREATION_TOKEN"</pre><br />di `$CLUSTER_NAME` mana nama cluster Amazon EKS Anda dan `$EFS_CREATION_TOKEN` merupakan token pembuatan untuk sistem file. | Pengguna Kubernetes dengan izin yang diberikan, Administrator sistem | 

## Sumber daya terkait
<a name="run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate-resources"></a>

**Referensi**
+ [AWS Fargate untuk Amazon EKS sekarang mendukung Amazon EFS (pengumuman](https://aws.amazon.com/blogs/aws/new-aws-fargate-for-amazon-eks-now-supports-amazon-efs/))
+ [Cara menangkap log aplikasi saat menggunakan Amazon EKS di AWS Fargate](https://aws.amazon.com/blogs/containers/how-to-capture-application-logs-when-using-amazon-eks-on-aws-fargate/) (posting blog)
+ [Menggunakan Wawasan Kontainer](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) ( CloudWatch dokumentasi Amazon)
+ [Menyiapkan Wawasan Kontainer di Amazon EKS dan Kubernetes (dokumentasi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/deploy-container-insights-EKS.html) Amazon) CloudWatch 
+ [Metrik Amazon EKS dan Kubernetes Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-EKS.html) (dokumentasi Amazon) CloudWatch 
+ [Memantau Amazon EFS dengan Amazon CloudWatch](https://docs.aws.amazon.com/efs/latest/ug/monitoring-cloudwatch.html) (dokumentasi Amazon EFS)

**GitHub tutorial dan contoh**
+ [Penyediaan statis](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/examples/kubernetes/static_provisioning/README.md)
+ [Enkripsi dalam perjalanan](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/examples/kubernetes/encryption_in_transit/README.md)
+ [Mengakses sistem file dari beberapa pod](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/examples/kubernetes/multiple_pods/README.md)
+ [Mengkonsumsi Amazon EFS di StatefulSets](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/examples/kubernetes/statefulset/README.md)
+ [Pemasangan subpath](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/examples/kubernetes/volume_path/README.md)
+ [Menggunakan titik akses Amazon EFS](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/examples/kubernetes/access_points/README.md)
+ [Cetak Biru Amazon EKS untuk Terraform](https://aws-ia.github.io/terraform-aws-eks-blueprints/)

**Alat yang dibutuhkan**
+ [Menginstal AWS CLI versi 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)
+ [Instalasi eksctl](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html)
+ [Instalasi kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)
+ [Instalasi jq](https://stedolan.github.io/jq/download/)

## Informasi tambahan
<a name="run-stateful-workloads-with-persistent-data-storage-by-using-amazon-efs-on-amazon-eks-with-aws-fargate-additional"></a>

Berikut ini adalah contoh output dari `kubectl get pv` perintah.

```
NAME         CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                             STORAGECLASS   REASON   AGE
poc-app-pv   1Mi        RWX            Retain           Bound    poc-efs-eks-fargate/poc-app-pvc   efs-sc                  3m56s
```

Berikut ini adalah contoh output dari `kubectl -n poc-efs-eks-fargate get pvc` perintah.

```
NAME          STATUS   VOLUME       CAPACITY   ACCESS MODES   STORAGECLASS   AGE
poc-app-pvc   Bound    poc-app-pv   1Mi        RWX            efs-sc         4m34s
```