

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

# Mengelola aplikasi kontainer lokal dengan menyiapkan Amazon ECS Anywhere dengan AWS CDK
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk"></a>

*Dr. Rahul Sharad Gaikwad, Amazon Web Services*

## Ringkasan
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-summary"></a>

[Amazon ECS](https://aws.amazon.com/ecs/anywhere/) Anywhere adalah perpanjangan dari Amazon Elastic Container Service (Amazon ECS). Anda dapat menggunakan ECS Anywhere untuk menerapkan tugas Amazon ECS asli di lingkungan lokal atau yang dikelola pelanggan. Fitur ini membantu mengurangi biaya dan mengurangi orkestrasi dan operasi kontainer lokal yang kompleks. Anda dapat menggunakan ECS Anywhere untuk menyebarkan dan menjalankan aplikasi kontainer di lingkungan lokal dan cloud. Ini menghilangkan kebutuhan tim Anda untuk mempelajari beberapa domain dan keahlian, atau untuk mengelola perangkat lunak yang kompleks sendiri.

Pola ini menunjukkan langkah-langkah untuk menyiapkan ECS Anywhere dengan menggunakan tumpukan [AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/).

## Prasyarat dan batasan
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-prereqs"></a>

**Prasyarat**
+ Akun AWS aktif.
+ AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi. (Lihat [Menginstal, memperbarui, dan menghapus instalan AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) dalam dokumentasi AWS CLI.) 
+ AWS CDK Toolkit, diinstal dan dikonfigurasi. (Lihat [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) dalam dokumentasi AWS CDK, dan ikuti petunjuk untuk menginstal versi 2 secara global.)
+ Manajer paket node (npm), diinstal dan dikonfigurasi untuk AWS CDK di. TypeScript (Lihat [Mengunduh dan menginstal Node.js dan npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) di dokumentasi npm.)

**Batasan**
+ Untuk batasan dan pertimbangan, lihat [Instans eksternal (Amazon ECS Anywhere) di dokumentasi Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-anywhere.html#ecs-anywhere-considerations).

**Versi produk**
+ AWS CDK Toolkit versi 2
+ npm versi 7.20.3 atau yang lebih baru
+ Node.js versi 16.6.1 atau yang lebih baru

## Arsitektur
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-architecture"></a>

**Tumpukan teknologi target**
+ AWS CloudFormation
+ AWS CDK
+ Amazon ECS Anywhere
+ AWS Identity and Access Management (IAM)

**Arsitektur target**

Diagram berikut menggambarkan arsitektur sistem tingkat tinggi pengaturan ECS Anywhere menggunakan AWS CDK dengan TypeScript, seperti yang diterapkan oleh pola ini.

1. Saat Anda menerapkan tumpukan AWS CDK, itu membuat CloudFormation tumpukan di AWS.

1.  CloudFormation Stack menyediakan kluster Amazon ECS dan sumber daya AWS terkait.

1. Untuk mendaftarkan instans eksternal dengan kluster Amazon ECS, Anda harus menginstal AWS Systems Manager Agent (Agen SSM) di mesin virtual (VM) dan mendaftarkan VM sebagai instans terkelola AWS Systems Manager. 

1. Anda juga harus menginstal agen penampung Amazon ECS dan Docker di VM Anda untuk mendaftarkannya sebagai instance eksternal dengan cluster Amazon ECS.

1. Ketika instans eksternal terdaftar dan dikonfigurasi dengan cluster Amazon ECS, instans dapat menjalankan beberapa kontainer di VM Anda, yang terdaftar sebagai instance eksternal.

![Pengaturan ECS Anywhere menggunakan AWS CDK dengan. TypeScript](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/3ed63c00-40e7-4831-bb9d-63049c3490aa/images/ff7dc774-830d-4b9f-8262-7314afe7a033.png)


 

**Otomatisasi dan skala**

[GitHub Repositori](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples/) yang disediakan dengan pola ini menggunakan AWS CDK sebagai alat infrastruktur sebagai kode (IAc) untuk membuat konfigurasi untuk arsitektur ini. AWS CDK membantu Anda mengatur sumber daya dan menyiapkan ECS Anywhere.

## Alat
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-tools"></a>
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) adalah kerangka kerja pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan infrastruktur AWS Cloud dalam kode.
+ [AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) adalah alat sumber terbuka yang membantu Anda berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda.

**Kode**

Kode sumber untuk pola ini tersedia di GitHub, di repositori Sampel [CDK Amazon ECS Anywhere](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples). Untuk mengkloning dan menggunakan repositori, ikuti instruksi di bagian selanjutnya.

## Epik
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-epics"></a>

### Verifikasi konfigurasi AWS CDK
<a name="verify-aws-cdk-configuration"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Verifikasi versi AWS CDK. | Verifikasi versi AWS CDK Toolkit dengan menjalankan perintah berikut:<pre>cdk --version</pre><br />Pola ini membutuhkan AWS CDK versi 2. Jika Anda memiliki AWS CDK versi sebelumnya, ikuti petunjuk dalam [dokumentasi AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) untuk memperbaruinya. | DevOps insinyur | 
| Siapkan kredensil AWS. | Untuk mengatur kredensil, jalankan `aws configure` perintah dan ikuti petunjuknya:<pre>$aws configure<br />AWS Access Key ID [None]: <your-access-key-ID><br />AWS Secret Access Key [None]: <your-secret-access-key><br />Default region name [None]: <your-Region-name><br />Default output format [None]:</pre> | DevOps insinyur | 

### Bootstrap lingkungan AWS CDK
<a name="bootstrap-the-aws-cdk-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Kloning repositori kode AWS CDK. | Kloning repositori GitHub kode untuk pola ini dengan menggunakan perintah:<pre>git clone https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples.git</pre> | DevOps insinyur | 
| Bootstrap lingkungan. | Untuk menerapkan CloudFormation template AWS ke akun dan Wilayah AWS yang ingin Anda gunakan, jalankan perintah berikut:<pre>cdk bootstrap <account-number>/<Region></pre><br />Untuk informasi selengkapnya, lihat [Bootstrapping di dokumentasi](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html) AWS CDK. | DevOps insinyur | 

### Membangun dan menyebarkan proyek
<a name="build-and-deploy-the-project"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal dependensi paket dan kompilasi TypeScript file. | Instal dependensi paket dan kompilasi TypeScript file dengan menjalankan perintah berikut:<pre>$cd amazon-ecs-anywhere-cdk-samples<br />$npm install<br />$npm fund </pre><br />Perintah ini menginstal semua paket dari repositori sampel. Jika Anda mendapatkan kesalahan tentang paket yang hilang, gunakan salah satu perintah berikut:<pre>$npm ci   </pre><br />— atau —<pre>$npm install -g @aws-cdk/<package_name></pre><br />Untuk informasi selengkapnya, lihat [npm ci](https://docs.npmjs.com/cli/v7/commands/npm-ci) dan [npm install](https://docs.npmjs.com/cli/v7/commands/npm-install) di dokumentasi npm. | DevOps insinyur | 
| Bangun proyek. | Untuk membangun kode proyek, jalankan perintah:<pre>npm run build</pre><br />Untuk informasi selengkapnya tentang membangun dan menerapkan project, lihat [aplikasi AWS CDK pertama Anda di dokumentasi](https://docs.aws.amazon.com/cdk/latest/guide/hello_world.html#:~:text=the%20third%20parameter.-,Synthesize%20an%20AWS%20CloudFormation%20template,-Synthesize%20an%20AWS) AWS CDK. | DevOps insinyur | 
| Deploy proyek. | Untuk menyebarkan kode proyek, jalankan perintah:<pre>cdk deploy</pre> | DevOps insinyur | 
| Verifikasi pembuatan dan output tumpukan. | Buka CloudFormation konsol AWS di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/),**** dan pilih tumpukan. `EcsAnywhereStack` Tab **Output** menunjukkan perintah untuk dijalankan di VM eksternal Anda. | DevOps insinyur | 

### Menyiapkan mesin lokal
<a name="set-up-an-on-premises-machine"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan VM Anda dengan menggunakan Vagrant. | Untuk tujuan demonstrasi, Anda dapat menggunakan [HashiCorp Vagrant](https://www.vagrantup.com/) untuk membuat VM. Vagrant adalah utilitas open-source untuk membangun dan memelihara lingkungan pengembangan perangkat lunak virtual portabel. Buat Vagrant VM dengan menjalankan `vagrant up` perintah dari direktori root tempat Vagrantfile ditempatkan. Untuk informasi lebih lanjut, lihat [dokumentasi Vagrant](https://www.vagrantup.com/docs/cli/up). | DevOps insinyur | 
| Daftarkan VM Anda sebagai instance eksternal. | 1. Masuk ke Vagrant VM dengan menggunakan perintah. `vagrant ssh` Untuk informasi lebih lanjut, lihat [dokumentasi Vagrant](https://www.vagrantup.com/docs/cli/ssh).<br />2. Buat kode aktivasi dan ID yang dapat Anda gunakan untuk mendaftarkan VM Anda dengan AWS Systems Manager dan untuk mengaktifkan instans eksternal Anda. Output dari perintah ini termasuk `ActivationId` dan `ActivationCode` nilai: <pre>aws ssm create-activation --iam-role EcsAnywhereInstanceRole | tee ssm-activation.json</pre><br />3. Ekspor ID aktivasi dan nilai kode:<pre>export ACTIVATION_ID=<activation-ID><br />export ACTIVATION_CODE=<activation-code></pre><br />4. Unduh skrip penginstalan ke server lokal atau VM Anda:<pre>curl -o "ecs-anywhere-install.sh" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh" && sudo chmod +x ecs-anywhere-install.sh</pre><br />5. Jalankan skrip penginstalan di server lokal atau VM Anda:<pre>sudo ./ecs-anywhere-install.sh \<br />    --cluster test-ecs-anywhere \<br />     --activation-id $ACTIVATION_ID \<br />     --activation-code $ACTIVATION_CODE \<br />    --region <Region></pre><br />Untuk informasi selengkapnya tentang menyiapkan dan mendaftarkan VM Anda, lihat [Mendaftarkan instans eksternal ke klaster](https://docs.amazonaws.cn/en_us/AmazonECS/latest/developerguide/ecs-anywhere-registration.html) di dokumentasi Amazon ECS. | DevOps insinyur | 
| Verifikasi status ECS Anywhere dan VM eksternal. | Untuk memverifikasi apakah kotak virtual Anda terhubung ke bidang kontrol Amazon ECS dan berjalan, gunakan perintah berikut:<pre>aws ssm describe-instance-information<br />aws ecs list-container-instances --cluster $CLUSTER_NAME</pre> | DevOps insinyur | 

### Bersihkan
<a name="clean-up"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Bersihkan dan hapus sumber daya. | Setelah Anda menelusuri pola ini, Anda harus menghapus sumber daya yang Anda buat untuk menghindari biaya lebih lanjut. Untuk membersihkan, jalankan perintah:<pre>cdk destroy</pre> | DevOps insinyur | 

## Sumber daya terkait
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-resources"></a>
+ [Dokumentasi Amazon ECS Anywhere](https://aws.amazon.com/ecs/anywhere/) 
+ [Demo Amazon ECS Anywhere](https://www.youtube.com/watch?v=-eud6yUXsJM)
+ [Sampel Workshop Amazon ECS Anywhere](https://github.com/aws-samples/aws-ecs-anywhere-workshop-samples)