Amazon EC2 Auto Scaling とは - Amazon EC2 Auto Scaling

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling は、アプリケーションの負荷を処理するために適切な数の Amazon EC2 インスタンスを利用できるようにします。Auto Scaling グループと呼ばれる EC2 インスタンスの集合を作成します。各 Auto Scaling グループ内のインスタンスの最小数を指定することができ、Amazon EC2 Auto Scaling グループはこのサイズよりも小さくなることはありません。各 Auto Scaling グループ内のインスタンスの最大数を指定することができ、Amazon EC2 Auto Scaling グループはこのサイズよりも大きくなることはありません。グループの作成時、またはそれ以降の任意の時点で、希望するキャパシティーを指定した場合、Amazon EC2 Auto Scaling によって、グループのインスタンス数はこの数に設定されます。スケーリングポリシーを指定する場合、Amazon EC2 Auto Scaling でアプリケーションに対する需要の増減に応じて、インスタンスを起動または終了できます。

例えば、次の Auto Scaling グループの最小サイズは 4 インスタンス、希望する容量は 6 インスタンス、最大サイズは 12 インスタンスです。定義するスケーリングポリシーによって、指定した条件に基づいて、インスタンスの最小数と最大数の間でインスタンス数が調整されます。

VPC 内の Auto Scaling グループの基本的なアーキテクチャ図。

Amazon EC2 Auto Scaling の機能

Amazon EC2 Auto Scaling では、EC2 インスタンスは Auto Scaling グループに整理され、スケーリングと管理の目的で論理ユニットとして扱われます。Auto Scaling グループは、EC2 インスタンスの設定テンプレートとして起動テンプレート (または起動設定) を使用します。

Amazon EC2 Auto Scaling の主な機能は次のとおりです。

実行中のインスタンスの状態のモニタリング

Amazon EC2 Auto Scaling は、EC2 ヘルスチェックを使用してインスタンスのヘルスと可用性を自動的にモニタリングし、終了したインスタンスまたは障害が発生したインスタンスを置き換えて、希望する容量を維持します。

カスタムヘルスチェック

組み込みヘルスチェックに加えて、アプリケーションに固有のカスタムヘルスチェックを定義して、期待どおりに応答していることを確認できます。インスタンスがカスタムヘルスチェックに失敗すると、希望する容量を維持するために自動的に置き換えられます。

アベイラビリティーゾーン間での容量のバランス

Auto Scaling グループには複数のアベイラビリティーゾーンを指定できます。Amazon EC2 Auto Scaling は、グループのスケールに応じて、アベイラビリティーゾーン間でインスタンスを均等に分散します。これにより、アプリケーションを 1 か所で障害から保護することで、高可用性と耐障害性を実現できます。

複数のインスタンスタイプと購入オプション

単一の Auto Scaling グループ内では、複数のインスタンスタイプと購入オプション (スポットインスタンスとオンデマンドインスタンス) を起動できるため、スポットインスタンスの使用を通じてコストを最適化できます。グループ内のオンデマンドインスタンスと組み合わせて使用することで、リザーブドインスタンスと Savings Plan sの割引を活用することもできます。

スポットインスタンスの自動交換

グループにスポットインスタンスが含まれている場合、スポットインスタンスが中断されると、Amazon EC2 Auto Scaling は代替スポット容量を自動的にリクエストできます。キャパシティの再調整により、Amazon EC2 Auto Scaling は中断のリスクが高いスポットインスタンスをモニタリングしてプロアクティブに置き換えることもできます。

負荷分散

Elastic Load Balancing の負荷分散とヘルスチェックを使用して、アプリケーショントラフィックが正常なインスタンスに均等に分散されるようにできます。インスタンスが起動または終了されるたびに、Amazon EC2 Auto Scaling はロードバランサーからインスタンスを自動的に登録および登録解除します。

スケーラビリティ

Amazon EC2 Auto Scaling では、Auto Scaling グループをスケーリングする方法もいくつか用意されています。自動スケーリングを使用すると、ピーク負荷を処理する容量を追加し、需要が低いときに容量を削除することで、アプリケーションの可用性を維持し、コストを削減できます。必要に応じて Auto Scaling グループのサイズを手動で調整することもできます。

インスタンスの更新

インスタンスの更新機能は、AMI または起動テンプレートを更新するときに、ローリング方式でインスタンスを更新するメカニズムを提供します。Canary デプロイと呼ばれる段階的なアプローチを使用して、グループ全体にロールアウトする前に、少数のインスタンスで新しい AMI または起動テンプレートをテストすることもできます。

ライフサイクルフック

ライフサイクルフックは、新しいインスタンスの起動時またはインスタンスの終了前に呼び出されるカスタムアクションを定義するのに役立ちます。この機能は、イベント駆動型アーキテクチャを構築するのに特に便利ですが、ライフサイクルを通じてインスタンスを管理するのにも役立ちます。

ステートフルワークロードのサポート

ライフサイクルフックは、シャットダウン時に状態を保持するメカニズムも提供します。ステートフルなアプリケーションの継続性を確保するために、スケールイン保護またはカスタム終了ポリシーを使用して、長時間実行されるプロセスのインスタンスが早期に終了しないようにすることもできます。

Amazon EC2 Auto Scaling のメリットの詳細については、「Amazon EC2 Auto Scaling のメリット」を参照してください。

Amazon EC2 Auto Scaling の料金

Amazon EC2 Auto Scaling には追加料金はかかりません。そのため、簡単に試して、 AWS アーキテクチャにどのような利点があるかを確認してください。料金は、使用した AWS リソース (EC2 インスタンス、EBS ボリューム、 CloudWatch アラームなど) に対してのみ発生します。

使用を開始する

まず、「最初の Auto Scaling グループの作成」チュートリアルを完了して Auto Scaling グループを作成し、そのグループのインスタンスが終了したときの応答を確認します。

Auto Scaling グループの使用

Auto Scaling グループは、以下のインターフェイスのいずれかを使用して、作成、アクセス、および管理することできます。

  • AWS Management Console – Auto Scaling グループへのアクセスに使用できるウェブインターフェイスを提供します。にサインアップしている場合は AWS アカウント、ナビゲーションバーの検索ボックスを使用して Auto Scaling グループ を検索し AWS Management Console、Auto Scaling グループ を選択することで、Auto Scaling グループにアクセスできます。

  • AWS Command Line Interface (AWS CLI) – さまざまな のコマンドが用意され AWS のサービスており、Windows、macOS、Linux でサポートされています。開始するには、 AWS CLI を使用する準備 を参照してください。詳細については、AWS CLI コマンドリファレンスの「autoscaling」を参照してください。

  • AWS Tools for Windows PowerShell – PowerShell 環境でスクリプトを作成するユーザー向けに、さまざまな AWS 製品用のコマンドを提供します。使用を開始する方法については、『AWS Tools for Windows PowerShell ユーザーガイド』を参照してください。詳細については、「AWS Tools for PowerShell Cmdlet Reference」を参照してください。

  • AWS SDKs – 言語固有の API オペレーションを提供し、署名の計算、リクエストの再試行処理、エラー処理など、接続のさまざまな詳細を処理します。詳細については、AWS SDK を参照してください。

  • クエリ API – HTTPS リクエスを使用して呼び出す低レベル API アクションを提供します。クエリ API の使用は、 AWS のサービスにアクセスする最も直接的な方法です。ただし、この方法では、リクエストに署名するハッシュの生成やエラー処理など、低レベルの詳細な作業をアプリケーションで処理する必要があります。詳細については、「Amazon EC2 Auto Scaling API Reference」(Amazon EC2 Auto Scaling API リファレンス) を参照してください。

  • AWS CloudFormation – CloudFormation テンプレートを使用した Auto Scaling グループの作成をサポートします。詳細については、「AWS CloudFormationで Auto Scaling グループを作成する」を参照してください。

にプログラムで接続するには AWS のサービス、エンドポイントを使用します。Amazon EC2 Auto Scaling への呼び出しのエンドポイントについては、「 シークレットリージョンユーザーガイド」の「 トップシークレットリージョン」の「Amazon Amazon EC2 Auto Scaling エンドポイントとクォータAWS 全般のリファレンス