Mengelola aplikasi kontainer lokal dengan menyiapkan Amazon ECS Anywhere dengan AWS CDK - AWS Prescriptive Guidance

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

Dr. Rahul Sharad Gaikwad, Amazon Web Services

Ringkasan

Amazon ECS 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).

Prasyarat dan batasan

Prasyarat

Batasan

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

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.

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

  3. 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. 

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

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

Penyiapan ECS Anywhere menggunakan AWS CDK dengan. TypeScript

Otomatisasi dan skala

GitHub Repositori 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

Kode

Kode sumber untuk pola ini tersedia di GitHub, di repositori Sampel CDK Amazon ECS Anywhere. Untuk mengkloning dan menggunakan repositori, ikuti instruksi di bagian selanjutnya.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Verifikasi versi AWS CDK.

Verifikasi versi AWS CDK Toolkit dengan menjalankan perintah berikut:

cdk --version

Pola ini membutuhkan AWS CDK versi 2. Jika Anda memiliki AWS CDK versi sebelumnya, ikuti petunjuk dalam dokumentasi AWS CDK untuk memperbaruinya.

DevOps insinyur

Siapkan kredensil AWS.

Untuk mengatur kredensil, jalankan aws configure perintah dan ikuti petunjuknya:

$aws configure AWS Access Key ID [None]: <your-access-key-ID> AWS Secret Access Key [None]: <your-secret-access-key> Default region name [None]: <your-Region-name> Default output format [None]:
DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Kloning repositori kode AWS CDK.

Kloning repositori GitHub kode untuk pola ini dengan menggunakan perintah:

git clone https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples.git
DevOps insinyur

Bootstrap lingkungan.

Untuk menerapkan CloudFormation template AWS ke akun dan Wilayah AWS yang ingin Anda gunakan, jalankan perintah berikut:

cdk bootstrap <account-number>/<Region>

Untuk informasi selengkapnya, lihat Bootstrapping di dokumentasi AWS CDK.

DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Instal dependensi paket dan kompilasi TypeScript file.

Instal dependensi paket dan kompilasi TypeScript file dengan menjalankan perintah berikut:

$cd amazon-ecs-anywhere-cdk-samples $npm install $npm fund

Perintah ini menginstal semua paket dari repositori sampel. 

penting

Jika Anda mendapatkan kesalahan tentang paket yang hilang, gunakan salah satu perintah berikut:

$npm ci

— atau —

$npm install -g @aws-cdk/<package_name>

Untuk informasi selengkapnya, lihat npm ci dan npm install di dokumentasi npm.

DevOps insinyur

Bangun proyek.

Untuk membangun kode proyek, jalankan perintah:

npm run build

Untuk informasi selengkapnya tentang membangun dan menerapkan project, lihat aplikasi AWS CDK pertama Anda di dokumentasi AWS CDK.

DevOps insinyur

Deploy proyek.

Untuk menyebarkan kode proyek, jalankan perintah:

cdk deploy
DevOps insinyur

Verifikasi pembuatan dan output tumpukan.

Buka CloudFormation konsol AWS di https://console.aws.amazon.com/cloudformation, dan pilih tumpukan. EcsAnywhereStack Tab Output menunjukkan perintah untuk dijalankan di VM eksternal Anda.

DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Siapkan VM Anda dengan menggunakan Vagrant.

Untuk tujuan demonstrasi, Anda dapat menggunakan HashiCorp Vagrant 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.

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.

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: 

aws ssm create-activation --iam-role EcsAnywhereInstanceRole | tee ssm-activation.json

3. Ekspor ID aktivasi dan nilai kode:

export ACTIVATION_ID=<activation-ID> export ACTIVATION_CODE=<activation-code>

4. Unduh skrip penginstalan ke server lokal atau VM Anda:

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

5. Jalankan skrip penginstalan di server lokal atau VM Anda:

sudo ./ecs-anywhere-install.sh \ --cluster test-ecs-anywhere \ --activation-id $ACTIVATION_ID \ --activation-code $ACTIVATION_CODE \ --region <Region>

Untuk informasi selengkapnya tentang menyiapkan dan mendaftarkan VM Anda, lihat Mendaftarkan instans eksternal ke klaster 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:

aws ssm describe-instance-information aws ecs list-container-instances --cluster $CLUSTER_NAME
DevOps insinyur
TugasDeskripsiKeterampilan 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:

cdk destroy
DevOps insinyur

Sumber daya terkait