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 Plans の割引は、グループ内のオンデマンドインスタンスと併用することで活用できます。

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

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

負荷分散

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

スケーラビリティ

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

インスタンスの更新

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

ライフサイクルフック

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

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

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

Amazon EC2 Auto Scaling のメリットの詳細については、「アプリケーションアーキテクチャに対する 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 アカウントのサインアップが完了している場合は、AWS Management Consoleにサインインし、ナビゲーションバーの検索ボックスを使用して [Auto Scaling groups] (Auto Scaling グループ) を検索してから、[Auto Scaling groups] (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 SDK – 言語固有の 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 の呼び出し用エンドポイントについては、「AWS 全般のリファレンス」の「Amazon EC2 Auto Scaling エンドポイントとクォータを参照してください。