Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat sumber daya Amazon ECS menggunakan AWS CDK
Ini AWS Cloud Development Kit (AWS CDK) adalah kerangka Infrastructure-as-Code kerja (IAC) yang dapat Anda gunakan untuk mendefinisikan infrastruktur AWS cloud dengan menggunakan bahasa pemrograman pilihan Anda. Untuk menentukan infrastruktur cloud Anda sendiri, pertama-tama Anda menulis aplikasi (dalam salah satu bahasa yang didukung CDK) yang berisi satu atau lebih tumpukan. Kemudian, Anda mensintesisnya ke CloudFormation template dan menyebarkan sumber daya Anda ke templat Anda Akun AWS. Ikuti langkah-langkah dalam topik ini untuk menerapkan server web kontainer dengan Amazon Elastic Container Service (Amazon ECS) dan on Fargate AWS CDK .
Con AWS struct Library, disertakan dengan CDK, menyediakan modul yang dapat Anda gunakan untuk memodelkan sumber daya yang Layanan AWS disediakan. Untuk layanan populer, perpustakaan menyediakan konstruksi yang dikuratori dengan default cerdas dan praktik terbaik. Salah satu modul ini, secara khususaws-ecs-patterns, menyediakan abstraksi tingkat tinggi yang dapat Anda gunakan untuk menentukan layanan kontainer Anda dan semua sumber daya pendukung yang diperlukan dalam beberapa baris kode.
Topik ini menggunakan ApplicationLoadBalancedFargateService konstruksi. Konstruksi ini menerapkan layanan Amazon ECS di Fargate di belakang penyeimbang beban aplikasi. aws-ecs-patternsModul ini juga mencakup konstruksi yang menggunakan penyeimbang beban jaringan dan berjalan di Amazon EC2.
Sebelum memulai tugas ini, atur lingkungan AWS CDK pengembangan Anda, dan instal AWS CDK dengan menjalankan perintah berikut. Untuk petunjuk tentang cara mengatur lingkungan AWS CDK pengembangan Anda, lihat Mem ulai Dengan AWS CDK - Prasyarat.
npm install -g aws-cdk
catatan
Instruksi ini mengasumsikan Anda menggunakan AWS CDK v2.
Topik
Langkah 1: Siapkan AWS CDK proyek
Buat direktori untuk AWS CDK aplikasi baru Anda dan inisialisasi proyek.
catatan
Template AWS CDK aplikasi menggunakan nama direktori proyek untuk menghasilkan nama untuk file sumber dan kelas. Dalam contoh ini, direktori diberi namahello-ecs. Jika Anda menggunakan nama direktori proyek yang berbeda, aplikasi Anda tidak akan cocok dengan instruksi ini.
AWS CDK v2 menyertakan konstruksi stabil untuk semua Layanan AWS dalam satu paket yang dipanggilaws-cdk-lib. Paket ini diinstal sebagai dependensi saat Anda menginisialisasi proyek. Saat bekerja dengan bahasa pemrograman tertentu, paket diinstal ketika Anda membangun proyek untuk pertama kalinya. Topik ini mencakup cara menggunakan konstruksi Pola Amazon ECS, yang menyediakan abstraksi tingkat tinggi untuk bekerja dengan Amazon ECS. Modul ini bergantung pada konstruksi Amazon ECS dan konstruksi lainnya untuk menyediakan sumber daya yang dibutuhkan aplikasi Amazon ECS Anda.
Nama yang Anda gunakan untuk mengimpor pustaka ini ke aplikasi CDK Anda mungkin sedikit berbeda tergantung pada bahasa pemrograman yang Anda gunakan. Sebagai referensi, berikut ini adalah nama-nama yang digunakan dalam setiap bahasa pemrograman CDK yang didukung.
Langkah 2: Gunakan AWS CDK untuk mendefinisikan server web yang dikontainer di Fargate
Gunakan gambar wadah amazon-ecs-sample
Dalam AWS CDK proyek yang Anda buat, edit file yang berisi definisi tumpukan agar menyerupai salah satu contoh berikut.
catatan
Tumpukan adalah unit penerapan. Semua sumber daya harus dalam tumpukan, dan semua sumber daya yang ada dalam tumpukan digunakan pada saat yang sama. Jika sumber daya gagal digunakan, sumber daya lain yang sudah digunakan akan dipulihkan kembali. AWS CDK Aplikasi dapat berisi beberapa tumpukan, dan sumber daya dalam satu tumpukan dapat merujuk ke sumber daya di tumpukan lain.
Cuplikan singkat sebelumnya mencakup yang berikut:
-
Nama logis layanan:
MyWebServer. -
Gambar wadah yang diperoleh dari Galeri Publik Amazon ECR:
amazon/amazon-ecs-sample. -
Informasi lain yang relevan, seperti fakta bahwa penyeimbang beban memiliki alamat publik dan dapat diakses dari Internet.
Ini AWS CDK akan membuat semua sumber daya yang diperlukan untuk menyebarkan server web termasuk sumber daya berikut. Sumber daya ini dihilangkan dalam contoh ini.
-
Klaster Amazon ECS
-
Instans Amazon VPC dan Amazon EC2
-
Nama grup Auto Scaling
-
Penyeimbang Beban Aplikasi
-
Kebijakan dan peran IAM
Beberapa sumber daya yang disediakan secara otomatis dibagikan oleh semua layanan Amazon ECS yang ditentukan dalam tumpukan.
Simpan file sumber, lalu jalankan cdk synth perintah di direktori utama aplikasi Anda. Men AWS CDK jalankan aplikasi dan mensintesis CloudFormation template darinya, dan kemudian menampilkan template. Template adalah file YAML sekitar 600 baris. Awal file ditampilkan di sini. Template Anda mungkin berbeda dari contoh ini.
Resources: MyWebServerLB3B5FD3AB: Type: AWS::ElasticLoadBalancingV2::LoadBalancer Properties: LoadBalancerAttributes: - Key: deletion_protection.enabled Value: "false" Scheme: internet-facing SecurityGroups: - Fn::GetAtt: - MyWebServerLBSecurityGroup01B285AA - GroupId Subnets: - Ref: EcsDefaultClusterMnL3mNNYNVpcPublicSubnet1Subnet3C273B99 - Ref: EcsDefaultClusterMnL3mNNYNVpcPublicSubnet2Subnet95FF715A Type: application DependsOn: - EcsDefaultClusterMnL3mNNYNVpcPublicSubnet1DefaultRouteFF4E2178 - EcsDefaultClusterMnL3mNNYNVpcPublicSubnet2DefaultRouteB1375520 Metadata: aws:cdk:path: HelloEcsStack/MyWebServer/LB/Resource MyWebServerLBSecurityGroup01B285AA: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Automatically created Security Group for ELB HelloEcsStackMyWebServerLB06757F57 SecurityGroupIngress: - CidrIp: 0.0.0.0/0 Description: Allow from anyone on port 80 FromPort: 80 IpProtocol: tcp ToPort: 80 VpcId: Ref: EcsDefaultClusterMnL3mNNYNVpc7788A521 Metadata: aws:cdk:path: HelloEcsStack/MyWebServer/LB/SecurityGroup/Resource # and so on for another few hundred lines
Untuk menerapkan layanan di Anda Akun AWS, jalankan cdk deploy perintah di direktori utama aplikasi Anda. Anda diminta untuk menyetujui kebijakan IAM yang AWS CDK dibuat.
Penerapan memakan waktu beberapa menit di mana AWS CDK menciptakan beberapa sumber daya. Beberapa baris terakhir dari output dari penerapan termasuk nama host publik penyeimbang beban dan URL server web baru Anda. Mereka adalah sebagai berikut.
Outputs: HelloEcsStack.MyWebServerLoadBalancerDNSXXXXXXX = Hello-MyWeb-ZZZZZZZZZZZZZ-ZZZZZZZZZZ.us-west-2.elb.amazonaws.com HelloEcsStack.MyWebServerServiceURLYYYYYYYY = http://Hello-MyWeb-ZZZZZZZZZZZZZ-ZZZZZZZZZZ.us-west-2.elb.amazonaws.com
Langkah 3: Uji server web
Salin URL dari output penerapan dan tempelkan ke browser web Anda. Pesan selamat datang berikut dari server web ditampilkan.
Langkah 4: Membersihkan
Setelah Anda selesai dengan server web, akhiri layanan menggunakan CDK dengan menjalankan cdk destroy perintah di direktori utama aplikasi Anda. Melakukan hal ini mencegah Anda dari menimbulkan biaya yang tidak diinginkan di masa depan.
Langkah selanjutnya
Untuk mempelajari lebih lanjut tentang cara mengembangkan AWS infrastruktur menggunakan AWS CDK, lihat Panduan Peng AWS CDK embang.
Untuk informasi tentang menulis AWS CDK aplikasi dalam bahasa pilihan Anda, lihat berikut ini:
Untuk informasi selengkapnya tentang modul AWS Construct Library yang digunakan dalam topik ini, lihat ikhtisar Referensi AWS CDK API berikut.