Bagaimana CloudWatch alarm mendeteksi kegagalan penerapan Amazon ECS - Amazon Elastic Container Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bagaimana CloudWatch alarm mendeteksi kegagalan penerapan Amazon ECS

Anda dapat mengonfigurasi Amazon ECS untuk menyetel penerapan menjadi gagal saat mendeteksi bahwa CloudWatch alarm tertentu telah masuk ke status. ALARM

Anda dapat mengatur konfigurasi secara opsional untuk mengembalikan penerapan yang gagal ke penerapan yang terakhir selesai.

create-service AWS CLI Contoh berikut menunjukkan cara membuat layanan Linux ketika alarm penyebaran digunakan dengan opsi rollback.

aws ecs create-service \ --service-name MyService \ --deployment-controller type=ECS \ --desired-count 3 \ --deployment-configuration "alarms={alarmNames=[alarm1Name,alarm2Name],enable=true,rollback=true}" \ --task-definition sample-fargate:1 \ --launch-type FARGATE \ --platform-family LINUX \ --platform-version 1.4.0 \ --network-configuration "awsvpcConfiguration={subnets=[subnet-12344321],securityGroups=[sg-12344321],assignPublicIp=ENABLED}"

Pertimbangkan hal berikut saat Anda menggunakan metode CloudWatch alarm Amazon pada suatu layanan.

  • Waktu pemanggangan adalah periode waktu setelah versi layanan baru telah ditingkatkan dan versi layanan lama telah ditingkatkan, di mana Amazon ECS terus memantau alarm yang terkait dengan penyebaran. Amazon ECS menghitung periode waktu ini berdasarkan konfigurasi alarm yang terkait dengan penerapan.

  • Parameter deploymentConfiguration permintaan sekarang berisi tipe alarms data. Anda dapat menentukan nama alarm, apakah akan menggunakan metode ini, dan apakah akan memulai rollback ketika alarm menunjukkan kegagalan penerapan. Untuk informasi selengkapnya, lihat CreateServicedi Referensi API Amazon Elastic Container Service.

  • DescribeServicesRespons memberikan wawasan tentang keadaan penyebaran, rolloutState danrolloutStateReason. Ketika penerapan baru dimulai, status peluncuran dimulai dalam suatu keadaan. IN_PROGRESS Ketika layanan mencapai kondisi mapan dan waktu pemanggangan selesai, status peluncuran beralih ke. COMPLETED Jika layanan gagal mencapai kondisi mapan dan alarm telah masuk ke ALARM status, penyebaran akan beralih ke FAILED keadaan. Sebuah deployment dalam status FAILED tidak akan meluncurkan tugas baru apa pun.

  • Selain peristiwa perubahan status penerapan layanan yang dikirim Amazon ECS untuk penerapan yang telah dimulai dan telah selesai, Amazon ECS juga mengirimkan peristiwa ketika penerapan yang menggunakan alarm gagal. Kejadian ini menyediakan detail tentang mengapa deployment gagal atau jika deployment dimulai karena rollback. Untuk informasi selengkapnya, lihat Acara perubahan status penerapan layanan Amazon ECS.

  • Jika penerapan baru dimulai karena penerapan sebelumnya gagal dan rollback diaktifkan, reason bidang peristiwa perubahan status penerapan layanan akan menunjukkan penerapan dimulai karena rollback.

  • Jika Anda menggunakan pemutus sirkuit penerapan dan CloudWatch alarm Amazon untuk mendeteksi kegagalan, salah satu dapat memulai kegagalan penerapan segera setelah kriteria untuk salah satu metode terpenuhi. Rollback terjadi ketika Anda menggunakan opsi rollback untuk metode yang memulai kegagalan penerapan.

  • CloudWatch Alarm Amazon hanya didukung untuk layanan Amazon ECS yang menggunakan pengontrol penyebaran pembaruan bergulir (ECS).

  • Anda dapat mengonfigurasi opsi ini dengan menggunakan konsol Amazon ECS, atau. AWS CLIUntuk informasi selengkapnya, lihat Buat layanan menggunakan parameter yang ditentukan dan buat layanan di Referensi.AWS Command Line Interface

  • Anda mungkin memperhatikan bahwa status penerapan tetap IN_PROGRESS untuk waktu yang lama. Alasan untuk ini adalah bahwa Amazon ECS tidak mengubah status sampai telah menghapus penerapan aktif, dan ini tidak terjadi sampai setelah waktu pemanggangan. Bergantung pada konfigurasi alarm Anda, penerapan mungkin tampak memakan waktu beberapa menit lebih lama daripada saat Anda tidak menggunakan alarm (meskipun set tugas utama baru ditingkatkan dan penerapan lama diperkecil). Jika Anda menggunakan CloudFormation batas waktu, pertimbangkan untuk meningkatkan batas waktu. Untuk informasi selengkapnya, lihat Membuat kondisi tunggu di templat di Panduan AWS CloudFormation Pengguna.

  • Amazon ECS memanggil DescribeAlarms untuk melakukan polling alarm. Panggilan untuk DescribeAlarms menghitung kuota CloudWatch layanan yang terkait dengan akun Anda. Jika Anda memiliki AWS layanan lain yang meneleponDescribeAlarms, mungkin ada dampak pada Amazon ECS untuk melakukan polling alarm. Misalnya, jika layanan lain membuat DescribeAlarms panggilan yang cukup untuk mencapai kuota, layanan tersebut dibatasi dan Amazon ECS juga dibatasi dan tidak dapat melakukan polling alarm. Jika alarm dihasilkan selama periode pelambatan, Amazon ECS mungkin melewatkan alarm dan putaran kembali mungkin tidak terjadi. Tidak ada dampak lain pada penyebaran. Untuk informasi selengkapnya tentang kuota CloudWatch layanan, lihat kuota CloudWatch layanan di CloudWatch Panduan Pengguna.

  • Jika alarm dalam ALARM keadaan di awal penerapan, Amazon ECS tidak akan memantau alarm selama penyebaran itu (Amazon ECS mengabaikan konfigurasi alarm). Perilaku ini membahas kasus di mana Anda ingin memulai penerapan baru untuk memperbaiki kegagalan penerapan awal.

Alarm-alarm yang direkomendasikan

Kami menyarankan Anda menggunakan metrik alarm berikut:

  • Jika Anda menggunakan Application Load Balancer, gunakan metrik HTTPCode_ELB_5XX_Count dan HTTPCode_ELB_4XX_Count Application Load Balancer. Metrik ini memeriksa lonjakan HTTP. Untuk informasi selengkapnya tentang metrik Application Load Balancer, lihat CloudWatch metrik untuk Application Load Balancer di Panduan Pengguna untuk Application Load Balancer.

  • Jika Anda memiliki aplikasi yang sudah ada, gunakan MemoryUtilization metrik CPUUtilization dan. Metrik ini memeriksa persentase CPU dan memori yang digunakan cluster atau layanan. Untuk informasi selengkapnya, lihat Pertimbangan.

  • Jika Anda menggunakan Amazon Simple Queue Service antrian dalam tugas, gunakan metrik Amazon ApproximateNumberOfMessagesNotVisible SQS. Metrik ini memeriksa jumlah pesan dalam antrian yang tertunda dan tidak tersedia untuk dibaca segera. Untuk informasi selengkapnya tentang metrik Amazon SQS, lihat Metrik yang tersedia untuk CloudWatch Amazon SQS di Panduan Pengembang Layanan Antrian Sederhana Amazon.