Auto Scaling API 呼び出しがスロットリングされています。これを防ぐにはどうすればよいですか ?

所要時間1分
0

Amazon EC2 Auto Scaling、AWS Auto Scaling、または AWS アプリケーション Auto Scaling を呼び出すと、アプリケーションが「Rate Exceeded (レートを超過しました) 」というエラーを受け取ります。このエラーを避けるにはどうすればよいですか?

簡単な説明

すべての API 呼び出しは、アカウントごとおよびリージョンごとに許可される最大 API リクエストレートを超えることはできません。これには、AWS コマンドラインインターフェイス(AWS CLI)および AWS マネジメントコンソールからの API 呼び出しが含まれます。API リクエストが最大レートを超えると、「Rate Exceeded (レートを超過しました)」エラーが表示され、API 呼び出しがスロットリングされます。

Amazon EC2 Auto Scaling、AWS Auto Scaling、および AWS アプリケーション Auto Scaling には、それぞれ独自の API スロットルバケットがあります。つまり、すべての Amazon EC2 Auto Scaling API 呼び出しには、1 つの共有 API の制限があります。Amazon EC2 Auto Scaling API 呼び出しは、AWS アプリケーション Auto Scaling API の制限には影響しません。

「Rate Exceeded (レートを超過しました) 」エラーとスロットリングを回避するには、アプリケーションが必要な呼び出しだけを行っていることを検証します。

注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

解決方法

「Rate Exceeded (レートを超過しました) 」エラーとスロットリングを防止または解決するには、以下の解決策を試してください。

「describe」呼び出しを検証する

「describe」呼び出しが多すぎると、許可されたリクエストレートに対して測定された API リクエストの総数に影響してきます。すべての「describe」呼び出しが必要であることを、アプリケーションで確認します。可能であれば「describe」呼び出し以外の解決策を検討してください。Amazon EventBridge からのプッシュ通知の使用を検討してください。この通知は、ライフサイクルフックを開始したときなど、インスタンスの状態が変更されたときに送信されます。

サードパーティーアプリケーションからの呼び出しを確認する

サードパーティアプリケーションが AWS で Auto Scaling に対する継続的な呼び出しを行う場合があります。サードパーティアプリケーションが不必要な呼び出しを行っていないことを確認します。

エラーの再試行とエクスポネンシャルバックオフを実装する。

エラーの再試行とエクスポネンシャルバックオフを使用して、API 呼び出しのレートを制限します。各 AWS SDK は、自動再試行ロジックとエクスポネンシャルバックオフアルゴリズムを実装しています。詳細については、「AWS でのエラーの再試行とエクスポネンシャルバックオフ」を参照してください。

AWS サポートセンターでサービスクォータの引き上げをリクエストする

サービスクォータを引き上げるには、API 呼び出しレート検証し、エラーの再試行やエクスポネンシャルバックオフメソッドが実装していることを確認する必要があります。リクエストでは、スロットル問題に関連するリージョンと時間枠も指定する必要があります。

アクティビティのバーストを避ける

API 呼び出しのバーストを引き起こす状況を避けてください。たとえば、起動時に Amazon EC2 Auto Scaling グループ内のすべてのインスタンスがスケールイン保護を有効にするように設定しないでください。代わりに、グループのデフォルトでこのオプションを有効にして、すべてのインスタンスの保護がデフォルトで有効になります。


関連情報

エクスポネンシャルバックオフとジッター

AWS公式
AWS公式更新しました 3年前
コメントはありません

関連するコンテンツ