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 でキャパシティー管理を容易にする
タスク
チュートリアルの概要
このチュートリアルでは、次の作業を行います。
-
EC2 インスタンスを定義する設定テンプレートを作成します。必要に応じて、起動テンプレートまたは起動設定手順のいずれかを選択できます。起動設定を使用できますが、Amazon EC2 および Amazon EC2 Auto Scaling の最新機能を使用できるようにするため、起動テンプレートを使用することをお勧めします。
-
1 つのインスタンスを使用して Auto Scaling グループを作成します。
-
インスタンスを終了し、インスタンスがサービスから削除され、置き換えられたことを確認します。一定数のインスタンスを維持するために、Amazon EC2 Auto Scaling は Amazon EC2 のヘルスチェックと到達可能性チェックを自動的に検出して応答します。
このチュートリアルは無料利用枠内のインスタンスタイプを選択できるようにしてあるため、AWS アカウントを作成してから 12 か月が経過しておらず、Amazon EC2 の無料利用枠terminated
に変わるまで、標準の Amazon EC2 使用料が発生します。
チュートリアルのための準備
このチュートリアルは、EC2 インスタンスの起動について知識があり、キーペアとセキュリティグループを既に作成していることを前提としています。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon EC2 での設定」を参照してください。
Amazon EC2 Auto Scaling を初めて使用していて、サービスの使用を開始したい場合は、AWS アカウントのデフォルト VPC を使用できます。デフォルト VPC には、各アベイラビリティーゾーンのデフォルトのパブリックサブネットと、VPC にアタッチされたインターネットゲートウェイが含まれます。Amazon Virtual Private Cloud (Amazon VPC) コンソールの VPC のページ
ステップ 1: 起動テンプレートを作成する
このステップでは、AWS アカウントの認証情報で Amazon EC2 コンソールにサインインし、Amazon EC2 Auto Scaling が作成する EC2 インスタンスのタイプを指定する起動テンプレートを作成します。使用する Amazon Machine Image (AMI) の ID、インスタンスタイプ、キーペア、セキュリティグループなどの情報を含めます。
注記
代わりに起動設定を使用するには、「Create a launch configuration」を参照してください。
起動テンプレートを作成するには
-
Amazon EC2 コンソールの起動テンプレートページ
を開きます。 -
上部のナビゲーションバーで、[AWS リージョン] を選択します。作成する起動テンプレートと Auto Scaling グループは、指定するリージョンに関連付けられます。
-
[起動テンプレートの作成] を選択します。
-
[起動テンプレート名] を使用する場合、
my-template-for-auto-scaling
を入力します。 -
[Auto Scaling ガイダンス] で、チェックボックスを選択します。
-
[Application and OS Images (Amazon Machine Image)] (アプリケーションおよび OS イメージ (Amazon マシンイメージ)) で、[Quick Start] (クイックスタート) リストから Amazon Linux 2 (HVM) のバージョンを選択します。AMI はインスタンスの基本設定テンプレートとして機能します。
-
[インスタンスタイプ] で、指定した AMI と互換性のあるハードウェア設定を選択します。
注記
アカウントを作成してから 12 か月未満の場合は、特定の使用制限内で
t2.micro
インスタンスを使用できます。詳細については、「AWS無料利用枠」を参照してください。 -
(オプション) [Key pair (login)] (キーペア (ログイン)) で、既存のキーペアを選択します。キーペアは Amazon EC2 インスタンスを SSH に接続するときに使用します。インスタンスへの接続は、このチュートリアルには含まれていません。このため、SSH を使用してインスタンスに接続する予定の場合を除き、キーペアを指定する必要はありません。
-
[Network settings] (ネットワーク設定) の [Security groups] (セキュリティグループ) で、Auto Scaling グループの VPC として使用する予定のものと同じ VPC 内のセキュリティグループを選択します。セキュリティグループを指定しないと、インスタンスは VPC のデフォルトのセキュリティグループに自動的に関連付けられます。
-
[Advanced network configuration] (高度なネットワーク設定) は空のままにしておくことができます。この設定を空のままにしておくと、ネットワークインターフェイスが確立されるサブネットに基づいてインスタンス用に選択する IP アドレスでプライマリネットワークインターフェイスが作成されます。その代わりにネットワークインターフェイスを設定することを選択する場合は、セキュリティグループをその一部にする必要があります。
-
[起動テンプレートの作成] を選択します。
-
確認ページで、[Auto Scaling グループの作成] を選択します。
現在起動テンプレートを使用しておらず、ここで作成しない場合は、代わりに起動設定を作成できます。
起動設定は、Amazon EC2 Auto Scaling によって作成される EC2 インスタンスのタイプを指定する点で、起動テンプレートと似ています。起動設定は使用する Amazon マシンイメージ (AMI) の ID、インスタンスタイプ、キーペア、セキュリティグループといった情報を定義して作成します。
起動設定を作成するには
-
Amazon EC2 コンソールの [起動設定ページ
] を開きます。確認を求めるプロンプトが表示されたら、[起動設定を表示] を選択して、[起動設定] ページを表示することを確認します。 -
上部のナビゲーションバーで、[AWS リージョン] を選択します。作成する起動設定と Auto Scaling グループは、指定するリージョンに関連付けられます。
-
[起動設定の作成] を選択して[名前]フィールドに
my-first-launch-configuration
と入力します。 -
Amazon マシンイメージ (AMI) の [AMI] を選択します。特定の AMI を検索するには、[find a suitable AMI (適切な AMI を見つける)] をクリックし、その ID を書き留め、検索基準として ID を入力します。
Amazon Linux 2 AMI の ID を取得するには:
-
Amazon EC2 コンソール
を開きます。 -
左側のナビゲーションペインの [インスタンス] で、[インスタンス] を選択し、[インスタンスを起動] を選択します。
-
[Choose an Amazon Machine Image (Amazon マシンイメージの選択)] ページの [クイックスタート] タブで、[Amazon Linux2 AMI (HVM)] の横にある AMI の ID をメモします。この AMI が「Free tier eligible」(無料利用枠対象) としてマークされていることに注意してください。
-
-
[インスタンスタイプ] では、インスタンスのハードウェア設定を選択します。
注記
アカウントを作成してから 12 か月未満の場合は、特定の使用制限内で
t2.micro
インスタンスを使用できます。詳細については、「AWS無料利用枠」を参照してください。 -
[追加設定] で、Advanced details のためにIP アドレスタイプを選択します。VPC のインスタンスにインターネット接続を提供するには、パブリック IP アドレスを割り当てるオプションを選択します。インスタンスがデフォルトの VPC で起動された場合、デフォルトではパブリック IP アドレスが割り当てられます。インスタンスにインターネット接続をする必要があるときに、デフォルト VPC があるかどうかがわからない場合は、[Assign a public IP address to every instance (すべてのインスタンスにパブリック IP アドレスを割り当てる)] を選択します。
-
セキュリティグループで、既存のセキュリティグループを選択します。Create a new security group (新しいセキュリティグループの作成)オプションを選択すると、Linux を実行する Amazon EC2 インスタンスに対してデフォルトの SSH ルールが設定されます。デフォルトの RDP ロールは、Windows を実行する Amazon EC2 インスタンスに対して設定されます。
-
[キーペア (ログイン)] で、指示に従ってキーペアオプションの下にオプションを選択します。インスタンスへの接続は、このチュートリアルには含まれていません。このため、SSH を使用してインスタンスに接続する予定の場合を除き、[Proceed without a key pair] (キーペアなしで続行) を選択できます。
-
[Create launch configuration] を選択します。
-
新しい起動設定の名前の横にあるチェックボックスを選択し、アクション,Auto Scaling グループの作成を選択してください。
ステップ 2: 単一インスタンスの Auto Scaling グループを作成する
Amazon EC2 Auto Scaling を使用して Auto Scaling グループを作成し、起動テンプレートまたは起動設定をグループに追加します。インスタンスの VPC サブネットなどの情報も含めます。
起動テンプレートまたは起動設定を作成したら、以下の手順に従って中断していた作業を続行します。
Auto Scaling グループを作成する
-
[Choose launch template or configuration (起動テンプレートまたは設定の選択)] ページで、Auto Scaling グループの名前を
my-first-asg
に入力します。 -
[Next] (次へ) をクリックします。
[Choose instance launch options] (インスタンス起動オプションの選択) ページが表示されます。このページでは、Auto Scaling グループで使用する VPC ネットワーク設定を選択し、オンデマンドインスタンスとスポットインスタンスを起動するためのオプションを選択できます (起動テンプレートを選択した場合)。
-
[Network] (ネットワーク) セクションの [VPC] には、選択した AWS リージョンリージョンのデフォルト設定を維持するか、独自の VPC を選択します。デフォルトの VPC は、インスタンスへのインターネット接続を提供するように自動的に設定されます。この VPC には、リージョンの各アベイラビリティーゾーンのパブリックサブネットが含まれます。
-
[Availability Zones and subnets] (アベイラビリティゾーンとサブネット) で、含める各アベイラビリティーゾーンからサブネットを選択します。複数のアベイラビリティーゾーンのサブネットを使用することで、高可用性を得られます。詳細については、「VPC サブネットを選択する場合の考慮事項」を参照してください。
-
[起動テンプレートのみ] [Instance type requirements] (インスタンスタイプの要件) セクションで、デフォルト設定を使用して、この手順を簡略化します。(起動テンプレートを上書きしないでください。) このチュートリアルでは、起動テンプレートで指定されたインスタンスタイプを使用して、オンデマンドインスタンスを 1 つだけ起動します。
-
このチュートリアルの残りの部分はデフォルトのままにして、[Skip to review (スキップして確認)] を選択します。
注記
グループの初期サイズは、希望するキャパシティーによって決まります。デフォルト値は
1
インスタンスです。 -
[Review (確認)] ページでグループの情報を確認し、[Auto Scaling グループの作成] を選択します。
ステップ 3: Auto Scaling グループを検証する
Auto Scaling グループを作成し、グループによって EC2 インスタンスが起動されたことを確認する準備が整いました。
ヒント
以下の手順では、Auto Scaling グループについて [Activity history] (アクティビティ履歴) と [Instances] (インスタンス) の各セクションを調べます。どちらのセクションにも、名前付きの列がすでに表示されているはずです。非表示の列を表示する、または表示される行の数を変更するには、各セクションの右上隅にある歯車アイコンを選択して設定モーダルを開き、必要に応じて設定を更新してから、[Confirm] (確認) を選択します。
Auto Scaling グループが EC2 インスタンスを起動したことを確認するには
-
Amazon EC2 コンソールで Auto Scaling グループのページ
を開きます。 -
作成した Auto Scaling グループの横にあるチェックボックスを選択します。
[Auto Scaling groups] (Auto Scaling グループ) ページの下部にスプリットペインが開きます。使用可能な最初のタブは [詳細] タブで、Auto Scaling グループに関する情報が表示されます。
-
2 番目のタブ [アクティビティ] を選択します。[アクティビティ履歴] で、Auto Scaling グループに関連付けられているアクティビティの進行状況を表示できます。[ステータス] 列には、インスタンスの現在のステータスが表示されます。インスタンスが起動している間、ステータス列には [
PreInService
] と表示されます。ステータスは、インスタンスが起動されるとSuccessful
に変わります。[Refresh] ボタンを使用して、インスタンスの現在のステータスを表示することもできます。 -
[インスタンス管理] タブの [インスタンス] で、インスタンスのステータスを表示できます。
-
インスタンスが正常に起動したことを確認します。インスタンスの起動には短時間かかります。
-
[ライフサイクル] 列には、インスタンスの状態が表示されます。最初、インスタンスの状態は
Pending
です。インスタンスがトラフィックを受信できるようになったら、そのステータスはInService
です。 -
[Health Status (ヘルスステータス)] 列には、インスタンスの EC2 インスタンスのヘルスチェックの結果が表示されます。
-
ステップ 4: Auto Scaling グループのインスタンスを終了します
これらのステップを使用して Amazon EC2 Auto Scaling の機能 (具体的には、必要に応じて新しいインスタンスを起動する方法) を詳しく確認できます。このチュートリアルで作成した Auto Scaling グループの最小サイズは、1 インスタンスです。そのため、実行中のインスタンスを終了する場合、Amazon EC2 Auto Scaling はその代わりとなる新しいインスタンスを起動する必要があります。
-
Amazon EC2 コンソールで Auto Scaling グループのページ
を開きます。 -
Auto Scaling グループの横にあるチェックボックスを選択します。
-
[インスタンス管理] タブの [インスタンス] で、インスタンスの ID を選択します。
そうすると、Amazon EC2 コンソールの [Instances] (インスタンス) ページが開きます。インスタンスはここで終了できます。
-
[Actions]、[Instance State]、[Terminate] の順に選択します。確認を求めるメッセージが表示されたら、[Yes、Terminate] (はい、終了する) を選択します。
-
ナビゲーションペインの 自動スケーリング で、[Auto Scaling Groups] (Auto Scaling グループ) を選択します。Auto Scaling グループを選択し、[アクティビティ] タブを選択します。
Auto Scaling グループのデフォルトのクールダウンは 300 秒(5 分)であるため、スケーリングアクティビティが表示されるまでに約 5 分かかります。アクティビティ履歴で、スケーリングアクティビティが開始すると、最初のインスタンスの削除のエントリおよび新しいインスタンスの起動のエントリが表示されます。
-
[インスタンス管理] タブの [インスタンス] セクションには、新しいインスタンスのみが表示されます。
-
ナビゲーションペインの [Instances] (インスタンス) で、[Instances] (インスタンス) を選択します。このページには、終了したインスタンスと実行中の新しいインスタンスの両方が表示されます。
ステップ 5: 次のステップ
作成した自動スケーリングの基本インフラストラクチャを削除する場合は、次のステップに進みます。それ以外の場合は、ベースとしてこのインフラストラクチャを使用し、次の 1 つ以上を試すことができます。
-
Session Manager または SSH を使用した Linux インスタンスへの接続。詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「Session Manager を使用した Linux インスタンスへの接続」または「SSH を使用した Linux インスタンスへの接続」を参照してください。
-
Auto Scaling グループの起動インスタンス、または終了インスタンスが変わるたびに通知するよう、Amazon SNS 通知を設定します。詳しくは、「Amazon SNS 通知を使用して監視する」を参照してください。
-
Auto Scaling グループを手動でスケールして、SNS 通知をテストします。詳しくは、「手動スケーリング」を参照してください。
また、ターゲット追跡スケーリングポリシー を読んでおくことで、Auto Scaling の概念に慣れておくこともできます。アプリケーションの負荷が変化した場合、Auto Scaling グループは、グループの希望する容量を最小容量制限と最大容量制限の間で調整することで、自動的にスケールアウト (インスタンスを追加する) およびスケールイン (インスタンスの数を減らして実行する) ことができます。これらの制限の設定に関する詳細については、「Auto Scaling グループにキャパシティーの制限を設定する」を参照してください。
ロードバランサーを Auto Scaling グループにアタッチする予定がある場合は、Amazon EC2 Auto Scaling コンソールを使用してロードバランサーをすばやく作成する方法を学ぶことができます。詳しくは、「Amazon EC2 Auto Scaling コンソールから Application Load Balancer または Network Load Balancer を設定する」を参照してください。
ステップ 6: クリーンアップする
スケーリングインフラストラクチャを削除するか、Auto Scaling グループのみを削除し、起動テンプレートまたは起動設定を維持して後で使用することができます。
AWS無料利用枠
Auto Scaling グループを削除するには
-
Amazon EC2 コンソールで Auto Scaling グループのページ
を開きます。 -
Auto Scaling グループ (
my-first-asg
) の横にあるチェックボックスを選択します。 -
[Delete] (削除) をクリックします。
-
確認を求められたら、
delete
を入力して指定された Auto Scaling グループの削除を確認し、[Delete] (削除) を選択します。[Name (名前)] 列のロードアイコンに、Auto Scaling グループが削除されたことが示されます。削除が行われると、[Desired] (必要)、[Min] (最小)、[Max] (最大) 列には、Auto Scaling グループのインスタンス数として
0
と表示されます。インスタンスを終了し、グループを削除するには数分かかります。リストを更新して、現在の状態を確認します。
起動テンプレートを維持する場合は、この手順をスキップします。
起動テンプレートを削除するには
-
Amazon EC2 コンソールの起動テンプレートページ
を開きます。 -
起動テンプレートを選択します (
my-template-for-auto-scaling
)。 -
[アクション]、[テンプレートの削除] の順に選択します。
-
確認を求められたら、
Delete
を入力して指定した起動テンプレートの削除を確認し、[Delete] (削除) を選択します。
起動設定を維持する場合は、以下の手順をスキップします。
起動設定を削除するには
-
Amazon EC2 コンソールの [起動設定ページ
] を開きます。 -
起動設定を選択します (
my-first-launch-configuration
)。 -
[Actions]、[Delete launch configuration] の順に選択します。
-
確認を求めるメッセージが表示されたら、[削除] を選択します。