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-count3
\ --deployment-configuration "alarms={alarmNames=[alarm1Name
,alarm2Name
],enable=true
,rollback=true
}" \ --task-definitionsample-fargate:1
\ --launch-typeFARGATE
\ --platform-familyLINUX
\ --platform-version1.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 tipealarms
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. -
DescribeServices
Respons 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 keALARM
status, penyebaran akan beralih keFAILED
keadaan. Sebuah deployment dalam statusFAILED
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 untukDescribeAlarms
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 membuatDescribeAlarms
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
danHTTPCode_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
metrikCPUUtilization
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.