AWS Auto Scaling
ユーザーガイド

AWS Auto Scaling とは

AWS Auto Scaling により、アプリケーションの一部として AWS リソースの自動スケーリングを数分で設定することができます。AWS Auto Scaling コンソールは、複数の AWS のサービスの自動スケーリング機能を使用するための単一のユーザーインターフェイスを提供します。自動スケーリングは個々のリソースまたはアプリケーション全体のリソースに設定できます。

AWS Auto Scaling を使用し、スケーリングプランでリソースのスケーリングを設定および管理します。スケーリングプランは、動的スケーリングと予測スケーリングを使用して、アプリケーションのリソースを自動的にスケールします。これにより、アプリケーションの負荷を処理するために必要なコンピューティング能力を追加し、不要になったら削除できます。スケーリングプランでは、リソースの使用率を最適化する方法を定義するスケーリング戦略を選択できます。可用性優先、コスト優先、または両方のバランスを取って最適化できます。また、カスタムスケーリング戦略を作成できます。

AWS Auto Scaling は、次のような毎日または毎週トラフィックフローが変化するアプリケーションに便利です。

  • 通常の営業時間にはリソースの使用率が高く夜間はリソースの使用率が低いサイクルのトラフィック

  • バッチ処理、テスト、定期的な分析などオンとオフがあるワークロードパターン

  • マーケティングキャンペーンなど一定期間に瞬間的に成長する可変のトラフィックパターン

AWS Auto Scaling の機能

AWS Auto Scaling を使用して次のリソースを自動的にスケールします。

  • Amazon EC2 Auto Scaling グループ: Auto Scaling グループの EC2 インスタンスを起動または削除します。

  • Amazon EC2 スポットフリートリクエスト: スポットフリートリクエストからインスタンスを起動または削除します。または、料金や容量の問題で中断されたインスタンスを自動的に置き換えます。

  • Amazon ECS: 負荷の変化に応じて ECS サービスの必要数の増減を調整します。

  • Amazon DynamoDB: DynamoDB テーブルまたはグローバルセカンダリインデックスを有効にして、プロビジョニングされた読み取りおよび書き込みキャパシティを増減させ、スロットリングなしでトラフィックの増加を処理します。

  • Amazon Aurora: Aurora DB クラスターにプロビジョニングされた Aurora リードレプリカの数を動的に調整して、アクティブな接続やワークロードの変化を処理します。

現在利用できるスケーリング機能は動的スケーリングと予測スケーリングです。

動的スケーリングは、アプリケーション内のスケーラブルなリソースに対するターゲット追跡スケーリングポリシーを作成します。これにより、リソース使用率を指定されたターゲット値に維持するために、スケーリングプランが各リソースのキャパシティを増減させます。デフォルトで指定されるスケーリングメトリクスは、自動スケーリングで最も一般的に使用されるメトリクスに基づいて提供されます。

予測スケーリングの仕組み:

  • 負荷予測: AWS Auto Scaling は指定された負荷メトリクスの最大 14 日間の履歴を分析して、次の 2 日の今後の需要を予測します。このデータは 1 時間間隔で利用でき、毎日更新されます。

  • スケジュールされたスケーリングアクション: AWS Auto Scaling は、負荷予測を反映してプロアクティブにリソースキャパシティを追加および削除するスケーリングアクションをスケジュールします。スケジュールされた時刻になると、AWS Auto Scaling はリソースの最小容量を、スケジュールされたスケーリングアクションで指定された値に基づいて更新します。これは、リソースの使用率をスケーリング戦略で指定されたターゲット値に維持するためです。アプリケーションが予測よりも多くの容量を必要とする場合は、動的スケーリングを使用して追加のキャパシティを追加できます。

  • 最大キャパシティの動作: リソースごとに、最小キャパシティと最大キャパシティの制限があり、スケジュールされたスケーリングアクションによって指定される値はその範囲内が存在することが望まれます。ただし、予測キャパシティが最大キャパシティよりも大きい場合に、アプリケーションが最大キャパシティを超えてリソースを追加できるかどうかを制御できます。

現在、予測スケーリングは Amazon EC2 Auto Scaling グループでのみ使用できます。

料金表

AWS Auto Scaling 機能は、Amazon CloudWatch メトリクスとアラームによって有効にされます。この機能は、CloudWatch および使用されている他の AWS リソースのサービス料金以外の追加料金なしで提供されます。

開始方法

AWS Auto Scaling の概要については、以下をよく理解することをお勧めします。

  • AWS Auto Scaling の仕組み—スケーリング戦略、動的スケーリング、予測スケーリングを概念を紹介しています。AWS Auto Scaling の理解に役立ちます。

  • AWS Auto Scaling のよくある質問—製品ページのよくある質問は、このサービスの利点に関する情報を提供します。

  • AWS General Referenceの「AWS のリージョンとエンドポイント」 — このページには、AWS Auto Scaling およびその他の AWS のサービスのリージョン別の利用可能性が記載されています。

  • Amazon EC2 Auto Scaling ユーザーガイド—このガイドでは、Amazon EC2 インスタンスのフリートをスケールする際に使用する Auto Scaling グループの作成方法および管理方法を説明しています。

  • Application Auto Scaling ユーザーガイド—このガイドでは、Amazon EC2 以外のリソースの自動スケーリングに関連するトピックとリソースを提供します。個々のスケーラブルなリソースや Amazon EC2 以外のサービスのスケーリングに固有の詳細な情報が必要な場合は、このガイドから技術ドキュメントにアクセスできます。

開始するには、「AWS Auto Scaling の開始方法」の AWS Auto Scaling の入門チュートリアルを完了します。

AWS CloudFormation では、JSON または YAML 形式のテキストファイルであるテンプレートを使用して、一連の関連 AWS リソースをモデリングしプロビジョンできます。AWS CloudFormation のサンプルテンプレートを使用するか、独自のテンプレートを作成して、アプリケーションの実行に必要な AWS リソース、および関連する依存関係や実行時パラメータを作成できます。また、AWS CloudFormation を使用してスケーリングプランのテンプレートを作成することもできます。

Amazon CloudWatch は、AWS クラウドリソースと AWS で実行されるアプリケーションのモニタリングサービスです。CloudWatch を使用すると、メトリクスの収集とトラッキング、ログファイル、およびアラームを使用したアプリケーションの変更に対する自動的な対応が可能です。AWS CLI または API を使用して、独自のメトリクスを CloudWatch にパブリッシュすることもできます。