Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memecahkan Masalah Instans Terkelola Amazon ECS
Gunakan prosedur berikut untuk memecahkan masalah Instans Terkelola Amazon ECS, termasuk masalah umum, teknik diagnostik, dan langkah penyelesaian.
Prasyarat
Sebelum memecahkan masalah Instans Terkelola Amazon ECS, pastikan Anda memiliki persyaratan berikut.
-
Diinstal dan dikonfigurasi dengan izin yang sesuai AWS CLI
Untuk informasi selengkapnya, lihat Menginstal atau memperbarui ke versi terbaru dari Panduan AWS Command Line Interface Pengguna. AWS Command Line Interface
Akses ke klaster dengan penyedia kapasitas Instans Terkelola Amazon ECS. Untuk informasi selengkapnya, lihat Membuat klaster untuk Instans Terkelola Amazon ECS.
Skenario pemecahan masalah umum
Melihat log agen kontainer Instans Terkelola Amazon ECS
Anda dapat melihat file log Amazon ECS ini di Instans Terkelola Amazon ECS dengan menghubungkan ke wadah istimewa yang berjalan di instans.
Langkah-langkah diagnostik
Menerapkan wadah debug dengan hak istimewa dan kemampuan Linux sebagai tugas Amazon ECS:
Mengatur variabel lingkungan berikut.
Ganti user-input dengan nilai-nilai Anda.
export ECS_CLUSTER_NAME="your-cluster-name" export AWS_REGION="your-region" export ACCOUNT_ID="your-account-id"
Buat definisi tugas menggunakan file CLI JSON yang disebut. node-debugger.json
cat << EOF > node-debugger.json { "family": "node-debugger", "taskRoleArn": "arn:aws:iam::${ACCOUNT_ID}:role/ecsTaskExecutionRole", "executionRoleArn": "arn:aws:iam::${ACCOUNT_ID}:role/ecsTaskExecutionRole", "cpu": "256", "memory": "1024", "networkMode": "host", "pidMode": "host", "requiresCompatibilities": ["MANAGED_INSTANCES", "EC2"], "containerDefinitions": [ { "name": "node-debugger", "image": "public.ecr.aws/amazonlinux/amazonlinux:2023", "essential": true, "privileged": true, "command": ["sleep", "infinity"], "healthCheck": { "command": ["CMD-SHELL", "echo debugger || exit 1"], "interval": 30, "retries": 3, "timeout": 5 }, "linuxParameters": { "initProcessEnabled": true }, "mountPoints": [ { "sourceVolume": "host-root", "containerPath": "/host", "readOnly": false } ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/aws/ecs/node-debugger", "awslogs-create-group": "true", "awslogs-region": "${AWS_REGION}", "awslogs-stream-prefix": "ecs" } } } ], "volumes": [ { "name": "host-root", "host": { "sourcePath": "/" } } ] } EOF
Daftar, lalu jalankan tugas. Jalankan perintah berikut.
aws ecs register-task-definition --cli-input-json file://node-debugger.json TASK_ARN=$(aws ecs run-task \ --cluster $ECS_CLUSTER_NAME \ --task-definition node-debugger \ --enable-execute-command \ --capacity-provider-strategy capacityProvider=managed-instances-default,weight=1 \ --query 'tasks[0].taskArn' --output text) # Wait for task to be running aws ecs wait tasks-running --cluster $ECS_CLUSTER_NAME --tasks $TASK_ARN
Connect ke wadah. Jalankan perintah berikut.
aws ecs execute-command \ --cluster $ECS_CLUSTER_NAME \ --task $TASK_ARN \ --container node-debugger \ --interactive \ --command "/bin/sh"
Periksa log agen Amazon ECS:
Dalam sesi interaktif wadah, jalankan perintah berikut:
# Install required tools yum install -y util-linux-core # View ECS agent logs nsenter -t 1 -m -p cat /var/log/ecs/ecs-agent.log | tail -50 # Check agent registration nsenter -t 1 -m -p grep "Registered container instance" /var/log/ecs/ecs-agent.log Example Output: {"level":"info","time":"2025-10-16T12:39:37.665","msg":"Registered container instance with cluster!"} # Verify capabilities nsenter -t 1 -m -p grep "Response contained expected value for attribute" /var/log/ecs/ecs-agent.log
Periksa metrik agen:
Jalankan perintah berikut untuk melihat log.
# View metrics logs nsenter -t 1 -m -p cat /var/log/ecs/metrics.log | tail -20
Masalah penempatan tugas
Berikut ini adalah gejala masalah penempatan tugas:
Tugas terjebak dalam status PENDING
Tugas gagal dimulai di Instans Terkelola Amazon ECS
Kesalahan sumber daya tidak mencukupi
Langkah-langkah diagnostik
Jalankan perintah berikut untuk mendiagnosis masalah penempatan tugas dan mengumpulkan informasi tentang kapasitas cluster, instance kontainer, dan layanan sistem:
# Check cluster capacity aws ecs describe-clusters --clusterscluster-name--include STATISTICS # Check cluster capacity providers aws ecs describe-clusters --clusterscluster-name--include STATISTICS --query 'clusters[].capacityProviders' # List container instances aws ecs list-container-instances --clustercluster-name# Check container instance details aws ecs describe-container-instances --clustercluster-name--container-instancescontainer-instance-arn# Check container instance remaining resources CPU/Mem aws ecs describe-container-instances --cluster $ECS_CLUSTER_NAME --container-instancescontainer-instance-arn--query 'containerInstances[].remainingResources' # Check container instance Security Group aws ecs describe-container-instances --cluster $ECS_CLUSTER_NAME --container-instancescontainer-instance-arn--query 'containerInstances[].ec2InstanceId' --output text aws ec2 describe-instances --instance-idsinstance-id--query 'Reservations[0].Instances[0].SecurityGroups' aws ec2 describe-security-groups --group-ids security-group-id
Pemantauan layanan sistem:
# Check Containerd status nsenter -t 1 -m -p systemctl status containerd.service # Check Amazon ECS container agent status nsenter -t 1 -m -p systemctl status ecs
Resolusi
Untuk mengatasi masalah penempatan tugas, ikuti langkah-langkah berikut untuk memastikan konfigurasi dan kapasitas yang tepat:
Verifikasi persyaratan sumber daya tugas vs kapasitas yang tersedia
Periksa kendala dan strategi penempatan
Pastikan penyedia kapasitas Instans Terkelola Amazon ECS dikonfigurasi
Pastikan grup keamanan instans tugas dan kontainer memiliki aturan keluar yang memungkinkan lalu lintas untuk titik akhir manajemen agen Amazon ECS
Masalah jaringan
Berikut ini adalah synptom masalah jaringan:
Tugas tidak dapat menjangkau layanan eksternal
Masalah resolusi DNS
Langkah-langkah diagnostik
Tes konektivitas jaringan:
Dari wadah debug, jalankan perintah berikut:
catatan
Konfirmasikan grup keamanan yang dilampirkan ke penyedia kapasitas Anda atau tugas Amazon ECS mengizinkan lalu lintas.
# Install DNS Utility yum install bind-utils -y # Test DNS resolution nslookup amazon.com # Test external connectivity curl -I https://amazon.com
Kendala sumber daya
Berikut ini adalah synptom masalah jaringan:
Tugas terbunuh karena batas memori
Pelambatan CPU
Masalah ruang disk
Langkah-langkah diagnostik
Jalankan perintah untuk memantau sumber daya dan batas kontainer.
Pemantauan sumber daya:
# Check memory usage nsenter -t 1 -m -p free -h # Check disk usage nsenter -t 1 -m -p lsblk # Check disk usage nsenter -t 1 -m -p df -h
Batas Kontainer:
# Check OOM kills nsenter -t 1 -m -p dmesg | grep -i "killed process"
Masalah pemutusan agen instans kontainer
Berikut ini adalah gejala masalah pemutusan agen instance container:
Instans kontainer ditampilkan sebagai terputus di konsol Amazon ECS
Tugas gagal ditempatkan pada instance tertentu
Kegagalan pendaftaran agen di log
Langkah-langkah diagnostik
Jika ada tugas hak istimewa yang berjalan di host yang dapat diakses ECS Exec, jalankan perintah berikut untuk mendiagnosis masalah konektivitas agen:
# check service status nsenter -t 1 -m -p systemctl restart ecs nsenter -t 1 -m -p systemctl restart containerd # restart stopped services nsenter -t 1 -m -p systemctl restart ecs nsenter -t 1 -m -p systemctl restart containerd
Jika tidak, paksa deregister Instans Terkelola Amazon ECS. Jalankan perintah berikut:
# list ECS Managed Instance container aws ecs list-container-instances --cluster managed-instances-cluster --query 'containerInstanceArns' --output text # deregister the specific container instance aws ecs deregister-container-instance \ --cluster $ECS_CLUSTER_NAME \ --container-instance container-instance-arn \ --force
Resolusi
Untuk mengatasi masalah pemutusan agen, ikuti langkah-langkah berikut:
Verifikasi izin peran IAM untuk instance kontainer
Periksa aturan grup keamanan mengizinkan lalu lintas HTTPS keluar ke titik akhir ECS
Pastikan konektivitas jaringan ke AWS layanan
Mulai ulang layanan agen ECS jika perlu:
nsenter -t 1 -m -p systemctl restart ecsVerifikasi konfigurasi ECS_CLUSTER di/etc/ecs/ecs.config cocok dengan nama cluster Anda
Analisis Log di Instans Terkelola Amazon ECS
Log sistem
Gunakan perintah berikut untuk memeriksa log sistem dan mengidentifikasi potensi masalah dengan instance terkelola:
# Check system messages nsenter -t 1 -m -p journalctl --no-pager -n 50 # Check kernel logs nsenter -t 1 -m -p dmesg | tail -20 # Check for disk space errors nsenter -t 1 -m -p journalctl --no-pager | grep -i "no space\|disk full\|enospc"
Gunakan EC2 AWS CLI untuk mendapatkan output konsol dari Instans Terkelola Amazon ECS
Gunakan ID EC2 instans Amazon untuk mengambil output konsol.
Ganti user-input dengan nilai-nilai Anda.
aws ec2 get-console-output --instance-idinstance-id--latest --output text
Pembersihan
Jalankan yang berikut ini untuk menghentikan tugas deug dan membatalkan pendaftaran definisi tugas.
# Stop debug task aws ecs stop-task --cluster $ECS_CLUSTER_NAME --task $TASK_ARN # Deregister task definition (optional) aws ecs deregister-task-definition --task-definition node-debugger
Sumber daya tambahan
Untuk informasi selengkapnya tentang pemecahan masalah Instans Terkelola Amazon ECS, lihat sumber daya berikut: