Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jalankan beban kerja berbasis pesan dalam skala besar dengan menggunakan AWS Fargate
Stan Zubarev, Amazon Web Services
Ringkasan
Pola ini menunjukkan cara menjalankan beban kerja berbasis pesan dalam skala besar di AWS Cloud dengan menggunakan container dan AWS Fargate.
Menggunakan kontainer untuk memproses data dapat membantu ketika jumlah data yang diproses aplikasi melebihi batasan layanan komputasi tanpa server berbasis fungsi. Misalnya, jika aplikasi memerlukan lebih banyak kapasitas komputasi atau waktu pemrosesan daripada yang ditawarkan AWS Lambda, menggunakan Fargate dapat meningkatkan kinerja.
Contoh penyiapan berikut menggunakan AWS Cloud Development Kit (AWS CDK) TypeScript untuk mengonfigurasi dan menerapkan sumber daya berikut di AWS Cloud:
Layanan Fargate
Antrean Amazon Simple Queue Service (Amazon SQS)
Tabel Amazon DynamoDB.
CloudWatch Dasbor Amazon
Layanan Fargate menerima dan memproses pesan dari antrian Amazon SQS, lalu menyimpannya di tabel Amazon DynamoDB. Anda dapat memantau berapa banyak pesan Amazon SQS yang diproses dan berapa banyak item DynamoDB yang dibuat oleh Fargate dengan menggunakan dasbor. CloudWatch
catatan
Anda juga dapat menggunakan kode contoh pola ini untuk membangun beban kerja pemrosesan data yang lebih kompleks dalam arsitektur tanpa server berbasis peristiwa. Untuk informasi selengkapnya, lihat Menjalankan beban kerja berbasis peristiwa dan terjadwal dalam skala besar dengan AWS Fargate.
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif
Versi terbaru AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi pada mesin lokal Anda
Git
, diinstal dan dikonfigurasi pada mesin lokal Anda AWS CDK, diinstal dan dikonfigurasi pada mesin lokal Anda
Pergi
, instal, dan konfigurasikan pada mesin lokal Anda Docker
, diinstal dan dikonfigurasi pada mesin lokal Anda
Arsitektur
Tumpukan teknologi target
Amazon SQS
AWS Fargate
Amazon DynamoDB
Arsitektur target
Diagram berikut menunjukkan contoh alur kerja untuk menjalankan beban kerja berbasis pesan dalam skala besar di AWS Cloud dengan menggunakan Fargate:

Diagram menunjukkan alur kerja berikut:
Layanan Fargate menggunakan polling panjang Amazon SQS untuk menerima pesan dari antrian Amazon SQS.
Layanan Fargate kemudian memproses pesan Amazon SQS dan menyimpannya dalam tabel DynamoDB.
Otomatisasi dan skala
Untuk mengotomatiskan penskalaan jumlah tugas Fargate, Anda dapat mengonfigurasi Auto Scaling Service Amazon Elastic Container Service (Amazon ECS) Service Auto Scaling. Ini adalah praktik terbaik untuk mengonfigurasi kebijakan penskalaan berdasarkan jumlah pesan yang terlihat dalam antrean Amazon SQS aplikasi Anda.
Untuk informasi selengkapnya, lihat Penskalaan berdasarkan Amazon SQS di Panduan Pengguna Amazon Auto EC2 Scaling.
Alat
Layanan AWS
AWS Fargate membantu Anda menjalankan container tanpa perlu mengelola server atau instans Amazon Elastic Compute Cloud (Amazon). EC2 Ini digunakan bersama dengan Amazon Elastic Container Service (Amazon ECS).
Amazon Simple Queue Service (Amazon Simple Queue Service) menyediakan antrian host yang aman, tahan lama, dan tersedia yang membantu Anda mengintegrasikan dan memisahkan sistem dan komponen perangkat lunak terdistribusi.
Amazon DynamoDB adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat, dapat diprediksi, dan dapat diskalakan.
Amazon CloudWatch membantu Anda memantau metrik sumber daya AWS Anda dan aplikasi yang Anda jalankan di AWS secara real time.
Kode
Kode untuk pola ini tersedia di repositori GitHub sqs-fargate-ddb-cdk-go
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kloning GitHub repositori. | Kloning repositori GitHub sqs-fargate-ddb-cdk-go
| Pengembang aplikasi |
Verifikasi bahwa AWS CLI dikonfigurasi ke akun AWS yang benar dan AWS CDK memiliki izin yang diperlukan. |
Prosedur ini juga mengharuskan AWS CDK memiliki izin untuk menyediakan infrastruktur dalam akun AWS Anda. Untuk memberikan izin yang diperlukan, Anda harus membuat profil AWS bernama di AWS CLI dan mengekspornya AWS_PROFILEsebagai variabel lingkungan. catatanJika Anda belum pernah menggunakan AWS CDK di akun AWS Anda sebelumnya, Anda harus terlebih dahulu menyediakan sumber daya AWS CDK yang diperlukan. Untuk informasi selengkapnya, lihat Bootstrapping di Panduan Pengembang AWS CDK v2. | Pengembang aplikasi |
Terapkan tumpukan AWS CDK ke akun AWS Anda. |
| Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kirim pesan pengujian ke antrian Amazon SQS. | Untuk petunjuknya, lihat Mengirim pesan ke antrian (konsol) di Panduan Pengembang Amazon SQS. Uji contoh pesan Amazon SQS
| Pengembang aplikasi |
Verifikasi bahwa pesan pengujian muncul di log layanan Fargate. CloudWatch | Ikuti petunjuk di Melihat CloudWatch Log di Panduan Pengembang Amazon ECS. Pastikan Anda meninjau log untuk grup go-fargate-servicelog di cluster go-service-clusterECS. | Pengembang aplikasi |
Verifikasi bahwa pesan pengujian muncul di tabel DynamoDB. |
| Pengembang aplikasi |
Verifikasi bahwa layanan Fargate mengirim pesan ke CloudWatch Log. |
catatanAWS CDK membuat CloudWatch dasbor di akun AWS Anda secara otomatis. | Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Hapus tumpukan AWS CDK. |
| Pengembang aplikasi |
Verifikasi bahwa tumpukan AWS CDK telah dihapus. | Untuk memastikan bahwa tumpukan telah dihapus, jalankan perintah berikut:
Untuk informasi selengkapnya, lihat Contoh perintah operasi CloudFormation tumpukan untuk AWS CLI dan PowerShell di Panduan CloudFormation Pengguna AWS. | Pengembang aplikasi |
Sumber daya terkait
Mengkonfigurasi AWS CLI (Panduan Pengguna AWS CLI untuk Versi 2)
Referensi API (Referensi AWS CDK API)
AWS SDK for Go
v2 (Dokumentasi Go)