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 アーキテクチャーをより効率的なものにすることができるようになります。

注記

紹介ビデオについては、[AWSre: Invent 2018: Amazon EC2 Auto Scaling でキャパシティー管理を容易にする] の [YouTube] をご覧ください。

チュートリアルの概要

このチュートリアルでは、次の作業を行います。

  • EC2 インスタンスを定義する設定テンプレートを作成します。必要に応じて、起動テンプレートまたは起動設定手順のいずれかを選択できます。起動設定を使用できますが、Amazon EC2 および Amazon EC2 Auto Scaling の最新機能を使用できるようにするため、起動テンプレートを使用することをお勧めします。

  • 1 つのインスタンスを使用して Auto Scaling グループを作成します。

  • インスタンスを終了し、インスタンスがサービスから削除され、置き換えられたことを確認します。一定数のインスタンスを維持するために、Amazon EC2 Auto Scaling は Amazon EC2 のヘルスチェックと到達可能性チェックを自動的に検出して応答します。

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

チュートリアルのための準備

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

Amazon EC2 Auto Scaling を初めて使用していて、サービスの使用を開始したい場合は、デフォルト VPC のAWSアカウントを使用できます。デフォルト VPC には、各アベイラビリティーゾーンのデフォルトのパブリックサブネットと、VPC にアタッチされたインターネットゲートウェイが含まれます。Amazon Virtual Private Cloud (Amazon VPC) コンソールの VPC のページで VPC を表示できます。

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

このステップでは、AWS アカウント認証情報でAmazon EC2 コンソールにサインインし、Amazon EC2 Auto Scaling が作成する EC2 インスタンスのタイプを指定する起動テンプレートを作成します。使用する Amazon Machine Image (AMI) の ID、インスタンスタイプ、キーペア、セキュリティグループなどの情報を含めます。

注記

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

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

  1. Amazon EC2 コンソールを開きます。

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

  3. 左のナビゲーションペインで、[起動テンプレート]、[起動テンプレートの作成] の順に選択します。

  4. [起動テンプレート名] を使用する場合、my-template-for-auto-scaling を入力します。

  5. [Auto Scaling ガイダンス] で、チェックボックスを選択します。

  6. [Application and OS Images (Amazon Machine Image)] (アプリケーションおよび OS イメージ (Amazon マシンイメージ)) で、[Quick Start] (クイックスタート) リストから Amazon Linux 2 (HVM) のバージョンを選択します。AMI はインスタンスの基本設定テンプレートとして機能します。

  7. [インスタンスタイプ] で、指定した AMI と互換性のあるハードウェア設定を選択します。

    注記

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

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

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

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

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

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

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

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

起動設定を作成するには

  1. Amazon EC2 コンソールの [起動設定ページ] を開きます。

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

  3. [起動設定の作成] を選択して[名前]フィールドに my-first-launch-configuration と入力します。

  4. Amazon マシンイメージ (AMI) の [AMI] を選択します。特定の AMI を検索するには、[find a suitable AMI (適切な AMI を見つける)] をクリックし、その ID を書き留め、検索基準として ID を入力します。

    Amazon Linux 2 AMI の ID を取得するには:

    1. Amazon EC2 コンソールを開きます。

    2. ナビゲーションペインで、[Instances] の下にある、[Instances] を選択して、[Launch Instance] を選択します。

    3. [Choose an Amazon Machine Image (Amazon マシンイメージの選択)] ページの [クイックスタート] タブで、[Amazon Linux2 AMI (HVM)] の横にある AMI の ID をメモします。この AMI が「Free tier eligible」(無料利用枠対象) としてマークされていることに注意してください。

  5. [インスタンスタイプ] では、インスタンスのハードウェア設定を選択します。

    注記

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

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

  7. セキュリティグループで、既存のセキュリティグループを選択します。Create a new security group (新しいセキュリティグループの作成)オプションを選択すると、Linux を実行する Amazon EC2 インスタンスに対してデフォルトの SSH ルールが設定されます。デフォルトの RDP ロールは、Windows を実行する Amazon EC2 インスタンスに対して設定されます。

  8. [キーペア (ログイン)] で、指示に従ってキーペアオプションの下にオプションを選択します。インスタンスへの接続は、このチュートリアルには含まれていません。このため、SSH を使用してインスタンスに接続する予定の場合を除き、[Proceed without a key pair] (キーペアなしで続行) を選択できます。

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

  10. 新しい起動設定の名前の横にあるチェックボックスを選択し、アクション,Auto Scaling グループの作成を選択してください。

ステップ 2: 単一インスタンスの Auto Scaling グループを作成する

Amazon EC2 Auto Scaling を使用して Auto Scaling グループを作成し、起動テンプレートまたは起動設定をグループに追加します。インスタンスの VPC サブネットなどの情報も含めます。

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

Auto Scaling グループを作成するには

  1. [Choose launch template or configuration (起動テンプレートまたは設定の選択)] ページで、Auto Scaling グループの名前my-first-asg に入力します。

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

    [Choose instance launch options] (インスタンス起動オプションの選択) ページが表示されます。このページでは、Auto Scaling グループで使用する VPC ネットワーク設定を選択し、オンデマンドインスタンスとスポットインスタンスを起動するためのオプションを選択できます (起動テンプレートを選択した場合)。

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

  4. [Availability Zones and subnets] (アベイラビリティゾーンとサブネット) で、含める各アベイラビリティーゾーンからサブネットを選択します。複数のアベイラビリティーゾーンのサブネットを使用することで、高可用性を得られます。詳細については、「VPC サブネットを選択する場合の考慮事項」を参照してください。

  5. [起動テンプレートのみ] [Instance type requirements] (インスタンスタイプの要件) セクションで、デフォルト設定を使用して、この手順を簡略化します。(起動テンプレートを上書きしないでください。) このチュートリアルでは、起動テンプレートで指定されたインスタンスタイプを使用して、オンデマンドインスタンスを 1 つだけ起動します。

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

    注記

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

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

ステップ 3: Auto Scaling グループを検証する

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

ヒント

以下の手順では、Auto Scaling グループについて [Activity history] (アクティビティ履歴) と [Instances] (インスタンス) の各セクションを調べます。どちらのセクションにも、名前付きの列がすでに表示されているはずです。非表示の列を表示する、または表示される行の数を変更するには、各セクションの右上隅にある歯車アイコンを選択して設定モーダルを開き、必要に応じて設定を更新してから、[Confirm] (確認) を選択します。

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

  1. Amazon EC2 コンソールで [Auto Scaling グループのページ] を開きます。

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

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

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

  4. [インスタンス管理] タブの [インスタンス] で、インスタンスのステータスを表示できます。

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

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

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

ステップ 4: Auto Scaling グループのインスタンスを終了します

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

  1. Amazon EC2 コンソールで [Auto Scaling グループのページ] を開きます。

  2. Auto Scaling グループの横にあるチェックボックスを選択します。

  3. [インスタンス管理] タブの [インスタンス] で、インスタンスの ID   を選択します。

    これにより、Amazon EC2 コンソールの [インスタンス] ページを開きます。ここで、インスタンスを終了できます。

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

  5. ナビゲーションペインの [Auto Scaling] (オートスケーリング) で、[Auto Scaling Groups] (Auto Scaling グループ) を選択します。Auto Scaling グループを選択し、[アクティビティ] タブを選択します。

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

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

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

ステップ 5: 次のステップ

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

ステップ 6: クリーンアップ

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

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

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

  1. Amazon EC2 コンソールで [Auto Scaling グループのページ] を開きます。

  2. Auto Scaling グループ (my-first-asg) を選択します。

  3. [削除] を選択します。確認を求めるメッセージが表示されたら、[削除] を選択します。

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

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

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

  1. Amazon EC2 コンソールを開きます。

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

  3. 起動テンプレートを選択します (my-template-for-auto-scaling)。

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

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

起動設定を削除するには

  1. Amazon EC2 コンソールの [起動設定ページ] を開きます。

  2. 起動設定を選択します (my-first-launch-configuration)。

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