Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menerapkan aplikasi yang dikelompokkan ke Amazon ECS dengan menggunakan AWS Copilot
Jean-Baptiste Guillois, Mathew George, dan Thomas Scott, Amazon Web Services
Ringkasan
Pola ini menunjukkan cara menerapkan container di kluster Amazon Elastic Container Service (Amazon ECS) dengan dua cara—dengan menggunakan Konsol Manajemen Amazon Web Services (AWS), dan dengan menggunakan AWS Copilot—untuk mendemonstrasikan cara AWS Copilot menyederhanakan tugas penerapan.
Amazon ECS adalah layanan manajemen kontainer yang sangat skalabel dan cepat yang memudahkan untuk menjalankan, menghentikan, dan mengelola kontainer di cluster. kontainer Anda dijelaskan pada ketentuan tugas yang Anda gunakan untuk menjalankan tugas individu atau tugas yang ada dalam layanan. Anda dapat menjalankan tugas dan layanan Anda pada infrastruktur tanpa server yang dikelola oleh AWS Fargate. Atau, untuk kontrol lebih lanjut atas infrastruktur, Anda dapat menjalankan tugas dan layanan Anda di klaster instans Amazon Elastic Compute Cloud (Amazon EC2) yang Anda kelola.
Perintah AWS Copilot command line interface (CLI) menyederhanakan pembuatan, pelepasan, dan pengoperasian aplikasi kontainer siap produksi di Amazon ECS dari lingkungan pengembangan lokal. AWS Copilot CLI selaras dengan alur kerja pengembang yang mendukung praktik terbaik aplikasi modern: mulai dari menggunakan infrastruktur sebagai kode hingga membuat pipeline integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) yang disediakan atas nama pengguna. Anda dapat menggunakan AWS Copilot CLI sebagai bagian dari siklus pengembangan dan pengujian sehari-hari Anda sebagai alternatif untuk AWS Management Console.
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif
AWS Command Line Interface (AWS CLI) diinstal dan dikonfigurasi secara lokal untuk menggunakan akun AWS Anda (lihat petunjuk penginstalan dan instruksi konfigurasi dalam dokumentasi AWS CLI)
AWS Copilot diinstal secara lokal (lihat petunjuk penginstalan di dokumentasi Amazon ECS)
Docker diinstal pada mesin lokal Anda (lihat dokumentasi Docker
)
Batasan
Docker memberlakukan batas tarik 100 gambar kontainer per 6 jam per alamat IP pada paket gratis.
Arsitektur
Tumpukan teknologi target
Lingkungan AWS diatur dengan virtual private cloud (VPC), subnet publik dan pribadi, dan grup keamanan
Kluster Amazon ECS
Layanan Amazon ECS dan definisi tugas
Amazon Elastic Container Registry (Amazon ECR)
Amazon DynamoDB
Penyeimbang Beban Aplikasi
AWS Fargate
Amazon Identity and Access Management (IAM)
Amazon CloudWatch
AWS CloudTrail
Arsitektur target
Saat Anda menerapkan aplikasi sampel untuk pola ini, beberapa tugas dibuat dan diterapkan di Availability Zone terpisah. Setiap tugas menyimpan data di Amazon DynamoDB. Saat Anda mengakses halaman web untuk suatu tugas, Anda dapat melihat data dari semua tugas lainnya.

Alat
Layanan AWS
Amazon ECR — Amazon Elastic Container Registry (Amazon ECR) adalah layanan registri gambar kontainer terkelola AWS yang aman, terukur, dan andal. Amazon ECR mendukung repositori pribadi dengan izin berbasis sumber daya menggunakan IAM.
Amazon ECS — Amazon Elastic Container Service (Amazon ECS) adalah layanan manajemen kontainer yang sangat skalabel dan cepat untuk menjalankan, menghentikan, dan mengelola kontainer di klaster. Anda dapat menjalankan tugas dan layanan Anda pada infrastruktur tanpa server yang dikelola oleh AWS Fargate. Atau, untuk kontrol lebih lanjut atas infrastruktur, Anda dapat menjalankan tugas dan layanan Anda di klaster instans Amazon Elastic Compute Cloud (Amazon EC2) yang Anda kelola.
AWS Copilot — AWS Copilot menyediakan antarmuka baris perintah yang membantu Anda meluncurkan dan mengelola aplikasi kontainer di AWS, termasuk mendorong ke registri, membuat definisi tugas, dan membuat klaster.
AWS Fargate — AWS Fargate adalah mesin pay-as-you-go komputasi tanpa server yang memungkinkan Anda fokus membangun aplikasi tanpa mengelola server. AWS Fargate kompatibel dengan Amazon ECS dan Amazon Elastic Kubernetes Service (Amazon EKS). Saat menjalankan tugas dan layanan Amazon ECS dengan tipe peluncuran Fargate atau penyedia kapasitas Fargate, Anda mengemas aplikasi dalam wadah, menentukan persyaratan CPU dan memori, menentukan kebijakan jaringan dan IAM, dan meluncurkan aplikasi. Setiap tugas Fargate memiliki batas isolasi sendiri dan tidak berbagi kernel yang mendasarinya, sumber daya CPU, sumber daya memori, atau elastic network interface dengan tugas lain.
Amazon DynamoDB - Amazon DynamoDB adalah layanan database NoSQL yang dikelola sepenuhnya yang memberikan kinerja yang cepat dan dapat diprediksi dengan skalabilitas yang mulus.
Elastic Load Balancing (ELB) — Elastic Load Balancing secara otomatis mendistribusikan lalu lintas masuk Anda ke beberapa target, EC2 seperti instance, kontainer, dan alamat IP, dalam satu atau beberapa Availability Zone. Ini memantau kesehatan target terdaftarnya, dan mengarahkan lalu lintas hanya ke target yang sehat. Elastic Load Balancing menskalakan load balancer Anda saat lalu lintas masuk Anda berubah seiring waktu. Hal ini dapat secara otomatis menskalakan sebagian besar beban kerja.
Alat
Kode
Kode untuk aplikasi sampel yang digunakan dalam pola ini tersedia di GitHub, di repositori Aplikasi Sampel Cluster
Epik
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Kloning GitHub repositori. | Kloning repositori kode sampel dengan menggunakan perintah:
| Pengembang aplikasi, AWS DevOps |
Buat repositori Amazon ECR Anda. |
Untuk informasi selengkapnya, lihat Membuat repositori pribadi di dokumentasi Amazon ECR. | Pengembang aplikasi, AWS DevOps |
Buat, tag, dan dorong image Docker Anda ke repositori Amazon ECR Anda. |
Untuk mengautentikasi klien Docker Anda ke registri:
Untuk membangun image Docker Anda:
Untuk menandai gambar Docker Anda:
Untuk mendorong image Docker ke repositori Anda:
| Pengembang aplikasi, AWS DevOps |
Menyebarkan tumpukan aplikasi. |
Untuk informasi selengkapnya tentang penerapan CloudFormation templat, lihat Membuat tumpukan di CloudFormation dokumentasi AWS. | AWS DevOps, Pengembang aplikasi |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Kloning GitHub repositori. | Kloning repositori kode sampel dengan menggunakan perintah:
| Pengembang aplikasi, AWS DevOps |
Terapkan image container Anda ke AWS dengan menggunakan AWS Copilot CLI. | Terapkan aplikasi dalam satu langkah dengan menggunakan perintah berikut di direktori root proyek Anda:
Anda kemudian harus dapat mengakses aplikasi dengan menggunakan nama DNS yang disediakan sebagai output. | Pengembang aplikasi, AWS DevOps |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Hapus sumber daya yang dibuat melalui AWS Management Console. | Jika Anda menggunakan opsi 1 (AWS Management Console) untuk menerapkan tumpukan aplikasi, ikuti langkah-langkah berikut saat Anda siap menghapus sumber daya yang Anda buat:
| Pengembang aplikasi, AWS DevOps |
Hapus sumber daya yang dibuat oleh AWS Copilot. | Jika Anda menggunakan opsi 2 (AWS Copilot CLI) untuk menyebarkan tumpukan aplikasi, jalankan perintah berikut dari direktori root proyek Anda saat Anda siap untuk menghapus sumber daya yang Anda buat:
| Pengembang aplikasi, AWS DevOps |
Sumber daya terkait
Menginstal atau memperbarui versi terbaru AWS CLI (dokumentasi AWS CLI)
Menggunakan antarmuka baris perintah AWS Copilot (dokumentasi Amazon ECS)
Amazon ECS di AWS Fargate (dokumentasi Amazon ECR)
Docker Desktop
(dokumentasi Docker)