Elastic Beanstalk のスケーリングトリガーに関して問題があります。トラブルシューティングの方法を教えてください。
最終更新日: 2021 年 4 月 22 日
AWS Elastic Beanstalk 環境が、想定どおりにスケールしていません。
簡単な説明
Elastic Beanstalk 環境の Auto Scaling グループは、スケーリングオペレーションをトリガーするために 2 つの Amazon CloudWatch アラームを使用します。デフォルトの Auto Scaling トリガーは、特定の条件下でスケーリングするように構成されています。トリガーは、各インスタンスからの平均アウトバウンドネットワークトラフィックが 5 分間で 6 MB を超えるか 2 MB を下回る場合にスケーリングされます。
Amazon EC2 Auto Scaling を効果的に使用するには、アプリケーション、インスタンスタイプ、サービス要件に対して適切なスケーリングトリガーを設定する必要があります。
注意: お使いの環境は、レイテンシー、ディスク I/O、CPU 使用率、リクエスト数といったいくつかの統計を基にスケールできます。高度なシナリオの場合は、メモリなどのカスタムメトリクスに基づいて .ebextensions を使用することを検討してください。
解決方法セクションのステップを開始する前に、次のことを確認します。
- Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを AWS リージョンでスケーリングするのに十分な容量があります。この容量は、環境設定で定義された Auto Scaling グループに含めることができるインスタンスの最大数に基づいています。
- 必要に応じて、アプリケーションのインストールと設定の要件に基づいてクールダウン期間を設定できる。
- デフォルトの CloudWatch メトリクスを使用した負荷テスト、または Locust を使用した負荷の生成およびテストによってトリガーされる、お使いの環境に最適なメトリクスが特定されている。
解決方法
スケーリングトリガーを設定するには、Elastic Beanstalk コンソールまたはオプション設定から次のステップを実行します。
Elastic Beanstalk コンソールでスケーリングトリガーを設定する
1. Elastic Beanstalk コンソールを開き、お使いの環境を選択します。
2. ナビゲーションペインで、[設定] を選択します。
3. [容量] のカテゴリで [変更] を選択します。
4. [スケーリングトリガー] のセクションで、ニーズに基づいてトリガーのオプションを選択し、[適用] を選択します。
注意: Elastic Beanstalk は、aws:autoscaling:trigger 名前空間で Auto Scaling 設定の設定オプションを提供しています。この名前空間の設定は、それらが適用されるリソース別にまとめられています。
オプション設定でスケーリングトリガーを設定する
オプション設定で、.ebextensions を使用してスケーリング設定を変更します。
次の例では、スケーリングトリガーを CPU 使用率に基づくように変更します。すべてのインスタンスの CPU 使用率が 3 回連続して 2 分間で 80% を上回った場合、1 つのインスタンスが Auto Scaling グループに追加されます。すべてのインスタンスの CPU 使用率が同じ期間にわたって 20% を下回った場合、1 つのインスタンスが Auto Scaling グループから削除されます。
option_settings:
aws:autoscaling:trigger:
MeasureName: CPUUtilization
Statistic: Average
Unit: Percent
Period: '2'
EvaluationPeriods: '3'
UpperThreshold: '80'
UpperBreachScaleIncrement: '1'
LowerThreshold: '20'
LowerBreachScaleIncrement: '-1'