Pesan peristiwa layanan - Amazon Elastic Container Service

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

Pesan peristiwa layanan

Ketika memecahkan permasalahan menggunakan layanan, hal pertama yang harus Anda periksa untuk informasi diagnostik adalah pencatatan peristiwa layanan. Anda dapat melihat peristiwa layanan menggunakan DescribeServices API, file AWS CLI, atau dengan menggunakan AWS Management Console.

Saat melihat pesan peristiwa layanan menggunakan Amazon ECS API, hanya peristiwa dari penjadwal layanan yang dikembalikan. Hal Ini termasuk penempatan tugas terbaru dan peristiwa kondisi instans. Namun, konsol Amazon ECS menampilkan peristiwa layanan dari sumber berikut.

  • Penempatan tugas dan kejadian kesehatan instans dari penjadwal layanan Amazon ECS. Peristiwa ini memiliki awalan layanan (nama layanan). Untuk memastikan bahwa tampilan peristiwa ini dapat membantu, kami hanya menampilkan peristiwa terbaru 100 dan pesan peristiwa duplikat yang dihilangkan hingga salah satu penyebab sudah diselesaikan atau sudah melewati waktu enam jam. Jika penyebabnya tidak terselesaikan dalam waktu enam jam, Anda menerima pesan acara layanan lain untuk tujuan itu.

  • Peristiwa Auto Scaling layanan. Peristiwa ini memiliki awalan Pesan. Peristiwa penskalaan 10 terbaru ditampilkan. Peristiwa ini hanya terjadi ketika layanan dikonfigurasi dengan kebijakan penskalaan Application Auto Scaling.

Gunakan langkah-langkah berikut untuk melihat pesan peristiwa layanan Anda saat ini.

Console
  1. Buka konsol di https://console.aws.amazon.com/ecs/v2.

  2. Pada panel navigasi, silakan pilih Klaster.

  3. Pada halaman Clusters, pilih cluster.

  4. Pilih layanan yang akan diperiksa.

  5. Pilih Penerapan dan peristiwa, di bawah Acara, lihat pesan.

AWS CLI

Gunakan perintah jelaskan-layanan untuk melihat pesan peristiwa layanan untuk layanan tertentu.

AWS CLI Contoh berikut menjelaskan layanan nama layanan di cluster default, yang akan memberikan pesan acara layanan terbaru.

aws ecs describe-services \ --cluster default \ --services service-name \ --region us-west-2

Pesan peristiwa layanan

Berikut ini adalah contoh pesan acara layanan yang mungkin Anda lihat di konsol Amazon ECS.

Penjadwal layanan mengirimkan acara service (service-name) has reached a steady state. layanan ketika layanan sehat dan pada jumlah tugas yang diinginkan, sehingga mencapai kondisi mapan.

Penjadwal layanan melaporkan status secara berkala, sehingga Anda mungkin menerima pesan ini beberapa kali.

Penjadwal layanan mengirimkan pesan peristiwa ini ketika tidak dapat menemukan sumber daya yang tersedia untuk menambahkan tugas lain. Kemungkinan penyebab untuk ini adalah:

Tidak ada instans kontainer yang ditemukan di klaster Anda

Jika tidak ada instance kontainer yang terdaftar di cluster tempat Anda mencoba menjalankan tugas, Anda menerima kesalahan ini. Anda harus menambahkan instans kontainer untuk klaster Anda. Untuk informasi selengkapnya, lihat Meluncurkan instans penampung Amazon ECS Linux.

Port tidak cukup

Jika tugas Anda menggunakan pemetaan host port tetap (misalnya, tugas Anda menggunakan port 80 pada host untuk server web), Anda harus memiliki setidaknya satu instans kontainer per tugas, karena hanya satu kontainer yang dapat menggunakan port host tunggal pada satu waktu. Anda harus menambahkan instans kontainer ke klaster milik Anda atau mengurangi jumlah tugas yang diinginkan.

Terlalu banyak port yang terdaftar

Instance pencocokan kontainer terdekat untuk penempatan tugas tidak dapat melebihi batas port cadangan maksimum yang diizinkan sebesar 100 port host per instance kontainer. Menggunakan pemetaan port host dinamis dapat memperbaiki masalah.

Port sudah digunakan

Definisi tugas tugas ini menggunakan port yang sama dalam pemetaan portnya sebagai tugas yang sudah berjalan pada instance kontainer yang dipilih. Pesan acara layanan akan memiliki ID instance kontainer yang dipilih sebagai bagian dari pesan di bawah ini.

The closest matching container-instance is already using a port required by your task.
Memori tidak cukup

Jika ketentuan tugas Anda menentukan memori sejumlah 1000 MiB, dan masing-masing klaster Anda pada instans kontainer memiliki memori sejumlah 1024 MiB, Anda hanya dapat menjalankan satu salinan tugas ini per instans kontainer. Anda dapat bereksperimen dengan memori yang lebih sedikit pada ketentuan tugas Anda sehingga Anda bisa meluncurkan lebih dari satu tugas per instans kontainer, atau meluncurkan lebih banyak instans kontainer menuju klaster Anda.

catatan

Jika Anda mencoba memaksimalkan pemanfaatan sumber daya Anda dengan menyediakan memori sebanyak mungkin untuk jenis instans tertentu, lihatManajemen memori instance kontainer.

CPU tidak cukup

Sebuah instans kontainer memiliki 1.024 unit CPU untuk setiap inti CPU. Jika ketentuan tugas Anda menentukan 1.000 unit CPU, dan setiap instans kontainer di klaster Anda memiliki 1.024 unit CPU, Anda hanya dapat menjalankan satu salinan tugas ini per instans kontainer. Anda dapat bereksperimen dengan unit CPU yang lebih sedikit dalam ketentuan tugas Anda sehingga Anda bisa meluncurkan lebih dari satu tugas per instans kontainer, atau meluncurkan lebih banyak instans kontainer menuju klaster Anda.

Poin lampiran ENI yang tersedia tidak cukup

Tugas yang menggunakan mode awsvpc jaringan masing-masing menerima elastic network interface (ENI) mereka sendiri, yang dilampirkan ke instance container yang menghostingnya. Instans Amazon EC2 memiliki batasan jumlah ENI yang dapat dilampirkan padanya dan tidak ada instance kontainer di cluster yang memiliki kapasitas ENI yang tersedia.

Batas ENI untuk instans kontainer individu tergantung pada kondisi berikut:

  • Jika Anda belum menyertakan untuk Pengaturan akun awsvpcTrunking, batas ENI untuk setiap instans kontainer tergantung pada tipe instans. Untuk informasi selengkapnya, lihat Alamat IP Per Antarmuka Jaringan Per Tipe Instans dalam Panduan Pengguna Amazon EC2 untuk Instans Linux.

  • Jika Anda telah memilih untuk masuk ke setelan awsvpcTrunking akun tetapi Anda belum meluncurkan instance container baru menggunakan tipe instans yang didukung setelah memilih, batas ENI untuk setiap instance container masih pada nilai default. Untuk informasi selengkapnya, lihat Alamat IP Per Antarmuka Jaringan Per Tipe Instans dalam Panduan Pengguna Amazon EC2 untuk Instans Linux.

  • Jika Anda sudah menyertakan untuk pengaturan akun awsvpcTrunking dan Anda telah meluncurkan instans kontainer yang baru dengan menggunakan tipe instans yang didukung setelah menyertakannya, ENI tambahan akan tersedia. Untuk informasi selengkapnya, lihat Tipe instans Amazon EC2 yang didukung.

Untuk informasi lebih lanjut tentang penyertaan pada pengaturan akun awsvpcTrunking, lihat Pembuatan torso antarmuka jaringan elastis.

Anda dapat menambahkan instans kontainer untuk klaster Anda untuk menyediakan lebih banyak adapter jaringan yang tersedia.

Instans kontainer kehilangan atribut wajib

Beberapa parameter ketentuan tugas memerlukan versi API Docker jarak jauh tertentu untuk diinstal pada instans kontainer. Hal lainnya, seperti opsi pencatatan driver, mengharuskan instans kontainer untuk mendaftarkan pencatatan driver tersebut dengan variabel konfigurasi agen ECS_AVAILABLE_LOGGING_DRIVERS. Jika definisi tugas Anda berisi parameter yang memerlukan atribut instance kontainer tertentu, dan Anda tidak memiliki instance kontainer yang tersedia yang dapat memenuhi persyaratan ini, tugas tidak dapat ditempatkan.

Penyebab umum kesalahan ini adalah jika layanan Anda menggunakan tugas yang menggunakan mode awsvpc jaringan dan jenis peluncuran EC2. Cluster yang Anda tentukan tidak memiliki instance kontainer yang terdaftar di subnet yang sama yang ditentukan pada awsvpcConfiguration saat layanan dibuat.

Untuk informasi lebih lanjut tentang atribut yang diperlukan untuk parameter ketentuan tugas tertentu dan variabel konfigurasi agen, lihat Parameter ketentuan tugas dan Konfigurasi agen kontainer Amazon ECS.

Instance pencocokan kontainer terdekat untuk penempatan tugas tidak berisi unit CPU yang cukup untuk memenuhi persyaratan dalam definisi tugas. Tinjau persyaratan CPU di kedua parameter ukuran tugas dan ketentuan kontainer dari ketentuan tugas.

Agen kontainer Amazon ECS pada instance kontainer pencocokan terdekat untuk penempatan tugas terputus. Jika Anda dapat terhubung ke instans kontainer dengan SSH, Anda dapat memeriksa pencatatan agen; untuk informasi lebih lanjut, lihat Log Agen Kontainer Amazon ECS. Anda juga harus memverifikasi bahwa agen sedang berjalan pada instans. Jika Anda menggunakan AMI Amazon ECS yang dioptimalkan, Anda dapat mencoba menghentikan dan memulai ulang agen dengan perintah berikut.

  • Untuk Amazon ECS yang dioptimalkan Amazon Linux 2 AMI dan Amazon ECS yang dioptimalkan Amazon Linux 2023 AMI

    sudo systemctl restart ecs
  • Untuk Amazon ECS yang dioptimalkan Amazon Linux AMI

    sudo stop ecs && sudo start ecs

Layanan ini terdaftar dengan penyeimbang beban dan pemeriksaan kondisi penyeimbang beban gagal. Untuk informasi selengkapnya, lihat Pemecahan permasalahan terhadap layanan penyeimbang beban.

Layanan ini berisi tugas yang gagal untuk dimulai setelah upaya dilakukan secara berturut-turut. Pada titik ini, penjadwal layanan mulai meningkatkan tambahan waktu antara pengulangan. Anda harus memecahkan masalah mengapa tugas Anda gagal untuk diluncurkan. Untuk informasi selengkapnya, lihat Logika throttle layanan Amazon ECS.

Setelah layanan diperbarui, misalnya dengan ketentuan tugas yang diperbarui, penjadwal layanan melanjutkan perilakunya secara normal.

Layanan ini tidak dapat meluncurkan lebih banyak tugas dikarenakan batas throttling API. Setelah penjadwal layanan dapat meluncurkan lebih banyak tugas, maka akan dilanjutkan.

Untuk meminta kenaikan tingkat batas kuota API, buka halaman AWS Support Pusat, masuk jika diperlukan, dan pilih Buat kasus. Pilih Peningkatan kuota layanan. Lengkapi dan kirimkan formulir ini.

Tugas pada layanan ini tidak dapat dihentikan atau dimulai saat layanan deployment dikarenakan konfigurasi pada deployment. Konfigurasi penyebaran terdiri dari minimumHealthyPercent dan maximumPercent nilai-nilai, yang didefinisikan ketika layanan dibuat. Nilai-nilai tersebut juga dapat diperbarui pada layanan yang ada.

minimumHealthyPercentIni mewakili batas bawah pada jumlah tugas yang harus dijalankan untuk layanan selama penerapan atau ketika instance kontainer terkuras. Ini adalah persen dari jumlah tugas yang diinginkan untuk layanan ini. Nilai ini dibulatkan ke atas. Misalnya, jika persen sehat minimum adalah 50 dan jumlah tugas yang diinginkan adalah empat, maka penjadwal dapat menghentikan dua tugas yang ada sebelum memulai dua tugas baru. Demikian juga, jika persentase minimum yang sehat adalah 75% dan jumlah tugas yang diinginkan adalah dua, maka penjadwal tidak dapat menghentikan tugas apa pun karena nilai yang dihasilkan juga dua.

maximumPercentIni mewakili batas atas jumlah tugas yang harus dijalankan untuk layanan selama penerapan atau saat instance kontainer terkuras. Ini adalah persentase dari jumlah tugas yang diinginkan untuk suatu layanan. Nilai ini dibulatkan ke bawah. Misalnya, jika persentase maksimum adalah 200 dan jumlah tugas yang diinginkan adalah empat, maka penjadwal dapat memulai empat tugas baru sebelum menghentikan empat tugas yang ada. Demikian juga, jika persentase maksimum adalah 125 dan jumlah tugas yang diinginkan adalah tiga, maka penjadwal tidak dapat memulai tugas apa pun karena nilai yang dihasilkan juga tiga.

Ketika menetapkan jumlah minimum persen kondisi atau persen maksimum, Anda harus memastikan bahwa penjadwal dapat menghentikan atau memulai setidaknya satu tugas ketika deployment telah dipicu.

Anda dapat meminta peningkatan kuota untuk sumber daya yang menyebabkan kesalahan. Untuk informasi selengkapnya, lihat Kuota layanan Amazon ECS. Untuk meminta penambahan kuota, lihat Meminta penambahan kuota di Panduan Pengguna Service Quotas.

Berikut ini adalah kemungkinan alasan untuk kesalahan ini:

  • Layanan tidak dapat memulai tugas karena subnet berada di Availability Zone yang tidak didukung.

    Untuk informasi tentang Wilayah Fargate dan Zona Ketersediaan yang didukung, lihat. Wilayah yang Didukung untuk Amazon ECS di Fargate AWS

    Untuk informasi tentang cara melihat Zona Ketersediaan subnet, lihat Melihat subnet Anda di Panduan Pengguna Amazon VPC.

  • Anda mencoba menjalankan definisi tugas yang menggunakan arsitektur ARM di Fargate Spot.

Anda dapat meminta peningkatan kuota untuk sumber daya yang menyebabkan kesalahan. Untuk informasi selengkapnya, lihat Kuota layanan Amazon ECS. Untuk meminta penambahan kuota, lihat Meminta penambahan kuota di Panduan Pengguna Service Quotas.

Anda dapat meminta peningkatan kuota untuk sumber daya yang menyebabkan kesalahan. Untuk informasi selengkapnya, lihat Kuota layanan Amazon ECS. Untuk meminta penambahan kuota, lihat Meminta penambahan kuota di Panduan Pengguna Service Quotas.

AWS Fargate sedang bertransisi dari kuota berbasis hitungan tugas ke kuota berbasis VCPU.

Anda dapat meminta kenaikan kuota untuk kuota berbasis VCPU Fargate. Untuk informasi selengkapnya, lihat Kuota layanan Amazon ECS. Untuk meminta peningkatan kuota Fargate, lihat Meminta kenaikan kuota pada Panduan Pengguna Service Quotas.

Layanan ini memiliki tugas yang lebih terlindungi daripada jumlah tugas yang diinginkan. Anda dapat melakukan salah satu hal berikut:

  • Tunggu hingga perlindungan pada tugas saat ini kedaluwarsa, memungkinkan mereka untuk dihentikan.

  • Tentukan tugas mana yang dapat dihentikan dan gunakan UpdateTaskProtection API dengan protectionEnabled opsi yang disetel false ke unset protection untuk tugas-tugas ini.

  • Tingkatkan jumlah tugas yang diinginkan dari layanan menjadi lebih dari jumlah tugas yang dilindungi.

Penjadwal layanan mengirimkan pesan peristiwa ini ketika tidak dapat menemukan sumber daya yang tersedia untuk menambahkan tugas lain. Kemungkinan penyebab untuk ini adalah:

Tidak ada instans kontainer yang ditemukan di klaster Anda

Jika tidak ada instance kontainer yang terdaftar di cluster tempat Anda mencoba menjalankan tugas, Anda menerima kesalahan ini. Anda harus menambahkan instans kontainer untuk klaster Anda. Untuk informasi selengkapnya, lihat Meluncurkan instans penampung Amazon ECS Linux.

Port tidak cukup

Jika tugas Anda menggunakan pemetaan port host tetap (misalnya, tugas Anda menggunakan port 80 pada host untuk server web), Anda harus memiliki setidaknya satu instance kontainer per tugas. Hanya satu kontainer yang dapat menggunakan port host tunggal pada satu waktu. Anda harus menambahkan instans kontainer ke klaster milik Anda atau mengurangi jumlah tugas yang diinginkan.

Terlalu banyak port yang terdaftar

Instance pencocokan kontainer terdekat untuk penempatan tugas tidak dapat melebihi batas port cadangan maksimum yang diizinkan sebesar 100 port host per instance kontainer. Menggunakan pemetaan port host dinamis dapat memperbaiki masalah.

Port sudah digunakan

Definisi tugas tugas ini menggunakan port yang sama dalam pemetaan portnya sebagai tugas yang sudah berjalan pada instance kontainer yang dipilih. Pesan acara layanan akan memiliki ID instance kontainer yang dipilih sebagai bagian dari pesan di bawah ini.

The closest matching container-instance is already using a port required by your task.
Memori tidak cukup

Jika ketentuan tugas Anda menentukan memori sejumlah 1000 MiB, dan masing-masing klaster Anda pada instans kontainer memiliki memori sejumlah 1024 MiB, Anda hanya dapat menjalankan satu salinan tugas ini per instans kontainer. Anda dapat bereksperimen dengan memori yang lebih sedikit pada ketentuan tugas Anda sehingga Anda bisa meluncurkan lebih dari satu tugas per instans kontainer, atau meluncurkan lebih banyak instans kontainer menuju klaster Anda.

catatan

Jika Anda mencoba untuk memaksimalkan pemanfaatan sumber daya Anda dengan menyediakan memori pada tugas sebanyak mungkin untuk tipe instans tertentu, lihat Manajemen memori instance kontainer.

Poin lampiran ENI yang tersedia tidak cukup

Tugas yang menggunakan mode awsvpc jaringan masing-masing menerima elastic network interface (ENI) mereka sendiri, yang dilampirkan ke instance container yang menghostingnya. Instans Amazon EC2 memiliki batasan jumlah ENI yang dapat dilampirkan padanya, dan tidak ada instance kontainer di cluster yang memiliki kapasitas ENI yang tersedia.

Batas ENI untuk instans kontainer individu tergantung pada kondisi berikut:

  • Jika Anda belum menyertakan untuk Pengaturan akun awsvpcTrunking, batas ENI untuk setiap instans kontainer tergantung pada tipe instans. Untuk informasi selengkapnya, lihat Alamat IP Per Antarmuka Jaringan Per Tipe Instans dalam Panduan Pengguna Amazon EC2 untuk Instans Linux.

  • Jika Anda telah memilih untuk masuk ke setelan awsvpcTrunking akun tetapi Anda belum meluncurkan instance container baru menggunakan tipe instans yang didukung setelah memilih, batas ENI untuk setiap instance container masih pada nilai default. Untuk informasi selengkapnya, lihat Alamat IP Per Antarmuka Jaringan Per Tipe Instans dalam Panduan Pengguna Amazon EC2 untuk Instans Linux.

  • Jika Anda sudah menyertakan untuk pengaturan akun awsvpcTrunking dan Anda telah meluncurkan instans kontainer yang baru dengan menggunakan tipe instans yang didukung setelah menyertakannya, ENI tambahan akan tersedia. Untuk informasi selengkapnya, lihat Tipe instans Amazon EC2 yang didukung.

Untuk informasi lebih lanjut tentang penyertaan pada pengaturan akun awsvpcTrunking, lihat Pembuatan torso antarmuka jaringan elastis.

Anda dapat menambahkan instans kontainer untuk klaster Anda untuk menyediakan lebih banyak adapter jaringan yang tersedia.

Instans kontainer kehilangan atribut wajib

Beberapa parameter ketentuan tugas memerlukan versi API Docker jarak jauh tertentu untuk diinstal pada instans kontainer. Hal lainnya, seperti opsi pencatatan driver, mengharuskan instans kontainer untuk mendaftarkan pencatatan driver tersebut dengan variabel konfigurasi agen ECS_AVAILABLE_LOGGING_DRIVERS. Jika definisi tugas Anda berisi parameter yang memerlukan atribut instance kontainer tertentu, dan Anda tidak memiliki instance kontainer yang tersedia yang dapat memenuhi persyaratan ini, tugas tidak dapat ditempatkan.

Penyebab umum kesalahan ini adalah jika layanan Anda menggunakan tugas yang menggunakan mode awsvpc jaringan dan tipe peluncuran EC2 dan cluster yang Anda tentukan tidak memiliki instance kontainer yang terdaftar di subnet yang sama yang ditentukan pada awsvpcConfiguration saat layanan dibuat.

Untuk informasi lebih lanjut tentang atribut yang diperlukan untuk parameter ketentuan tugas tertentu dan variabel konfigurasi agen, lihat Parameter ketentuan tugas dan Konfigurasi agen kontainer Amazon ECS.

Saat ini tidak ada kapasitas yang tersedia untuk menjalankan layanan Anda.

Anda dapat melakukan salah satu hal berikut:

  • Tunggu hingga kapasitas Fargate atau instans kontainer EC2 tersedia.

  • Luncurkan kembali layanan dan tentukan subnet tambahan.

Tugas dalam layanan Anda gagal dimulai.

Untuk informasi tentang cara men-debug tugas yang dihentikan. lihat. Kode kesalahan tugas yang berhenti

Agen kontainer Amazon ECS pada instance kontainer pencocokan terdekat untuk penempatan tugas terputus. Jika Anda dapat terhubung ke instance kontainer dengan SSH, Anda dapat memeriksa log agen. Untuk informasi selengkapnya, lihat Log Agen Kontainer Amazon ECS. Anda juga harus memverifikasi bahwa agen sedang berjalan pada instans. Jika Anda menggunakan AMI Amazon ECS yang dioptimalkan, Anda dapat mencoba menghentikan dan memulai ulang agen dengan perintah berikut.

  • Untuk Amazon ECS yang dioptimalkan Amazon Linux 2 AMI

    sudo systemctl restart ecs
  • Untuk Amazon ECS yang dioptimalkan Amazon Linux AMI

    sudo stop ecs && sudo start ecs

Tugas yang ditetapkan untuk layanan ini gagal dalam pemeriksaan kesehatan karena kelompok sasaran tidak ditemukan. Anda harus menghapus dan membuat ulang layanan. Jangan menghapus grup target Elastic Load Balancing kecuali layanan Amazon ECS yang sesuai telah dihapus.

Tugas yang ditetapkan untuk layanan ini gagal dalam pemeriksaan kesehatan karena target tidak ditemukan.