Amazon EC2 Auto Scaling の開始方法 - Amazon EC2 Auto Scaling (日本語)

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

Amazon EC2 Auto Scaling の開始方法

Amazon EC2 Auto Scaling を使用する場合、特定の構成要素を使用して開始する必要があります。このチュートリアルでは、Amazon EC2 Auto Scaling の基本インフラストラクチャを作成するための構成要素を設定する手順について説明します。

アプリケーションで使用する Auto Scaling グループを作成するには、AWS クラウドでの実行を想定してアプリケーションを徹底的に確認します。以下の点に考慮してください。

  • Auto Scaling グループに含めるアベイラビリティーゾーンの数。

  • 使用できる既存リソース (セキュリティグループ、Amazon マシンイメージ (AMI) など)。

  • 容量をスケーリングするか、または、常時実行中のサーバーを一定数確保します。Amazon EC2 Auto Scaling は両方を同時に実行できます。

  • アプリケーションのパフォーマンスと最も関連性が高いメトリクス。

  • サーバーの起動と設定に要する時間。

アプリケーションの理解度が上がるほど、Auto Scaling アーキテクチャの効率化を進めることができます。

次の手順:

  • EC2 インスタンスを定義する設定テンプレートを作成します。必要に応じて、起動テンプレートまたは起動設定のいずれかの手順を選択できます。

  • インスタンスに異常が発生した場合でも、一定数のインスタンスを維持し続ける Auto Scaling グループを作成します。

  • 必要に応じて、この基本インフラストラクチャを削除します。

このチュートリアルは、EC2 インスタンスの起動について知識があり、キーペアとセキュリティグループを既に作成していることを前提としています。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon EC2 のセットアップ」を参照してください。

開始するには、1 つの無料利用枠の対象となる Linux インスタンスを起動できます。AWS アカウントを作成したのが過去 12 か月以内で、Amazon EC2 の無料利用枠を使い切っていない場合、無料利用枠内で利用できるオプションを選択することで、このチュートリアルでは一切費用がかかりません。それ以外の場合、このチュートリアルに従うと、インスタンスが起動してから Auto Scaling グループを削除するまで (このチュートリアルの最終タスク)、およびインスタンスのステータスが terminated に変わるまで、標準の Amazon EC2 使用料が発生します。

ステップ 1: 起動テンプレートを作成する

このステップでは、Amazon EC2 Auto Scaling によって作成される EC2 インスタンスのタイプを指定する起動テンプレートを作成します。使用する Amazon Machine Image (AMI) の ID、インスタンスタイプ、キーペア、セキュリティグループなどの情報を含めます。

起動テンプレートの作成手順の詳細については、「起動テンプレートの作成 Auto Scaling グループ」を参照してください。

注記

または、起動テンプレートを使用する代わりに、起動設定を使用して Auto Scaling グループを作成することもできます。起動設定手順については、「起動設定の作成」を参照してください。

起動テンプレートを作成するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. 画面上部のナビゲーションバーで、AWS リージョンを選択します。作成した Amazon EC2 Auto Scaling リソースは、指定したリージョンに紐付けられます。

  3. ナビゲーションペインで、[インスタンス] の [テンプレートの起動] を選択します。

  4. [起動テンプレートの作成] を選択します。

    
                        起動テンプレートへようこそ画面
  5. [新しいテンプレートの作成] を選択します。[Launch temprate name (起動テンプレートの名前)] に名前を入力します (my_template など)。

  6. [Template version description (テンプレートバージョンの説明)] に、起動テンプレートの説明を入力して、このテンプレートの使用目的を忘れないようにします (test launch template for an Auto Scaling group など)。

  7. [AMI ID] で、[クイックスタート] リストから Amazon Linux 2 (HVM) のバージョンを選択します。Amazon マシンイメージ (AMI) はインスタンスの基本設定テンプレートとして機能します。

  8. [インスタンスタイプ] で、指定した AMI と互換性のあるハードウェア設定を選択します。無料利用枠の Linux サーバーは t2.micro インスタンスです。

    注記

    アカウントを作成してから 12 か月未満の場合は、特定の使用制限内でt2.micro インスタンスを使用できます。詳細については、「AWS 無料利用枠」を参照してください。

  9. (オプション)[Key pair name (キーペア名)] で、既存のキーペアを選択します。キーペアは、SSH を使用して Amazon EC2 インスタンスに接続するときに使用します。インスタンスへの接続は、このチュートリアルには含まれていません。したがって、インスタンスに接続する場合を除き、キーペアを指定する必要はありません。

  10. [ネットワークタイプ] を [VPC] のままにします。

  11. [Security Groups (セキュリティグループ)] で、Auto Scaling グループの VPC として使用する予定の同じ VPC 内のセキュリティグループを指定します。セキュリティグループを指定しないと、インスタンスは VPC のデフォルトのセキュリティグループに自動的に関連付けられます。

  12. [ネットワークインターフェイス] は空のままにしておくことができます。設定を空にままにすると、インスタンス用に選択した IP アドレスを持つプライマリネットワークインターフェイスが作成されます (ネットワークインターフェイスの確立先のサブネットに基づきます)。代わりにネットワークインターフェイスを指定する場合は、セキュリティグループがその一部である必要があります。

  13. 下にスクロールして、[起動テンプレートの作成]を選択します。

  14. 確認ページで、[Auto Scaling グループの作成] を選択します。

現在起動テンプレートを使用しておらず、ここで作成しない場合は、代わりに起動設定を作成できます。

起動設定は、Amazon EC2 Auto Scaling によって作成される EC2 インスタンスのタイプを指定する点で、起動テンプレートと似ています。起動設定は使用する Amazon マシンイメージ (AMI) の ID、インスタンスタイプ、キーペア、セキュリティグループといった情報を定義して作成します。

起動設定を作成するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションバーで、AWS リージョンを選択します。作成した Auto Scaling リソースは、指定したリージョンに紐付けられます。

  3. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。

  4. [Auto Scaling にようこそ] ページで [Auto Scaling グループの作成] を選択します。

  5. [Auto Scaling グループの作成] ページで、[Launch Configuration (起動設定)] を選択後、新しい起動設定を選択して、[次のステップ] を選択します。

  6. [AMI の選択] ステップには、Amazon マシンイメージ (AMI) と呼ばれる基本設定のリストがあります。このリストは、インスタンスのテンプレートとして機能します。Amazon Linux 2 AMI に対して [選択] を選択します。

  7. [インスタンスタイプの選択] ステップで、インスタンスのハードウェア設定を選択します。デフォルトの t2.micro インスタンスを維持することをお勧めします。[Next: Configure details] を選択します。

    注記

    アカウントを作成してから 12 か月未満の場合は、特定の使用制限内でt2.micro インスタンスを使用できます。詳細については、「AWS 無料利用枠」を参照してください。

  8. [詳細の設定] ステップで、以下を実行します。

    1. [Name (名前)] に起動設定の名前を入力します(例: my-first-lc)。

    2. [Advanced Details (高度な詳細)] で、IP アドレスの種類を選択します。VPC のインスタンスにインターネット接続を提供するには、パブリック IP アドレスを割り当てるオプションを選択します。インスタンスがデフォルトの VPC で起動された場合、デフォルトではパブリック IP アドレスが割り当てられます。インスタンスにインターネット接続をする必要があるときに、デフォルト VPC があるかどうかがわからない場合は、[Assign a public IP address to every instance (すべてのインスタンスにパブリック IP アドレスを割り当てる)] を選択します。

    3. [Skip to review] を選択します。

  9. [Review (レビュー)] ステップで、[セキュリティグループの編集] を選択します。手順に従って既存のセキュリティグループを選択して、[Review] を選択します。

    注記

    セキュリティグループをまだ作成していない場合は、ウィザードにより自動的に AutoScaling-Security-Group-x セキュリティグループが定義され、インスタンスに接続できるようになります。AutoScaling-Security-Group-x セキュリティグループでは、すべての IP アドレス (0.0.0.0/0) が有効になります。また、指定した AMI に応じて、Linux インスタンスの場合はポート 22 (SSH)、Windows インスタンスの場合はポート 3389 (RDP) でインバウンドトラフィックが許可されます。

  10. [Review (レビュー)] ステップで、[起動設定の作成] を選択します。

  11. [Select an existing key pair or create a new key pair (既存のキーペアを選択するか、新しいキーペアを作成する)] ステップを、手順に従って完了します。インスタンスへの接続は、このチュートリアルには含まれていません。このために、インスタンスに接続する場合を除いて、[Proceed without a key pair] を選択できます。

  12. [Create launch configuration] を選択します。

  13. 前のセクションの続きのマネジメントコンソールで [Create an Auto Scaling group using this launch configuration (この起動設定を使用して Auto Scaling グループを作成)] を選択します。Auto Scaling グループを作成するためのウィザードが表示されます。

ステップ 2: Auto Scaling グループを作成する

Auto Scaling グループは EC2 インスタンスの集合で、Amazon EC2 Auto Scaling サービスのコアです。Auto Scaling グループを作成するときは、インスタンス用のサブネット、開始するインスタンスの最初の数などの情報を含めます。

起動テンプレートまたは起動設定を作成したら、以下の手順に従って中断していた作業を続行します。

注記

Amazon EC2 Auto Scaling が、ユーザーインターフェースを変更しました。デフォルトでは、新しいユーザーインターフェイスが表示されますが、古いインターフェイスに戻すことを選択できます。このトピックでは、両方の手順について説明します。

Auto Scaling グループを作成するには (新しいコンソール)

  1. 新しいコンソールの [Auto Scaling グループ] ページで、[Auto Scaling グループの作成] を選択します。

  2. [起動テンプレートまたは設定の選択] ページの [Auto Scaling グループ名] に、Auto Scaling グループの名前を入力します。

  3. [テンプレートの起動] で、次のいずれかのオプションを選択します。

    1. [起動テンプレートのみ] 作成した起動テンプレートを選択し、スケールアウト時に使用する起動テンプレートのデフォルトバージョンを選択します。

    2. [起動設定のみ] [Switch to launch configuration (起動設定に切換え] を選択し、作成した起動設定を選択します。

  4. [Next] を選択します。

    [Configure settings (設定の指定)] ページが表示されます。このページでは、ネットワーク設定を指定し、複数のインスタンスタイプでオンデマンドインスタンスとスポットインスタンスを起動するためのオプションを選択できます (起動テンプレートを選択した場合)。

  5. [起動テンプレートのみ] [Purchase options and instance types (購入オプションとインスタンスタイプ)] を [Adhere to the launch template (起動テンプレートに従う)] に設定しておくと、Auto Scaling グループをすばやく作成して設定できます。

  6. [ネットワーク] は、選択した AWS リージョンのデフォルトの VPC に設定したままにするか、独自の VPC を選択します。デフォルトの VPC は、インスタンスへのインターネット接続を提供するように自動的に設定されます。この VPC には、リージョンの各アベイラビリティーゾーンのパブリックサブネットが含まれます。

  7. [Subnets (サブネット)] で、追加するサブネットを各アベイラビリティーゾーンから選択します。複数のアベイラビリティーゾーンのサブネットを使用することで、高可用性を得られます。

  8. このチュートリアルの残りの部分はデフォルトのままにして、[Skip to review (スキップして確認)] を選択します。

    注記

    グループの初期サイズは、希望する容量によって決まります。デフォルト値は 1 インスタンスです。

  9. [確認] ページでグループの情報を確認し、[Auto Scaling グループの作成] を選択します。

新しいユーザーインターフェイスを使用することをお勧めしますが、古いユーザーインターフェイスを一時的に使用することはできます。

Auto Scaling グループを作成するには (旧コンソール)

  1. [Auto Scaling グループ詳細の設定] ステップで、以下を実行します。

    1. [Group name (グループ名)] に Auto Scaling グループの名前(たとえば、my-first-asg)を入力します。

      
                                Auto Scaling グループ作成画面
    2. [起動テンプレートのみ] [起動テンプレートのバージョン] で、スケールアウト時に使用する起動テンプレートのデフォルトバージョンを選択します。

    3. [起動テンプレートのみ] [フリートの構築] で、[起動テンプレートに準拠する] を選択します。

    4. [Group size] は、このチュートリアルのデフォルト値である 1 インスタンスのままにしておきます。

    5. [ネットワーク] は、選択した AWS リージョンのデフォルトの VPC に設定したままにするか、独自の VPC を選択します。デフォルトの VPC は、インスタンスへのインターネット接続を提供するように自動的に設定されます。この VPC には、リージョンの各アベイラビリティーゾーンのパブリックサブネットが含まれます。

    6. [Subnets (サブネット)] で、追加するサブネットを各アベイラビリティーゾーンから選択します。複数のアベイラビリティーゾーンのサブネットを使用することで、高可用性を得られます。

    7. [Next: Configure scaling policies] を選択します。

  2. [Configure scaling policies] ページで、[Keep this group at its initial size] を選択し、[Review] を選択します。

  3. [Review] ページで、[Auto Scaling グループの作成] を選択します。

  4. [Auto Scaling グループの作成ステータス] ページで、[Close (閉じる)] を選択します。

ステップ 3: Auto Scaling グループを確認する

Auto Scaling グループを作成し、グループによって EC2 インスタンスが起動されたことを確認する準備が整いました。

[Auto Scaling グループ] ページで、次の手順を完了します。

Auto Scaling グループによって EC2 インスタンスが起動されたことを確認するには

  1. 作成した Auto Scaling グループの横にあるチェックボックスをオンにします。

    [Auto Scaling グループ] ページの下部に分割ペインが開き、グループに関する情報が表示されます。使用可能な最初のタブは [詳細] タブで、Auto Scaling グループに関する情報が表示されます。

  2. 2 番目のタブ [アクティビティ] を選択します。[アクティビティ履歴] で、Auto Scaling グループに関連付けられているアクティビティの進行状況を表示できます。[ステータス] 列には、インスタンスの現在のステータスが表示されます。インスタンスが起動している間、ステータス列には [PreInService] と表示されます。ステータスは、インスタンスが起動されると Successful に変わります。[Refresh] ボタンを使用して、インスタンスの現在のステータスを表示することもできます。(旧コンソール: [アクティビティ履歴] タブでは、インスタンスのステータスを表示できます。インスタンスが起動している間、ステータス列には [In progress] と表示されます。)

  3. [インスタンス管理] タブの [インスタンス] で、インスタンスのステータスを表示できます。(旧コンソール: [インスタンス] タブにこれが表示されます)。

  4. インスタンスが正常に起動したことを確認します。インスタンスはすぐに起動します。

    [ライフサイクル] 列には、インスタンスの状態が表示されます。最初、インスタンスの状態は Pending です。インスタンスがトラフィックを受信できるようになったら、そのステータスは InService です。

    [Health Status (ヘルスステータス)] 列には、インスタンスの EC2 インスタンスのヘルスチェックの結果が表示されます。

(オプション) Auto Scaling グループのインスタンスを終了する

これらのステップを使用して Amazon EC2 Auto Scaling の機能 (具体的には、必要に応じて新しいインスタンスを起動する方法) を詳しく確認できます。このチュートリアルで作成した Auto Scaling グループの最小サイズは、1 インスタンスです。そのため、実行中のインスタンスを終了する場合、Amazon EC2 Auto Scaling はその代わりとなる新しいインスタンスを起動する必要があります。

  1. [インスタンス管理] タブの [インスタンス] で、インスタンスの ID を選択します (旧コンソール: [インスタンス] タブでの操作になります)。

    Amazon EC2 コンソールの [インスタンス] ページが表示され、そこでインスタンスを終了できます。

  2. [Actions]、[Instance State]、[Terminate] の順に選択します。確認を求めるメッセージが表示されたら、[Yes, Terminate] を選択します。

  3. ナビゲーションペインの [AUTO SCALING] で、[Auto Scaling グループ] を選択します。Auto Scaling グループを選択し、[アクティビティ] タブを選択します(旧コンソール: [アクティビティ履歴] タブ)。

    Auto Scaling グループのデフォルトのクールダウンは 300 秒(5 分)であるため、スケーリングアクティビティが表示されるまでに約 5 分かかります。アクティビティ履歴で、スケーリングアクティビティが開始すると、最初のインスタンスの削除のエントリおよび新しいインスタンスの起動のエントリが表示されます。

  4. [インスタンス管理] タブの [インスタンス] セクションには、新しいインスタンスのみが表示されます

  5. ナビゲーションペインで、[インスタンス] の下にある [インスタンス] を選択します。このページには、終了したインスタンスと実行中の新しいインスタンスの両方が表示されます。

ステップ 4: 次のステップ

作成した自動スケーリングの基本インフラストラクチャを削除する場合は、次のステップに進みます。それ以外の場合は、ベースとしてこのインフラストラクチャを使用し、次の 1 つ以上を試すことができます。

  • Auto Scaling グループを手動でスケールします。詳細については、「容量制限の設定」および「手動スケーリング」を参照してください。

  • リソース使用率の変化に応じて自動的にスケールする方法について説明します。負荷が増加すると、Auto Scaling グループは需要を処理するためにスケールアウト(インスタンスを追加)できます。詳細については、「ターゲット追跡スケーリングポリシー」を参照してください。

  • Auto Scaling グループのスケールが変わるたびに通知するように SNS 通知を設定します。詳細については、「によるモニタリング Amazon SNS 通知」を参照してください。

ステップ 5: (オプション) スケーリングインフラストラクチャを削除する

スケーリングインフラストラクチャを削除するか、Auto Scaling グループのみを削除し、起動テンプレートまたは起動設定を維持して後で使用することができます。

AWS 無料枠外でインスタンスを起動した場合、不要な課金を避けるためにインスタンスを終了する必要があります。インスタンスを終了すると、それに関連付けられたデータも削除されます。

Auto Scaling グループを削除するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインの [AUTO SCALING] で、[Auto Scaling グループ] を選択します。

  3. Auto Scaling グループの横にあるチェックボックスをオンにします。

  4. [削除] を選択します。(旧コンソール: [アクション]、[削除] の順に選択します。) 確認を求めるメッセージが表示されたら、[削除] を選択します。

    [Name (名前)] 列のロードアイコンに、Auto Scaling グループが削除されたことが示されます。削除が発生すると、[Desired (希望)]、[Min (最小)]、[Max (最大)] 列に、Auto Scaling グループの 0 インスタンスが表示されます。インスタンスを終了し、グループを削除するには数分かかります。リストを更新して、現在の状態を確認します。

起動テンプレートを維持する場合は、この手順をスキップします。

起動テンプレートを削除するには

  1. ナビゲーションペインで、[インスタンス] の [テンプレートの起動] を選択します。

  2. 起動テンプレートを選択します。

  3. [アクション]、[テンプレートの削除] の順に選択します。確認を求めるメッセージが表示されたら、[起動テンプレートの削除] を選択します。

起動設定を維持する場合は、以下の手順をスキップします。

起動設定を削除するには

  1. ナビゲーションペインの [AUTO SCALING] で、[起動設定] を選択します。

  2. 起動設定を選択します。

  3. [Actions]、[Delete launch configuration] の順に選択します。確認を求めるメッセージが表示されたら、[Yes, Delete] を選択します。