View a markdown version of this page

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 mengatur penerapan menjadi gagal ketika mendeteksi bahwa CloudWatch alarm tertentu telah masuk ke ALARM status.

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

create-service AWS CLI Contoh berikut menunjukkan cara membuat layanan Linux ketika alarm penerapan 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 layanan.

  • Durasi ketika revisi layanan biru dan hijau berjalan secara bersamaan setelah lalu lintas produksi bergeser. Amazon ECS menghitung periode waktu ini berdasarkan konfigurasi alarm yang terkait dengan penerapan. Anda tidak dapat mengatur nilai ini.

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

  • Resp DescribeServices ons memberikan wawasan tentang keadaan penerapan, rolloutState danrolloutStateReason. Saat penerapan baru dimulai, status peluncuran dimulai dalam IN_PROGRESS status. Ketika layanan mencapai keadaan stabil dan waktu memanggang selesai, status peluncuran beralih keCOMPLETED. Jika layanan gagal mencapai kondisi mapan dan alarm telah masuk ke ALARM status, penyebaran akan beralih ke FAILED status. 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 Peristiwa perubahan status penyebaran 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 saat Anda menggunakan opsi rollback untuk metode yang memulai kegagalan penerapan.

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

  • Anda dapat mengonfigurasi opsi ini dengan menggunakan konsol Amazon ECS, atau. AWS CLI Untuk 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 menghapus penerapan aktif, dan ini tidak terjadi sampai setelah waktu memanggang. 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 batas CloudFormation waktu, pertimbangkan untuk meningkatkan batas waktu. Untuk informasi selengkapnya, lihat Membuat kondisi tunggu dalam template di Panduan AWS CloudFormation Pengguna.

  • Amazon ECS menelepon DescribeAlarms untuk melakukan polling alarm. Panggilan untuk di DescribeAlarms hitung terhadap 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 melakukan DescribeAlarms panggilan yang cukup untuk mencapai kuota, layanan itu dibatasi dan Amazon ECS juga dibatasi dan tidak dapat melakukan polling alarm. Jika alarm dihasilkan selama periode pelambatan, Amazon ECS mungkin melewatkan alarm dan rollback mungkin tidak terjadi. Tidak ada dampak lain pada penyebaran. Untuk informasi selengkapnya CloudWatch tentang kuota CloudWatch layanan, lihat kuota layanan di Panduan CloudWatch Pengguna.

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

Alarm-alarm yang direkomendasikan

Sebaiknya gunakan metrik alarm berikut:

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

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

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

Waktu menanam

Saat Anda menggunakan opsi rollback untuk penerapan layanan Anda, Amazon ECS menunggu sejumlah waktu tambahan setelah revisi layanan target diterapkan sebelum mengirimkan alarm. CloudWatch Ini disebut sebagai waktu memanggang. Kali ini dimulai setelah:

  • Semua tugas untuk revisi layanan target sedang berjalan dan dalam keadaan sehat

  • Revisi layanan sumber dikurangi hingga 0%

Waktu memanggang default kurang dari 5 menit. Penyebaran layanan ditandai sebagai selesai setelah waktu memanggang berakhir.

Anda dapat mengonfigurasi waktu memanggang untuk penerapan bergulir. Saat Anda menggunakan CloudWatch alarm untuk mendeteksi kegagalan, jika Anda mengubah waktu memanggang, dan kemudian memutuskan Anda menginginkan default Amazon ECS, Anda harus mengatur waktu memanggang secara manual.