Jalankan beban kerja berbasis pesan dalam skala besar dengan menggunakan AWS Fargate - AWS Prescriptive Guidance

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

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:

Contoh alur kerja untuk beban kerja berbasis pesan

Diagram menunjukkan alur kerja berikut:

  1. Layanan Fargate menggunakan polling panjang Amazon SQS untuk menerima pesan dari antrian Amazon SQS.

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

TugasDeskripsiKeterampilan yang dibutuhkan

Kloning GitHub repositori.

Kloning repositori GitHub sqs-fargate-ddb-cdk-go ke mesin lokal Anda dengan menjalankan perintah berikut:

git clone https://github.com/aws-samples/sqs-fargate-ddb-cdk-go.git

Pengembang aplikasi

Verifikasi bahwa AWS CLI dikonfigurasi ke akun AWS yang benar dan AWS CDK memiliki izin yang diperlukan.

Untuk memeriksa apakah pengaturan konfigurasi AWS CLI sudah benar, Anda dapat menjalankan perintah Amazon Simple Storage Service (Amazon S3) ls berikut:

aws s3 ls

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.

catatan

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

  1. Buat image container dengan menjalankan perintah AWS CLI berikut:

    docker build -t go-fargate .

  2. Buka direktori AWS CDK dengan menjalankan perintah berikut:

    cd cdk

  3. Instal modul npm yang diperlukan dengan menjalankan perintah berikut:

    npm i

  4. Menerapkan pola AWS CDK ke akun AWS Anda dengan menjalankan perintah berikut:

    cdk deploy --profile ${AWS_PROFILE}

Pengembang aplikasi
TugasDeskripsiKeterampilan 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

{ "message": "hello, Fargate" }
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.

  1. Buka Konsol DynamoDB.

  2. Di panel navigasi kiri, pilih Tabel. Kemudian, pilih tabel berikut dari daftar: sqs-fargate-ddb-table.

  3. Pilih Jelajahi item tabel.

  4. Verifikasi bahwa pesan pengujian muncul di daftar Item yang dikembalikan.

Pengembang aplikasi

Verifikasi bahwa layanan Fargate mengirim pesan ke CloudWatch Log.

  1. Buka konsol CloudWatch .

  2. Di panel navigasi kiri, pilih Dasbor.

  3. Dalam daftar Dasbor Kustom, pilih dasbor bernama go-service-dashboard.

  4. Verifikasi bahwa pesan pengujian muncul di log.

catatan

AWS CDK membuat CloudWatch dasbor di akun AWS Anda secara otomatis.

Pengembang aplikasi
TugasDeskripsiKeterampilan yang dibutuhkan

Hapus tumpukan AWS CDK.

  1. Buka direktori AWS CDK Anda di AWS CLI dengan menjalankan perintah berikut:

    cd cdk

  2. Hapus tumpukan AWS CDK dengan menjalankan perintah berikut:

    cdk destroy --profile ${AWS_PROFILE}

Pengembang aplikasi

Verifikasi bahwa tumpukan AWS CDK telah dihapus.

Untuk memastikan bahwa tumpukan telah dihapus, jalankan perintah berikut:

aws cloudformation list-stacks --query \ "StackSummaries[?contains(StackName,'SqsFargate')].StackStatus" \ --profile ${AWS_PROFILE}

StackStatusNilai yang dikembalikan dalam output perintah adalah DELETE_COMPLETE jika tumpukan dihapus.

Untuk informasi selengkapnya, lihat Contoh perintah operasi CloudFormation tumpukan untuk AWS CLI dan PowerShell di Panduan CloudFormation Pengguna AWS.

Pengembang aplikasi

Sumber daya terkait