Elastic Beanstalk 環境インスタンスの Auto Scaling
このトピックでは、Auto Scaling 機能をカスタマイズして Elastic Beanstalk 環境のワークロードを管理する方法について説明します。Elastic Beanstalk コンソール、名前空間設定オプション、AWS CLI、または EB CLI を使用して、環境の Auto Scaling を設定できます。
負荷分散または単一インスタンス環境
AWS Elastic Beanstalk 環境には、環境内の Amazon EC2 インスタンスを管理する Auto Scaling グループが含まれています。単一インスタンス環境では、Auto Scaling グループは常に1 つのインスタンスが実行されているよう確認します。負荷分散される環境では、実行する範囲のグループを設定すると、Auto Scaling は、負荷に基づき、必要に応じてインスタンスを追加または削除します。
EC2 インスタンスの設定
また、Auto Scaling グループでは、環境のインスタンスの EC2 インスタンスをプロビジョニングして管理するための設定の選択が適用されます。EC2 設定を変更することで、インスタンスタイプ、キーペア、Amazon Elastic Block Store (Amazon EBS) ストレージ、インスタンス起動時にのみ設定できるその他の設定を変更することができます。
オンデマンドインスタンスとスポットインスタンス
オプションとして、Elastic Beanstalk は、環境にスポットインスタンスを含めて、オンデマンドインスタンスと組み合わてそれらを管理できます。スポットインスタンスの可用性に影響する変更をモニタリングし、自動的に応答するように Amazon EC2 Auto Scaling を設定するには、容量の再調整を有効にします。Auto Scaling サービスが環境へのスポットインスタンスのプロビジョニングに使用する スポット割り当て戦略 を設定することもできます。
スポットインスタンスを有効にするときに必要なアクセス許可
スポットインスタンスリクエストを有効にするには、Amazon EC2 起動テンプレートを使用する必要があります。この機能を環境の作成時や更新時に設定すると、Elastic Beanstalk は Amazon EC2 起動テンプレートを使用するように環境を設定しようとします (環境でまだ使用されていない場合)。この場合、ユーザーポリシーに必要なアクセス許可がないと、環境の作成や更新は失敗する可能性があります。したがって、管理ユーザーポリシーを使用するか、カスタムポリシーに必要なアクセス許可を追加することをお勧めします。必要なアクセス許可の詳細については、「 起動テンプレートに必要なアクセス許可」を参照してください。
Auto Scaling トリガー
Auto Scaling グループは、2 つの Amazon CloudWatch アラームを使用してスケーリングオペレーションをトリガーします。各インスタンスの 5 分間の平均アウトバウンドネットワークトラフィックが 6 MiB 以上または 2 MiB 以下の場合は、デフォルトのトリガーがスケーリングされます。Auto Scaling を効率的に使用するには、アプリケーション、インスタンスタイプ、サービス要件に合ったトリガーを設定します。レイテンシー、ディスク I/O、CPU 使用率、リクエスト数などの複数の統計に基づいて、スケールすることができます。
Auto Scaling アクションをスケジュールする
ピークトラフィックが予測される期間に、環境での Amazon EC2 インスタンスの使用を最適化する場合は、Auto Scaling グループを設定し、スケジュールに基づいてインスタンス数を変更します。毎日または週 1 回繰り返すグループの設定への変更、またはワンタイムへの変更をスケジュールして、多量のトラフィックをサイトへ誘導するマーケティングイベント用に準備することができます。
Auto Scaling ヘルスチェック
Auto Scaling は、起動した各 Amazon EC2 インスタンスの状態をモニタリングします。インスタンスが予期せずに終了した場合、Auto Scaling は終了を検出し、代わりのインスタンスを起動します。グループを設定して、ロードバランサーのヘルスチェックメカニズムを使用する方法については、「」を参照してくださいElastic Beanstalk 環境用の Auto Scaling ヘルスチェック設定