Memecahkan masalah layanan Amazon ECS Express Mode - Amazon Elastic Container Service

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

Memecahkan masalah layanan Amazon ECS Express Mode

Bagian ini membantu Anda mengidentifikasi dan menyelesaikan masalah umum saat menerapkan dan mengelola layanan Mode Ekspres.

Masalah deployment

Layanan terjebak dalam status AKTIF atau DRAINING

Gejala: DescribeServiceRevisions menunjukkan sumber daya masih penyediaan atau deprovisioning. DescribeServices menunjukkan penerapan tidak stabil

Kemungkinan penyebab dan solusi:

  • Izin IAM tidak mencukupi - Verifikasi bahwa peran eksekusi tugas dan peran infrastruktur memiliki izin yang diperlukan seperti yang ditunjukkan dalam kebijakan terkelola masing-masing.

    # Check if the role has the required managed policy aws iam list-attached-role-policies --role-name ecsTaskExecutionRole
  • Kegagalan tarik gambar - Pastikan gambar kontainer ada dan dapat diakses.

    # Test image pull manually docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-app:latest
  • Masalah konektivitas jaringan - Periksa apakah subnet memiliki akses internet atau titik akhir AWS Amazon VPC untuk layanan.

  • Batas sumber daya - Verifikasi bahwa akun Anda memiliki kapasitas Fargate yang memadai dan belum mencapai kuota layanan.

Langkah-langkah diagnostik:

  1. Gunakan DescribeExpressGatewayService untuk mendapatkan Revisi Layanan Anda saat ini diikuti oleh DescribeServiceRevisions ServiceRevision untuk mendapatkan status pada penyediaan atau deprovisioning

  2. Periksa peristiwa layanan di konsol Amazon ECS untuk pesan kesalahan terperinci.

  3. Periksa port kontainer diatur dengan benar

  4. Periksa kuota AWS layanan untuk Amazon ECS dan Fargate.

Kegagalan startup tugas

Gejala: Tugas gagal dimulai atau segera berhenti setelah memulai.

Penyebab umum:

  • Kesalahan aplikasi - Aplikasi kontainer keluar karena kesalahan konfigurasi atau runtime.

  • Kegagalan pemeriksaan kesehatan - Aplikasi tidak menanggapi pemeriksaan kesehatan pada port atau jalur yang diharapkan.

  • Kendala sumber daya - Alokasi CPU atau memori yang tidak memadai untuk aplikasi.

  • Variabel atau rahasia lingkungan yang hilang - Konfigurasi yang diperlukan tidak tersedia untuk aplikasi.

Langkah-langkah resolusi:

  1. Periksa log aplikasi di CloudWatch Log, dapatkan nama grup log dari DescribeServiceRevisions:

    aws logs describe-log-streams --log-group-name /ecs/express-service-my-app aws logs get-log-events --log-group-name /ecs/express-service-my-app --log-stream-name stream-name
  2. Verifikasi bahwa jalur pemeriksaan kesehatan mengembalikan status HTTP 200.

  3. Uji gambar kontainer secara lokal untuk memastikannya dimulai dengan benar.

  4. Tinjau dan sesuaikan alokasi CPU dan memori jika diperlukan.

Masalah konektivitas

Aplikasi tidak terjangkau melalui penyeimbang beban

Gejala: URL aplikasi mengembalikan batas waktu atau kesalahan koneksi.

Langkah pemecahan masalah:

  1. Validasi sumber daya Anda telah selesai penyediaan

  2. Verifikasi bahwa tugas berjalan dan sehat:

    aws ecs describe-services --cluster my-cluster --services my-express-service
  3. Periksa kesehatan kelompok sasaran Application Load Balancer:

    aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:region:account:targetgroup/name/id
  4. Pastikan aplikasi mendengarkan pada port yang benar di dalam wadah.

Masalah kinerja

Waktu respons lambat

Gejala: Respons aplikasi lebih lambat dari yang diharapkan.

Pendekatan diagnostik:

  1. Memantau CPU dan pemanfaatan memori:

    # Check CloudWatch metrics for the service aws cloudwatch get-metric-statistics \ --namespace AWS/ECS \ --metric-name CPUUtilization \ --dimensions Name=ServiceName,Value=my-express-service Name=ClusterName,Value=my-cluster \ --start-time 2024-01-01T00:00:00Z \ --end-time 2024-01-01T01:00:00Z \ --period 300 \ --statistics Average
  2. Tinjau log aplikasi untuk kesalahan atau peringatan kinerja.

  3. Periksa apakah penskalaan otomatis merespons pemuatan dengan tepat.

  4. Menganalisis metrik penyeimbang beban untuk distribusi permintaan.

Strategi optimasi:

  • Tingkatkan alokasi CPU atau memori jika sumber daya dibatasi.

  • Sesuaikan ambang batas penskalaan otomatis untuk skala lebih awal.

  • Optimalkan kode aplikasi dan kueri database.

Penskalaan otomatis tidak berfungsi seperti yang diharapkan

Gejala: Layanan tidak ditingkatkan selama beban tinggi atau tidak menurunkan skala selama beban rendah.

Langkah pemecahan masalah:

  1. Periksa kebijakan penskalaan otomatis dan konfigurasinya:

    aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-express-service
  2. Tinjau CloudWatch metrik untuk memastikan pemicu penskalaan terpenuhi.

  3. Verifikasi bahwa layanan memiliki izin untuk menskalakan (periksa peran IAM).

  4. Periksa aktivitas penskalaan dan hasilnya.

Alat pemantauan dan debugging

Menggunakan CloudWatch Wawasan Kontainer

Aktifkan Wawasan Kontainer untuk pemantauan komprehensif:

aws ecs put-account-setting --name containerInsights --value enabled

Wawasan Kontainer menyediakan:

  • CPU, memori, disk, dan metrik jaringan

  • Dasbor pemantauan kinerja

  • Korelasi dan analisis log

  • Deteksi anomali