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'

この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?