

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

# Menangani masalah pelambatan Amazon ECS
<a name="operating-at-scale-dealing-with-throttles"></a>

Kesalahan pelambatan terbagi dalam dua kategori utama: throttling sinkron dan pelambatan asinkron.

## Pelambatan sinkron
<a name="synchronous-throttling"></a>

Saat pelambatan sinkron terjadi, Anda segera menerima respons kesalahan dari Amazon ECS. Kategori ini biasanya terjadi ketika Anda memanggil Amazon ECS APIs saat menjalankan tugas atau membuat layanan. Untuk informasi selengkapnya tentang pembatasan yang terlibat dan batas throttle yang relevan, lihat [Meminta pembatasan untuk](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/request-throttling.html) Amazon ECS API.

Saat aplikasi Anda memulai permintaan API, misalnya, dengan menggunakan AWS CLI atau AWS SDK, Anda dapat memulihkan pelambatan API. Anda dapat melakukan ini dengan merancang aplikasi Anda untuk menangani kesalahan atau dengan menerapkan strategi backoff dan jitter eksponensial dengan logika coba lagi untuk panggilan API. Untuk informasi selengkapnya, lihat [Timeout, percobaan ulang, dan backoff](https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/) dengan jitter.

Jika Anda menggunakan AWS SDK, logika coba ulang otomatis sudah terpasang dan dapat dikonfigurasi.

## Pelambatan asinkron
<a name="asynchronous-throttling"></a>

Pelambatan asinkron terjadi karena alur kerja asinkron di mana Amazon ECS atau CloudFormation mungkin memanggil atas nama Anda untuk menyediakan sumber daya. APIs Penting untuk mengetahui mana AWS APIs yang dipanggil Amazon ECS atas nama Anda. Misalnya, `CreateNetworkInterface` API dipanggil untuk tugas yang menggunakan mode `awsvpc` jaringan, dan `DescribeTargetHealth` API dipanggil saat melakukan pemeriksaan kesehatan untuk tugas yang terdaftar ke penyeimbang beban.

Ketika beban kerja Anda mencapai skala yang cukup besar, operasi API ini mungkin akan dibatasi. Artinya, mereka mungkin cukup dibatasi untuk melanggar batas yang diberlakukan oleh Amazon ECS atau Layanan AWS yang sedang disebut. Misalnya, jika Anda menerapkan ratusan layanan, masing-masing memiliki ratusan tugas secara bersamaan yang menggunakan mode `awsvpc` jaringan, Amazon ECS akan memanggil operasi Amazon EC2 API seperti dan operasi API Elastic `CreateNetworkInterface` Load Balancing seperti atau untuk `RegisterTarget` mendaftarkan `DescribeTargetHealth` interface network elastis dan penyeimbang beban, masing-masing. Panggilan API ini dapat melebihi batas API, yang mengakibatkan kesalahan pelambatan. Berikut ini adalah contoh kesalahan pelambatan Elastic Load Balancing yang disertakan dalam pesan acara layanan.

```
{
   "userIdentity":{
      "arn":"arn:aws:sts::111122223333:assumed-role/AWSServiceRoleForECS/ecs-service-scheduler",
      "eventTime":"2022-03-21T08:11:24Z",
      "eventSource":"elasticloadbalancing.amazonaws.com",
      "eventName":" DescribeTargetHealth ",
      "awsRegion":"us-east-1",
      "sourceIPAddress":"ecs.amazonaws.com",
      "userAgent":"ecs.amazonaws.com",
      "errorCode":"ThrottlingException",
      "errorMessage":"Rate exceeded",
      "eventID":"0aeb38fc-229b-4912-8b0d-2e8315193e9c"
   }
}
```

Ketika panggilan API ini berbagi batas dengan lalu lintas API lain di akun Anda, mereka mungkin sulit dipantau meskipun dipancarkan sebagai peristiwa layanan.

## Pantau pelambatan
<a name="monitoring-throttling"></a>

Penting untuk mengidentifikasi permintaan API mana yang dibatasi dan siapa yang mengeluarkan permintaan ini. Anda dapat menggunakan monitor AWS CloudTrail mana yang membatasi, dan terintegrasi dengan, Amazon CloudWatch Athena, dan Amazon. EventBridge Anda dapat mengonfigurasi CloudTrail untuk mengirim peristiwa tertentu ke CloudWatch Log. CloudWatch Wawasan log log mengurai dan menganalisis peristiwa. Ini mengidentifikasi detail dalam peristiwa pelambatan seperti peran pengguna atau IAM yang melakukan panggilan dan jumlah panggilan API yang dilakukan. Untuk informasi selengkapnya, lihat [Memantau file CloudTrail CloudWatch log dengan Log](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/monitor-cloudtrail-log-files-with-cloudwatch-logs.html).

Untuk informasi selengkapnya tentang wawasan dan petunjuk CloudWatch Log tentang cara menanyakan file log, lihat [Menganalisis data CloudWatch log dengan Wawasan](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) Log.

Dengan Amazon Athena, Anda dapat membuat kueri dan menganalisis data menggunakan SQL standar. Misalnya, Anda dapat membuat tabel Athena untuk mengurai CloudTrail acara. Untuk informasi selengkapnya, lihat [Menggunakan CloudTrail konsol untuk membuat tabel Athena untuk CloudTrail log](https://docs.aws.amazon.com/athena/latest/ug/cloudtrail-logs.html#create-cloudtrail-table-ct).

Setelah membuat tabel Athena, Anda dapat menggunakan kueri SQL seperti yang berikut untuk menyelidiki kesalahan. `ThrottlingException`

Ganti *user-input* dengan nilai-nilai Anda.

```
select eventname, errorcode,eventsource,awsregion, useragent,COUNT(*) count
FROM cloudtrail_table-name
where errorcode = 'ThrottlingException'
AND eventtime between '2024-09-24T00:00:08Z' and '2024-09-23T23:15:08Z'
group by errorcode, awsregion, eventsource, useragent, eventname
order by count desc;
```

Amazon ECS juga memancarkan pemberitahuan acara ke Amazon. EventBridge Ada peristiwa perubahan status sumber daya dan peristiwa tindakan layanan. Mereka termasuk peristiwa pelambatan API seperti `ECS_OPERATION_THROTTLED` dan. `SERVICE_DISCOVERY_OPERATION_THROTTLED` Untuk informasi selengkapnya, lihat [Acara tindakan layanan Amazon ECS](ecs_service_events.md).

Peristiwa ini dapat dikonsumsi oleh layanan seperti AWS Lambda untuk melakukan tindakan sebagai tanggapan. Untuk informasi selengkapnya, lihat [Menangani acara Amazon ECS](ecs_cwet_handling.md). 

Jika Anda menjalankan tugas mandiri, beberapa operasi API seperti `RunTask` asinkron, dan operasi coba lagi tidak dilakukan secara otomatis. Dalam kasus seperti itu, Anda dapat menggunakan layanan seperti AWS Step Functions EventBridge integrasi untuk mencoba kembali operasi yang dibatasi atau gagal. Untuk informasi selengkapnya, lihat [Mengelola tugas penampung (Amazon ECS, Amazon SNS](https://docs.aws.amazon.com/step-functions/latest/dg/sample-project-container-task-notification.html)).

## Gunakan CloudWatch untuk memonitor throttling
<a name="monitoring-throttling-cw"></a>

CloudWatch menawarkan pemantauan penggunaan API pada `Usage` namespace di bawah **By AWS ** Resource. Metrik ini dicatat dengan **API** tipe dan nama **CallCount**metrik. Anda dapat membuat alarm untuk memulai setiap kali metrik ini mencapai ambang batas tertentu. Untuk informasi selengkapnya, lihat [Memvisualisasikan kuota layanan Anda dan menyetel alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Quotas-Visualize-Alarms.html).

CloudWatch juga menawarkan deteksi anomali. Fitur ini menggunakan pembelajaran mesin untuk menganalisis dan menetapkan garis dasar berdasarkan perilaku tertentu dari metrik yang Anda aktifkan. Jika ada aktivitas API yang tidak biasa, Anda dapat menggunakan fitur ini bersama dengan CloudWatch alarm. Untuk informasi lebih lanjut, lihat [Menggunakan CloudWatch deteksi anomali](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html).

Dengan secara proaktif memantau kesalahan pelambatan, Anda dapat menghubungi Dukungan untuk meningkatkan batas pelambatan yang relevan dan juga menerima panduan untuk kebutuhan aplikasi unik Anda.