Auto Scaling により、アプリケーションの可用性を維持できると同時に、お客様が定義する条件に応じて Amazon EC2 のキャパシティーを動的および自動的に縮小あるいは拡張できます。Auto Scaling を EC2 インスタンスのフリート管理に使用することによって、フリートの状態と可用性を維持し、必要な数の Amazon EC2 インスタンスを確実に実行できます。また、Auto Scaling を EC2 インスタンスの動的スケーリングに使用することによって、需要が急激に上昇したときには Amazon EC2 インスタンスの数を自動的に増やしてパフォーマンスを維持し、需要が落ち着いた状態にあるときには能力を縮小してコストを削減できます。Auto Scaling は需要のパターンが一定のアプリケーションにも、使用量が時間、日、週で変動するアプリケーションにも適しています。Auto Scaling を Amazon EC2 で使用する以外に、Application Auto Scaling を使用して、Amazon ECS、Amazon EC2 スポットフリート、Amazon EMR クラスター、AppStream 2.0 フリート、Amazon DynamoDB といった AWS のその他のサービスのリソースを自動的にスケールできます。
AWS を無料でお試しください
まずは無料で始める »またはコンソールにサインイン
12 か月間の AWS 無料利用枠と、24 時間年中無休のカスタマーサービスやサポートフォーラムなどの AWS の基本的なサポート機能を利用できます。
Amazon EC2 インスタンスを 1 つ実行する場合でも何千と実行する場合であっても、Auto Scaling を使用すると、障害の生じた Amazon EC2 インスタンスや異常なアプリケーションを検出し、操作しなくてもそのようなインスタンスを置き換えることができます。これによって、アプリケーションでお客様が期待するコンピューティング性能を確保できます。次に説明されているように、EC2 インスタンスのフリート管理を自動化するために、Auto Scaling では 3 つの主な機能を実行します。これは、AWS のブログ Fleet Management Made Easy with Auto Scaling でも説明されています。
- 実行中のインスタンスの状態をモニタリングする
Auto Scaling では、アプリケーションがトラフィックを受信して、インスタンスそのものが正常に実行できるようにします。Auto Scaling でヘルスチェックの失敗が検出されると、自動的にインスタンスを置き換えます。 - 自動的に問題のあるインスタンスを置き換える
問題のあるインスタンスがヘルスチェックに失敗した場合、Auto Scaling ではそのインスタンスが自動的に削除され、新しいインスタンスに置き換えられます。これは、インスタンスを置き換える際、手動で対応する必要がないということを意味します。 - アベイラビリティーゾーン間での分散能力
Auto Scaling では、複数のゾーンが設定されている場合、自動的にゾーン全体に EC2 インスタンスが分散され、常に新しいインスタンスが作成されるため、フリート全体のゾーン間でできる限り均等に分散されます。
Auto Scaling では、お客様のアプリケーションの需要曲線に忠実に従い、事前に Amazon EC2 キャパシティーを手動でプロビジョニングする必要性が軽減されます。例えば、ターゲットの追跡スケーリングポリシーを使用して、CPU 使用率などのアプリケーションの負荷メトリクスを選択できます。または、Application Load Balancer で新しい "ターゲットあたりのリクエスト数" メトリクスを使用してターゲットの値を設定することもできます。これは、Elastic Load Balancing サービスの負荷分散オプションです。Auto Scaling では、目標を維持するのに必要な EC2 インスタンス数が自動的に調整されます。また、Amazon EC2 群の平均使用量が高いときに、簡易スケーリングポリシーを使用して、新たな Amazon EC2 インスタンスを追加するための条件を設定できます。同様に、CPU の利用率が低いときに同じ数のインスタンスを少なくする条件を設定できます。負荷の変化を予測できる場合には、Auto Scaling でスケジュールを設定し、スケーリングアクティビティを計画できます。Auto Scaling は、Amazon CloudWatch と併用できます。これにより、アラームを送信してスケーリングアクティビティをトリガーし、Elastic Load Balancing により Auto Scaling グループ内のインスタンスにトラフィックを分散できます。
Application Auto Scaling により、Amazon EC2 の範囲を超えて AWS のその他のサービスのリソースを自動的にスケールします。Auto Scaling と同じような方法です。Application Auto Scaling を使用すれば、スケーリングポリシーを定義して、AWS リソースの自動的なスケール、CloudWatch アラームに応じたリソースのスケール、お客様のスケーリングイベントの履歴の確認を行えます。
Application Auto Scaling は、以下の AWS リソースのスケーリングを実行できます。
- Amazon ECS サービス: Amazon ECS サービスは、オプションで Auto Scaling サービスを使用して、CloudWatch アラームに応じて必要数を調整するように設定できます。詳細については、ドキュメントをご覧ください。
- Amazon EC2 スポットフリート: スポットフリートは、1 つ以上のスケーリングポリシーに応答して、選択する範囲内でインスタンスを作成 (スケールアウト) するか、インスタンスを削除 (スケールイン) できます。詳細については、ドキュメントを参照してください。
- Amazon EMR クラスター: Amazon EMR 内の Auto Scaling を使用すると、スケーリングポリシーで指定したルールに基づき、クラスター内のコアノードとタスクノードをプログラムでスケールアウトおよびスケールインできます。詳細については、ドキュメントをご覧ください。
- AppStream 2.0 フリート: さまざまな使用状況メトリクスに基づいてフリートのサイズを自動的に調整するようなスケーリングポリシーを定義し、実行中のインスタンスの数をユーザーの需要に合わせて最適化できます。自動スケーリングを無効にして、固定サイズでフリートを実行することもできます。詳細については、ドキュメントをご覧ください。
- Amazon DynamoDB: 実際のトラフィックパターンに応じてプロビジョンドスループット性能を動的に調整できます。これにより、テーブルまたはグローバルセカンダリインデックスで、プロビジョニングされた読み込みおよび書き込みキャパシティーが拡張され、トラフィックの急激な増加をスロットリングなしに処理できるようになります。ワークロードが減少すると、Application Auto Scaling のスループットが下がるため、未使用のプロビジョニングされた容量に料金を支払う必要はありません。詳細については、ドキュメントをご覧ください。AWS のブログ Auto Scaling Amazon DynamoDB もお読みください。

