amazon ec2 auto scaling (日本語) - ユーザーガイド · amazon ec2 auto scaling (日本語)...

216
Amazon EC2 Auto Scaling (日本語) ユーザーガイド

Upload: others

Post on 14-Oct-2019

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 AutoScaling (日本語)

ユーザーガイド

Page 2: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

Amazon EC2 Auto Scaling (日本語): ユーザーガイドCopyright © 2019 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

Table of ContentsAmazon EC2 Auto Scaling とは ........................................................................................................... 1

Auto Scaling のコンポーネント ..................................................................................................... 1ご利用開始にあたって ................................................................................................................. 2Amazon EC2 Auto Scaling へのアクセス ....................................................................................... 2Amazon EC2 Auto Scaling の料金表 ............................................................................................. 3PCI DSS コンプライアンス .......................................................................................................... 3関連サービス ............................................................................................................................. 3Auto Scaling の利点 .................................................................................................................... 3

例: 変化する需要への対応 .................................................................................................... 4例: ウェブアプリアーキテクチャ ........................................................................................... 5例: 複数のアベイラビリティーゾーンへのインスタンスの分散 ................................................... 6

Auto Scaling ライフサイクル ........................................................................................................ 7スケールアウト .................................................................................................................. 8インスタンスが実行中 ......................................................................................................... 8スケールイン ..................................................................................................................... 9インスタンスのアタッチ ...................................................................................................... 9インスタンスのデタッチ ...................................................................................................... 9ライフサイクルフック ......................................................................................................... 9スタンバイを入力し終了します。 ........................................................................................ 10

Amazon EC2 Auto Scaling の制限 ............................................................................................... 10セットアップ .................................................................................................................................... 12

AWS にサインアップする .......................................................................................................... 12Amazon EC2 を使用する準備を整える ......................................................................................... 12

開始方法 .......................................................................................................................................... 13ステップ 1: 起動テンプレートを作成する ..................................................................................... 13ステップ 2: Auto Scaling グループを作成する ............................................................................... 16ステップ 3: Auto Scaling グループを確認する ............................................................................... 16

(オプション) Auto Scaling グループのインスタンスを終了する ................................................ 17ステップ 4: (オプション) スケーリングインフラストラクチャを削除する ........................................... 18

チュートリアル: スケーリングとロードバランシングを使用するアプリケーションのセットアップ ................ 20前提条件 .................................................................................................................................. 20スケーリングと負荷分散の設定 (コンソール) ................................................................................. 20

起動設定を作成または選択する ........................................................................................... 21起動テンプレートを作成または選択する ............................................................................... 22Auto Scaling グループを作成する ........................................................................................ 23(オプション) ロードバランサーが Auto Scaling グループにアタッチされていることを確認する ..... 24

スケーリングと負荷分散の設定 (AWS CLI) ................................................................................... 24起動設定の作成 ................................................................................................................. 24起動テンプレートを作成する .............................................................................................. 24ロードバランサーとともに Auto Scaling グループを作成する .................................................. 25

AWS リソースのクリーンアップ ................................................................................................. 25テンプレートの起動 .......................................................................................................................... 26

Auto Scaling グループの起動テンプレートを作成する .................................................................... 26起動テンプレートへの起動設定のコピー ....................................................................................... 32起動設定を起動テンプレートと置き換える .................................................................................... 32

起動設定 .......................................................................................................................................... 34起動設定を作成する .................................................................................................................. 34EC2 インスタンスを使用した起動設定の作成 ................................................................................ 35

EC2 インスタンスを使用した起動設定の作成 ........................................................................ 36インスタンスから起動設定を作成し、ブロックデバイスをオーバーライドする (AWS CLI) ........... 37起動設定を作成し、インスタンスタイプをオーバーライドする (AWS CLI) ................................. 38

起動設定を変更する .................................................................................................................. 39VPC でのインスタンスの起動 ..................................................................................................... 40

デフォルト VPC ............................................................................................................... 41

iii

Page 4: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

VPC での IP アドレス指定 ................................................................................................. 41インスタンスのプレイスメントテナンシー ............................................................................ 41VPC への EC2-Classic インスタンスのリンク ....................................................................... 42

Auto Scaling グループ ....................................................................................................................... 45複数のインスタンスタイプと購入オプションの使用 ........................................................................ 46

配分戦略 .......................................................................................................................... 46オンデマンドインスタンスの割合のコントロール ................................................................... 47スポットインスタンスのベストプラクティス ......................................................................... 49前提条件 .......................................................................................................................... 49複数の購入オプションを使用する Auto Scaling グループの作成 ............................................... 50

起動テンプレートを使用してグループを作成する ........................................................................... 56起動設定を使用してグループを作成する ....................................................................................... 58EC2 インスタンスを使用したグループの作成 ................................................................................ 60

EC2 インスタンスからの Auto Scaling グループの作成 (コンソール) ........................................ 60EC2 インスタンスからの Auto Scaling グループの作成 (AWS CLI) ........................................... 61

起動ウィザードを使用してグループを作成する .............................................................................. 62Auto Scaling グループとインスタンスへのタグ付け ....................................................................... 63

タグの制限 ....................................................................................................................... 63タグ付けのライフサイクル ................................................................................................. 64Auto Scaling グループのタグの追加または変更 ...................................................................... 64タグの削除 ....................................................................................................................... 66

Auto Scaling グループでロードバランサーを使用する .................................................................... 67Elastic Load Balancing タイプ ........................................................................................... 67ロードバランサーをアタッチする ........................................................................................ 68ELB ヘルスチェックの追加 ................................................................................................ 70アベイラビリティーゾーンの追加 ........................................................................................ 72

Auto Scaling グループのスポットインスタンスの起動 .................................................................... 74インスタンスの重み付けの使用 ................................................................................................... 75

ユニット時間あたりの価格 ................................................................................................. 76考慮事項 .......................................................................................................................... 77Auto Scaling グループの重みを付けるまたは変更する ............................................................ 78

インスタンスタイプの推奨事項 ................................................................................................... 81制約事項 .......................................................................................................................... 81結果 ................................................................................................................................ 81推奨事項の確認 ................................................................................................................. 82推奨事項の評価に関する考慮事項 ........................................................................................ 82

最大インスタンス有効期間に基づいたインスタンスの置き換え ........................................................ 83Auto Scaling グループのマージ ................................................................................................... 85

ゾーンをマージする (AWS CLI) .......................................................................................... 85Auto Scaling インフラストラクチャの削除 .................................................................................... 87

Auto Scaling グループの削除 .............................................................................................. 87(任意)起動設定の削除 .................................................................................................... 87(オプション) 起動テンプレートを削除する ............................................................................ 88Load Balancer を削除する(省略可能) .............................................................................. 88CloudWatch アラームの削除(省略可能) ........................................................................... 89

グループのスケーリング .................................................................................................................... 90スケーリングのオプション ......................................................................................................... 90容量制限の設定 ......................................................................................................................... 91固定数のインスタンスの維持 ...................................................................................................... 92Amazon EC2 Auto Scaling の手動スケーリング ............................................................................. 92

Auto Scaling グループのサイズの変更 (コンソール) ............................................................... 92Auto Scaling グループのサイズの変更 (AWS CLI) .................................................................. 93Auto Scaling グループへの EC2 インスタンスのアタッチ ........................................................ 94Auto Scaling グループからの EC2 インスタンスのデタッチ ..................................................... 98

スケジュールに基づくスケーリング ........................................................................................... 101考慮事項 ........................................................................................................................ 102スケジュールされたアクションを作成および管理する (コンソール) ........................................ 102

iv

Page 5: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

スケジュールされたアクションを作成および管理する (AWS CLI) ........................................... 103動的なスケーリング ................................................................................................................. 104

スケーリングポリシータイプ ............................................................................................. 105複数のスケーリングポリシー ............................................................................................. 105ターゲット追跡スケーリングポリシー ................................................................................ 106簡易スケーリングとステップスケーリングポリシー .............................................................. 110既存の Auto Scaling グループにスケーリングポリシーを追加する ........................................... 119Amazon SQS に基づくスケーリング .................................................................................. 120スケーリングポリシーの削除 ............................................................................................. 123

スケーリングクールダウン ........................................................................................................ 124例: クールダウン ............................................................................................................. 125デフォルトのクールダウン ................................................................................................ 126スケーリング固有のクールダウン ...................................................................................... 126クールダウンと複数のインスタンス ................................................................................... 127クールダウンとライフサイクルフック ................................................................................ 127

Auto Scaling インスタンスの停止 .............................................................................................. 127デフォルトの終了ポリシー ................................................................................................ 128終了ポリシーのカスタマイズ ............................................................................................. 129インスタンスのスケールイン保護 ...................................................................................... 130

ライフサイクルフック .............................................................................................................. 133ライフサイクルフックの動作 ............................................................................................. 133考慮事項 ........................................................................................................................ 134通知の準備 ..................................................................................................................... 135ライフサイクルフックの追加 ............................................................................................. 135ライフサイクルフックのカスタムアクションを完了する ........................................................ 137通知をテストする ............................................................................................................ 137ライフサイクルフックの通知の設定 ................................................................................... 138

一時的なインスタンスの削除 ..................................................................................................... 141スタンバイ状態の仕組み ................................................................................................... 141スタンバイ状態のインスタンスのヘルスステータス .............................................................. 142インスタンスを一時的に削除する (コンソール) .................................................................... 142インスタンスを一時的に削除する (AWS CLI) ...................................................................... 143

スケーリングの停止 ................................................................................................................. 145スケーリングプロセス ...................................................................................................... 146中断の選択 ..................................................................................................................... 146スケーリングプロセスを中断および再開する (コンソール) ..................................................... 148スケーリングプロセスを中断および再開する (AWS CLI) ....................................................... 149

Auto Scaling インスタンスおよびグループのモニタリング ..................................................................... 150ヘルスチェック ....................................................................................................................... 150

インスタンスのヘルスステータス ...................................................................................... 151インスタンスのヘルスの確認 ............................................................................................. 151ヘルスチェックの猶予期間 ................................................................................................ 152異常のあるインスタンスの置き換え ................................................................................... 152カスタムヘルスチェック ................................................................................................... 152

Amazon CloudWatch のメトリクス ............................................................................................ 153Auto Scaling グループメトリクス ...................................................................................... 153Auto Scaling グループメトリクスのディメンション .............................................................. 154Auto Scaling グループメトリクスを有効にする .................................................................... 154Auto Scaling インスタンスのモニタリングの設定 ................................................................. 155CloudWatch メトリクスの表示 .......................................................................................... 156Amazon CloudWatch アラームの作成 ................................................................................. 157

Amazon CloudWatch Events ..................................................................................................... 158Auto Scaling イベント ..................................................................................................... 159Lambda 関数の作成 ......................................................................................................... 162Lambda 機能にイベントをルーティングします。 ................................................................. 163

Amazon SNS 通知 .................................................................................................................. 164[SNS Notifications] .......................................................................................................... 164

v

Page 6: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

Amazon SNS の設定 ....................................................................................................... 165通知を送信するように Auto Scaling グループを設定する ....................................................... 166通知設定のテスト ............................................................................................................ 166スケーリングイベント通知の受信を確認する ....................................................................... 167通知設定の削除 ............................................................................................................... 168

AWS CloudTrail のログ記録 ...................................................................................................... 169CloudTrail 内の Amazon EC2 Auto Scaling 情報 .................................................................. 169Amazon EC2 Auto Scaling ログファイルエントリの概要 ....................................................... 170

リソースに対するアクセスのコントロール .......................................................................................... 171ポリシーでのアクションの指定 ................................................................................................. 171

追加の IAM アクセス権限 ................................................................................................. 172リソースの指定 ....................................................................................................................... 172ポリシーでの条件の指定 ........................................................................................................... 174事前定義の AWS 管理ポリシー ................................................................................................. 174お客様が管理するポリシーの例 ................................................................................................. 175

例: サービスにリンクされたどのロールを渡せるかを制限する (PassRole を使用) ...................... 175例: 起動テンプレートを要求する ....................................................................................... 176例 1: 起動設定を作成および管理する .................................................................................. 176例: Auto Scaling グループおよびスケーリングポリシーを作成して管理する .............................. 177例: タグを使用してアクセスを制御する .............................................................................. 178例: Auto Scaling グループ容量を変更する ........................................................................... 180

サービスにリンクされたロール ................................................................................................. 181概要 .............................................................................................................................. 181サービスにリンクされたロールによって付与されるアクセス許可 ........................................... 182サービスにリンクされたロールを作成する (自動) ................................................................. 182サービスにリンクされたロールを作成する (手動) ................................................................. 183サービスにリンクされたロールを編集する .......................................................................... 184サービスにリンクされたロールを削除する .......................................................................... 184Amazon EC2 Auto Scaling サービスにリンクされたロールがサポートされているリージョン ...... 184

暗号化されたボリュームで使用するのに必要な CMK キーポリシー ................................................. 184キーポリシーの設定 ......................................................................................................... 185例: CMK へのアクセスを許可する CMK のキーポリシーセクション ........................................ 186例: CMK へのクロスアカウントアクセスを許可する CMK のキーポリシーセクション ................ 186

Amazon EC2 インスタンスで実行されるアプリケーションに対する IAM ロール ............................... 188前提条件 ........................................................................................................................ 188起動設定を作成する ......................................................................................................... 189起動テンプレートを作成する ............................................................................................. 189

プライベート接続のための VPC エンドポイントの使用 ................................................................. 189インターフェイス VPC エンドポイントを作成する ............................................................... 190VPC エンドポイントポリシーを作成する ............................................................................ 190

トラブルシューティング ................................................................................................................... 191エラーメッセージの取得 ........................................................................................................... 191インスタンスの起動の失敗 ........................................................................................................ 193

セキュリティグループ <セキュリティグループ名> は存在しません。EC2 インスタンスの起動に失敗しました。 ............................................................................................................... 194キーペア <お使いの EC2 インスタンスに関連付けられているキーペア> は存在しません。EC2インスタンスの起動に失敗しました。 ................................................................................ 194リクエストされた設定は現在サポートされていません。 ........................................................ 194AutoScalingGroup <Auto Scaling グループ名> が見つかりません。 ......................................... 194リクエストされたアベイラビリティーゾーンはサポートされていません。リクエストを再実行してください。 .................................................................................................................. 195リクエストされたインスタンスタイプ (<インスタンスタイプ>) は、リクエストされたアベイラビリティーゾーン (<インスタンスのアベイラビリティーゾーン>) ではサポートされません。 ..... 195このサービスに登録されていません。https://aws.amazon.com/ を参照してください。 ............... 195デバイス名のアップロードが無効です。EC2 インスタンスの起動に失敗しました。 .................. 195パラメータ virtualName の値 (<インスタンスストレージのデバイスに関連付けられている名前>)は無効です。 .................................................................................................................. 196

vi

Page 7: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

EBS ブロックデバイスマッピングはインスタンスストア AMI ではサポートされません。 ........... 196プレイスメントグループは、タイプが 'm1.large' のインスタンスでは使用できません。EC2 インスタンスの起動に失敗しました。 ...................................................................................... 196Client.InternalError: 起動時のクライアントエラー。 .............................................................. 197

AMI に関する問題 ................................................................................................................... 198AMI ID <お使いの AMI の ID> は存在しません。EC2 インスタンスの起動に失敗しました。 ........ 198AMI <AMI ID> は保留中のため実行できません。EC2 インスタンスの起動に失敗しました。 ....... 198パラメータ virtualName の値 (<AMI ID>) は無効です。 ......................................................... 198リクエストされたインスタンスタイプのアーキテクチャ(i386)は、ami-6622f00f(x86_64)のマニフェストのアーキテクチャと一致しません。EC2 インスタンスの起動に失敗しました。 ...... 199

ロードバランサーに関する問題 ................................................................................................. 199ロードバランサー <お使いの起動環境> が見つかりません。ロードバランサーの設定の確認が失敗しました。 .................................................................................................................. 199<ロードバランサー名> という名前のアクティブなロードバランサーはありません。ロードバランサーの設定の更新が失敗しました。 ................................................................................ 200EC2 インスタンス <インスタンス ID> は VPC にありません。ロードバランサーの設定の更新が失敗しました。 ............................................................................................................... 200EC2 インスタンス <インスタンス ID> は VPC にあります。ロードバランサーの設定の更新が失敗しました。 .................................................................................................................. 200リクエストに含まれているセキュリティトークンが無効です。ロードバランサーの設定の確認が失敗しました。 ............................................................................................................... 200

容量制限 ................................................................................................................................ 201現在、リクエストされたアベイラビリティーゾーン (<リクエストされたアベイラビリティーゾーン>) に十分な <インスタンスタイプ> 容量がありません。 .............................................. 201<インスタンス数> 個のインスタンスがすでに実行中です。EC2 インスタンスの起動に失敗しました。 ........................................................................................................................... 201

リソース ........................................................................................................................................ 202ドキュメント履歴 ............................................................................................................................ 203

vii

Page 8: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling のコンポーネント

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

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

Amazon EC2 Auto Scaling のメリットの詳細については、「Auto Scaling の利点 (p. 3)」を参照してください。

Auto Scaling のコンポーネント次の表は、Amazon EC2 Auto Scaling の主要コンポーネントを示しています。

グループ

EC2 インスタンスは、スケーリングと管理の目的で論理ユニットとして処理されるように、グループとして整理されます。グループを作成する際に、EC2 インスタンスの最小数、最大数、および希望する数を指定します。詳細については、「Auto Scaling グループ (p. 45)」を参照してください。

設定テンプレート

グループでは起動テンプレートまたは起動設定が EC2 インスタンスの設定テンプレートとして使用されます。インスタンスの AMI ID、インスタンスタイプ、キーペア、セキュリティグループ、ブロックデバイスマッピングなどの情報を指定できます。詳細については、「テンプレートの起動 (p. 26)」および「起動設定 (p. 34)」を参照してください。

1

Page 9: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドご利用開始にあたって

スケーリングのオプション

Amazon EC2 Auto Scaling では、Auto Scaling グループをスケーリングする方法がいくつか用意されています。たとえば、特定の条件の発生に基いて、またはスケジュールに基いて、グループがスケールされるように設定できます。詳細については、「スケーリングのオプション (p. 90)」を参照してください。

ご利用開始にあたってAmazon EC2 Auto Scaling を初めて利用する場合は、始める前に「Auto Scaling ライフサイクル (p. 7)」を確認することをお勧めします。

使用を開始するには、「Amazon EC2 Auto Scaling の使用開始 (p. 13)」チュートリアルを最後まで行って Auto Scaling グループを作成し、そのグループ内のインスタンスが終了するときにどのように応答するかを確認してください。実行している EC2 インスタンスが既にある場合、既存の EC2 インスタンスを使用して Auto Scaling グループを作成し、グループからインスタンスをいつでも削除できます。

Amazon EC2 Auto Scaling へのアクセスAWS アカウントにサインアップ済みの場合は、AWS マネジメントコンソール にサインインし、コンソールのホームページから [EC2] を選択して、ナビゲーションペインから [Auto Scaling グループ] を選択することで、Amazon EC2 Auto Scaling にアクセスできます。

Amazon EC2 Auto Scaling API を使用して Amazon EC2 Auto Scaling にアクセスすることもできます。Amazon EC2 Auto Scaling は Query API を提供します。このリクエストは、HTTP 動詞 (GET または POST) とクエリパラメータ Action で記述する HTTP または HTTPS リクエストです。Amazon EC2Auto Scaling 用の API アクションの詳細については、Amazon EC2 Auto Scaling API リファレンス の「アクション」を参照してください。

HTTP または HTTPS を介してリクエストを送信する代わりに、言語固有の API を使用してアプリケーションを構築することを希望する場合に備えて、AWS には、ソフトウェア開発者向けのライブラリ、サンプルコード、チュートリアル、その他のリソースが用意されています。これらのライブラリには、リクエストの暗号化署名、リクエストの再試行、エラーレスポンスの処理などのタスクを自動化する基本機能が用意されているので、開発を簡単に始められます。詳細については、AWS の SDK およびツールを参照してください。

コマンドラインインターフェイスを使用する場合は、以下の選択肢があります。

AWS コマンドラインインターフェイス(CLI)

一連のさまざまな AWS 製品用のコマンドを提供し、Windows、macOS、および Linux でサポートされています。開始するには、AWS Command Line Interface ユーザーガイド を参照してください。詳細については、AWS CLI Command Reference の「Auto Scaling」を参照してください。

AWS Tools for Windows PowerShell

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

AWS にアクセスするための認証情報については、『アマゾン ウェブ サービス全般のリファレンス』の「AWS セキュリティ認証情報」を参照してください。Amazon EC2 Auto Scaling の呼び出しに使用する

2

Page 10: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAmazon EC2 Auto Scaling の料金表

リージョンとエンドポイントの詳細については、AWS General Reference の「AWS リージョンとエンドポイント」を参照してください。

Amazon EC2 Auto Scaling の料金表Amazon EC2 Auto Scaling では追加料金は発生しません。AWS アーキテクチャーにどのようなメリットがあるかをお気軽に試し、確認してください。

PCI DSS コンプライアンスAuto Scaling は、マーチャントまたはサービスプロバイダーによるクレジットカードデータの処理、ストレージ、および伝送をサポートしており、Payment Card Industry (PCI) Data Security Standard (DSS) に準拠していることが確認されています。PCI DSS の詳細 (AWS PCI Compliance Package のコピーをリクエストする方法など) については、「PCI DSS レベル 1」を参照してください。

関連サービスアプリケーション用のスケーラブルなすべての AWS リソースの自動スケーリングを設定するには、「AWS Auto Scaling」を使用します。AWS Auto Scaling では、Auto Scaling グループの動的スケーリングポリシーを定義するプロセスがシンプルになり、予測されるトラフィックの変化に先立って予測スケーリングを使用して Amazon EC2 容量をスケーリングすることもできます。詳細については、「AWS AutoScaling ユーザーガイド」を参照してください。

受信アプリケーショントラフィックを Auto Scaling グループの複数のインスタンスに自動的に分散するには、Elastic Load Balancing を使用します。詳細については、「Elastic Load Balancing ユーザーガイド」を参照してください。

インスタンスと Amazon EBS ボリュームの基本的な統計情報をモニタリングするには、AmazonCloudWatch を使用します。詳細については、「Amazon CloudWatch ユーザーガイド」を参照してください。

アカウントで Amazon EC2 Auto Scaling API に対して行われた呼び出しをモニタリングするには、AWSCloudTrail を使用します。記録されたデータには、AWS マネジメントコンソール、コマンドラインツール、その他のサービスによって行われた呼び出しが含まれています。詳細については、『AWS CloudTrailUser Guide』を参照してください。

Auto Scaling の利点アプリケーションアーキテクチャへの Amazon EC2 Auto Scaling の追加は、AWS クラウドのメリットを最大に活かすための 1 つの方法です。Amazon EC2 Auto Scaling を使用する場合、アプリケーションには次のようなメリットがあります。

• 耐障害性の向上。Amazon EC2 Auto Scaling では、インスタンスに異常が発生したタイミングを検出し、インスタンスを終了して、その代わりに新しいインスタンスを起動することができます。複数のアベイラビリティーゾーンを使用するように Amazon EC2 Auto Scaling を設定することもできます。1 つのアベイラビリティーゾーンが利用できなくなると、Amazon EC2 Auto Scaling は別のアベイラビリティーゾーンでインスタンスを起動して補正します。

• 可用性の向上。Amazon EC2 Auto Scaling は、現在のトラフィック需要を処理するための適切な容量を、お使いのアプリケーションに常に持たせるのに役立ちます。

3

Page 11: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド例: 変化する需要への対応

• コスト管理の強化。Amazon EC2 Auto Scaling では、必要に応じて動的に処理能力を増減できます。使用する EC2 インスタンスの料金を支払うので、必要なときにインスタンスを起動し、不要な場合は削除することで費用を節約できます。

コンテンツ• 例: 変化する需要への対応 (p. 4)• 例: ウェブアプリアーキテクチャ (p. 5)• 例: 複数のアベイラビリティーゾーンへのインスタンスの分散 (p. 6)

例: 変化する需要への対応Amazon EC2 Auto Scaling のいくつかのメリットを示すために、AWS で実行されている基本的なウェブアプリケーションを例として取り上げます。このアプリケーションでは、従業員は会議に使用できる会議室を検索できます。週の始めと終わりには、このアプリケーションの使用量は最小になります。週の中盤では、より多くの従業員が会議をスケジュールしているため、アプリケーションの使用量が大幅に増加します。

以下のグラフは、1 週間を通じてアプリケーションの処理能力がどのくらい使用されているかを示しています。

従来、このような処理能力の変化に対応した計画を立てるには 2 通りの方法がありました。最初の方法は、アプリケーションが使用量に応じて十分な処理能力を常に確保できるように、十分な数のサーバーを追加する方法です。ただし、この方法の欠点は、アプリケーションがこの十分な処理能力を必要としない日数が発生することです。余分な処理能力が未使用のままになり、実質的には、アプリケーションの実行を維持するためのコストが増加します。

2 番目の方法は、アプリケーションの平均的な使用量を処理するための十分な処理能力を確保する方法です。この方法では、使用される機会が少ない機器を購入しないため、コストはあまりかかりません。ただし、アプリケーションの使用量が処理能力を超えた場合に、カスタマーエクスペリエンスが低下するというリスクがあります。

4

Page 12: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド例: ウェブアプリアーキテクチャ

このアプリケーションに Amazon EC2 Auto Scaling を追加することによって、3 番目の方法が利用可能になります。必要な場合にのみアプリケーションに新しいインスタンスを追加し、それらのインスタンスが不要になった場合は、インスタンスを終了できます。Amazon EC2 Auto Scaling では EC2 インスタンスを使用するため、インスタンスを使用した場合に、それらのインスタンスの料金のみを支払うだけで済みます。この方法により、費用効率が高いアーキテクチャの利用が可能になります。このようなアーキテクチャでは最適なカスタマーエクスペリエンスが提供され、費用を最小限に抑えることができます。

例: ウェブアプリアーキテクチャ一般的なウェブアプリケーションのシナリオでは、顧客のトラフィックのボリュームに対応するために、アプリケーションの複数のコピーを同時に実行します。このようなアプリケーションの複数のコピーは、同じ EC2 インスタンス(クラウドサーバー)でホストされ、それぞれが顧客のリクエストを処理します。

Amazon EC2 Auto Scaling は、お客様に代わって、これらの EC2 インスタンスの起動と終了を管理します。お客様は、Auto Scaling グループが EC2 インスタンスを起動または終了するタイミングを特定する一連の条件 (Amazon CloudWatch アラームなど) を定義します。Auto Scaling グループをネットワークアーキテクチャに追加することによって、アプリケーションの可用性と耐障害性を向上させることができます。

5

Page 13: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド例: 複数のアベイラビリティーゾーンへのインスタンスの分散

Auto Scaling グループは必要な数だけ作成できます。たとえば、各層のための Auto Scaling グループを作成できます。

Auto Scaling グループ内のインスタンス間のトラフィックを分散させるために、アーキテクチャにロードバランサーを導入できます。詳細については、「Auto Scaling グループでロードバランサーを使用する (p. 67)」を参照してください。

例: 複数のアベイラビリティーゾーンへのインスタンスの分散EC2 インスタンスなどの AWS リソースは、高可用性データセンターに収容されています。スケーラビリティと信頼性を向上させるために、これらのデータセンターは複数の物理的な場所に配置されています。リージョンは大きく、広く分散された地理的位置です。各リージョンには、アベイラビリティーゾーンと呼ばれる複数の独立したロケーションがあります。これは別のアベイラビリティーゾーンで発生した障害から隔離するためです。アベイラビリティーゾーンは、同じリージョン内の他のアベイラビリティーゾーンに低価格かつ低レイテンシーのネットワーク接続を提供します。詳細については、『アマゾン ウェブ サービス全般のリファレンス』の「リージョンとエンドポイント: Amazon EC2 Auto Scaling」を参照してください。

Amazon EC2 Auto Scaling では、Auto Scaling グループをリージョン内の複数のアベイラビリティーゾーンに分散させることで、地理的冗長性の安全性と信頼性を利用できます。1 つのアベイラビリティーゾーンが異常または使用不可になったとき、Auto Scaling は、影響を受けていないアベイラビリティーゾーンで新しいインスタンスを起動します。異常な状態のアベイラビリティーゾーンが正常な状態に戻ったら、指定されたすべてのアベイラビリティーゾーンにわたって均等にアプリケーションインスタンスを自動的に再分散します。

1 つの Auto Scaling グループには、同じリージョン内の 1 つ以上のアベイラビリティーゾーンの EC2 インスタンスを含めることができます。ただし、Auto Scaling グループは複数のリージョンにまたがることはできません。

Auto Scaling グループが同じ VPC にある場合、EC2 インスタンスはサブネットで起動されます。AutoScaling グループを作成または更新するときは、EC2 インスタンスのサブネットを選択します。アベイラビリティーゾーンにつき、1 つまたは複数のサブネットを選択できます。詳細については、『AmazonVPC ユーザーガイド』の「VPC とサブネット」を参照してください。

インスタンスの分散Amazon EC2 Auto Scaling は、Auto Scaling グループが使用できるアベイラビリティーゾーンの間で均等にインスタンスを分散しようとします。Amazon EC2 Auto Scaling は、インスタンス数が最も少ないアベイラビリティーゾーンで新しいインスタンスの起動を試みることによって、これを実行します。この試みが失敗すると、Amazon EC2 Auto Scaling は成功するまで別のアベイラビリティーゾーンでインスタンスの起動を試みます。VPC 内の Auto Scaling グループの場合、アベイラビリティーゾーンに複数のサブネッ

6

Page 14: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling ライフサイクル

トがある場合、Amazon EC2 Auto Scaling はアベイラビリティーゾーンからサブネットをランダムに選択します。

アクティビティの再分散特定のアクションが発生すると、Auto Scaling グループはアベイラビリティーゾーン間で不均衡になる可能性があります。Amazon EC2 Auto Scaling は、アベイラビリティーゾーン間のバランスを再度取って不均衡を補います。次のアクションは、アクティビティの再バランスにつながる可能性があります。

• グループのアベイラビリティーゾーンを変更する。• インスタンスを明示的に終了するかデタッチして、そのグループをアンバランスにする。• これまで容量が不足していたアベイラビリティーゾーンが回復し、使用できる容量が増えた。• これまでスポット市場価格がお客様のスポット価格より高かったアベイラビリティーゾーンで、スポッ

ト市場価格がお客様のスポット価格より低くなった。

分散バランスを再調整する場合、Amazon EC2 Auto Scaling は再調整によってアプリケーションのパフォーマンスや可用性が低下しないように、古いインスタンスを終了する前に新しいインスタンスを起動します。

Amazon EC2 Auto Scaling は、古いインスタンスを終了する前に新しいインスタンスの起動を試みるため、指定した最大容量またはそれに近い状態になると、再分散アクティビティの処理が遅くなったり、完全に停止する可能性があります。この問題を回避するため、再分散アクティビティの間、グループに対して指定されている最大容量が一時的に 10% のマージン(または 1 インスタンスのマージンのどちらか大きい方)で増えます。このマージンは、グループが最大容量に達しているか、それに近い状態であり、ユーザーがゾーンの再設定をリクエストしたため、またはゾーンの可用性の問題を補正するために、グループの再分散が必要な場合にのみ追加されます。この追加容量は、グループの再分散に要する時間にわたってのみ提供され、通常は数分です。

Auto Scaling ライフサイクルAuto Scaling グループの EC2 インスタンスに、他の EC2 インスタンスとは異なるパスまたはライフサイクルがあります。Auto Scaling グループがインスタンスを起動すると、ライフサイクルが起動してサービスに組み込まれます。インスタンスを削除するとライフサイクルが終了するか、または Auto Scaling グループがインスタンスをサービスから削除して終了します。

Note

インスタンスが起動すると、サービスを使用していなくてもすぐに課金されます。

7

Page 15: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスケールアウト

次の図は、Amazon EC2 Auto Scaling ライフサイクルのインスタンス状態の遷移を示しています。

スケールアウト以下で、イベントを Auto Scaling グループで直接スケールアウトして EC2 インスタンスを起動し、グループにアタッチします。

• 手動でグループのサイズを拡大します。詳細については、「Amazon EC2 Auto Scaling の手動スケーリング (p. 92)」を参照してください。

• スケーリングポリシーを作成して、指定した需要の増加に基づいてグループのサイズを自動的に拡大します。詳細については、「Amazon EC2 Auto Scaling の動的なスケーリング (p. 104)」を参照してください。

• スケジュールでスケーリングを設定して、特定の時間でグループのサイズを拡大します。詳細については、「Amazon EC2 Auto Scaling のスケジュールに基づくスケーリング (p. 101)」を参照してください。

スケールアウトイベントが発生した場合、Auto Scaling グループは割り当てられた起動設定を使用して必要な数の EC2 インスタンスを起動します。これらのインスタンスは Pending 状態で起動します。ライフサイクルフックを Auto Scaling グループに追加する場合は、ここでカスタムアクションを実行できます。詳細については、「ライフサイクルフック (p. 9)」を参照してください。

各インスタンスが完全に設定され、Amazon EC2 ヘルスチェックに合格すると、Auto Scaling グループにインスタンスをアタッチして InService 状態へ移行します。インスタンスは、Auto Scaling グループで必要な容量にカウントされます。

インスタンスが実行中以下のいずれかが発生するまで、インスタンスは InService 状態のままとなります。

• スケールインイベントが発生し、Amazon EC2 Auto Scaling が Auto Scaling グループのサイズを縮小するためにこのインスタンスを削除する。詳細については、「スケールイン時にどの Auto Scaling インスタンスを終了するかのコントロール (p. 127)」を参照してください。

• ユーザーがインスタンスを Standby 状態にする詳細については、「スタンバイを入力し終了します。 (p. 10)」を参照してください。

• Auto Scaling グループからインスタンスをデタッチします。詳細については、「インスタンスのデタッチ (p. 9)」を参照してください。

8

Page 16: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスケールイン

• インスタンスが必要な数のヘルスチェックに失敗したため、Auto Scaling グループから削除され、終了されて置き換えられます。詳細については、「Auto Scaling インスタンスのヘルスチェック (p. 150)」を参照してください。

スケールイン以下で、イベントを Auto Scaling グループで直接スケールインして EC2 インスタンスをグループからデタッチして、終了します。

• 手動でグループのサイズを縮小します。詳細については、「Amazon EC2 Auto Scaling の手動スケーリング (p. 92)」を参照してください。

• スケーリングポリシーを作成して、指定した需要の縮小に基づいてグループのサイズを自動的に縮小します。詳細については、「Amazon EC2 Auto Scaling の動的なスケーリング (p. 104)」を参照してください。

• スケジュールでスケーリングを設定して、特定の時間にグループのサイズを縮小します。詳細については、「Amazon EC2 Auto Scaling のスケジュールに基づくスケーリング (p. 101)」を参照してください。

作成したそれぞれのスケールアウトイベントについて、対応するスケールインイベントを作成することが重要です。これにより、アプリケーションに割り当てられたリソースが、それらのリソースに対する需要に可能な限り厳密に対応するようになります。

スケールインイベントが発生すると、Auto Scaling グループは 1 つ以上のインスタンスをデタッチします。Auto Scaling グループは終了ポリシーを使用して、終了するインスタンスを決定します。Auto Scalingグループからの削除とシャットダウンのプロセス中にあるインスタンスは、Terminating 状態に移行し、サービスに戻ることはできません。ライフサイクルフックを Auto Scaling グループに追加する場合は、ここでカスタムアクションを実行できます。最後に、インスタンスは完全に終了し Terminated 状態へ移行します。

インスタンスのアタッチ特定の基準を満たす実行中の EC2 インスタンスを Auto Scaling グループにアタッチできます。インスタンスがアタッチされると、Auto Scaling グループの一部として管理されます。

詳細については、「Auto Scaling グループへの EC2 インスタンスのアタッチ (p. 94)」を参照してください。

インスタンスのデタッチAuto Scaling グループからインスタンスをデタッチできます。インスタンスをデタッチした後で、インスタンスを Auto Scaling グループとは別に管理するか、または別の Auto Scaling グループにアタッチできます。

詳細については、「Auto Scaling グループからの EC2 インスタンスのデタッチ (p. 98)」を参照してください。

ライフサイクルフックインスタンスを起動または終了したときにカスタムアクションを実行できるように、ライフサイクルフックを Auto Scaling グループに追加できます。

Amazon EC2 Auto Scaling はスケールアウトイベントに応答すると、1 つ以上のインスタンスを起動します。これらのインスタンスは Pending 状態で起動します。Auto Scaling グループに

9

Page 17: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスタンバイを入力し終了します。

autoscaling:EC2_INSTANCE_LAUNCHING ライフサイクルフックを追加すると、インスタンスはPending 状態から Pending:Wait 状態に移行します。ライフサイクルアクションを完了したら、インスタンスは Pending:Proceed 状態に移行します。インスタンスが完全に設定されると、Auto Scaling グループにアタッチされて InService 状態へ移行します。

Amazon EC2 Auto Scaling はスケールインイベントに応答すると、1 つ以上のインスタンスを終了します。これらのインスタンスは Auto Scaling グループからデタッチされ Terminating 状態へ移行します。Auto Scaling グループに autoscaling:EC2_INSTANCE_TERMINATING ライフサイクルフックを追加すると、インスタンスは Terminating 状態から Terminating:Wait 状態に移行します。ライフサイクルアクションを完了したら、インスタンスは Terminating:Proceed 状態に移行します。インスタンスが完全に終了すると、Terminated 状態へ移行します。

詳細については、「Amazon EC2 Auto Scaling ライフサイクルフック (p. 133)」を参照してください。

スタンバイを入力し終了します。InService 状態にあるインスタンスを、Standby 状態に移行できます。これによりインスタンスをサービスから削除し、トラブルシューティングや変更を加えてから、サービスに戻すことができます。

Standby 状態のインスタンスは引き続き Auto Scaling グループによって管理されます。ただし、このようなインスタンスを稼働状態に戻すまで、それらはアプリケーションのアクティブな部分にはなりません。

詳細については、「Auto Scaling グループからの一時的なインスタンスの削除 (p. 141)」を参照してください。

Amazon EC2 Auto Scaling の制限AWS アカウントには、Amazon EC2 Auto Scaling に関連した以下の制限があります。他のサービスのサービス制限に関する詳細については、アマゾン ウェブ サービス全般のリファレンスの「AWS サービスの制限」を参照してください。

デフォルトの制限

• リージョンあたりの起動設定: 200• リージョンあたりの Auto Scaling グループ: 200

アカウントの現在の制限を表示するには、Amazon EC2 コンソールの [制限] ページ、または describe-account-limits (AWS CLI) コマンドを使用します。制限の引き上げをリクエストするには、Auto Scaling の制限フォームを使用します。

Auto Scaling グループの制限

• Auto Scaling グループあたりのスケーリングポリシー: 50• Auto Scaling グループあたりの定期アクション: 125• Auto Scaling グループあたりのライフサイクルフック: 50• Auto Scaling グループあたりの SNS トピック: 10• Auto Scaling グループあたりの Classic Load Balancer: 50• Auto Scaling グループあたりのターゲットグループ: 50

スケーリングポリシーの制限

• スケーリングポリシーあたりのステップ調整値: 20

10

Page 18: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAmazon EC2 Auto Scaling の制限

Auto Scaling API の制限

• AttachInstances、DetachInstances、EnterStandby、および ExitStandby では最大 20 件のインスタンス ID を同時に使用できます。

• AttachLoadBalancers および DetachLoadBalancers では最大 10 件のロードバランサーを同時に使用できます。

• AttachLoadBalancerTargetGroups および DetachLoadBalancerTargetGroups では最大 10 件のターゲットグループを同時に使用できます。

11

Page 19: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAWS にサインアップする

Amazon EC2 Auto Scaling のセットアップ

Amazon EC2 Auto Scaling の使用を開始する前に、次のタスクを完了します。

タスク• AWS にサインアップする (p. 12)• Amazon EC2 を使用する準備を整える (p. 12)

AWS にサインアップするAWS アカウントを作成すると、すべての AWS サービスに自動的にサインアップされます。料金が発生するのは、お客様が使用したサービスの分のみです。Amazon EC2 Auto Scaling を使用する場合、EC2 インスタンスの料金以外の追加料金は発生しません。

AWS アカウントをまだ持っていない場合は、以下のように AWS にサインアップします。

サインアップして AWS アカウントを作成するには

1. https://portal.aws.amazon.com/billing/signup を開きます。2. オンラインの手順に従います。

サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて確認コードを入力することが求められます。

AWS のサインアップ処理が完了すると、ユーザーに確認メールが送信されます。

Amazon EC2 を使用する準備を整えるAmazon EC2 をまだ使用していない場合は、Amazon EC2 のドキュメントで説明されているタスクを完了してください。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon EC2 のセットアップ」または Windows インスタンスの Amazon EC2 ユーザーガイドの「Amazon EC2 のセットアップ」を参照してください。

12

Page 20: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドステップ 1: 起動テンプレートを作成する

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: 起動テンプレートを作成する (p. 13)• ステップ 2: Auto Scaling グループを作成する (p. 16)• ステップ 3: Auto Scaling グループを確認する (p. 16)• ステップ 4: (オプション) スケーリングインフラストラクチャを削除する (p. 18)

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

Auto Scaling グループの起動テンプレートを作成するには

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

13

Page 21: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドステップ 1: 起動テンプレートを作成する

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

3. ナビゲーションペインで、[Launch Templates (テンプレートの起動)] を選択します。4. [起動テンプレートの作成] を選択します。

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

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

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

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

Note

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

9. (オプション) [キーペア名] には、インスタンスに接続するときに使用するにキーペアの名前を入力します。

10. (オプション) [ネットワークタイプ] で、[VPC] を選択します。11. [Security Groups (セキュリティグループ)] をスキップして、次のステップでセキュリティグループを

設定するようにします。ネットワークインターフェイスが指定されている場合、セキュリティグループはその一部である必要があります。

12. [Network interfaces (ネットワークインターフェイス)] で、次を実行してプライマリネットワークインターフェイスを指定します。

a. [Add network interface] を選択します。b. (オプション) デフォルトではない VPC にパブリック IP アドレスを割り当てるには、[Auto-assign

public IP (自動割り当てパブリック IP)] で [Enable (有効)] を選択します。これにより、インスタンスはインターネットや AWS の他のサービスと通信できるようになります。

c. [Security group ID (セキュリティグループ ID)] で、ネットワークインターフェイスのセキュリティグループを指定します。

d. [Delete on termination (終了時に削除)] で、Auto Scaling グループをスケールインし、ネットワークインターフェイスがアタッチされているインスタンスを終了するときに、ネットワークインターフェイスを削除するかどうかを選択します。

13. (オプション) [ストレージ (ボリューム)] で、指定した AMI によって指定されるボリュームに加えて、インスタンスにアタッチするボリュームを指定します。

14. (オプション) [Instance Tags (インスタンスタグ)] には、インスタンスおよびボリュームに関連付けるタグを 1 つ以上指定します。

15. [起動テンプレートの作成] を選択します。16. 確認ページで、[Auto Scaling グループの作成] を選択します。

14

Page 22: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドステップ 1: 起動テンプレートを作成する

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

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

起動設定を作成するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションバーで、リージョンを選択します。作成した 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 (次へ: 詳細の設定)] を選択します。

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

a. [Name] に起動設定の名前を入力します (例: my-first-lc)。b. [Advanced Details] で、IP アドレスの種類を選択します。VPC 内でインスタンスにインターネッ

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

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

セキュリティグループを選択して、[Review] を選択します。10. [Review (レビュー)] ステップで、[起動設定の作成] を選択します。11. [Select an existing key pair or create a new key pair (既存のキーペアを選択するか、新しいキーペアを

作成する)] ステップを、手順に従って完了します。このチュートリアルではインスタンスに接続しません。このために、インスタンスに接続する場合を除いて、[Proceed without a key pair] を選択できます。

12. [Create launch configuration] を選択します。起動設定が作成され、Auto Scaling グループを作成するウィザードが表示されます。

15

Page 23: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドステップ 2: Auto Scaling グループを作成する

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

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

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

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

a. [グループ名] に、Auto Scaling グループの名前 (例: my-first-asg) を入力します。

b. [Launch template] [起動テンプレートのバージョン] で、スケールアウト時に Auto Scaling グループで使用する起動テンプレートのバージョン (デフォルト、最新、または特定のバージョン) を選択します。

c. [Launch template] [フリートの構築] で、[Adhere to the launch template (起動テンプレートに準拠する)] を選択します。

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

e. [ネットワーク] は、選択した AWS リージョンのデフォルトの VPC に設定したままにするか、独自の VPC を選択します。

f. [サブネット] で、VPC のサブネットを選択します。

Note

インスタンスのアベイラビリティーゾーンを選択できます。そのためには、対応するデフォルトのサブネットを選択します。

g. [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 インスタンスが起動されたことを確認する準備が整いました。

16

Page 24: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド(オプション) Auto Scaling グ

ループのインスタンスを終了する

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

1. [Auto Scaling Groups] ページで、先ほど作成した Auto Scaling グループを選択します。2. [Details] タブに Auto Scaling グループに関する情報が表示されます。

3. [Activity History] タブでは、[Status] 列にインスタンスの現在のステータスが表示されます。インスタンスが起動している間、ステータス列には [In progress] と表示されます。ステータスは、インスタンスが起動されると Successful に変わります。[Refresh] ボタンを使用して、インスタンスの現在のステータスを表示することもできます。

4. [Instances] タブでは、[Lifecycle] 列にインスタンスのステータスが表示されます。Auto Scaling グループが EC2 インスタンスを起動し、そのライフサイクル状態が InService であることがわかります。[Health Status] 列には、インスタンスの EC2 インスタンスのヘルスチェックの結果が表示されます。

(オプション) Auto Scaling グループのインスタンスを終了するAmazon EC2 Auto Scaling に関する詳細を確認するには、必要に応じて以下の実験を試すことができます。Auto Scaling グループの最小サイズは、1 インスタンスです。そのため、実行中のインスタンスを終了する場合、Amazon EC2 Auto Scaling はその代わりとなる新しいインスタンスを起動する必要があります。

1. [Instances] タブで、インスタンスの ID を選択します。これは、[Instances] ページのインスタンスを示します。

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

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

17

Page 25: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドステップ 4: (オプション) スケーリングインフラストラクチャを削除する

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

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

• Amazon EC2 Auto Scaling の手動スケーリング (p. 92)• Amazon EC2 Auto Scaling の動的なスケーリング (p. 104)• Auto Scaling グループスケーリング時の Amazon SNS 通知の取得 (p. 164)

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

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

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

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

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [ Actions] で、[Delete ] を選択します。確認を求めるメッセージが表示されたら、[Yes, Delete] を選択

します。

[Name] 列に、Auto Scaling グループが削除されたことが示されます。[Desired (必要)]、[Min (最小)]、および [Max (最大)] 列には、Auto Scaling グループのインスタンス数として 0 と表示されます。

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

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

1. ナビゲーションペインで、[Launch Templates (テンプレートの起動)] を選択します。2. 起動テンプレートを選択します。3. [アクション]、[テンプレートの削除] の順に選択します。確認を求めるメッセージが表示されたら、

[起動テンプレートの削除] を選択します。

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

18

Page 26: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドステップ 4: (オプション) スケーリングインフラストラクチャを削除する

起動設定を削除するには

1. ナビゲーションペインの [Auto Scaling] で、[Launch Configurations (起動設定)] を選択します。2. 起動設定を選択します。3. [Actions]、[Delete launch configuration] の順に選択します。確認を求めるメッセージが表示された

ら、[Yes, Delete] を選択します。

19

Page 27: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド前提条件

チュートリアル: スケーリングとロードバランシングを使用するアプリケーションのセットアップ

Auto Scaling グループにロードバランサーをアタッチできます。ロードバランサーによって自動的に受信トラフィックがグループのインスタンス間で割り振られます。

このチュートリアルでは、グループを作成するときに Auto Scaling グループにロードバランサーをアタッチします。既存の Auto Scaling グループにロードバランサーをアタッチするには、「Auto Scaling グループに Load Balancer をアタッチする (p. 68)」を参照してください。

このチュートリアルに進む前に、以下の概要トピックを確認することをお勧めします。Auto Scaling グループでロードバランサーを使用する (p. 67)

コンテンツ• 前提条件 (p. 20)• スケーリングと負荷分散の設定 (コンソール) (p. 20)• スケーリングと負荷分散の設定 (AWS CLI) (p. 24)• AWS リソースのクリーンアップ (p. 25)

前提条件• (オプション) アプリケーションに必要な AWS へのアクセスを付与する IAM ロールを作成します。• インスタンスを起動します。IAM ロールを指定し (ロールを作成した場合)、ユーザーデータとして必要

な設定スクリプトを指定していることを確認します。インスタンスに接続し、それをカスタマイズします。たとえば、ソフトウェアやアプリケーションをインストールし、データをコピーできます。インスタンスが正しく設定されたことを確認するために、インスタンスでアプリケーションをテストします。インスタンスからカスタム Amazon Machine Image (AMI) を作成します。必要がなくなった場合は、インスタンスを終了できます。

• ロードバランサーを作成します。Elastic Load Balancing は、Application Load Balancer、Network LoadBalancer、および クラシックロードバランサー の 3 種類のロードバランサーをサポートしています。これらのどのタイプのロードバランサーも、Auto Scaling グループにアタッチできます。詳細については、「 Elastic Load Balancing タイプ (p. 67)」を参照してください。

• Auto Scaling グループに有効にするロードバランサーと同じアベイラビリティゾーンを選択していることを確認します。

スケーリングと負荷分散の設定 (コンソール)スケーリングとロードバランシングを使用するアプリケーションをセットアップするには、Auto Scalingグループを作成するときに、以下のタスクを実行します。

20

Page 28: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド起動設定を作成または選択する

タスク• 起動設定を作成または選択する (p. 21)• 起動テンプレートを作成または選択する (p. 22)• Auto Scaling グループを作成する (p. 23)• (オプション) ロードバランサーが Auto Scaling グループにアタッチされていることを確認す

る (p. 24)

起動設定を作成または選択する起動設定によって、Amazon EC2 Auto Scaling が自動的に作成する EC2 インスタンスのタイプが指定されます。起動設定を作成するときは、使用する Amazon Machine Image (AMI) の ID、インスタンスタイプ、キーペア、ブロックデバイスマッピングといった情報を含めます。起動テンプレートを作成する場合は、起動テンプレートを使用して、起動設定を使用する代わりに Auto Scaling グループを作成できます。詳細については、「起動テンプレートを作成または選択する (p. 22)」を参照してください。

使用する起動設定が既に存在している場合は、以下の手順を使用してこの起動設定を選択します。

既存の起動設定を選択するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. 画面の上部のナビゲーションバーで、ロードバランサーを作成するときに使用する AWS リージョン

を選択します。3. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。4. 次のページで、[Auto Scaling グループの作成] を選択します。5. [Auto Scaling グループの作成] ページで、[Launch Configuration (起動設定)] を選択し、既存の起動設

定を選択して、[次のステップ] を選択します。

新しい起動設定を作成するには、次の手順を使用します。

起動設定を作成するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. 画面の上部のナビゲーションバーで、ロードバランサーを作成するときに使用する AWS リージョン

を選択します。3. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。4. 次のページで、[Auto Scaling グループの作成] を選択します。5. [Auto Scaling グループの作成] ページで、[Launch Configuration (起動設定)]、[Create a new launch

configuration (新しい起動設定の作成)] の順に選択したら、[次のステップ] を選択します。6. [Choose AMI] ページでカスタム AMI を選択します。7. [Choose Instance Type] ページで、インスタンスのハードウェア設定を選択し、[Next: Configure

details] を選択します。8. [Configure Details] ページで以下の操作を実行します。

a. [Name (名前)] に起動設定の名前を入力します。b. (オプション) 認証情報を EC2 インスタンスに安全に配布するには、IAM ロールを選択します。c. (オプション) デフォルト以外の VPC のインスタンスに接続する必要がある場合は、[Advanced

Details (詳細設定)]、[IP Address Type (IP アドレスタイプ)] で [Assign a public IP address toevery instance (すべてのインスタンスにパブリック IP アドレスを割り当てる)] を選択します。

d. (オプション) インスタンスにユーザーデータまたは設定スクリプトを指定するには、[AdvancedDetails]、[User data] に設定スクリプトを貼り付けます。

21

Page 29: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド起動テンプレートを作成または選択する

e. [Skip to review] を選択します。9. [Review] ページで、[Edit security groups] を選択します。手順に従って既存のセキュリティグループ

を選択して、[Review] を選択します。10. [Review] ページで、[Create launch configuration] を選択します。11. [Select an existing key pair or create a new key pair] ページで、表示されているいずれかのオプション

を選択します。確認チェックボックスをオンにし、[Create launch configuration (起動設定の作成) ] を選択します。

Warning

インスタンスに接続する必要がある場合は、[Proceed without a key pair] を選択しないでください。

上記の手順を完了したら、ウィザードを続行して Auto Scaling グループを作成できます。

起動テンプレートを作成または選択する使用する起動テンプレートが既に存在している場合は、以下の手順を使用して起動設定を選択します。

既存の起動テンプレートを選択するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. 画面上部のナビゲーションバーで、ロードバランサーを作成するときに使用する AWS リージョンを

選択します。3. ナビゲーションペインで、[Launch Templates (テンプレートの起動)] を選択します。4. 起動テンプレートを削除します。5. [アクション]、[Auto Scaling グループの作成] の順に選択します。

または、新しい起動テンプレートを作成するために、次の手順を使用します。

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

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. 画面上部のナビゲーションバーで、ロードバランサーを作成するときに使用する AWS リージョンを

選択します。3. ナビゲーションペインで、[Launch Templates (テンプレートの起動)] を選択します。4. [起動テンプレートの作成] を選択します。5. 起動テンプレートの名前と説明を指定します。起動テンプレートの名前は 3~125 文字で指定しま

す。また、()./_ を使用することができます。6. [AMI ID] で、インスタンス用の AMI の ID を入力します。7. [インスタンスタイプ] には、指定した AMI と互換性のあるインスタンス用のハードウェア設定を選択

します。8. (オプション) [キーペア名] で、インスタンスに接続するときに使用するにキーペアの名前を入力しま

す。9. [ネットワークインターフェイス] で、以下の操作を実行します。

a. [Add network interface] を選択します。b. (オプション) デフォルト以外の VPC のインスタンスに接続するには、[Auto-assign public IP] の

[Enable] を選択します。c. [Security group ID] には、インスタンスのセキュリティグループを指定します。

22

Page 30: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループを作成する

d. [Delete on termination (終了時に削除)] で、Auto Scaling グループをスケールインしてネットワークインターフェイスがアタッチされているインスタンスを終了するときに、ネットワークインターフェイスを削除するかどうかを選択します。

10. (オプション) 認証情報をインスタンスに安全に配布するには、[Advanced details (詳細設定)] の [IAMinstance profile (IAM インスタンスプロファイル)] に、IAM ロールの Amazon リソースネーム (ARN)を入力します。

11. (オプション) インスタンスにユーザーデータまたは設定スクリプトを指定するには、[Advanceddetails]、[User data] に設定スクリプトを貼り付けます。

12. [起動テンプレートの作成] を選択します。13. 確認ページで、[Auto Scaling グループの作成] を選択します。

Auto Scaling グループを作成する起動設定またはテンプレートを作成または選択した後、以下の手順に従って中断していた作業を続行します。

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

1. [Configure Auto Scaling group details (Auto Scaling グループ詳細の設定)] ページで、以下を実行します。

a. [グループ名] に Auto Scaling グループの名前を入力します。b. [Launch template] [Launch template version (起動テンプレートのバージョン)] で、スケールアウ

ト時に Auto Scaling グループで使用する起動テンプレートのバージョン (デフォルト、最新、または特定のバージョン) を選択します。

c. [Launch template] [Fleet Composition (フリートの構築)] で [Adhere to the launch template (起動テンプレートに準拠する)] を選択して、起動テンプレートで指定されている EC2 インスタンスと購入オプションを使用します。

d. [グループサイズ] に、Auto Scaling グループのインスタンスの最初の値を入力します。e. T2 インスタンスのような VPC を必要とする起動設定あるいはテンプレートのインスタンスタイ

プを選択した場合は、[Network (ネットワーク)] の VPC を選択する必要があります。それ以外の場合、アカウントが EC2-Classic をサポートし、VPC が不要なタイプのインスタンスを選択した場合は、Launch into EC2-Classic または VPC を選択できます。

f. 前のステップで VPC を選択した場合、[Subnet] で 1 つ以上のサブネットを選択します。EC2-Classic を選択した場合、[Availability Zone(s)] で 1 つ以上のアベイラビリティーゾーンを選択します。

g. [Advanced Details (詳細情報)] で、[Receive traffic from Elastic Load Balancer(s) (Elastic LoadBalancer からトラフィックを受信)] チェックボックスをオンにします。

• [Classic Load Balancers] [Load Balancers] で、使用するロードバランサーを選択します。• [アプリケーション/ロードバランサー] [Target Groups (ターゲットグループ)] で、使用するター

ゲットグループを選択します。h. (オプション) Elastic Load Balancing ヘルスチェックを使用するには、[Advanced Details] で

[ELB] を選択し、[ヘルスチェックタイプ] を選択します。i. [Next: Configure scaling policies] を選択します。

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

Auto Scaling グループにスケーリングポリシーを設定するには、「スケーリングポリシーの設定 (p. 108)」を参照してください。

3. Auto Scaling グループの詳細を確認します。[Edit] を選択して、変更を加えることができます。完了したら、[Auto Scaling グループの作成] を選択します。

23

Page 31: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド(オプション) ロードバランサーが Auto Scalingグループにアタッチされていることを確認する

(オプション) ロードバランサーが Auto Scaling グループにアタッチされていることを確認するロードバランサーが Auto Scaling グループにアタッチされたことを確認するには

1. Auto Scaling グループを選択します。2. [Details] タブで、[Load Balancers] にアタッチされたロードバランサーと、[Target Groups] にアタッ

チされたターゲットグループが表示されます。3. [アクティビティ履歴] タブの [Status] 列に、Auto Scaling インスタンスの現在のステータスが表示さ

れます。インスタンスの起動中、そのステータスは In progress です。ステータスは、インスタンスが起動されると Successful に変わります。

4. [Instances] タブでは、[Lifecycle] 列に Auto Scaling インスタンスのステータスが表示されます。インスタンスがトラフィックを受信できるようになったら、そのステータスは InService です。

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

スケーリングと負荷分散の設定 (AWS CLI)スケーリングと負荷分散に対応したアプリケーションをセットアップする次のタスクを完了します。

タスク• 起動設定の作成 (p. 24)• 起動テンプレートを作成する (p. 24)• ロードバランサーとともに Auto Scaling グループを作成する (p. 25)

起動設定の作成使用する起動設定が既に存在している場合は、このステップをスキップできます。

起動設定を作成するには

次の create-launch-configuration コマンドを使用します。デフォルトではない VPC 内のインスタンスにパブリック IP アドレスを割り当てるには、示しているように --associate-public-ip-address オプションを使用します。

aws autoscaling create-launch-configuration --launch-configuration-name my-launch-config \ --image-id ami-01e24be29428c15b2 --instance-type t2.micro --associate-public-ip-address \ --security-groups sg-eb2af88e

起動テンプレートを作成する使用する起動テンプレートが既に存在している場合は、このステップをスキップします。

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

次の create-launch-template コマンドを使用して、起動テンプレートを作成する情報が含まれている JSON ファイルを渡します。デフォルトではない VPC 内のインスタンスにパブリック IP アドレスを割り当てるには、ネットワークインターフェイス属性を追加し、示しているようにこれを"NetworkInterfaces":{"AssociatePublicIpAddress":true} に設定します。

24

Page 32: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドロードバランサーとともに Auto

Scaling グループを作成する

aws ec2 create-launch-template --launch-template-name my-launch-template --version-description my-version-description \ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"AssociatePublicIpAddress":true,"Groups":["sg-903004f8"],"DeleteOnTermination":true}],"ImageId":"ami-01e24be29428c15b2","InstanceType":"t2.micro"}'

ロードバランサーとともに Auto Scaling グループを作成するAuto Scaling グループを作成するときに既存のグループにロードバランサーをアタッチできます。起動設定あるいは起動テンプレートのいずれかを使用して、Auto Scaling グループが起動するインスタンスを自動的に設定することができます。

Classic Load Balancer がアタッチされた Auto Scaling グループを作成するには

次の create-auto-scaling-group コマンドと --load-balancer-names オプションを使用して、ClassicLoad Balancer をアタッチした Auto Scaling グループを作成します。

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-configuration-name my-launch-config \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --load-balancer-names "my-load-balancer" \ --max-size 5 --min-size 1 --desired-capacity 2

Application Load Balancer あるいは Network Load Balancer へのターゲットグループがアタッチされたAuto Scaling グループを作成するには

次の create-auto-scaling-group コマンドと --target-group-arns オプションを使用して、ターゲットグループをアタッチした Auto Scaling グループを作成します。

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-template "LaunchTemplateName=my-launch-template,Version=1" \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --target-group-arns "arn:aws:elasticloadbalancing:region:123456789012:targetgroup/my-targets/1234567890123456" \ --max-size 5 --min-size 1 --desired-capacity 2

AWS リソースのクリーンアップこれでチュートリアルは完了です。使用していないリソースに継続的な料金が発生することを防ぐには、このチュートリアル専用に作成したリソースをクリーンアップする必要があります。手順については、「Auto Scaling インフラストラクチャの削除 (p. 87)」を参照してください。

25

Page 33: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループの起動テンプレートを作成する

テンプレートの起動起動テンプレートは、インスタンス設定情報を指定する起動設定 (p. 34)と似ています。Amazon マシンイメージ (AMI) の ID、インスタンスタイプ、キーペア、セキュリティグループ、その他 EC2 インスタンスを起動するために使用するパラメータが含まれています。ただし、起動設定の代わりに起動テンプレートを定義すると、複数のバージョンのテンプレートを使用することができます。バージョニングを使用すれば、フルセットのパラメータのサブセットを作成し、それを再利用してその他のテンプレートやテンプレートバージョンを作成することができます。たとえば、タグやネットワーク設定などの一般的な設定パラメータを定義するデフォルトのテンプレートを作成し、他のパラメータを同じテンプレートの別のバージョンの一部として指定することができます。

T2 Unlimited インスタンスなど、Amazon EC2 の最新機能を使用できるようにするため、起動設定ではなく起動テンプレートを使用することをお勧めします。詳細については、Linux インスタンス用 AmazonEC2 ユーザーガイド の「Burstable パフォーマンスインスタンスの無制限モード」と「Auto Scaling グループを使用してバーストパフォーマンスインスタンスを無制限で起動する」を参照してください。

起動テンプレートでは、オンデマンドインスタンスとスポットインスタンスの両方を使用して、複数のインスタンスタイプ間で容量をプロビジョニングすることで、目的のスケールやパフォーマンス、コストを実現することができます。詳細については、「複数のインスタンスタイプと購入オプションを使用するAuto Scaling グループ (p. 46)」を参照してください。

現在起動設定を使用している場合は、起動設定を使用して作成された Auto Scaling グループを更新する際に起動テンプレートを指定できます。

起動テンプレートを作成して Auto Scaling グループで使用するには、一からテンプレートを作成するか、既存のテンプレートの新しいバージョンを作成するか、起動設定、実行中のインスタンス、または別のテンプレートからパラメータをコピーします。

次のトピックでは、Auto Scaling で使用する起動テンプレートを作成して使用する一般的な手順について説明します。起動テンプレートの詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「起動テンプレート」セクションを参照してください。

コンテンツ• Auto Scaling グループの起動テンプレートを作成する (p. 26)• 起動テンプレートへの起動設定のコピー (p. 32)• 起動設定を起動テンプレートと置き換える (p. 32)

Auto Scaling グループの起動テンプレートを作成する

起動テンプレートを使用して Auto Scaling グループを作成するには、EC2 インスタンスの起動に必要なパラメータを含む起動テンプレート (例: Amazon マシンイメージ (AMI) の ID とインスタンスタイプ) を作成する必要があります。

次の手順は、新しい起動テンプレートを作成するためのものです。新しいテンプレートはユーザー定義(一から作成) のパラメータまたは既存の起動テンプレートを使用します。起動テンプレートを作成したら、「起動テンプレートを使用して Auto Scaling グループを作成する (p. 56)」の手順に従って、AutoScaling グループを作成できます。

前提条件

必要な IAM アクセス許可については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「起動テンプレートの使用の制御」を参照してください。

26

Page 34: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループの起動テンプレートを作成する

考慮事項

Auto Scaling グループで使用する起動テンプレートを作成する際は、次の点を考慮してください。

• 起動テンプレートを使用すると、1 種類のインスタンスか、インスタンスタイプとオンデマンドおよびスポット購入のオプションの組み合わせを起動する柔軟性が得られます。詳細については、「複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ (p. 46)」を参照してください。次のような組み合わせでインスタンスを起動することはできません。• [Additional Details (その他の詳細)] でスポットインスタンスリクエストを指定した場合• EC2-Classic 内

• テンプレートでネットワークタイプ (VPC または EC2-Classic)、サブネット、アベイラビリティーゾーンを設定した場合は、Auto Scaling グループで指定された内容が優先されるため、これらの設定は無視されます。

• ネットワークインターフェイスを指定する場合、テンプレートの [セキュリティグループ] セクションではなく、ネットワークインターフェイスの一部としてセキュリティグループを設定する必要があります。

• 複数のネットワークインターフェイスを指定することはできません。• 特定のプライベート IP アドレスを割り当てることはできません。インスタンスが起動されると、インス

タンスが起動されたサブネットの CIDR 範囲からプライベートアドレスが割り当てられます。VPC またはサブネットの CIDR 範囲の指定の詳細については、「Amazon VPC ユーザーガイド」を参照してください。

• 既存のネットワークインターフェイスを指定するには、デバイスインデックスが 0 (eth0) であることが必要です。このシナリオでは、CLI または API を使用して Auto Scaling グループを作成する必要があります。CLI の create-auto-scaling-group コマンドまたは API CreateAutoScalingGroup アクションを使用してグループを作成するときは、サブネット (VPC ゾーン識別子) パラメータの代わりにアベイラビリティーゾーンパラメータを指定する必要があります。

• ホストプレイスメントアフィニティを使用したり、ホスト ID を選択して特定のホストを対象にすることはできません。

• ホストテナンシー (Dedicated Hosts) のサポートは、ホストリソースグループを指定した場合にのみ使用できます。詳細については、AWS License Managerユーザーガイドの「ホストリソースグループ」を参照してください。ライセンス設定の関連付けに基づく各 AMI は、一度に 1 つのホストリソースグループにのみマッピングできます。

コンソールを使用して Auto Scaling グループの新しい起動テンプレートを作成するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[Launch Templates] を選択します。3. [新しいテンプレートの作成] を選択します。名前を入力し、起動テンプレートの最初のバージョンの

説明を加えます。4. 別のテンプレートに基づき、新しいテンプレートを作成する場合は、次のようにします。

a. [ソーステンプレート] で、既存の起動テンプレートを選択します。b. 新しい起動テンプレートのベースとなる起動テンプレートのバージョンを [ソーステンプレートの

バージョン] から選択します。5. [起動テンプレートの内容] で、次の情報を指定します。

a. [AMI ID]: インスタンスを起動する Amazon マシンイメージ (AMI) の ID を選択します。利用可能な AMI はすべて、[Search for AMI] ダイアログを使用して検索できます。[クイックスタート] リストで、よく使用されている AMI のいずれかを選択します。必要な AMI が表示されていない場合は、[AWS Marketplace] または [コミュニティ AMI] リストを選択して、適切な AMI を検索します。

b. インスタンスタイプ: インスタンスタイプを選択します。インスタンスタイプが、指定した AMIと互換性があることを確認します。

27

Page 35: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループの起動テンプレートを作成する

c. キーペア名: インスタンスへの接続時に使用するキーペアを指定します。d. ネットワークタイプ: インスタンスを VPC と EC2-Classic のどちらに起動するかを選択します

(該当する場合)。ただし、Auto Scaling グループの設定が優先されるため、Amazon EC2 AutoScaling に対して起動テンプレートのネットワークタイプとアベイラビリティーゾーンの設定は無視されます。

e. セキュリティグループ: 1 つ以上のセキュリティグループを選択するか、ネットワークインターフェイスの一部としてセキュリティグループを設定するには空白のままにします。両方の場所でセキュリティグループを指定することはできません。EC2-Classic を使用している場合、EC2-Classic 用に作成したセキュリティグループを使用する必要があります。

6. [ネットワークインターフェイス] で、[ネットワークインターフェイスの追加] を選択し、オプションで以下の情報を入力します。ネットワークインターフェイスは 1 つのみ指定できます。以下のフィールドに注意してください。

a. デバイス: eth0 をデバイス名として指定します (デバイスインデックスが 0 のデバイス)。b. ネットワークインターフェイス: 空白のままにして、インスタンス起動時に AWS によって新しい

ネットワークインターフェイスを作成するか、既存のネットワークインターフェイスの ID を入力します。ID を指定すると、Auto Scaling グループは 1 つのインスタンスに制限されます。

c. 説明: わかりやすい名前を入力します。d. [サブネット]: サブネットを指定することはできますが、Auto Scaling グループの設定が優先され

るため、Amazon EC2 Auto Scaling に対してサブネットは無視されます。e. [自動割り当てパブリック IP]: eth0 のデバイスインデックスを持つネットワークインターフェイ

スに、自動的にパブリック IP アドレスを割り当てるかどうかを指定します。この設定は、1 つの新しいネットワークインターフェイスにのみ有効にすることができます。

f. [セキュリティグループ ID]: プライマリネットワークインターフェイス (eth0) を関連付ける 1 つ以上のセキュリティグループの ID を入力します。各セキュリティグループは、Auto Scaling グループがインスタンスを起動する VPC 用に設定する必要があります。エントリはカンマで区切ります。

g. 終了時に削除: Auto Scaling グループをスケールインし、ネットワークインターフェイスがアタッチされているインスタンスを終了するときに、ネットワークインターフェイスを削除するかどうかを選択します。

7. ボリュームを指定してインスタンスにアタッチする場合は (AMI で指定されたボリュームは含まない)、[ストレージ (ボリューム)] に次の情報を入力します。

a. ボリュームタイプ: インスタンスストアまたは Amazon EBS ボリュームを選択します。ボリュームの種類は、選択したインスタンスタイプに応じて異なります。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「Amazon EC2 インスタンスストア」および「Amazon EBS ボリューム」を参照してください。

b. [デバイス名]: ボリュームのデバイス名を指定します。c. [スナップショット]: ボリュームを作成するスナップショットの ID を入力します。d. [サイズ]: Amazon EBS-Backed ボリュームについては、ストレージサイズを指定します。スナッ

プショットからボリュームを作成しており、ボリュームサイズを指定しない場合のデフォルトはスナップショットサイズです。

e. ボリュームタイプ: Amazon EBS ボリュームで、ボリュームタイプを選択します。f. IOPS: プロビジョンド IOPS の SSD ボリュームで、ボリュームでサポートする IOPS (1 秒あたり

の入力/出力オペレーションの数) の最大数を入力します。g. 終了時に削除: Amazon EBS ボリュームで、関連付けられたインスタンスの終了時にボリューム

を削除するかどうかを選択します。h. [暗号化済み]: Amazon EBS ボリュームの暗号化状態を変更するには、[Yes (はい)] を選択しま

す。以下の表に示すように、このパラメータを設定した場合のデフォルトの効果は、選択したボリュームのソースによって異なります。いずれの場合も、指定した CMK を使用するためのアクセス許可が必要です。暗号化ボリュームの指定の詳細については、Linux インスタンス用Amazon EC2 ユーザーガイド の「Amazon EBS の暗号化」を参照してください。

28

Page 36: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループの起動テンプレートを作成する

暗号化の結果

Encrypted パラメータの設定

ボリュームのソース デフォルトの暗号化状態

注意

新しい (空の) ボリューム 暗号化されていない*

所有する暗号化されていないスナップショット

暗号化されていない*

お客様が所有する暗号化されたスナップショット

同じキーで暗号化されている

お客様と共有されている暗号化されていないスナップショット

暗号化されていない*

No (いいえ)

お客様と共有されている暗号化されたスナップショット

デフォルト CMK で暗号化されている

該当なし

新しいボリューム デフォルト CMK で暗号化されている

所有する暗号化されていないスナップショット

デフォルト CMK で暗号化されている

お客様が所有する暗号化されたスナップショット

同じキーで暗号化されている

お客様と共有されている暗号化されていないスナップショット

デフォルト CMK で暗号化されている

はい

お客様と共有されている暗号化されたスナップショット

デフォルト CMK で暗号化されている

デフォルト以外の CMK を使用するには、[Key(キー)] パラメータの値を指定します。

* デフォルトの暗号化が有効な場合、新しく作成されたすべてのボリュームは ([Encrypted (暗号化済み)] パラメータが [Yes (はい)] に設定されているかどうかに関係なく)、デフォルトの CMKを使用して暗号化されます。[Encrypted] および [Key] パラメータの両方を設定すると、デフォルト以外の CMK を指定できます。

i. (オプション) [Key (キー)]: 前の手順で [Yes (はい)] を選択した場合は、ボリュームの暗号化時に使用するカスタマーマスターキー (CMK) を入力します。前に AWS Key Management Service を使用して作成した CMK を入力します。アクセス許可のある任意のキーの完全な ARN を貼り付けることができます。詳細については、『AWS Key Management Service Developer Guide』およびこのガイドの「暗号化されたボリュームで使用するのに必要な CMK キーポリシー (p. 184)」トピックを参照してください。注 : Amazon EBS は非対称 CMK をサポートしていません。

Note

[暗号化済み] パラメータも設定せずに CMK を指定するとエラーが発生します。8. [Instance tags (インスタンスタグ)] で、キーと値の組み合わせをタグとして指定します。インスタン

ス、ボリューム、またはその両方にタグ付けできます。9. [Advanced Details (詳細情報)] で、セクションを開いてフィールドを表示し、インスタンスの追加パラ

メータを指定します。このセクションの詳細と、各パラメータの使用方法については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「起動テンプレートの作成」を参照してください。

• 購入のオプション: スポットインスタンスをリクエストし、1 つのインスタンスで 1 時間ごとに支払うことができる上限価格を指定するオプションがあります。このオプションで Auto Scaling グルー

29

Page 37: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループの起動テンプレートを作成する

プを操作するには、終了日なしのワンタイムリクエストを指定する必要があります。詳細については、「Auto Scaling グループのスポットインスタンスの起動 (p. 74)」を参照してください。

Important

Auto Scaling グループの設定時に複数のインスタンスタイプと購入のオプションを指定する場合、このフィールドは空のままにします。詳細については、「複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ (p. 46)」を参照してください。

• [IAM インスタンスプロファイル]: インスタンスに関連付ける AWS Identity and AccessManagement (IAM) インスタンスプロファイルを指定します。詳細については、「Amazon EC2 インスタンスで実行されるアプリケーションに対する IAM ロール (p. 188)」を参照してください。

• シャットダウン動作: Amazon EC2 Auto Scaling では無視されるため、このフィールドは空白のままにします。Amazon EC2 Auto Scaling のデフォルトの動作は、インスタンスの終了です。

• 終了保護: 追加の終了保護が適用されますが、Auto Scaling グループのスケールイン時に AmazonEC2 Auto Scaling に対して無視されます。スケールイン時に Auto Scaling グループが特定のインスタンスを終了できるかどうかをコントロールするには、インスタンスのスケールイン保護 (p. 130)を使用します。

• モニタリング: Amazon CloudWatch を使用してインスタンスの詳細モニタリングを有効にするかどうかを選択します。追加の変更が適用されます。詳細については、「Amazon CloudWatch を使用した Auto Scaling グループとインスタンスのモニタリング (p. 153)」を参照してください。

• T2/T3 無制限: (T2 および T3 インスタンスにのみ有効) アプリケーションがベースラインを越えて必要なだけバーストできるようにするかどうかを選択します。追加料金が適用される場合があります。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「Auto Scaling グループを使用してバーストパフォーマンスインスタンスを無制限で起動する」を参照してください。

• プレイスメントグループ名: インスタンスの起動先のプレイスメントグループを指定します。すべてのインスタンスタイプがプレイスメントグループ内で起動できるわけではありません。別のプレイスメントグループを指定する CLI コマンドを使用して Auto Scaling グループを設定する場合、AutoScaling グループで指定したものが優先され、この設定は無視されます。

• EBS 最適化インスタンス: Amazon EBS I/O 専用の追加キャパシティーを提供します。すべてのインスタンスタイプがこの機能をサポートしているわけではなく、追加料金が適用されます。

• テナンシー : 共有ハードウェア (共有)、専有ハードウェア (専有)、またはホストリソースグループを使用する場合は Dedicated Host (専有ホスト) でインスタンスを実行するように選択できます。追加料金が適用される場合があります。

• テナンシーホストリソースグループ : Dedicated Hosts で使用する BYOL AMI のホストリソースグループを指定します。詳細については、AWS License Managerユーザーガイドの「ホストリソースグループ」を参照してください。注 : この機能を使用する前に、アカウントに Dedicated Hostsを割り当てる必要はありません。インスタンスは、Dedicated Hosts で自動的に起動します。

• RAM ディスク ID: AMI に関連付けられている RAM ディスクの ID。準仮想化 (PV) AMI にのみ有効。

• カーネル ID: AMI に関連付けられているカーネルの ID。準仮想化 (PV) AMI にのみ有効。• [ユーザーデータ]: 起動時にインスタンスを設定するユーザーデータ、または設定スクリプトを実行

するユーザーデータを指定できます。10. [起動テンプレートの作成] を選択します。

既存のインスタンスから起動テンプレートを作成するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[インスタンス] を選択します。3. インスタンスを選び、[アクション]、[Create template from instance (インスタンスからテンプレート

を作成)] の順に選択します。4. 名前と説明を入力します。必要に応じてその他の起動パラメータを調整し、[起動テンプレートの作成]

を選択します。

30

Page 38: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループの起動テンプレートを作成する

コマンドラインを使用して起動テンプレートを作成するには

次のコマンドの 1 つを使用できます。

• create-launch-template (AWS CLI)• New-EC2LaunchTemplate (AWS Tools for Windows PowerShell)

以下のように create-launch-template コマンドを使用して起動テンプレートを作成します。Auto Scalingグループがインスタンスを起動する VPC のセキュリティグループに対応する Groups の値を指定します。Auto Scaling グループのプロパティとして VPC とサブネットを指定します。

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \--launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"AssociatePublicIpAddress":true,"Groups":["sg-7c227019"],"DeleteOnTermination":true}],"ImageId":"ami-01e24be29428c15b2","InstanceType":"t2.micro","TagSpecifications": [{"ResourceType":"instance","Tags":[{"Key":"purpose","Value":"webserver"}]}]}'

以下の describe-launch-templates コマンドを使用して、起動テンプレート my-template-for-auto-scaling を指定します。

aws ec2 describe-launch-templates --launch-template-names my-template-for-auto-scaling

以下の describe-launch-template-versions コマンドを使用して、指定した起動テンプレート my-template-for-auto-scaling のバージョンを指定します。

aws ec2 describe-launch-template-versions --launch-template-id lt-068f72b72934aff71

以下に、応答の例を示します。

{ "LaunchTemplateVersions": [ { "VersionDescription": "version1", "LaunchTemplateId": "lt-068f72b72934aff71", "LaunchTemplateName": "my-template-for-auto-scaling", "VersionNumber": 1, "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "LaunchTemplateData": { "TagSpecifications": [ { "ResourceType": "instance", "Tags": [ { "Key": "purpose", "Value": "webserver" } ] } ], "ImageId": "ami-01e24be29428c15b2", "InstanceType": "t2.micro", "NetworkInterfaces": [ { "DeviceIndex": 0, "DeleteOnTermination": true, "Groups": [ "sg-7c227019" ],

31

Page 39: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド起動テンプレートへの起動設定のコピー

"AssociatePublicIpAddress": true } ] }, "DefaultVersion": true, "CreateTime": "2019-02-28T19:52:27.000Z" } ]}

起動テンプレートへの起動設定のコピー以下の手順を使用して、既存の起動設定からオプションをコピーして新しい起動テンプレートを作成します。

既存の起動設定から起動テンプレートを作成し、Auto Scaling グループを更新して起動テンプレートを使用しやすくできます。起動設定と同様、起動テンプレートには、インスタンスを起動するためのパラメータのすべてまたは一部を含めることができます。起動テンプレートで、テンプレートの複数のバージョンを作成して、より迅速かつ容易に新しいインスタンスを起動できます。

起動設定から起動テンプレートを作成するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[Launch Configurations ] を選択します。3. コピーする起動設定を選択し、[Copy to launch template (起動テンプレートにコピー)] を選択します。

これにより、新しい起動テンプレートが、選択した起動設定と同じ名前およびオプションでセットアップされます。

4. [New launch template name (新しい起動テンプレート名)] では、起動設定の名前 (デフォルト) を使用する、または、新しい名前を入力します。起動テンプレート名は一意である必要があります。

5. (オプション) 新しい起動テンプレートを使用して Auto Scaling グループを作成するには、[Create anAuto Scaling group using the new template (新しいテンプレートを使用した Auto Scaling グループの作成)] を選択します。詳細については、「起動テンプレートを使用して Auto Scaling グループを作成する (p. 56)」を参照してください。

6. [Submit] を選択します。

起動テンプレートを作成したら、必要に応じて、作成した起動テンプレートを使用して既存の AutoScaling グループを更新できます。詳細については、「起動設定を起動テンプレートと置き換える (p. 32)」を参照してください。

起動設定を起動テンプレートと置き換える既存の起動設定のある Auto Scaling グループを編集するとき、起動設定を起動テンプレートで置き換えることができます。これにより、現在使用しているすべての Auto Scaling グループで起動テンプレートを使用できます。そうすることで、起動テンプレートのバージョニングなどの機能を活用できます。

Auto Scaling グループの起動設定を置き換えると、以後、新しいインスタンスは新しい起動テンプレートを使用して起動されますが、既存のインスタンスは影響を受けません。この状況では、Auto Scaling グループの既存のインスタンスを終了して、起動テンプレートを使用する新しいインスタンスを強制的に起動できます。または、自動スケーリングにより、終了ポリシー (p. 127)に基づいて古いインスタンスを新しいインスタンスに段階的に置き換えることができます。AWS CloudFormation から数回クリックするだけで、更新内容のデプロイを自動化することもできます。

前提条件

32

Page 40: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド起動設定を起動テンプレートと置き換える

Auto Scaling グループの起動設定を置き換える前に、起動テンプレートをまず作成する必要があります。起動テンプレートを作成する最も簡単な方法は、起動設定からコピーすることです。詳細については、「起動テンプレートへの起動設定のコピー (p. 32)」を参照してください。

Auto Scaling グループの起動設定を置き換えるには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[Auto Scaling Groups] を選択します。3. Auto Scaling グループを選択し、[詳細]、[編集] の順に選択します。4. [Launch Instances (以下を使用したインスタンスの起動)] では、[Launch Template (起動テンプレー

ト)] を選択します。5. [Launch Template (起動テンプレート)] では、起動テンプレートを選択します。6. [Launch Template Version (起動テンプレートのバージョン)] では、必要に応じて起動テンプレートの

バージョンを選択します。起動テンプレートのバージョンを作成したら、スケールアウト時に AutoScaling グループで起動テンプレートのデフォルトバージョンを使用するか最新バージョンを使用するかを選択できます。

7. 完了したら、[Save] を選択します。

コマンドラインを使用して起動設定を置き換えるには

次のコマンドの 1 つを使用できます。

• update-auto-scaling-group (AWS CLI)• Update-ASAutoScalingGroup (AWS Tools for Windows PowerShell)

33

Page 41: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド起動設定を作成する

起動設定起動設定とは、EC2 インスタンスを起動するために Auto Scaling グループで使用されるインスタンスの設定テンプレートです。起動設定を作成する場合は、インスタンスの情報を指定します。Amazon マシンイメージ (AMI) の ID、インスタンスタイプ、キーペア、1 つ以上のセキュリティグループ、ブロックデバイスマッピングなどがあります。以前 EC2 インスタンスを起動している場合は、インスタンスを起動するために同じ情報を指定しました。

複数の Auto Scaling グループについて起動設定を指定できます。ただし、1 つの Auto Scaling グループに指定できる起動設定は 1 つだけであり、グループを作成した後で起動設定を変更することはできません。Auto Scaling グループの起動設定を変更するには、起動設定を作成後、その起動設定を使用して AutoScaling グループを更新する必要があります。

Auto Scaling グループを作成するときは常に、起動設定、起動テンプレート、または EC2 インスタンスを指定する必要があります。EC2 インスタンスを使用して Auto Scaling グループを作成すると、AmazonEC2 Auto Scaling によって起動設定が自動的に作成され、Auto Scaling グループに関連付けられます。詳細については、「EC2 インスタンスを使用した Auto Scaling グループの作成 (p. 60)」を参照してください。また、起動テンプレートを使用している場合は、起動設定や EC2 インスタンスではなく、起動テンプレートを指定します。詳細については、「テンプレートの起動 (p. 26)」を参照してください。

コンテンツ• 起動設定を作成する (p. 34)• EC2 インスタンスを使用した起動設定の作成 (p. 35)• Auto Scaling グループの起動設定を変更する (p. 39)• VPC での Auto Scaling インスタンスの起動 (p. 40)

起動設定を作成する起動設定を作成する場合は、起動する EC2 インスタンスに関する情報を指定する必要があります。Amazon マシンイメージ (AMI)、インスタンスタイプ、キーペア、セキュリティグループ、ブロックデバイスマッピングなどがあります。または、実行中の EC2 インスタンスの属性を使用して起動設定を作成できます。詳細については、「EC2 インスタンスを使用した起動設定の作成 (p. 35)」を参照してください。

Note

Auto Scaling グループを作成する際、起動テンプレート、起動設定、または EC2 インスタンスを指定することができます。Amazon EC2 の最新機能を使用できるように、起動テンプレートを使用することをお勧めします。詳細については、「テンプレートの起動 (p. 26)」を参照してください。

起動設定を作成したら、Auto Scaling グループを作成できます。詳細については、「起動設定を使用してAuto Scaling グループを作成する (p. 58)」を参照してください。

一度に Auto Scaling グループに関連付けできる起動設定は 1 つだけであり、グループを作成した後で起動設定を変更することはできません。したがって、既存の Auto Scaling グループで起動設定を変更する場合は、新しい起動設定で設定を更新する必要があります。詳細については、「Auto Scaling グループの起動設定を変更する (p. 39)」を参照してください。

コンソールを使用して起動設定を作成するには

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

34

Page 42: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドEC2 インスタンスを使用した起動設定の作成

2. 画面の上のナビゲーションバーに、現在のリージョンが表示されます。ニーズを満たす Auto Scalingグループのリージョンを選択します。

3. ナビゲーションペインの [Auto Scaling] で、[Launch Configurations (起動設定)] を選択します。4. 次のページで、[Create launch configuration (起動設定の作成)] を選択します。5. [Choose AMI] ページで、AMI を選択します。6. [Choose Instance Type] ページで、インスタンスのハードウェア設定を選択します。[Next: Configure

details] を選択します。Note

T2 インスタンスは、VPC のサブネットで起動する必要があります。t2.micro インスタンスを選択しても VPC がない場合は自動的に作成されます。この VPC には、リージョンの各アベイラビリティーゾーンのパブリックサブネットが含まれます。

7. [Configure Details] ページで以下の操作を実行します。

a. [Name] に起動設定の名前を入力します。b. (オプション) [購入のオプション] では、スポットインスタンスをリクエストし、1 インスタンスに

対して支払い可能な 1 時間あたりの上限価格を指定できます。詳細については、「Auto Scalingグループのスポットインスタンスの起動 (p. 74)」を参照してください。

c. (オプション) [IAM role] で、インスタンスに関連付けるロールを選択します。詳細については、「Amazon EC2 インスタンスで実行されるアプリケーションに対する IAM ロール (p. 188)」を参照してください。

d. (オプション) デフォルトでは、Auto Scaling インスタンスの場合は基本モニタリングが有効になります。Auto Scaling インスタンスで詳細モニタリングを有効にするには、[CloudWatch 詳細モニタリングを有効化] を選択します。

e. [Advanced Details]、[IP Address Type] で、オプションを選択します。VPC のインスタンスに接続するには、パブリック IP アドレスを割り当てるオプションを選択する必要があります。インスタンスに接続する必要があるときに、デフォルト VPC があるかどうかがわからない場合は、[Assign a public IP address to every instance] を選択します。

f. [Skip to review] を選択します。8. [Review] ページで、[Edit security groups] を選択します。手順に従って既存のセキュリティグループ

を選択して、[Review] を選択します。9. [Review] ページで、[Create launch configuration] を選択します。10. [Select an existing key pair or create a new key pair] で、表示されているいずれかのオプションを選択

します。確認チェックボックスをオンにし、[Create launch configuration (起動設定の作成) ] を選択します。

Warning

インスタンスに接続する必要がある場合は、[キーペアなしで続行] を選択しないでください。

コマンドラインを使用して起動設定を作成するには

次のコマンドの 1 つを使用できます。

• create-launch-configuration (AWS CLI)• New-ASLaunchConfiguration (AWS Tools for Windows PowerShell)

EC2 インスタンスを使用した起動設定の作成Amazon EC2 Auto Scaling には、実行中の EC2 インスタンスの属性を使用して起動設定を作成するオプションが用意されています。

35

Page 43: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドEC2 インスタンスを使用した起動設定の作成

Tip

EC2 インスタンスから Auto Scaling グループを直接作成 (p. 60)できます。この機能を使用すると、Amazon EC2 Auto Scaling が起動設定を自動的に作成します。

指定されたインスタンスに起動設定で現在サポートされていないプロパティがある場合、Auto Scaling グループによって起動されるインスタンスは、元の EC2 インスタンスと同じにならない場合があります。

起動設定を新しく作成することと、既存の EC2 インスタンスから起動設定を作成することには違いがあります。起動設定をゼロから作成するときは、イメージ ID、インスタンスタイプ、オプションリソース(ストレージデバイスなど)、オプション設定(モニタリングなど)を指定します。実行中のインスタンスから起動設定を作成すると、Amazon EC2 Auto Scaling は指定されたインスタンスから起動設定の属性を取得します。属性は、インスタンスが起動された AMI のブロックデバイスマッピングからも取得されますが、起動後に追加されたブロックデバイスは無視されます。

実行中のインスタンスを使用して起動設定を作成するときは、同じリクエストの一部としてそれらを指定することによって、次の属性を変更できます。AMI、ブロックデバイス、キーペア、インスタンスプロファイル、インスタンスタイプ、カーネル、モニタリング、プレイスメントテナンシー、ラムディスク、セキュリティグループ、スポット料金、ユーザーデータ、インスタンスにパブリック IP アドレスが関連付けられているかどうか、インスタンスが EBS で最適化されているかどうか。

次の例では、EC2 インスタンスから起動設定を作成する方法を示します。

例• EC2 インスタンスを使用した起動設定の作成 (p. 36)• インスタンスから起動設定を作成し、ブロックデバイスをオーバーライドする (AWS CLI) (p. 37)• 起動設定を作成し、インスタンスタイプをオーバーライドする (AWS CLI) (p. 38)

EC2 インスタンスを使用した起動設定の作成既存の EC2 インスタンスの属性を使用して起動設定を作成するには、インスタンスの ID を指定します。

Important

指定したインスタンスを起動するために使用される AMI がまだ存在する必要があります。

EC2 インスタンスから起動設定を作成する (コンソール)コンソールを使用して実行中の EC2 インスタンスから起動設定と Auto Scaling グループを作成し、新しい Auto Scaling グループにインスタンスを追加できます。詳細については、「Auto Scaling グループへのEC2 インスタンスのアタッチ (p. 94)」を参照してください。

EC2 インスタンスから起動設定を作成する (AWS CLI)インスタンスから、そのインスタンスと同じ属性を使用して起動設定を作成するには、次の create-launch-configuration コマンドを使用します。起動後に追加されたブロックデバイスはすべて無視されます。

aws autoscaling create-launch-configuration --launch-configuration-name my-lc-from-instance --instance-id i-a8e09d9c

次の describe-launch-configurations コマンドを使用すると、起動設定を記述し、その属性がインスタンスの属性と一致することを確認できます。

36

Page 44: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドインスタンスから起動設定を作成し、ブロックデバイスをオーバーライドする (AWS CLI)

aws autoscaling describe-launch-configurations --launch-configuration-names my-lc-from-instance

以下に、応答の例を示します。

{ "LaunchConfigurations": [ { "UserData": null, "EbsOptimized": false, "LaunchConfigurationARN": "arn", "InstanceMonitoring": { "Enabled": false }, "ImageId": "ami-05355a6c", "CreatedTime": "2014-12-29T16:14:50.382Z", "BlockDeviceMappings": [], "KeyName": "my-key-pair", "SecurityGroups": [ "sg-8422d1eb" ], "LaunchConfigurationName": "my-lc-from-instance", "KernelId": "null", "RamdiskId": null, "InstanceType": "t1.micro", "AssociatePublicIpAddress": true } ]}

インスタンスから起動設定を作成し、ブロックデバイスをオーバーライドする (AWS CLI)Amazon EC2 Auto Scaling は、デフォルトで、指定された EC2 インスタンスの属性を使用して起動設定を作成します。ただし、インスタンスではなく、インスタンスの起動に使用された AMI のブロックデバイスが使用されます。起動設定にブロックデバイスを追加するには、起動設定のブロックデバイスマッピングをオーバーライドします。

Important

指定したインスタンスを起動するために使用される AMI がまだ存在する必要があります。

起動設定を作成し、ブロックデバイスをオーバーライドするEC2 インスタンスとカスタムブロックデバイスマッピングを使用して起動設定を作成するには、次のcreate-launch-configuration コマンドを使用します。

aws autoscaling create-launch-configuration --launch-configuration-name my-lc-from-instance-bdm --instance-id i-a8e09d9c \ --block-device-mappings "[{\"DeviceName\":\"/dev/sda1\",\"Ebs\":{\"SnapshotId\":\"snap-3decf207\"}},{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"SnapshotId\":\"snap-eed6ac86\"}}]"

起動設定を記述し、それがカスタムブロックデバイスマッピングを使用していることを確認するには、次の describe-launch-configurations コマンドを使用します。

aws autoscaling describe-launch-configurations --launch-configuration-names my-lc-from-instance-bdm

37

Page 45: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド起動設定を作成し、インスタンスタ

イプをオーバーライドする (AWS CLI)

以下の応答例は、起動設定の詳細を表しています。

{ "LaunchConfigurations": [ { "UserData": null, "EbsOptimized": false, "LaunchConfigurationARN": "arn", "InstanceMonitoring": { "Enabled": false }, "ImageId": "ami-c49c0dac", "CreatedTime": "2015-01-07T14:51:26.065Z", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "SnapshotId": "snap-3decf207" } }, { "DeviceName": "/dev/sdf", "Ebs": { "SnapshotId": "snap-eed6ac86" } } ], "KeyName": "my-key-pair", "SecurityGroups": [ "sg-8637d3e3" ], "LaunchConfigurationName": "my-lc-from-instance-bdm", "KernelId": null, "RamdiskId": null, "InstanceType": "t1.micro", "AssociatePublicIpAddress": true } ]}

起動設定を作成し、インスタンスタイプをオーバーライドする (AWS CLI)Amazon EC2 Auto Scaling は、デフォルトで、指定された EC2 インスタンスの属性を使用して起動設定を作成します。要件によっては、インスタンスの属性をオーバーライドし、必要な値を使用する場合があります。たとえば、インスタンスタイプをオーバーライドできます。

Important

指定したインスタンスを起動するために使用される AMI がまだ存在する必要があります。

起動設定を作成し、インスタンスタイプをオーバーライドするEC2 インスタンスを使用して起動設定を作成し、インスタンスタイプをインスタンスのもの (たとえばt2.medium) とは異なる値 (たとえば t2.micro) に変更するには、次の create-launch-configuration コマンドを使用します。

aws autoscaling create-launch-configuration --launch-configuration-name my-lc-from-instance-changetype \

38

Page 46: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド起動設定を変更する

--instance-id i-a8e09d9c --instance-type t2.medium

起動設定を記述し、インスタンスタイプがオーバーライドされたことを確認するには、次の describe-launch-configurations コマンドを使用します。

aws autoscaling describe-launch-configurations --launch-configuration-names my-lc-from-instance-changetype

以下の応答例は、起動設定の詳細を表しています。

{ "LaunchConfigurations": [ { "UserData": null, "EbsOptimized": false, "LaunchConfigurationARN": "arn", "InstanceMonitoring": { "Enabled": false }, "ImageId": "ami-05355a6c", "CreatedTime": "2014-12-29T16:14:50.382Z", "BlockDeviceMappings": [], "KeyName": "my-key-pair", "SecurityGroups": [ "sg-8422d1eb" ], "LaunchConfigurationName": "my-lc-from-instance-changetype", "KernelId": "null", "RamdiskId": null, "InstanceType": "t2.medium", "AssociatePublicIpAddress": true } ]}

Auto Scaling グループの起動設定を変更する一度に Auto Scaling グループに関連付けできる起動設定は 1 つだけであり、グループを作成した後で起動設定を変更することはできません。Auto Scaling グループの起動設定を変更するには、新しい起動設定のベースとして既存の起動設定を使用します。次に、Auto Scaling グループを新しい起動設定を使用するように更新します。

Auto Scaling グループの起動設定を変更すると、以後、新しいインスタンスは新しい設定オプションを使用して起動されますが、既存のインスタンスは影響を受けません。この状況では、Auto Scaling グループの既存のインスタンスを終了して、新しい設定を使用する新しいインスタンスを強制的に起動できます。または、自動スケーリングにより、終了ポリシー (p. 127)に基づいて古いインスタンスを新しいインスタンスに段階的に置き換えることができます。AWS CloudFormation から数回クリックするだけで、更新された起動設定のデプロイを自動化することもできます。

Auto Scaling グループの起動設定を変更するには (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[Launch Configurations ] を選択します。3. 起動設定を選択し、[Actions]、[Copy launch configuration] の順に選択します。これにより、新しい起

動設定は元の設定と同じオプションで設定されますが、名前に "Copy" が追加されます。4. [Copy Launch Configuration] ページで、必要に応じて設定オプションを編集し、[Create launch

configuration] を選択します。

39

Page 47: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドVPC でのインスタンスの起動

5. 確認ページで、[Auto Scaling グループの表示] を選択します。6. Auto Scaling グループを選択し、[詳細]、[編集] の順に選択します。7. [Launch Configuration] から新しい起動設定を選択して、[Save] を選択します。

Auto Scaling グループの起動設定を変更するには (AWS CLI)

1. describe-launch-configurations コマンドを使用して、現在の起動設定について記述します。2. create-launch-configuration コマンドを使用して新しい起動設定を作成します。3. update-auto-scaling-group コマンドで --launch-configuration-names パラメータを使用し

て、Auto Scaling グループの起動設定を更新します。

Auto Scaling グループの起動設定を変更するには (Tools for Windows PowerShell)

1. Get-ASLaunchConfiguration コマンドを使用して、現在の起動設定について記述します。2. New-ASLaunchConfiguration コマンドを使用して新しい起動設定を作成します。3. Update-ASAutoScalingGroup コマンドで -LaunchConfigurationName パラメータを使用し

て、Auto Scaling グループの起動設定を更新します。

VPC での Auto Scaling インスタンスの起動Amazon Virtual Private Cloud (Amazon VPC) を使用すると、AWS クラウド内の隔離されたプライベートセクションに仮想ネットワーク環境を定義できます。仮想ネットワーク環境は完全に管理できます。詳細については、『Amazon VPC ユーザーガイド』を参照してください。

Virtual Private Cloud (VPC) 内では、Auto Scaling グループなどの AWS リソースを起動できます。VPC 内の Auto Scaling グループは Amazon EC2 と基本的には同じ動作であり、同じ機能をサポートします。

Amazon VPC のサブネットとは、アベイラビリティーゾーンを VPC の IP アドレス範囲の一部で分割したものです。サブネットを使うと、インスタンスをセキュリティや運用上の必要に応じてグループ化することができます。サブネットは作成されたアベイラビリティーゾーン内に完全に包含されるものです。サブネットで Auto Scaling インスタンスを起動します。

サブネット内のインスタンスがインターネットと通信できるようにするには、インターネットゲートウェイを作成して、それを VPC にアタッチする必要があります。インターネットゲートウェイを使用すると、サブネット内のリソースが Amazon EC2 ネットワークエッジを介してインターネットに接続できるようになります。サブネットのトラフィックがインターネットゲートウェイにルーティングされる場合、そのサブネットはパブリックサブネットと呼ばれます。サブネットのトラフィックがインターネットゲートウェイにルーティングされない場合、そのサブネットはプライベートサブネットと呼ばれます。インターネットに接続する必要があるリソースにはパブリックサブネットを、インターネットに接続する必要がないリソースにはプライベートサブネットを使用してください。

新しい VPC で Auto Scaling インスタンスを起動するには、まず VPC 環境を作成する必要があります。VPC およびサブネットを作成したら、そのサブネット内で Auto Scaling インスタンスを起動します。1 個のパブリックサブネットで VPC を作成する最も簡単な方法は、VPC ウィザードを使用することです。詳細については、「Amazon VPC 入門ガイド」を参照してください。

目次• デフォルト VPC (p. 41)• VPC での IP アドレス指定 (p. 41)• インスタンスのプレイスメントテナンシー (p. 41)• VPC への EC2-Classic インスタンスのリンク (p. 42)

40

Page 48: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドデフォルト VPC

デフォルト VPC2013 年 12 月 04 日以降に AWS アカウントを作成したか、新しいリージョンで Auto Scaling グループを作成する場合は、デフォルト VPC が作成されます。各アベイラビリティーゾーンのデフォルトサブネットにはデフォルト VPC が用意されています。デフォルト VPC がある場合、デフォルトではその VPC でAuto Scaling グループが作成されます。

デフォルト VPC の詳細と、アカウントにデフォルト VPC が設定されているかどうかについては、『Amazon VPC 開発者ガイド』の「デフォルト VPC とサブネット」を参照してください。

VPC での IP アドレス指定VPC で Auto Scaling インスタンスを起動すると、インスタンスにはサブネットのアドレス範囲のプライベート IP アドレスが自動的に割り当てられます。これにより、インスタンスは VPC の他のインスタンスと通信できるようになります。

インスタンスにパブリック IP アドレスを割り当てるよう起動設定を指定できます。インスタンスにパブリック IP アドレスを割り当てると、インスタンスはインターネットや AWS の他のサービスと通信できるようになります。

インスタンスのパブリック IP アドレスを有効にして、自動的にインスタンスに IPv6 アドレスを割り当てるよう設定されたサブネットでインスタンスを起動すると、インスタンスは IPv4 と IPv6 アドレスの両方を受け取ります。それ以外の場合は、IPv4 アドレスのみを受け取ります。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「IPv6 アドレス」を参照してください。

インスタンスのプレイスメントテナンシーテナンシーは、EC2 インスタンスが物理ハードウェアに分散される方法を定義します。これは、料金に影響を与えます。次の 3 つのテナンシーオプションを使用できます。

• Shared (default) — 複数の AWS アカウントが同じ物理ハードウェアを共有できます。• ハードウェア専有インスタンス (dedicated) — インスタンスはシングルテナントハードウェアで実行

されます。• Dedicated host (host) — インスタンスは Dedicated Host で実行します。Dedicated Host はユーザーが

設定を制御できる隔離サーバーです。

Important

起動設定または起動テンプレートを使用して、EC2 インスタンスのテナンシーを設定できます。ただし、host テナント属性値は起動設定では使用できません。default または dedicated テナント属性値のみを使用します。host のテナント属性値を使用するには、起動テンプレートをかならず使用します。詳細については、「Auto Scaling グループの起動テンプレートを作成する (p. 26)」を参照してください。

ハードウェア専有インスタンスは、ホストハードウェアのレベルで、ハードウェア専有インスタンスではないインスタンスや、他の AWS アカウントに属するインスタンスから、物理的に分離されます。VPCを作成すると、デフォルトではテナンシー属性は default に設定されます。このような VPC では、テナンシー値に dedicated を指定してインスタンスを起動して、単一テナンシーインスタンスとして実行できます。それ以外の場合は、デフォルトで、インスタンスは共有テナンシーインスタンスとして実行されます。VPC のテナンシー属性を dedicated に設定した場合、VPC で起動されるすべてのインスタンスは、シングルテナンシーインスタンスとして実行されます。詳細については、Linux インスタンス用Amazon EC2 ユーザーガイド のハードウェア専有インスタンスを参照してください。料金の詳細については、Amazon EC2 ハードウェア専有インスタンスの製品ページを参照してください。

41

Page 49: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドVPC への EC2-Classic インスタンスのリンク

起動設定を作成するときにインスタンスのプレイスメントテナンシーのデフォルト値は null であり、インスタンスのテナンシーは VPC のテナンシー属性によって制御されます。以下の表は、VPC で起動される Auto Scaling インスタンスのプレイスメントテナンシーをまとめたものです。

起動設定のテナンシー VPC のテナンシー = デフォルト VPC のテナンシー = ハードウェア占有

指定されていません 共有テナンシー インスタンス ハードウェア専有インスタンス

default 共有テナンシー インスタンス ハードウェア専有インスタンス

dedicated ハードウェア専有インスタンス ハードウェア専有インスタンス

起動設定を使用してテナンシーを設定する (AWS CLI)

create-launch-configuration コマンドと --placement-tenancy オプションを使用して、起動設定のインスタンスのプレイスメントテナンシーを default または dedicated に指定できます。たとえば、次のコマンドは、起動設定のテナンシーを dedicated に設定します。

aws autoscaling create-launch-configuration --launch-configuration-name my-launch-config --placement-tenancy dedicated --image-id ...

次の describe-launch-configurations コマンドを使用して、起動設定のインスタンスのプレイスメントテナンシーを確認できます。

aws autoscaling describe-launch-configurations --launch-configuration-names my-launch-config

ハードウェア専有インスタンスを作成する起動設定の出力例を次に示します。明示的にインスタンスのプレイスメントテナンシーを設定すると、PlacementTenancy パラメータはこのコマンドの出力にのみ含まれます。

{ "LaunchConfigurations": [ { "UserData": null, "EbsOptimized": false, "PlacementTenancy": "dedicated", "LaunchConfigurationARN": "arn", "InstanceMonitoring": { "Enabled": true }, "ImageId": "ami-b5a7ea85", "CreatedTime": "2015-03-08T23:39:49.011Z", "BlockDeviceMappings": [], "KeyName": null, "SecurityGroups": [], "LaunchConfigurationName": "my-launch-config", "KernelId": null, "RamdiskId": null, "InstanceType": "m3.medium" } ]

VPC への EC2-Classic インスタンスのリンクEC2-Classic で Auto Scaling グループ内のインスタンスを起動する場合、それらのインスタンスをClassicLink を使用して VPC にリンクできます。ClassicLink を使用すると、VPC の 1 つ以上のセキュリ

42

Page 50: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドVPC への EC2-Classic インスタンスのリンク

ティグループを Auto Scaling グループの EC2-Classic インスタンスに関連付けます。これにより、これらのリンクされた EC2-Classic インスタンスと VPC のインスタンス間で、プライベート IP アドレスを使用した通信が有効になります。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「ClassicLink」を参照してください。

Auto Scaling グループ内の EC2-Classic インスタンスを実行している場合は、それらを ClassicLink が有効な VPC にリンクできます。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「VPC へのインスタンスのリンク」を参照してください。別の方法として、Auto Scaling グループを更新して、起動時に EC2-Classic インスタンスを VPC に自動的にリンクする起動設定を使用することもできます。その後、実行中のインスタンスを削除し、Auto Scaling グループで VPC にリンクされている新しいインスタンスを起動します。

VPC にリンクする (コンソール)以下の手順を使用して、指定された VPC に EC2-Classic インスタンスをリンクし、起動設定を使用するように既存の Auto Scaling グループを更新する起動設定を作成します。

EC2-Classic インスタンスを Auto Scaling グループ内で VPC にリンクするには

1. VPC で ClassicLink が有効になっていることを確認します。詳細については、『Linux インスタンス用Amazon EC2 ユーザーガイド』の「ClassicLink が有効な VPC の表示」を参照してください。

2. EC2-Classic インスタンスのリンク先となる VPC のセキュリティグループを作成します。リンクされた EC2-Classic インスタンスと VPC のインスタンス間の通信を制御するルールを追加します。

3. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。4. ナビゲーションペインで、[Launch Configurations(起動設定)] を選択します。5. [Create launch configuration] を選択します。6. [Choose AMI] ページで、AMI を選択します。7. [Choose an Type] ページでインスタンスタイプを選択してから、[Next: Configure details] を選択しま

す。8. [Configure details] ページで、以下を実行します。

a. 起動設定の名前を入力します。b. [Advanced Details] を展開し、必要なIP アドレスタイプを選択して、[Link to VPC] を選択しま

す。c. [VPC] で、ステップ 1 で ClassicLink を有効にした VPC を選択します。d. [セキュリティ グループ] で、ステップ 2 のセキュリティ グループを選択します。e. [Skip to review] を選択します。

9. [Review] ページで、必要な変更を行い、[Create launch configuration] を選択します。[Select anexisting key pair or create a new key pair] フィールドで、オプションを選択し(さらに確認のチェックボックスがあれば選択して)、[Create launch configuration] を選択します。

10. 表示される手順に従って、新しい起動設定を使用する Auto Scaling グループを作成します。必ずネットワークの [Launch into EC2-Classic] を選択してください。それ以外の場合は、[キャンセル] を選択して、以下のように既存の Auto Scaling グループに起動設定を追加します。

a. ナビゲーションペインで、[Auto Scaling Groups] を選択します。b. Auto Scaling グループを選択し、[アクション]、[編集] の順に選択します。c. [Launch Configuration] で、新しい起動設定を選択して [Save] を選択します。

VPC にリンクする (AWS CLI)以下の手順を使用して、指定された VPC に EC2-Classic インスタンスをリンクし、起動設定を使用するように既存の Auto Scaling グループを更新する起動設定を作成します。

43

Page 51: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドVPC への EC2-Classic インスタンスのリンク

Auto Scaling グループの EC2-Classic インスタンスを VPC へリンクするには

1. VPC で ClassicLink が有効になっていることを確認します。詳細については、『Linux インスタンス用Amazon EC2 ユーザーガイド』の「ClassicLink が有効な VPC の表示」を参照してください。

2. EC2-Classic インスタンスのリンク先となる VPC のセキュリティグループを作成します。リンクされた EC2-Classic インスタンスと VPC のインスタンス間の通信を制御するルールを追加します。

3. 次のように create-launch-configuration コマンドを使用して起動設定を作成します。vpd_id の値にはステップ 1 で ClassicLink を有効にした VPC の ID を指定し、group_id にはステップ 2 のセキュリティグループを指定します。

aws autoscaling create-launch-configuration --launch-configuration-name classiclink-config \ --image-id ami_id --instance-type instance_type \ --classic-link-vpc-id vpc_id --classic-link-vpc-security-groups group_id

4. たとえば my-asg のような既存の Auto Scaling グループを、以前のステップで作成した起動設定を使用して更新します。この Auto Scaling グループで起動される新しい EC2-Classic インスタンスが、リンクされた EC2-Classic インスタンスです。次のように update-auto-scaling-group コマンドを使用します。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-configuration-name classiclink-config

または、create-auto-scaling-group を使用して作成した新しい Auto Scaling グループにこの起動設定を使用することもできます。

44

Page 52: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

Auto Scaling グループAuto Scaling グループには、自動スケーリングと管理の目的で論理グループとして扱われる Amazon EC2インスタンスの集合が含まれます。Auto Scaling グループでは、ヘルスチェックの置き換えやスケーリングポリシーなど、Amazon EC2 Auto Scaling の機能も使用できます。Auto Scaling グループでのインスタンス数の維持と自動スケーリングの両方が Amazon EC2 Auto Scaling サービスの主な機能です。

Auto Scaling グループのサイズは、希望する容量として設定したインスタンスの数によって異なります。手動でまたは自動スケーリングを使用して、需要に合わせてサイズを調整できます。

Auto Scaling グループは起動時に、希望する容量に対応するために十分な数のインスタンスを起動します。また、グループのインスタンスに対して定期的にヘルスチェックを実行することで、このインスタンス数を維持します。Auto Scaling グループは、インスタンスに異常が発生した場合でも、一定数のインスタンスを維持し続けます。インスタンスに異常が生じた場合、グループは異常のあるインスタンスを終了し、そのインスタンスを置き換える別のインスタンスを起動します。詳細については、「Auto Scaling インスタンスのヘルスチェック (p. 150)」を参照してください。

スケーリングポリシーを使用して、状況の変化に合わせてグループのインスタンスの数を動的に増減することができます。スケーリングポリシーが有効になっている場合、Auto Scaling グループは、指定された最小容量値と最大容量値の間で、グループの希望する容量を調整し、必要に応じてインスタンスを起動または終了します。スケーリングはスケジュールに従って行うこともできます。詳細については、「AutoScaling グループのスケーリング (p. 90)」を参照してください。

Auto Scaling グループは、オンデマンドインスタンス、スポットインスタンス、またはその両方を起動できます。起動テンプレートを使用するようにグループを設定した場合にのみ、Auto Scaling グループに複数の購入オプションを指定できます。(Amazon EC2 の最新機能を確実に使用できるようにするために、起動設定ではなく起動テンプレートを使用することをお勧めします)。

スポットインスタンスでは、オンデマンド価格と比べて大幅な割引価格で、使われていない Amazon EC2容量を購入できます。詳細については、「Amazon EC2 スポットインスタンス」を参照してください。スポットインスタンスとオンデマンドインスタンスとの主な違いは、スポットインスタンスの料金は需要に応じて変化すること、また、スポットインスタンスの可用性や料金が変化したときに、Amazon EC2が個々のスポットインスタンスを終了できることです。スポットインスタンスが削除されると、AutoScaling グループはグループの希望する容量を維持するために、代わりのインスタンスを起動しようとします。

インスタンスの起動時に複数のアベイラビリティーゾーンを指定した場合は、希望する容量がこれらのアベイラビリティーゾーンに分散されます。スケーリングアクションが発生した場合、Amazon EC2 AutoScaling は指定したすべてのアベイラビリティーゾーン間で容量のバランスを自動的に維持します。

このセクションでは、Auto Scaling グループを作成するための詳細な手順について説明します。AutoScaling グループを初めて使用する場合、Amazon EC2 Auto Scaling で使用されているさまざまな構成要素については、「Amazon EC2 Auto Scaling の使用開始 (p. 13)」から始めてください。

目次• 複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ (p. 46)• 起動テンプレートを使用して Auto Scaling グループを作成する (p. 56)• 起動設定を使用して Auto Scaling グループを作成する (p. 58)• EC2 インスタンスを使用した Auto Scaling グループの作成 (p. 60)• Amazon EC2 起動ウィザードを使用した Auto Scaling グループの作成 (p. 62)• Auto Scaling グループとインスタンスへのタグ付け (p. 63)• Auto Scaling グループでロードバランサーを使用する (p. 67)• Auto Scaling グループのスポットインスタンスの起動 (p. 74)

45

Page 53: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド複数のインスタンスタイプと購入オプションの使用

• Amazon EC2 Auto Scaling のインスタンスの重み付け (p. 75)• インスタンスタイプに関する推奨事項の取得 (p. 81)• 最大インスタンス有効期間に基づいた Auto Scaling インスタンスの置き換え (p. 83)• Auto Scaling グループを 1 つのマルチゾーングループにマージする (p. 85)• Auto Scaling インフラストラクチャの削除 (p. 87)

複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ

1 つの Auto Scaling グループ内で、オンデマンドインスタンスとスポットインスタンスのフリートを起動して自動的にスケーリングできます。スポットインスタンスの使用に対して割引を受けることに加えて、一致するリザーブドインスタンスに対応するインスタンスタイプを指定した場合は、通常のオンデマンドインスタンスの割引価格も適用されます。オンデマンドインスタンスとリザーブドインスタンスの唯一の違いは、リザーブドインスタンスは事前に購入する必要があるということです。これらすべての要素を組み合わせることで、Amazon EC2 インスタンスのコストを最適な方法で削減しながら、アプリケーションに必要な規模とパフォーマンスを確実に得ることができます。

起動テンプレートで一般的な設定パラメータを指定し、Auto Scaling グループの作成時にそのテンプレートを選択します。Auto Scaling グループを設定すると、以下のことができます。

• 起動するインスタンスのオンデマンド容量とスポット容量を指定する• 使用する 1 つ以上のインスタンスタイプを選択します (オプションで、起動テンプレートで指定された

デフォルトのインスタンスタイプを上書きします)。• 各インスタンスタイプに個別の重みを付けます。これが便利なのは、たとえば、インスタンスタイプ別

に異なる vCPU、メモリ、ストレージ、またはネットワーク帯域幅の機能を設定する場合です。• Amazon EC2 Auto Scaling が各購入オプション内のインスタンスタイプ間に容量をどのように配分する

かを定義する

可用性を高めるには、複数のアベイラビリティーゾーンで実行されている複数のインスタンスタイプ間でアプリケーションをデプロイします。使用できるインスタンスタイプは 1 つだけですが、容量不足のインスタンスプールからインスタンスを起動しようとしないよう、いくつかのインスタンスタイプを使用することをお勧めします。スポットインスタンスに対する Auto Scaling グループのリクエストが 1 つのスポットインスタンスプールで落札されない場合は、オンデマンドインスタンスを起動するのではなく、他のスポットインスタンスプールで落札を試みることで、スポットインスタンスのコスト削減を活かせます。

配分戦略以下の配分戦略では、可能なインスタンスタイプから Auto Scaling グループがオンデマンド容量とスポット容量をどのように満たすかを決定しています。

いずれの場合も、Amazon EC2 Auto Scaling はまず、指定されたアベイラビリティーゾーン間でインスタンスの分散バランスを調整します。次に、指定された配分戦略に従ってインスタンスタイプを起動します。

オンデマンドインスタンスオンデマンドインスタンスの配分戦略は prioritized です。Amazon EC2 Auto Scaling は、起動テンプレートのリスト内でのインスタンスタイプの優先度を使用して、オンデマンド容量を満たすときに最初に使用するインスタンスタイプを決定します。

たとえば、3 つの起動テンプレートの優先度を c5.large、c4.large、c3.large と指定したとします。オンデマンドインスタンスが起動されると、Auto Scaling グループは

46

Page 54: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドオンデマンドインスタンスの割合のコントロール

c5.large、c4.large、c3.large の順でオンデマンド容量を満たします。c4.large に使われていないリザーブドインスタンスがある場合は、最高の優先度のインスタンスタイプとして c4.large を指定することで、リザーブドインスタンスに最高の優先度を与えるようにインスタンスタイプの優先度を設定できます。c4.large インスタンスが起動すると、リザーブドインスタンスの料金が発生します。

スポットインスタンスAmazon EC2 Auto Scaling には、スポットインスタンスに使用できる 2 種類の配分戦略があります。

capacity-optimized

Amazon EC2 Auto Scaling は、起動するインスタンスの数に最適な容量のスポットインスタンスプールから、インスタンスを割り当てます。この方法でデプロイすると、予備の EC2 容量を最も効率的に活用できます。

スポットインスタンスでは、価格は需要と供給の長期的な傾向に基づいて時間の経過とともに緩やかに変動しますが、容量はリアルタイムで変動します。capacity-optimized 戦略では、リアルタイムの容量データを調べ、可用性の最も高いプールを予測することで、そのプールからスポットインスタンスを自動的に起動します。この戦略は、作業の再開とチェックポイントの設定に関連する中断のコストが高くなる可能性のあるワークロード (ビッグデータと分析、画像とメディアのレンダリング、機械学習、ハイパフォーマンスコンピューティングなど) に適しています。中断の可能性を低くすることにより、capacity-optimized 戦略ではワークロードの全体的なコストを削減できます。

lowest-price

Amazon EC2 Auto Scaling は、指定した数 (N 個) のスポットインスタンスプールのうち、容量を満たすときに最低単価のプールからインスタンスを割り当てます。

たとえば、4 つのインスタンスタイプと 4 つのアベイラビリティーゾーンを指定した場合、AutoScaling グループは、最大 16 個の異なるスポットインスタンスプールからスポット容量を満たすことができます。配分戦略に 2 つのスポットプール (N = 2) を指定した場合、Auto Scaling グループは、最低単価の 8 個以上のスポットプールからスポット容量を満たすことができます。

まずは、capacity-optimized 配分戦略を選択し、アプリケーションに適した少数のインスタンスタイプを指定することをお勧めします。さらに、インスタンスの起動時に Amazon EC2 Auto Scaling が選択するアベイラビリティーゾーンの範囲を定義できます。

オプションで、スポットインスタンスの上限価格を指定できます。上限価格を指定しない場合、デフォルトの上限価格はオンデマンド価格ですが、スポットインスタンスによって提供される大幅な割引は引き続き受けられます。これらの割引が可能なのは、新しいスポット料金モデルを使用して適用されるスポット料金が安定しているためです。

スポットインスタンスの配分戦略の詳細については、AWS ブログの「Amazon EC2 スポットインスタンスの容量最適化配分戦略の紹介」を参照してください。

オンデマンドインスタンスの割合のコントロールオンデマンドインスタンスとして起動される Auto Scaling グループのインスタンスの割合を完全にコントロールできます。インスタンス容量を常に確保するために、オンデマンドインスタンスとして起動されるグループのインスタンスの割合を指定できます。また、オプションで、起動されるオンデマンドインスタンスのベース数を指定することもできます。オンデマンドインスタンスのベース容量を指定することにした場合、グループがスケールアウトしたときに、Auto Scaling グループは確実にこのベース容量のオンデマンドインスタンスを最初に起動します。ベース容量を超える場合、オンデマンドインスタンスの割合を使用して、起動するオンデマンドインスタンスとスポットインスタンスの数が決まります。オンデマンドインスタンスの割合には、0 から 100 までの任意の数を指定できます。

サイズを増やす際の Auto Scaling グループの動作は以下のようになります。

47

Page 55: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドオンデマンドインスタンスの割合のコントロール

例: スケーリング動作

インスタンスの分散

購入オプション全体の実行中のインスタンスの合計数

  10 20 30 40

例 1        

オンデマンドベース: 10

10 10 10 10

ベースを超えるオンデマンド割合:50%

0 5 10 15

スポットの割合:50%

0 5 10 15

例 2        

オンデマンドベース: 0

0 0 0 0

ベースを超えるオンデマンド割合:0%

0 0 0 0

スポットの割合:100%

10 20 30 40

例 3        

オンデマンドベース: 0

0 0 0 0

ベースを超えるオンデマンド割合:60%

6 12 18 24

スポットの割合:40%

4 8 12 16

例 4        

オンデマンドベース: 0

0 0 0 0

ベースを超えるオンデマンド割合:100%

10 20 30 40

スポットの割合:0%

0 0 0 0

例 5        

オンデマンドベース: 12

10 12 12 12

48

Page 56: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスポットインスタンスのベストプラクティス

インスタンスの分散

購入オプション全体の実行中のインスタンスの合計数

ベースを超えるオンデマンド割合:0%

0 0 0 0

スポットの割合:100%

0 8 18 28

スポットインスタンスのベストプラクティススポットインスタンスをリクエストする Auto Scaling グループを作成する前に、スポットのベストプラクティスを確認してください。リクエストを計画するときにこれらのベストプラクティスを使用して、できるだけ低価格でインスタンスのタイプをプロビジョニングできるようにします。また、以下のことをお勧めします。

• オンデマンド価格であるデフォルトの上限料金を使用します。起動するスポットインスタンスのスポット価格のみを支払います。スポット価格が上限価格以下である場合、リクエストが落札されるかどうかは可用性によります。詳細については、Amazon EC2 Linux インスタンス用ユーザーガイドの「料金表と削減額」を参照してください。

• 複数のインスタンスタイプを使用する Auto Scaling グループを作成します。価格は、各アベイラビリティーゾーンのインスタンスタイプごとに独立して変動するため、インスタンスタイプに対する柔軟性があれば、多くの場合、同じ価格でより多くのコンピューティング性能を得られます。

• 同様に、最もよく使用されているインスタンスタイプだけに制限しないでください。価格は長期の需要に基づいて調整されます。そのため、よく使用されているインスタンスタイプ (最近開始されたインスタンスファミリーなど) の料金はより調整が大きくなる傾向があります。使用されることが少なくなった旧世代のインスタンスタイプを選択すると、コストが下がり、中断が少なくなる傾向があります。

• lowest-price 配分戦略を選択し、ウェブサービスを実行している場合、いずれかのアベイラビリティーゾーンのプールが一時的に使用不可になったときのスポットインスタンスの中断の影響を抑えるために、スポットプール数を多く、たとえば N = 10 に指定することをお勧めします。バッチ処理や他のミッションクリティカルでないアプリケーションを実行している場合は、スポットプール数をより少なく、たとえば N = 2 に指定できます。これにより、アベイラビリティーゾーンあたりで使用可能な最低価格のスポットプールからのみ、スポットインスタンスを確実にプロビジョニングできます。

• スポットインスタンスの中断の通知を使用して、スポットインスタンスのステータスをモニタリングします。たとえば、Amazon SNS トピック、AWS Lambda 関数、または別のターゲットに EC2 スポットの 2 分前警告を自動的に送信するルールを Amazon CloudWatch Events で設定できます。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「スポットインスタンスの中断の通知」および Amazon CloudWatch Events ユーザーガイド を参照してください。

前提条件起動テンプレートは、Auto Scaling グループで使用するように設定されています。詳細については、「Auto Scaling グループの起動テンプレートを作成する (p. 26)」を参照してください。

IAM ユーザーは、ec2:RunInstances アクションを呼び出すアクセス許可がある場合にのみ、起動テンプレートを使用して Auto Scaling グループを作成できます。ユーザーアクセス許可の設定については、「Amazon EC2 Auto Scaling リソースに対するアクセスのコントロール (p. 171)」を参照してください。

49

Page 57: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド複数の購入オプションを使用する Auto Scaling グループの作成

複数の購入オプションを使用する Auto Scaling グループの作成スケーラブルなオンデマンドインスタンスとスポットインスタンスのフリートを作成するには、以下の手順に従います。

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

複数の購入オプションがある Auto Scaling グループを作成するには (新規コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. 画面の上部のナビゲーションバーで、起動テンプレートを作成したときに使用したのと同じ AWS

リージョンを選択します。3. ナビゲーションペインで、[Auto Scaling Groups] を選択します。4. [Create an Auto Scaling group (Auto Scaling グループを作成)] を選択します。5. Choose launch template or configuration のページで、以下を実行します。

a. [Auto Scaling グループ名] にAuto Scaling グループ名を入力します。b. [起動テンプレート] で、既存の起動テンプレートを選択します。c. [起動テンプレートのバージョン] で、スケールアウト時に Auto Scaling グループで使用する起動

テンプレートのバージョン (デフォルト、最新、または特定のバージョン) を選択します。d. 起動テンプレートが、使用する予定のすべてのオプションをサポートしていることを確認し、[次

へ] を選択します。6. 設定の構成ページの [購入のオプションとインスタンスタイプ] で、[Combine purchase options and

instance types (購入のオプションとインスタンスタイプの組み合わせを選択)] を選択します。7. [Instances distribution (インスタンスの分散)] で、次の手順を実行します。

デフォルト設定を維持する場合は、この手順をスキップします。

a. [Optional On-Demand Base (オプションのオンデマンドベース)] で、オンデマンドインスタンスが満たす必要がある Auto Scaling グループの初期容量となるインスタンス最小数を指定します。

b. [On-Demand Percentage Above Base (ベースを超える場合のオンデマンドの割合)] で、オプションのオンデマンドベース数を超える場合の追加容量となるオンデマンドインスタンスとスポットインスタンスの割合を指定します。

c. アベイラビリティーゾーンごとのスポット配分戦略では、容量の最適化 のデフォルト設定を維持することをお勧めします。それ以外の場合は、[Lowest price (最低価格)] を選択し、最低価格のスポットインスタンスプールの数を入場し、多様化します。

8. [インスタンスタイプ] では、開始点として、推奨事項をもとに、起動できるインスタンスのタイプを選択します。それ以外の場合は、インスタンスタイプを削除し、必要に応じ、後で追加します。

9. (オプション) インスタンスタイプの順序を変更するには、矢印を使用します。インスタンスタイプを設定した順序によって、オンデマンドインスタンスの優先度が設定されます。Auto Scaling グループでオンデマンドキャパシティが起動された場合、リストの一番上にあるインスタンスタイプの優先順位が最も高くなります。

10. (オプション) インスタンスの重み付け (p. 75)を使用するには、各インスタンスタイプに、AutoScaling グループの容量に対してカウントされるインスタンスの量に対応する重みを付けます。

11. [ネットワーク] の [VPC] で、起動テンプレートで指定したセキュリティグループの VPC を選択します。インスタンスタイプおよび購入オプションの組み合わせを使用するインスタンスの起動は、EC2-Classic ではサポートされていません。

12. [サブネット] で、指定した VPC 内のサブネットを 1 つ以上選択します。複数のアベイラビリティーゾーンのサブネットを使用することで、高可用性を得られます。Amazon EC2 Auto Scaling を使用し

50

Page 58: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド複数の購入オプションを使用する Auto Scaling グループの作成

た高可用性の詳細については、「複数のアベイラビリティーゾーンへのインスタンスの分散 (p. 6)」を参照してください。

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

または、残りはデフォルトのままにして、[Skip to Review (確認をスキップ)] を選択します。14. Specify load balancing and health checks ページで、次のオプションを構成し、[次へ] を選択します。

a. (オプション) Elastic load balancer (ELB) ロードバランサーで Amazon EC2 インスタンスを登録する場合は、[Enable load balancing (負荷分散を有効にする)] を選択します。Application LoadBalancer または Network Load Balancer をアタッチするには、既存のターゲットグループを選択するか、新しいターゲットグループを作成します。Classic Load Balancer をアタッチするには、既存のロードバランサーを選択するか、新しいロードバランサーを作成します。

b. (オプション) ELB ヘルスチェックを有効にするには、[ヘルスチェック] の [Health check type (ヘルスチェックタイプ)] にある [ELB] を選択します。

c. (オプション) [Health check grace period (ヘルスチェックの猶予期間)] に、Amazon EC2 AutoScaling がインスタンスの状態を確認するまでの時間を入力します。この目的は、Amazon EC2Auto Scaling がインスタンスを正常でないとマークし、時間が来る前にインスタンスを終了するのを防ぐためです。デフォルトは 300 秒です。

15. Configure group size and scaling policies ページで、次のオプションを設定し、[次へ] を選択します。

a. (オプション) [希望する容量] に、起動するインスタンスの初期数を入力します。この数値を最小容量または最大容量制限の範囲外の値に変更する場合は、[最小容量] または [最大容量] の値を更新する必要があります。詳細については、Auto Scaling グループの容量制限の設定 (p. 91) を参照してください。

b. (オプション) Auto Scaling グループのサイズを自動的に拡大縮小するには、[ターゲットの追跡スケーリングポリシー] を選択し、指示に従います。

c. (オプション) [Instance scale-in protection (インスタンスのスケールイン保護)] で、インスタンスのスケールイン保護を有効にするかどうかを選択します。詳細については、「インスタンスのスケールイン保護 (p. 130)」を参照してください。

16. (オプション) 通知を受け取るには、[通知の追加] を選択し、通知を設定してから [次へ] を選択します。詳細については、Auto Scaling グループスケーリング時の Amazon SNS 通知の取得 (p. 164) を参照してください。

17. (オプション) タグを追加するには、[タグの追加] を選択し、各タグのタグキーと値を指定し、[次へ] を選択します。詳細については、Auto Scaling グループとインスタンスへのタグ付け (p. 63) を参照してください。

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

複数の購入オプションで Auto Scaling グループを作成する (古いコンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. 画面の上部のナビゲーションバーで、起動テンプレートを作成したときに使用したのと同じ AWS

リージョンを選択します。3. ナビゲーションペインで、[Auto Scaling Groups] を選択します。4. [Auto Scaling グループの作成] を選択します。5. [Launch Template (起動テンプレート)] で、起動テンプレートを選択し、[次のステップ] を選択しま

す。6. [Auto Scaling グループの詳細の設定] ページの [グループ名] に、Auto Scaling グループの名前を入力

します。7. [起動テンプレートのバージョン] で、スケールアウト時に Auto Scaling グループで使用する起動テン

プレートのバージョン (デフォルト、最新、または特定のバージョン) を選択します。8. オンデマンド購入オプションとスポット購入オプションの両方を使用して複数のインスタンスタイプ

でインスタンスを起動するには、[Fleet Composition (フリートの構築)] で [Combine purchase optionsand instances (購入オプションおよびインスタンスを組み合わせる)] を選択します。

51

Page 59: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド複数の購入オプションを使用する Auto Scaling グループの作成

9. [インスタンスタイプ] で、以下を実行します。

a. (オプション) 優先させるインスタンスタイプを選択します。デフォルトでは、選択した起動テンプレートによって 1 つのインスタンスタイプが指定されますが、別のインスタンスタイプを指定する必要がある場合はそのインスタンスタイプを変更できます。複数のインスタンスタイプを選択する場合、インスタンスタイプを追加する順序によって、オンデマンドインスタンスの優先度が設定されます。Auto Scaling グループでオンデマンドキャパシティが起動された場合、リストの一番上にあるインスタンスタイプの優先順位が最も高くなります。それ以外で、インスタンスタイプを今は削除し、必要に応じて後で追加できます。

b. (オプション) インスタンスの重み付け (p. 75)を使用するには、各インスタンスタイプに、AutoScaling グループの容量に対してカウントされるインスタンスの量に対応する重みを付けます。

10. [Instances Distribution (インスタンスの分散)] で、デフォルト設定をそのまま使用するか編集するかを選択します。[Use the default settings to get started quickly (デフォルト設定を使用してすぐに使用を開始)] チェックボックスをオフにすると、デフォルト設定を編集できるようになります。

11. デフォルト設定を編集することを選択した場合は、以下の情報を入力します。

• [最大スポット料金] で [デフォルトを使用] を選択して、最大スポット価格をオンデマンド価格に制限します。あるいは、[Set your maximum price (上限価格の設定)] を選択し、スポットインスタンスの 1 時間あたりインスタンスあたりに支払う上限価格を指定する値を入力します。

• [Spot Allocation Strategy (スポット配分戦略)] のデフォルトは、[Launch Spot Instances optimallybased on the available Spot capacity per Availability Zone (アベイラビリティーゾーンあたりで使用可能なスポット容量に基づいて最適なスポットインスタンスを起動)] です。代わりに最低価格戦略を使用するには、[Diversify Spot Instances across your N lowest priced instance types perAvailability Zone (アベイラビリティーゾーンあたりで最低価格の N 個のインスタンスタイプ間でスポットインスタンスを分散)] を選択し、使用するスポットプールの数を入力するか、デフォルト (2)を受け入れます。

• [Optional On-Demand Base (オプションのオンデマンドベース)] で、オンデマンドインスタンスが満たす必要がある Auto Scaling グループの初期容量となるインスタンス数を指定します。

• [On-Demand Percentage Above Base (ベースを超える場合のオンデマンドの割合)] で、オンデマンドベース数 (オプション) を超える場合の追加容量となるオンデマンドインスタンスとスポットインスタンスの割合を指定します。

12. [グループサイズ] に、Auto Scaling グループのインスタンスの最初の値を入力します。13. [Network (ネットワーク)] で、Auto Scaling グループの VPC を選択します。

Note

インスタンスタイプおよび購入オプションの組み合わせを使用するインスタンスの起動は、EC2-Classic ではサポートされていません。

14. [サブネット] で、指定した VPC 内のサブネットを 1 つ以上選択します。複数のアベイラビリティーゾーンのサブネットを使用することで、高可用性を得られます。Amazon EC2 Auto Scaling を使用した高可用性の詳細については、「複数のアベイラビリティーゾーンへのインスタンスの分散 (p. 6)」を参照してください。

15. (オプション) Amazon EC2 インスタンスをロードバランサーに登録するには、[高度な詳細]、[Receivetraffic from one or more load balancers (1 つ以上のロードバランサーからのトラフィックの受信)] の順に選択してから、1 つ以上の クラシックロードバランサー またはターゲットグループを選択します。

16. [Next: Configure scaling policies] を選択します。17. [Configure scaling policies (スケーリングポリシーの設定)] ページで、以下のいずれかのオプションを

選択してから、[Next: Configure Notifications (次のステップ: 通知の設定)] を選択します。

• 必要に応じて Auto Scaling グループのサイズを手動で調整するには、[Keep this group at its initialsize (このグループを最初のサイズに維持する)] を選択します。詳細については、「Amazon EC2Auto Scaling の手動スケーリング (p. 92)」を参照してください。

• 指定した条件に基づいて Auto Scaling グループのサイズを自動的に調整するには、[Use scalingpolicies to adjust the capacity of this group (スケーリングポリシーを使用してこのグループの容量を

52

Page 60: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド複数の購入オプションを使用する Auto Scaling グループの作成

調整)] を選択して、指示に従います。詳細については、「スケーリングポリシーの設定 (p. 108)」を参照してください。

18. (省略可能) 通知を受け取るには、[Add notification] を選択し、通知を設定してから [Next: ConfigureTags] を選択します。

19. (省略可能) タグを追加するには、[Edit tags] を選択し、各タグのタグキーと値を指定してから、[Review] を選択します。

または、後でタグを追加することもできます。詳細については、「Auto Scaling グループとインスタンスへのタグ付け (p. 63)」を参照してください。

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

コマンドラインで複数の購入オプションを使用する Auto Scaling グループを作成するには

以下のコマンドのいずれかを使用できます。

• create-auto-scaling-group (AWS CLI)• New-ASAutoScalingGroup (AWS Tools for Windows PowerShell)

例: capacity-optimized 配分戦略を使用してスポットインスタンスを起動する

ここで示している create-auto-scaling-group コマンドは、以下を指定する Auto Scaling グループを作成します。

• オンデマンドインスタンスとして起動するグループの割合 (0) とオンデマンドインスタンスの初期のベース数 (1)

• 優先度に従って起動するインスタンスタイプ (c3.large、c4.large、c5.large)• インスタンスを起動するサブネット (subnet-5ea0c127、subnet-6194ea3b、subnet-c934b782)。それぞれ異なるアベイラビリティーゾーンに対応

• 起動テンプレート (my-launch-template) とそのバージョン ($Default)

Amazon EC2 Auto Scaling がオンデマンド容量を満たそうとするとき、まず c3.large インスタンスタイプを起動します。スポットインスタンスは、スポットインスタンスの容量に基づいて、各アベイラビリティーゾーンの最適なスポットプールから取得されます。

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

以下に示しているのは、config.json ファイルの例です。

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Default" }, "Overrides": [ { "InstanceType": "c3.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "c5.large"

53

Page 61: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド複数の購入オプションを使用する Auto Scaling グループの作成

} ] }, "InstancesDistribution": { "OnDemandBaseCapacity": 1, "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "capacity-optimized" } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags": []}

例: 2 つのプール間での lowest-price 配分戦略を使用してスポットインスタンスを起動する

ここで示している create-auto-scaling-group コマンドは、以下を指定する Auto Scaling グループを作成します。

• オンデマンドインスタンスとして起動するグループの割合 (50)。オンデマンドインスタンスの初期のベース数は指定しない

• 優先度に従って起動するインスタンスタイプ (c3.large、c4.large、c5.large)• インスタンスを起動するサブネット (subnet-5ea0c127、subnet-6194ea3b、subnet-c934b782)。それぞれ異なるアベイラビリティーゾーンに対応

• 起動テンプレート (my-launch-template) とそのバージョン ($Latest)

Amazon EC2 Auto Scaling がオンデマンド容量を満たそうとするとき、まず c3.large インスタンスタイプを起動します。スポット容量を得るために、Amazon EC2 Auto Scaling は各アベイラビリティーゾーンで最低価格の 2 つのプールのスポットインスタンスを均等に起動しようとします。

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

以下に示しているのは、config.json ファイルの例です。

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "c3.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "c5.large" } ] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 50, "SpotAllocationStrategy": "lowest-price", "SpotInstancePools": 2

54

Page 62: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド複数の購入オプションを使用する Auto Scaling グループの作成

} }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags": []}

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

次の describe-auto-scaling-groups コマンドを使用します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg

以下の応答の例は、希望する容量が 3 で、グループには実行中のインスタンスが 3 つあることを示しています。

{ "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "ServiceLinkedRoleARN": "arn", "TargetGroupARNs": [], "SuspendedProcesses": [], "DesiredCapacity": 3, "MixedInstancesPolicy": { "InstancesDistribution": { "SpotAllocationStrategy": "lowest-price", "OnDemandPercentageAboveBaseCapacity": 50, "OnDemandAllocationStrategy": "prioritized", "SpotInstancePools": 2, "OnDemandBaseCapacity": 0 }, "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Latest", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "Overrides": [ { "InstanceType": "c3.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "c5.large" } ] } }, "EnabledMetrics": [], "Tags": [], "AutoScalingGroupName": "my-asg", "DefaultCooldown": 300, "MinSize": 1, "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": {

55

Page 63: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド起動テンプレートを使用してグループを作成する

"LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0aae8709d49eeba4f", "HealthStatus": "Healthy", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2b", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c43f6003841d2d2b", "HealthStatus": "Healthy", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2c", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0feb4cd6677d39903", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], "MaxSize": 5, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "HealthCheckGracePeriod": 0, "TerminationPolicies": [ "Default" ], "LoadBalancerNames": [], "CreatedTime": "2019-02-17T02:29:12.853Z", "AvailabilityZones": [ "us-west-2a", "us-west-2b", "us-west-2c" ], "HealthCheckType": "EC2", "NewInstancesProtectedFromScaleIn": false } ]}

その他の例については、「Amazon EC2 Auto Scaling のインスタンスの重み付け (p. 75)」を参照してください。

起動テンプレートを使用して Auto Scaling グループを作成する

Auto Scaling グループを作成する際、Amazon EC2 インスタンス、そのインスタンスのサブネット、およびインスタンスの初期数を設定するために必要な情報を指定する必要があります。

56

Page 64: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド起動テンプレートを使用してグループを作成する

Amazon EC2 インスタンスを設定するときは、起動設定、起動テンプレート、または EC2 インスタンスを指定できます。以下の手順では、起動テンプレートを使用して Auto Scaling グループを作成する方法について説明します。

起動テンプレートを使用して、起動テンプレートと、グループが EC2 インスタンスの起動に使用する起動テンプレートの特定のバージョンを選択します。これらの選択はグループを更新することでいつでも変更できます。また、スケールアウトイベントが発生した際に Auto Scaling グループが起動テンプレートのデフォルトバージョンまたは最新バージョンのいずれかを動的に選択するように設定できます。たとえば、起動テンプレートのデフォルトバージョンを動的に選択するように Auto Scaling グループを設定します。EC2 インスタンスの設定を、グループによって起動するように変更するには、起動テンプレートの新しいデフォルトバージョンを作成または指定します。

前提条件

• EC2 インスタンスを起動するために必要なすべてのパラメータを含む既存の起動テンプレートがあること。これらのパラメータと、Auto Scaling グループで使用する起動テンプレートの作成時に適用する制限については、「Auto Scaling グループの起動テンプレートを作成する (p. 26)」を参照してください。

• 起動テンプレートを使用して Auto Scaling グループを作成するための、また、インスタンス用の EC2リソースを作成するための IAM アクセス許可が必要です。詳細については、「Amazon EC2 AutoScaling リソースに対するアクセスのコントロール (p. 171)」を参照してください。

起動テンプレートを使用して Auto Scaling グループを作成するには (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. 画面の上部のナビゲーションバーで、起動テンプレートを作成したときに使用したのと同じ AWS

リージョンを選択します。3. ナビゲーションペインで、[Auto Scaling Groups] を選択します。4. [Auto Scaling グループの作成] を選択します。5. [Launch Template (起動テンプレート)] で、起動テンプレートを選択し、[次のステップ] を選択しま

す。6. [Auto Scaling グループの詳細の設定] ページの [グループ名] に、Auto Scaling グループの名前を入力

します。7. [起動テンプレートのバージョン] で、スケールアウト時に Auto Scaling グループで使用する起動テン

プレートのバージョン (デフォルト、最新、または特定のバージョン) を選択します。8. 起動テンプレートで指定された EC2 インスタンスタイプと購入オプションを使用するには、[Fleet

Composition (フリートの構築)] で、[Adhere to the launch template (起動テンプレートに準拠する)] を選択します。

Note

あるいは、複数のインスタンスタイプでインスタンスを起動するには、[Combine purchaseoptions and instances (購入オプションおよびインスタンスを組み合わせる)] を選択します。詳細については、「複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ (p. 46)」を参照してください。

9. [グループサイズ] に、Auto Scaling グループのインスタンスの最初の値を入力します。10. [Network (ネットワーク)] で、Auto Scaling グループの VPC を選択します。11. [サブネット] で、指定した VPC 内のサブネットを 1 つ以上選択します。複数のアベイラビリティー

ゾーンのサブネットを使用することで、高可用性を得られます。Amazon EC2 Auto Scaling を使用した高可用性の詳細については、「複数のアベイラビリティーゾーンへのインスタンスの分散 (p. 6)」を参照してください。

12. (オプション) Amazon EC2 インスタンスをロードバランサーに登録するには、[高度な詳細]、[Receivetraffic from one or more load balancers (1 つ以上のロードバランサーからのトラフィックの受信)] の順に選択してから、1 つ以上の クラシックロードバランサー またはターゲットグループを選択します。

57

Page 65: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド起動設定を使用してグループを作成する

13. [Next: Configure scaling policies] を選択します。14. [Configure scaling policies (スケーリングポリシーの設定)] ページで、以下のいずれかのオプションを

選択してから、[Next: Configure Notifications (次のステップ: 通知の設定)] を選択します。

• 必要に応じて Auto Scaling グループのサイズを手動で調整するには、[Keep this group at its initialsize (このグループを最初のサイズに維持する)] を選択します。詳細については、「Amazon EC2Auto Scaling の手動スケーリング (p. 92)」を参照してください。

• 指定した条件に基づいて Auto Scaling グループのサイズを自動的に調整するには、[Use scalingpolicies to adjust the capacity of this group (スケーリングポリシーを使用してこのグループの容量を調整)] を選択して、指示に従います。詳細については、「スケーリングポリシーの設定 (p. 108)」を参照してください。

15. (省略可能) 通知を受け取るには、[Add notification] を選択し、通知を設定してから [Next: ConfigureTags] を選択します。

16. (省略可能) タグを追加するには、[Edit tags] を選択し、各タグのタグキーと値を指定してから、[Review] を選択します。

または、後でタグを追加することもできます。詳細については、「Auto Scaling グループとインスタンスへのタグ付け (p. 63)」を参照してください。

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

コマンドラインを使用して Auto Scaling グループを作成するには

以下のコマンドのいずれかを使用できます。

• create-auto-scaling-group (AWS CLI)• New-ASAutoScalingGroup (AWS Tools for Windows PowerShell)

起動設定を使用して Auto Scaling グループを作成する

Auto Scaling グループを作成する際、Amazon EC2 インスタンス、そのインスタンスのサブネット、およびインスタンスの初期数を設定するために必要な情報を指定する必要があります。

Important

Amazon EC2 インスタンスを設定するときは、起動テンプレート、起動設定、または EC2 インスタンスを指定できます。Amazon EC2 の最新機能を使用できるように、起動テンプレートを使用することをお勧めします。詳細については、「テンプレートの起動 (p. 26)」を参照してください。

次の手順では、起動設定を使用して Auto Scaling グループを作成する方法を説明します。起動設定は作成後に変更することはできませんが、Auto Scaling グループの起動設定を置き換えることはできます。詳細については、「Auto Scaling グループの起動設定を変更する (p. 39)」を参照してください。

前提条件

起動設定を作成します。詳細については、「起動設定を作成する (p. 34)」を参照してください。

起動設定を使用して Auto Scaling グループを作成するには (コンソール)

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

58

Page 66: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド起動設定を使用してグループを作成する

2. 画面の上部のナビゲーションバーで、起動設定を作成したときに使用したのと同じ AWS リージョンを選択します。

3. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。4. [Auto Scaling グループの作成] を選択します。5. [Auto Scaling グループの作成] ページで、[Launch Configuration (起動設定)] を選択し、既存の起動設

定を選択して、[次のステップ] を選択します。

Note

起動設定がない場合、起動設定を作成するように求められます。作成したら、Auto Scalingグループ作成の続く手順に進むことができます。

6. [Configure Auto Scaling group details (Auto Scaling グループ詳細の設定)] ページで、以下を実行します。

a. [グループ名] に Auto Scaling グループの名前を入力します。b. [グループサイズ] に、Auto Scaling グループのインスタンスの最初の値を入力します。c. [Network (ネットワーク)] で、Auto Scaling グループの VPC を選択します。d. [サブネット] で、VPC 内のサブネットを 1 つ以上選択します。複数のアベイラビリティーゾーン

のサブネットを使用することで、高可用性を得られます。Amazon EC2 Auto Scaling を使用した高可用性の詳細については、「複数のアベイラビリティーゾーンへのインスタンスの分散 (p. 6)」を参照してください。

e. (オプション) Amazon EC2 インスタンスをロードバランサーに登録するには、[高度な詳細]、[Receive traffic from one or more load balancers (1 つ以上のロードバランサーからのトラフィックの受信)] の順に選択してから、1 つ以上の クラシックロードバランサー またはターゲットグループを選択します。

f. [Next: Configure scaling policies] を選択します。7. [Configure scaling policies (スケーリングポリシーの設定)] ページで、以下のいずれかのオプションを

選択してから、[Next: Configure Notifications (次のステップ: 通知の設定)] を選択します。

• 必要に応じて Auto Scaling グループのサイズを手動で調整するには、[Keep this group at its initialsize (このグループを最初のサイズに維持する)] を選択します。詳細については、「Amazon EC2Auto Scaling の手動スケーリング (p. 92)」を参照してください。

• 指定した条件に基づいて Auto Scaling グループのサイズを自動的に調整するには、[Use scalingpolicies to adjust the capacity of this group (スケーリングポリシーを使用してこのグループの容量を調整)] を選択して、指示に従います。詳細については、「スケーリングポリシーの設定 (p. 108)」を参照してください。

8. (省略可能) 通知を受け取るには、[Add notification] を選択し、通知を設定してから [Next: ConfigureTags] を選択します。

9. (省略可能) タグを追加するには、[Edit tags] を選択し、各タグのタグキーと値を指定してから、[Review] を選択します。

または、後でタグを追加することもできます。詳細については、「Auto Scaling グループとインスタンスへのタグ付け (p. 63)」を参照してください。

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

コマンドラインを使用して Auto Scaling グループを作成するには

以下のコマンドのいずれかを使用できます。

• create-auto-scaling-group (AWS CLI)• New-ASAutoScalingGroup (AWS Tools for Windows PowerShell)

59

Page 67: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドEC2 インスタンスを使用したグループの作成

EC2 インスタンスを使用した Auto Scaling グループの作成

Auto Scaling グループを作成する際、Amazon EC2 インスタンス、そのインスタンスのサブネット、およびインスタンスの初期数を設定するために必要な情報を指定する必要があります。

Amazon EC2 インスタンスを設定するときは、起動設定、起動テンプレート、または EC2 インスタンスを指定できます。次の手順では、EC2 インスタンスを使用して Auto Scaling グループを作成する方法を説明します。起動設定や起動テンプレートを使用するには、「起動設定を使用して Auto Scaling グループを作成する (p. 58)」または「起動テンプレートを使用して Auto Scaling グループを作成する (p. 56)」を参照してください。

EC2 インスタンスを使用して Auto Scaling グループを作成すると、Amazon EC2 Auto Scaling によって起動設定が作成され、Auto Scaling グループに関連付けられます。この起動設定は Auto Scaling グループと同じ名前であり、AMI ID、インスタンスタイプ、およびアベイラビリティーゾーンなどの属性が指定されたインスタンスから取得されます。

制約事項

次に EC2 インスタンスから Auto Scaling グループを作成する際の制限事項を示します。

• 特定されたインスタンスにタグが指定されている場合、そのタグは新しい Auto Scaling グループのTags 属性にはコピーされません。

• Auto Scaling グループにはインスタンスを起動するために使用される AMI のブロックデバイスマッピングが含まれます。インスタンスが起動した後にアタッチされるブロックのデバイスは含まれません。

• 識別されたインスタンスが 1 つ以上のロードバランサーに登録されている場合、このロードバランサーの情報は新しい Auto Scaling グループのロードバランサーあるいはターゲットグループ属性にコピーされません。

前提条件

開始する前に、Amazon EC2 コンソールまたは describe-instances コマンド (AWS CLI) を使用して EC2インスタンスの ID を確認します。EC2 インスタンスは以下の基準を満たす必要があります。

• インスタンスが、Auto Scaling グループを作成するアベイラビリティーゾーン内にあること。• インスタンスが他の Auto Scaling グループのメンバーではないこと。• インスタンスが running 状態であること。• インスタンスの起動に使用する AMI が引き続き存在していること。

目次• EC2 インスタンスからの Auto Scaling グループの作成 (コンソール) (p. 60)• EC2 インスタンスからの Auto Scaling グループの作成 (AWS CLI) (p. 61)

EC2 インスタンスからの Auto Scaling グループの作成 (コンソール)コンソールを使用して実行中の EC2 インスタンスから Auto Scaling グループを作成し、新しい AutoScaling グループにインスタンスを追加できます。詳細については、「Auto Scaling グループへの EC2 インスタンスのアタッチ (p. 94)」を参照してください。

60

Page 68: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドEC2 インスタンスからの Auto

Scaling グループの作成 (AWS CLI)

EC2 インスタンスからの Auto Scaling グループの作成 (AWS CLI)次の create-auto-scaling-group コマンドを使用して、EC2 インスタンス i-7f12e649 から Auto Scalingグループ my-asg-from-instance を作成します。

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg-from-instance \ --instance-id i-7f12e649 --min-size 1 --max-size 2 --desired-capacity 2

以下の describe-auto-scaling-groups コマンドを使用して、Auto Scaling グループを定義します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg-from-instance

次のレスポンスの例は、グループの希望する容量が 2 であり、グループには実行中のインスタンスが 2 つあり、起動設定の名前が my-asg-from-instance であることを示しています。

{ "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "HealthCheckGracePeriod": 0, "SuspendedProcesses": [], "DesiredCapacity": 2, "Tags": [], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg-from-instance", "DefaultCooldown": 300, "MinSize": 1, "Instances": [ { "InstanceId": "i-6bd79d87", "AvailabilityZone": "us-west-2a", "HealthStatus": "Healthy", "LifecycleState": "InService", "LaunchConfigurationName": "my-asg-from-instance" }, { "InstanceId": "i-6cd79d80", "AvailabilityZone": "us-west-2a", "HealthStatus": "Healthy", "LifecycleState": "InService", "LaunchConfigurationName": "my-asg-from-instance" } ], "MaxSize": 2, "VPCZoneIdentifier": "subnet-6bea5f06", "TerminationPolicies": [ "Default" ], "LaunchConfigurationName": "my-asg-from-instance", "CreatedTime": "2014-12-29T16:14:50.397Z", "AvailabilityZones": [ "us-west-2a" ], "HealthCheckType": "EC2" } ]}

61

Page 69: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド起動ウィザードを使用してグループを作成する

次の describe-launch-configurations コマンドを使用して、起動設定 my-asg-from-instance について説明します。

aws autoscaling describe-launch-configurations --launch-configuration-names my-asg-from-instance

Amazon EC2 起動ウィザードを使用した AutoScaling グループの作成

起動設定と Auto Scaling グループを一度に作成するには、Amazon EC2 起動ウィザードを使用します。これは、複数のインスタンスを起動する場合、Amazon EC2 起動ウィザードで既に選択した設定から新しい起動設定と Auto Scaling グループを作成するときに役立ちます。このオプションは、既存の起動設定を使用して Auto Scaling グループを作成する場合には使えません。

起動ウィザードを使用して起動設定と Auto Scaling グループを作成するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ダッシュボードから、[Launch Instance] を選択します。3. AMI を選択し、次のページでインスタンスタイプを選択し、[Next: Configure Instance Details] を選択

します。4. [インスタンス数] で、起動するインスタンスの数を入力し、[Auto Scaling グループに作成する] を選択

します。このページでは他の設定の詳細を追加する必要はありません。5. 確認ページで、[Create Launch Configuration] を選択します。6. 起動設定ウィザードのステップ 3 に切り替わります。Amazon EC2 起動ウィザードで行った選択に基

づいて、AMI およびインスタンスタイプは既に選択されています。起動設定の名前を入力し、必要に応じてその他の設定も構成した後、[Next: Add Storage] を選択します。

7. 追加ボリュームを設定した後、[Next: Configure Security Group] を選択します。8. 新しいセキュリティグループを作成するか、既存のグループを選択した後、[Review] を選択します。9. 起動設定の詳細を確認した後、[Create launch configuration] を選択し、キーペアを選択して起動設定

を作成します。10. [Auto Scaling グループ詳細の設定] ページでは、作成した起動設定が既に選択されており、Amazon

EC2 起動ウィザードで指定したインスタンスの数が [Group size (グループサイズ)] に入力されています。グループの名前を入力し、VPC とサブネット (必要な場合) を指定した後、[Next: Configurescaling policies] を選択します。

11. [スケーリングポリシーの設定] ページで、以下のいずれかのオプションを選択してから、[Review (確認)] を選択します。

• 必要に応じて Auto Scaling グループのサイズを手動で調整するには、[Keep this group at its initialsize (このグループを最初のサイズに維持する)] を選択します。詳細については、「Amazon EC2Auto Scaling の手動スケーリング (p. 92)」を参照してください。

• 指定した条件に基づいて Auto Scaling グループのサイズを自動的に調整するには、[Use scalingpolicies to adjust the capacity of this group (スケーリングポリシーを使用してこのグループの容量を調整)] を選択して、指示に従います。詳細については、「スケーリングポリシーの設定 (p. 108)」を参照してください。

12. [Review] ページでは、オプションでタグや通知を追加したり、他の設定の詳細を編集したりできます。終了したら、[Auto Scaling グループの作成] を選択します。

62

Page 70: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループとインスタンスへのタグ付け

Auto Scaling グループとインスタンスへのタグ付けAuto Scaling グループは、タグとして各グループに独自のメタデータを割り当てることで整理および管理できます。タグごとにキーと値を指定します。キーとしては、一般的なカテゴリの「project」 (プロジェクト)、「owner」 (所有者)、「environment」 (環境) などを特定の関連値と共に指定できます。たとえば、テスト環境と本番環境を区別するために、「environment」のキーを持つタグを各 Auto Scaling グループに割り当てることができます。 「test」という値を使用してテスト環境を、「production」で本番稼働用環境を示します。Auto Scaling グループを追跡するのに役立つように、一貫した一連のタグを使用することをお勧めします。

さらに、Auto Scaling グループから、起動する Amazon EC2 インスタンスにタグを付けることができます。インスタンスにタグを付けることにより、AWS 請求書でインスタンスのコスト配分をタグごとに確認できます。詳細については、AWS Billing and Cost Management ユーザーガイド の「コスト配分タグの使用」を参照してください。

Auto Scaling グループを作成するときに、1 つ以上のタグを追加できます。既存の Auto Scaling グループのタグを追加、一覧表示、編集、または削除することもできます。

タグを作成、編集、または削除するためのアクセス許可をアカウント内のどの IAM ユーザーおよびグループが持つかをコントロールすることもできます。詳細については、「Amazon EC2 Auto Scaling リソースに対するアクセスのコントロール (p. 171)」を参照してください。ただし、ユーザーが Auto Scaling グループに対してタグ付けオペレーションを実行することを制限するポリシーは、インスタンスの起動後にタグを手動で変更することを禁止しません。Amazon EC2 の IAM ポリシーについては、Linux インスタンス用 Amazon EC2 ユーザーガイド の「Amazon EC2 リソースへのアクセスのコントロール」を参照してください。

Important

起動テンプレートでタグを指定して、インスタンスにタグを追加することもできます。ただし、インスタンスのタグに使用するキーが重複しないようにしてください。重複する場合、AmazonEC2 Auto Scaling では、起動テンプレートで指定したタグの値が、Auto Scaling グループで指定された同じキーの値で上書きされます。起動テンプレートでタグを指定する方法については、「Auto Scaling グループの起動テンプレートを作成する (p. 26)」参照してください。起動テンプレートでタグを指定して、Amazon EBS ボリュームの作成時に、ボリュームにタグを追加することもできます。

目次• タグの制限 (p. 63)• タグ付けのライフサイクル (p. 64)• Auto Scaling グループのタグの追加または変更 (p. 64)• タグの削除 (p. 66)

タグの制限タグには以下のような基本制限があります。

• リソースあたりのタグの最大数は 50 です。• 単一の呼び出しを使用して追加または削除できるタグの最大数は 25 です。• キーの最大長は Unicode 文字で 128 文字です。• 値の最大長は Unicode 文字で 256 文字です。• タグのキーと値は大文字と小文字が区別されます。• タグの名前または値に aws: プレフィックスは使用しないでください。このプレフィックスは AWS 用

に予約されています。このプレフィックスが含まれるタグの名前または値は編集または削除できません。これらは Auto Scaling グループあたりのタグ数の制限に対して計算されません。

63

Page 71: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドタグ付けのライフサイクル

タグ付けのライフサイクルAmazon EC2 インスタンスにタグを付けることを選択した場合、タグは以下のように管理されます。

• ほとんどの場合、Auto Scaling グループがインスタンスを起動すると、リソースの作成後ではなく作成中に、インスタンスにタグが追加されます。• 例外は、起動設定を使用してスポットインスタンスを起動する場合です。このシナリオでは、イン

スタンスが Pending ライフサイクル状態にある間に Auto Scaling グループによってタグが追加されます。ライフサイクルフックがある場合は、インスタンスが Pending:Wait ライフサイクル状態になったときにタグが使用可能になります。詳細については、「Auto Scaling ライフサイクル (p. 7)」を参照してください。Auto Scaling グループで、スポットインスタンスを起動する同じ API コールの一環として、インスタンスにタグを追加する必要がある場合は、起動テンプレートへの移行を検討してください。詳細については、「テンプレートの起動 (p. 26)」を参照してください。

• Auto Scaling グループは、aws:autoscaling:groupName キーと Auto Scaling グループ名値を持つタグをインスタンスに自動的に追加します。

• 既存のインスタンスをアタッチするときに、Auto Scaling グループはタグをインスタンスに追加し、同じタグキーを持つ既存のタグを上書きします。さらに、キーが aws:autoscaling:groupName で、値が Auto Scaling グループ名のタグが追加されます。

• Auto Scaling グループからインスタンスからデタッチした場合は、aws:autoscaling:groupName タグのみが削除されます。

• 手動でスケールインするか、Auto Scaling グループが自動的にスケールインする場合、削除中のインスタンスからすべてのタグが削除されます。

Auto Scaling グループのタグの追加または変更Auto Scaling グループにタグを追加する際、Auto Scaling グループで起動するインスタンスに追加するかどうかを指定できます。タグを変更する場合は、変更後にその Auto Scaling グループで起動されたインスタンスには更新されたタグのバージョンが追加されます。Auto Scaling グループのタグを作成または変更しても、これらの変更内容は既に Auto Scaling グループで実行中のインスタンスには加えられません。

目次• タグを追加または変更する (コンソール) (p. 64)• タグを追加または変更する (AWS CLI) (p. 65)

タグを追加または変更する (コンソール)Amazon EC2 コンソールを使用して以下の操作を行います。

• 新しい Auto Scaling グループの作成時にタグを追加する• 既存の Auto Scaling グループのタグを追加、変更、または削除する

Auto Scaling グループの作成時にタグを付けるには

Amazon EC2 コンソールを使用して Auto Scaling グループを作成する場合、Auto Scaling グループの作成ウィザードの [Configure Tags (タグの設定)] ページでタグのキーと値を指定できます。Auto Scaling グループで起動されるインスタンスにタグを付けるには、タグの [Tag New Instances (新しいインスタンスのタグ付け)] オプションが選択されたままにしてください。タグを付けない場合は、このオプションの選択を解除できます。

既存の Auto Scaling グループのタグを追加または変更するには

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

64

Page 72: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループのタグの追加または変更

2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. リストから既存のグループを選択します。4. [Tags (タグ)] タブで、[タグの追加/編集] を選択します。[Auto Scaling グループタグの追加/編集] ペー

ジに Auto Scaling グループに対するすべての既存のタグが一覧表示されます。5. 既存のタグを変更するには、[Key] と [Value] フィールドを編集します。6. 新しいタグを追加するには、[Add tag] を選択し、[Key] と [Value] フィールドを選択します。[Tag

New Instances] を選択したままにして Auto Scaling グループで起動されるインスタンスに自動的にタグを追加することも、選択解除して追加しないこともできます。

7. タグの追加を完了したら、[Save] を選択します。

タグを追加または変更する (AWS CLI)以下の例では、AWS CLI を使用して Auto Scaling グループを作成するときにタグを追加する方法、および既存の Auto Scaling グループのタグを追加または変更する方法を示しています。

Auto Scaling グループの作成時にタグを付けるには

• create-auto-scaling-group コマンドを使用して、新しい Auto Scaling グループを作成し、Auto Scalingグループに env=prod などのタグを追加します。タグは、Auto Scaling グループで起動されるインスタンスにも追加されます。

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-configuration-name my-launch-config --min-size 1 --max-size 3 \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --tags Key=env,Value=prod,PropagateAtLaunch=true

既存の Auto Scaling グループのタグを作成または変更するには

• create-or-update-tags コマンドを使用して、タグを作成または変更します。たとえば、以下のコマンドは Name=my-asg および cost-center=cc123 タグを追加します。この変更後、それらのタグはAuto Scaling グループ内で起動されるすべてのインスタンスに追加されます。いずれかのキーを持つタグがすでに存在する場合、既存のタグは置き換えられます。Amazon EC2 コンソールでは、各インスタンスの表示名は、Name キーに指定された名前に関連付けられます (大文字と小文字は区別)。

aws autoscaling create-or-update-tags \ --tags ResourceId=my-asg,ResourceType=auto-scaling-group,Key=Name,Value=my-asg,PropagateAtLaunch=true \ ResourceId=my-asg,ResourceType=auto-scaling-group,Key=cost-center,Value=cc123,PropagateAtLaunch=true

Auto Scaling グループのすべてのタグを一覧表示するには

• 以下の describe-tags コマンドを使用して、指定した Auto Scaling グループのタグを一覧表示します。

aws autoscaling describe-tags --filters Name=auto-scaling-group,Values=my-asg

以下に、応答の例を示します。

{ "Tags": [ {

65

Page 73: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドタグの削除

"ResourceType": "auto-scaling-group", "ResourceId": "my-asg", "PropagateAtLaunch": true, "Value": "prod", "Key": "env" } ]}

• または、次の describe-auto-scaling-groups コマンドを使用して、タグが Auto Scaling グループに追加されていることを確認します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

以下に、応答の例を示します。

{ "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "HealthCheckGracePeriod": 0, "SuspendedProcesses": [], "DesiredCapacity": 1, "Tags": [ { "ResourceType": "auto-scaling-group", "ResourceId": "my-asg", "PropagateAtLaunch": true, "Value": "prod", "Key": "env" } ], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg", ... } ]}

タグの削除Auto Scaling グループに関連付けられたタグは、いつでも削除できます。

目次• タグの削除 (コンソール) (p. 66)• タグの削除 (AWS CLI) (p. 67)

タグの削除 (コンソール)タグを削除するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. リストから既存のグループを選択します。

66

Page 74: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループでロードバランサーを使用する

4. [Tags (タグ)] タブで、[タグの追加/編集] を選択します。[Auto Scaling グループタグの追加/編集] ページに Auto Scaling グループに対するすべての既存のタグが一覧表示されます。

5. タグの横にある削除アイコンを選択します。6. [Save] を選択します。

タグの削除 (AWS CLI)タグを削除するには、delete-tags コマンドを使用します。たとえば、以下のコマンドは env キーを持つタグを削除します。

aws autoscaling delete-tags --tags "ResourceId=my-asg,ResourceType=auto-scaling-group,Key=env"

タグのキーは指定する必要がありますが、値を指定する必要はありません。指定した値が正しくない場合、タグは削除されません。

Auto Scaling グループでロードバランサーを使用する

ロードバランサーは、Auto Scaling グループへのすべての受信ウェブトラフィックの 1 つの通信先として機能します。グループにインスタンスが追加されたら、ロードバランサーにそのインスタンスを登録する必要があります。登録しないとそのインスタンスにトラフィックがルーティングされません。グループからインスタンスが削除されたら、ロードバランサーからそのインスタンスを登録解除する必要があります。解除しないとそのインスタンスにトラフィックが引き続きルーティングされます。

Auto Scaling グループで Elastic Load Balancing ロードバランサーを使用する場合、ロードバランサーまたはターゲットグループに EC2 インスタンスを登録する必要はありません。Elastic Load Balancing では、Auto Scaling グループによって起動されたインスタンスは自動的にロードバランサーまたはターゲットグループに登録され、Auto Scaling グループによって終了されたインスタンスは自動的にロードバランサーまたはターゲットグループから登録解除されます。

また、Elastic Load Balancing ヘルスチェックを設定して、登録済みインスタンスのヘルスをモニタリングすると、ロードバランサーまたはターゲットグループによってトラフィックが正常なインスタンスにのみルーティングされていることを確認できます。

Elastic Load Balancing タイプElastic Load Balancing は Auto Scaling グループで使用できる 3 種類のロードバランサー (クラシックロードバランサー、Application Load Balancer、Network Load Balancer) を提供しています。クラシックロードバランサー では、インスタンスはロードバランサーに登録されます。Application Load Balancer およびNetwork Load Balancer では、インスタンスはターゲットグループにターゲットとして登録されます。

Classic Load Balancer

トランスポートレイヤー (TCL/SSL) あるいはアプリケーションレイヤー (HTTP/HTTPS) のいずれかで行うルーティングあるいはロードバランサー。Classic Load Balancer は EC2-Classic または VPC をサポートします。

Application Load Balancer

ルーティングと負荷分散をアプリケーションレイヤー (HTTP/HTTPS) で行い、パスベースのルーティングをサポートしています。Application Load Balancer は、仮想プライベートクラウド (VPC) の 1 つ

67

Page 75: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドロードバランサーをアタッチする

以上の登録済みのターゲット上のポート (EC2 インスタンスなど) にリクエストをルーティングします。

Note

Application Load Balancer ターゲットグループには、instance のターゲットタイプがある必要があり ます。詳細については、『Application Load Balancer 用ユーザーガイド』「ターゲットタイプ」を参照してください。

Network Load Balancer

パケットのコンテンツからではなく、TCP パケットヘッダーから抽出されたアドレス情報に基づいて、トランスポートレイヤー (TCP/UDP Layer-4) でルーティングと負荷分散を行います。NetworkLoad Balancer は、ロードバランサーの有効期間中、トラフィックバーストを処理し、クライアントのソース IP を保持して、固定 IP を使用します。

Note

Network Load Balancer ターゲットグループには、instance のターゲットタイプがある必要があり ます。詳細については、『Network Load Balancer 用ユーザーガイド』「ターゲットタイプ」を参照してください。

Elastic Load Balancing の詳細については、以下のトピックを参照してください。

• Elastic Load Balancing とは• Classic Load Balancer とは• Application Load Balancer とは• Network Load Balancer とは

Elastic Load Balancing に Amazon EC2 Auto Scaling を統合する詳細については、次のトピックを参照してください。

トピック• Auto Scaling グループに Load Balancer をアタッチする (p. 68)• Auto Scaling グループへの Elastic Load Balancing ヘルスチェックの追加 (p. 70)• スケーリングとロードバランシングを使用するアプリケーションを追加のアベイラビリティーゾーン

に拡張する (p. 72)

Auto Scaling グループに Load Balancer をアタッチするこのトピックでは、Elastic Load Balancing ロードバランサーを既存の Auto Scaling グループにアタッチする方法について説明します。Auto Scaling グループの作成時にロードバランサーをこのグループにアタッチするには、「チュートリアル: スケーリングとロードバランシングを使用するアプリケーションのセットアップ (p. 20)」を参照してください。

Amazon EC2 Auto Scaling は Elastic Load Balancing と統合されて、既存の Auto Scaling のグループに 1つ以上のロードバランサーをアタッチできるようになります。ロードバランサーをアタッチした後、自動的にインスタンスがグループに登録され、受信トラフィックがインスタンス間で割り振られます。

ロードバランサーをアタッチすると、グループのインスタンスの登録中、Adding 状態になります。グループのすべてのインスタンスがロードバランサーに登録された後、Added 状態になります。最低 1 つの登録されたインスタンスがヘルスチェックを通過した後、InService 状態になります。ロードバランサーによって InService 状態が入力されると、異常と報告されたインスタンスは Amazon EC2 Auto

68

Page 76: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドロードバランサーをアタッチする

Scaling によって終了し、置き換えられます。登録されたインスタンスからヘルスチェックが渡されない場合 (たとえば、誤って設定されたヘルスチェックが原因)、ロードバランサーは InService 状態になりません。Amazon EC2 Auto Scaling によるインスタンスの削除および置き換えは行われません。

ロードバランサーをデタッチすると、グループのインスタンスの登録解除中、Removing 状態になります。登録解除されてもインスタンスは引き続き実行されます。Connection Draining が有効になっている場合、Elastic Load Balancing はインスタンスの登録を解除する前に、処理中リクエストが完了するまでまたは最大タイムアウトが経過するまで (最初に達する方)、インスタンスの登録を待機します。ConnectionDraining は、Application Load Balancer に対してデフォルトで有効になりますが、クラシックロードバランサー に対しては手動で有効にする必要があります。詳細については、『クラシックロードバランサー 用ユーザーガイド』の「接続のストリーミング」を参照してください。

目次• 前提条件 (p. 69)• ロードバランサーを追加する (コンソール) (p. 69)• ロードバランサーを追加する (AWS CLI) (p. 70)

前提条件始める前に、Auto Scaling グループと同じ AWS リージョンに Application Load Balancer または NetworkLoad Balancer を作成します。新しいロードバランサーをお勧めしますが、求めている機能をサポートしていれば Classic Load Balancer を引き続き使用できます。さまざまなタイプのロードバランサーの詳細については、「 Elastic Load Balancing タイプ (p. 67)」を参照してください。

(オプション) Elastic Load Balancing ヘルスチェックを使用するように Auto Scaling グループを設定するには、「Auto Scaling グループへの Elastic Load Balancing ヘルスチェックの追加 (p. 70)」を参照してください。

ロードバランサーを追加する (コンソール)次の手順に従って、ロードバランサーを既存の Auto Scaling グループにアタッチします。Auto Scaling グループの作成時にロードバランサーをこのグループにアタッチするには、「チュートリアル: スケーリングとロードバランシングを使用するアプリケーションのセットアップ (p. 20)」を参照してください。

ロードバランサーをグループにアタッチするには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. リストから既存のグループを選択します。4. [Details (詳細)] タブで、[Edit (編集)] を選択します。5. 次のいずれかを行ってください。

a. [クラシックロードバランサー] [ロードバランサー] で使用するロードバランサーを選択します。b. [アプリケーションロードバランサー] [Target Groups (ターゲットグループ)] で使用するターゲッ

トグループを選択します。6. [Save] を選択します。

ロードバランサーが不要になったら、以下の手順に従って、Auto Scaling グループからデタッチします。

グループからロードバランサーをデタッチするには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。

69

Page 77: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドELB ヘルスチェックの追加

3. リストから既存のグループを選択します。4. [Details (詳細)] タブで、[Edit (編集)] を選択します。5. 次のいずれかを行ってください。

a. [クラシックロードバランサー] [Load Balancers (ロードバランサー)] で、ロードバランサーを削除します。

b. [Application/Network Load Balancers] [Target Groups (ターゲットグループ)] でターゲットグループを削除します。

6. [Save] を選択します。

ロードバランサーを追加する (AWS CLI)Classic Load Balancer をアタッチするには

以下の attach-load-balancers コマンドを使用して、指定したロードバランサーを Auto Scaling グループにアタッチします。

aws autoscaling attach-load-balancers --auto-scaling-group-name my-asg \ --load-balancer-names my-lb

ターゲットグループを Application Load Balancer あるいは Network Load Balancer にアタッチするには

以下の attach-load-balancer-target-groups コマンドを使用して、指定したターゲットグループを AutoScaling グループにアタッチします。

aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name my-asg \ --target-group-arns my-targetgroup-arn

Classic Load Balancer をデタッチするには

ロードバランサーが不要になったら、以下の detach-load-balancers コマンドを使用して、Auto Scaling グループからロードバランサーをデタッチします。

aws autoscaling detach-load-balancers --auto-scaling-group-name my-asg \ --load-balancer-names my-lb

ターゲットグループを Application Load Balancer または Network Load Balancerからデタッチするには

ロードバランサーが不要になったら、以下の detach-load-balancer-target-groups コマンドを使用して、Auto Scaling グループからターゲットグループをデタッチします。

aws autoscaling detach-load-balancer-target-groups --auto-scaling-group-name my-asg \ --target-group-arns my-targetgroup-arn

Auto Scaling グループへの Elastic Load Balancing ヘルスチェックの追加Auto Scaling グループのデフォルトのヘルスチェックは EC2 ステータスチェックのみです。インスタンスがこれらのステータスチェックに合格しない場合、Auto Scaling グループはそのインスタンスを異常と見なして置き換えます。詳細については、「Auto Scaling インスタンスのヘルスチェック (p. 150)」を参照してください。

70

Page 78: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドELB ヘルスチェックの追加

Auto Scaling グループが 1 つ以上のロードバランサーまたはターゲットグループにアタッチされていると、デフォルトでは Auto Scaling グループはロードバランサーのヘルスチェックに合格しないインスタンスを異常と見なさず、置き換えません。

ただしオプションで、Elastic Load Balancing ヘルスチェックを使用するように Auto Scaling グループを設定できます。これにより、ロードバランサーによって提供される追加のテストに基づいて、グループはインスタンスのヘルスを判断できるようになります。ロードバランサーは定期的に ping を送信するか、接続を試みるか、または EC2 インスタンスのテストをリクエストします。これらのテストはヘルスチェックと呼ばれます。

Elastic Load Balancing ヘルスチェックの詳細については、次のトピックを参照してください。

• 『クラシックロードバランサー 用ユーザーガイド』の「Classic Load Balancer にヘルスチェックを設定する」

• 『Application Load Balancer 用ユーザーガイド』の「ターゲットグループのヘルスチェック」を参照してください。

• 『Network Load Balancer 用ユーザーガイド』の「ターゲットグループのヘルスチェック」を参照してください。

Elastic Load Balancing ヘルスチェックを使用するように Auto Scaling グループを設定すると、インスタンスは EC2 ステータスチェックまたはロードバランサーヘルスチェックのいずれかに合格しない場合に異常と見なされます。Auto Scaling グループに複数のロードバランサーをアタッチした場合に、インスタンスが正常とみなされるように、すべてのロードバランサーで、インスタンスが正常とレポートされる必要があります。1 つのロードバランサーがインスタンスを異常ありとして報告する場合、Auto Scaling グループは他のロードバランサーがこれを正常として報告する場合でも、インスタンスを置き換えます。

以下の手順では、Auto Scaling グループに Elastic Load Balancing ヘルスチェックを追加する方法を示しています。

目次• ヘルスチェックの追加 (コンソール) (p. 71)• ヘルスチェックを追加する (AWS CLI) (p. 71)

ヘルスチェックの追加 (コンソール)以下の手順を使用して、ロードバランサーがアタッチされた Auto Scaling グループに 300 秒の猶予期間を持つ ELB ヘルスチェックを追加します。

ヘルスチェックを追加するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. リストから既存のグループを選択します。4. [Details (詳細)] タブで、[Edit (編集)] を選択します。5. [Health Check Type] で、ELB を選択します。6. [Health Check Grace Period] で、300 を入力します。7. [Save] を選択します。8. [Instances] タブの [Health Status] 列に、新しく追加したヘルスチェックの結果が表示されます。

ヘルスチェックを追加する (AWS CLI)update-auto-scaling-group コマンドを使用して、猶予期間が 300 秒のヘルスチェックを作成します。

71

Page 79: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドアベイラビリティーゾーンの追加

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-lb-asg \ --health-check-type ELB --health-check-grace-period 300

スケーリングとロードバランシングを使用するアプリケーションを追加のアベイラビリティーゾーンに拡張するAuto Scaling グループをリージョン内の複数のアベイラビリティーゾーンに分散させてから、それらのアベイラビリティーゾーンに着信トラフィックを分散するようにロードバランサーをアタッチすることで、地理的な冗長性による安全性と信頼性を活用できます。お使いのロードバランサーに対して有効なすべてのアベイラビリティーゾーンにわたって、着信トラフィックが均等に分散されます。

Note

1 つの Auto Scaling グループには、同じリージョン内の複数のアベイラビリティーゾーンのAmazon EC2 インスタンスを含めることができます。ただし、Auto Scaling グループは複数のリージョンからのインスタンスを含めることはできません。

1 つのアベイラビリティーゾーンが異常ありまたは使用不可になると、Amazon EC2 Auto Scaling は、影響を受けていないアベイラビリティーゾーンで新しいインスタンスを起動します。異常のあるアベイラビリティーゾーンが正常な状態に戻ると、Amazon EC2 Auto Scaling は Auto Scaling グループのアベイラビリティーゾーンにわたって均等にインスタンスを自動的に再分散します。Amazon EC2 Auto Scaling は、インスタンス数が最も少ないアベイラビリティーゾーンで新しいインスタンスの起動を試みることで、これを実行します。この試みが失敗すると、Amazon EC2 Auto Scaling は成功するまで他のアベイラビリティーゾーンでの起動を試みます。

Auto Scaling グループにアベイラビリティーゾーンを追加してから、そのアベイラビリティーゾーンをロードバランサーに対して有効にすることで、スケーリングとロードバランシングを使用するアプリケーションの可用性を拡張できます。新しいアベイラビリティーゾーンを有効にすると、有効なすべてのアベイラビリティーゾーン間で、ロードバランサーによるトラフィックの均等なルーティングが始まります。

目次• アベイラビリティーゾーンを追加する (コンソール) (p. 72)• アベイラビリティーゾーンを追加する (AWS CLI) (p. 73)

アベイラビリティーゾーンを追加する (コンソール)以下の手順に従って、Auto Scaling グループを追加のサブネット(EC2-VPC)またはアベイラビリティーゾーン(EC2-Classic)に拡張します。

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. リストから既存のグループを選択します。4. [Details (詳細)] タブで、[Edit (編集)] を選択します。5. 次のいずれかを行ってください。

• [EC2-VPC] [サブネット] で、アベイラビリティーゾーンに対応するサブネットを選択します。• [EC2-Classic] [アベイラビリティーゾーン] で、アベイラビリティーゾーンを選択します。

6. [Save] を選択します。7. ナビゲーションペインで、[ロードバランサー] を選択します。

72

Page 80: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドアベイラビリティーゾーンの追加

8. ロードバランサーを選択します。9. 次のいずれかを行ってください。

• [EC2-Classic の Classic Load Balancer] [Instances (インスタンス)] タブで、[アベイラビリティーゾーンの編集] を選択します。[アベイラビリティーゾーンの追加と削除] ページで、追加するアベイラビリティーゾーンを選択します。

• [VPC の Classic Load Balancer] [Instances (インスタンス)] タブで、[アベイラビリティーゾーンの編集] を選択します。[Add and Remove Subnets] ページの [Available subnets] で、追加するサブネットのアイコン (+) を選択します。サブネットが [Selected subnets] に移動します。

• [Application Load Balancer] [Description (説明)] タブで、[Availability Zones (アベイラビリティーゾーン)] の [Edit (編集)] を選択します。追加するアベイラビリティーゾーンのサブネットの 1 つのアイコン (+) を選択します。サブネットが [Selected subnets] に移動します。

10. [Save] を選択します。

アベイラビリティーゾーンを追加する (AWS CLI)使用するコマンドは、ロードバランサーが VPC の Classic Load Balancer、EC2-Classic の Classic LoadBalancer、Application Load Balancer のいずれかによって異なります。

Auto Scaling グループと VPC の Classic Load Balancer の場合

1. 次の update-auto-scaling-group コマンドを使用して、Auto Scaling グループにサブネットを追加します。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --vpc-zone-identifier subnet-41767929 subnet-cb663da2 --min-size 2

2. 以下の describe-auto-scaling-groups コマンドを使用して、新しいサブネットのインスタンスでロードバランサーからのトラフィックを受け入れる準備が完了していることを確認します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

3. 以下の attach-load-balancer-to-subnets コマンドを使用して、Classic Load Balancer で新しいサブネットを有効にします。

aws elb attach-load-balancer-to-subnets --load-balancer-name my-lb \ --subnets subnet-41767929

Auto Scaling グループと EC2-Classic の Classic Load Balancer の場合

1. 次の update-auto-scaling-group コマンドを使用して、Auto Scaling グループにアベイラビリティーゾーンを追加します。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --availability-zones us-west-2a us-west-2b us-west-2c --min-size 3

2. 次の describe-auto-scaling-groups コマンドを使用して、新しいアベイラビリティーゾーンのインスタンスでロードバランサーからのトラフィックを受け入れる準備が完了していることを確認します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

3. 以下の enable-availability-zones-for-load-balancer コマンドを使用して、Classic Load Balancer で新しいアベイラビリティーゾーンを有効にします。

aws elb enable-availability-zones-for-load-balancer --load-balancer-name my-lb \

73

Page 81: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループのスポットインスタンスの起動

--availability-zones us-west-2c

Auto Scaling グループと Application Load Balancer の場合

1. 次の update-auto-scaling-group コマンドを使用して、Auto Scaling グループにサブネットを追加します。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --vpc-zone-identifier subnet-41767929 subnet-cb663da2 --min-size 2

2. 以下の describe-auto-scaling-groups コマンドを使用して、新しいサブネットのインスタンスでロードバランサーからのトラフィックを受け入れる準備が完了していることを確認します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

3. 以下の set-subnets コマンドを使用して、Application Load Balancer で新しいサブネットを有効にします。

aws elbv2 set-subnets --load-balancer-arn my-lb-arn \ --subnets subnet-41767929 subnet-cb663da2

Auto Scaling グループのスポットインスタンスの起動

スポットインスタンスは、アプリケーションを実行する時間に柔軟性がある場合や、アプリケーションを中断できる場合に、オンデマンドインスタンスと比べて費用効率の高い選択肢です。このトピックでは、Auto Scaling グループ自体ではなく起動設定または起動テンプレートで設定を指定して、Auto Scalingグループのスポットインスタンスのみを起動する方法について説明します。

Important

Auto Scaling グループの設定の一環としてスポットインスタンスの起動に使用されるものと同じ設定を指定できます。Auto Scaling グループの一環として設定を指定する場合は、追加のオプションを指定できます。たとえば、スポットインスタンスのみを起動するか、オンデマンドインスタンスとスポットインスタンスの両方の組み合わせを起動するかを指定できます。詳細については、「複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ (p. 46)」を参照してください。

Amazon EC2 Auto Scaling を使用してスポットインスタンスを起動する前に、Amazon EC2 を使用したスポットインスタンスの起動と管理に慣れておくことをお勧めします。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「スポットインスタンス」を参照してください。

起動設定や起動テンプレートを作成してオンデマンドインスタンスではなくスポットインスタンスを起動する場合は、以下の考慮事項に留意してください。

• 上限価格を設定する。 起動設定または起動テンプレートの一部として支払いの上限価格を設定します。スポット価格が上限価格以下である場合、リクエストが落札されるかどうかは、スポットインスタンスの容量によります。起動するスポットインスタンスのスポット価格のみを支払います。スポットインスタンスの価格が、お客様の Auto Scaling グループで実行中のインスタンスに対する上限価格を上回ると、Amazon EC2 はお客様のインスタンスを終了します。詳細については、Linux インスタンス用Amazon EC2 ユーザーガイド の「料金表と削減額」を参照してください。

• 上限価格を変更する。 新しい価格を設定した起動設定または起動テンプレートのバージョンを作成する必要があります。新しい起動設定を使用する場合は、それを Auto Scaling グループに関連付ける必要が

74

Page 82: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドインスタンスの重み付けの使用

あります。起動テンプレートを使用すると、Auto Scaling グループがデフォルトテンプレートまたは最新バージョンのテンプレートを使用するように設定できます。これにより、新しい価格は Auto Scalingグループに自動的に関連付けられます。これらのインスタンスに使用する起動設定または起動テンプレートで指定された上限価格が現在のスポット価格より高い限り、既存のインスタンスが実行され続けます。

• スポットインスタンスを維持する。 スポットインスタンスが削除されると、Auto Scaling グループはグループの希望する容量を維持するために、代わりのインスタンスを起動しようとします。上限価格がスポット価格よりも高い場合は、スポットインスタンスが起動されます。それ以外の場合 (またはリクエストが正常に行われなかった場合) は、試行が続けられます。

• アベイラビリティーゾーン間でのバランシング。 複数のアベイラビリティーゾーンを指定した場合、Amazon EC2 Auto Scaling はそれらのアベイラビリティーゾーンの間でスポットリクエストを分散します。上限価格が 1 つのアベイラビリティーゾーンでリクエストを落札するには低すぎる場合、Amazon EC2 Auto Scaling は他のアベイラビリティーゾーンでリクエストが落札されたかどうか確認します。その場合、Amazon EC2 Auto Scaling は失敗したリクエストをキャンセルし、リクエストが落札されたアベイラビリティーゾーンの間でリクエストを再分散します。落札されたリクエストがないアベイラビリティーゾーンの料金が、今後のリクエストが落札されるために十分に下がった場合、Amazon EC2 Auto Scaling はすべてのアベイラビリティーゾーンの間で再調整します。詳細については、「アクティビティの再分散 (p. 7)」を参照してください。

• スポットインスタンスの終了。Amazon EC2 Auto Scaling は、オンデマンドインスタンスの終了や置き換えと同じ方法で、スポットインスタンスの終了や置き換えを行うことができます。詳細については、「スケールイン時にどの Auto Scaling インスタンスを終了するかのコントロール (p. 127)」を参照してください。

• スポットインスタンスの中断の通知。 スポットインスタンスの中断の通知を使用して、スポットインスタンスのステータスをモニタリングできます。たとえば、Amazon SNS トピック、AWS Lambda関数、または別のターゲットに EC2 スポットの 2 分前警告を自動的に送信するルールを AmazonCloudWatch Events で設定できます。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「スポットインスタンスの中断の通知」および Amazon CloudWatch Events ユーザーガイド を参照してください。

Amazon EC2 Auto Scaling のインスタンスの重み付け

複数のインスタンスタイプを起動するように Auto Scaling グループを設定する場合、オプションでインスタンスの重み付けを使用して、各インスタンスからグループの容量に割り当てる容量の単位数を定義できます。これにより、アプリケーションのパフォーマンスに直接マップする方法で、各インスタンスタイプの相対的な重みを指定できます。たとえば、特定のアプリケーションのニーズに合わせて、たとえば必要なコア (vCPU) またはメモリ (GiB) に応じて、インスタンスに重みを付けることができます。

たとえば、少なくとも 8 個の vCPU と 15 GiB の RAM で最高のパフォーマンスを発揮する、コンピューティング集約型のアプリケーションを実行するとします。基本単位として c5.2xlarge を使用する場合、以下の EC2 インスタンスタイプのいずれかがアプリケーションのニーズを満たします。

インスタンスタイプの例

インスタンスタイプ vCPU メモリ (GiB)

c5.2xlarge 8 16

c5.4xlarge 16 32

c5.12xlarge 48 96

c5.18xlarge 72 144

75

Page 83: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドユニット時間あたりの価格

インスタンスタイプ vCPU メモリ (GiB)

c5.24xlarge 96 192

デフォルトでは、すべてのインスタンスタイプは同じ重みとして扱われます。つまり、Amazon EC2 AutoScaling が起動するインスタンスタイプがラージかスモールかにかかわらず、各インスタンスはグループの希望する容量に対してカウントされます。

ただし、インスタンスの重み付けでは、各インスタンスタイプに関連付ける容量の単位数を指定します。たとえば、インスタンスのサイズが異なる場合、c5.2xlarge インスタンスには 2 の重みを付け、c5.4xlarge (2 倍大きい) インスタンスには 4 の重みを付けます。次に、Amazon EC2 Auto Scalingによってインスタンスが起動されると、それらの重みが希望する容量に対してカウントされます。

ユニット時間あたりの価格以下の表では、米国東部 (バージニア北部、オハイオ) の異なるアベイラビリティーゾーンでのスポットインスタンスの時間単位の使用料金と、同じリージョンでのオンデマンドインスタンスの使用料金を比較しています。ここで示している料金は例であり、現在の料金ではありません。これらはインスタンス時間単位のコストです。

例: インスタンス時間単位のスポット料金

インスタンスタイプ

us-east-1a us-east-1b us-east-1c オンデマンド料金

c5.2xlarge 0.180 USD 0.191 USD 0.170 USD 0.34 USD

c5.4xlarge 0.341 USD 0.361 USD 0.318 USD 0.68 USD

c5.12xlarge 0.779 USD 0.777 USD 0.777 USD 2.04 USD

c5.18xlarge 1.207 USD 1.475 USD 1.357 USD 3.06 USD

c5.24xlarge 1.555 USD 1.555 USD 1.555 USD 4.08 USD

インスタンスの重み付けにより、時間単位の使用料金に基づいてコストを評価できます。時間単位の使用料金はインスタンスタイプの料金をその単位となる時間数で割って決定できます。オンデマンドインスタンスの場合、時間単位の使用料金は、1 つのインスタンスタイプをデプロイするときと、異なるサイズの同じインスタンスタイプをデプロイするときで同じです。一方、時間単位のスポット料金はスポットプールによって異なります。

時間単位の使用料金の計算が重み付きインスタンスでどのように機能するかを理解するには、例を使用するのが最も簡単な方法です。たとえば、計算が容易になるように、スポットインスタンスを us-east-1a でのみ起動するとします。時間単位の使用料金を以下に示します。

例: 時間単位のスポット料金

インスタンスタイプ

us-east-1a インスタンスの分量

ユニット時間あたりの価格

c5.2xlarge 0.180 USD 2 0.090 USD

c5.4xlarge 0.341 USD 4 0.085 USD

c5.12xlarge 0.779 USD 12 0.065 USD

c5.18xlarge 1.207 USD 18 0.067 USD

76

Page 84: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド考慮事項

インスタンスタイプ

us-east-1a インスタンスの分量

ユニット時間あたりの価格

c5.24xlarge 1.555 USD 24 0.065 USD

考慮事項このセクションでは、インスタンスの重み付けを効果的に実装する際の重要な考慮事項について説明します。

• まず、アプリケーションの実際のパフォーマンス要件を反映するいくつかのインスタンスタイプを選択します。次に、各インスタンスタイプの重みを指定することで、Auto Scaling グループの希望する容量に対してカウントされるインスタンスの量を決定します。重みは、グループ内の現在および今後のインスタンスに適用されます。

• 選択する重みの範囲が広すぎる場合は注意してください。たとえば、インスタンスタイプの重みに 1 を指定し、次に大きいインスタンスタイプの重みに 200 を指定することはお勧めしません。最小の重みと最大の重みの差が極端にならないようにしてください。インスタンスタイプの重みの差が大きすぎると、進行中のコストパフォーマンスの最適化に悪影響を与える可能性があります。

• Auto Scaling グループのサイズは、インスタンス単位ではなく容量単位で測定されます。たとえば、重みが vCPU に基づいている場合、必要なコアの希望する数、最小数、最大数を指定する必要があります。

• 重みと希望する容量を設定して、希望する容量が最大容量の少なくとも 2 〜 3 倍になるようにします。• スポットに独自の上限価格を設定する場合は、最も高価なインスタンスタイプに合った十分に高いイン

スタンス時間単位の料金を指定する必要があります。アベイラビリティーゾーンの現在のスポット料金が上限価格を下回り、使用可能な容量があれば、Amazon EC2 Auto Scaling によってスポットインスタンスがプロビジョニングされます。スポットインスタンスのリクエストに 1 つのスポットインスタンスプールで対応できない場合、スポットインスタンスのコスト削減を活用するために、他のスポットプールで対応が引き続き試みられます。

インスタンスの重み付けに関連して、以下の新しい動作が導入されました。

• 現在の容量は、希望する容量と同じかそれ以上になります。Amazon EC2 Auto Scaling は、希望する容量が完全に満たされるまでインスタンスをプロビジョニングするため、容量超過になることがあります。たとえば、2 つのインスタンスタイプ c5.2xlarge と c5.12xlarge を指定し、c5.2xlarge にインスタンスの重み 2 を割り当て、c5.12xlarge にインスタンスの重み 12 を割り当てるとします。希望する容量を満たすための容量が 5 単位分残っており、Amazon EC2 Auto Scaling が c5.12xlargeをプロビジョニングする場合、希望する容量は 7 単位分超えます。

• Amazon EC2 Auto Scaling は、インスタンスをプロビジョニングして希望する容量に達すると、インスタンスをアベイラビリティーゾーン間に分散させます。オンデマンドおよびスポットインスタンスの配分戦略を順守することが、容量超過を回避することよりも優先されます。

• Amazon EC2 Auto Scaling は、優先される配分戦略を使用して、アベイラビリティーゾーン間のバランスを維持するために、最大容量の制限を超えることがあります。Amazon EC2 Auto Scaling によって適用されるハード制限は、希望する容量に最大重みを加えた値になります。

既存のグループの重みを付けたり変更したりするときは、以下のことに注意してください。

• インスタンスの重みを既存の Auto Scaling グループに付けるときは、グループですでに実行されているインスタンスタイプを含める必要があります。

• 既存のインスタンスの重みを変更すると、新しい重みに基づいて希望する容量に達するまで、AmazonEC2 Auto Scaling はインスタンスを起動または終了します。

• インスタンスタイプを削除した場合、そのインスタンスタイプの削除後であっても、そのインスタンスタイプの実行中のインスタンスは最後に更新された重み値を保持します。

77

Page 85: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループの重みを付けるまたは変更する

Auto Scaling グループの重みを付けるまたは変更する既存の Auto Scaling グループまたは作成する新しい Auto Scaling グループに重みを付けることができます。既存の Auto Scaling グループを更新して、新しい設定オプション (スポット/オンデマンド使用方法、スポット配分戦略、インスタンスタイプ) を定義することもできます。必要なスポットインスタンスまたはオンデマンドインスタンスの数を変更した場合、Amazon EC2 Auto Scaling は新しい購入オプションに一致するように、既存のインスタンスを段階的に置き換えます。

インスタンスの重み付けを使用して Auto Scaling グループを作成する前に、複数のインスタンスタイプを含むグループの起動を理解しておくことをお勧めします。詳細および追加の例については、「複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ (p. 46)」を参照してください。

以下の例では、AWS CLI を使用して Auto Scaling グループを作成するときに重みを付ける方法、および既存の Auto Scaling グループの重みを付けるまたは変更する方法を示しています。JSON ファイルでさまざまなパラメータを設定し、その JSON ファイルを Auto Scaling グループの唯一のパラメータとして参照できます。

作成時に Auto Scaling グループに重みを付けるには

• create-auto-scaling-group コマンドを使用して、以下を指定する新しい Auto Scaling グループを作成します。

• オンデマンドインスタンスとして起動するグループの割合 (0) とオンデマンドインスタンスの初期のベース数 (10)

• 各アベイラビリティーゾーンのスポットインスタンスの配分戦略 (capacity-optimized)• 優先度に従って起動するインスタンスタイプ (m4.16xlarge、m5.24xlarge)• インスタンスタイプ間の相対的なサイズの違い (vCPU) に対応するインスタンスの重み (16、24)• インスタンスを起動するサブネット (subnet-5ea0c127、subnet-6194ea3b、subnet-c934b782)。それぞれ異なるアベイラビリティーゾーンに対応

• 起動テンプレート (my-launch-template) とそのバージョン ($Latest)

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

次は、config.json ファイルの例です。

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "m4.16xlarge", "WeightedCapacity": "16" }, { "InstanceType": "m5.24xlarge", "WeightedCapacity": "24" } ] }, "InstancesDistribution": { "OnDemandBaseCapacity": 10, "OnDemandPercentageAboveBaseCapacity": 0,

78

Page 86: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループの重みを付けるまたは変更する

"SpotAllocationStrategy": "capacity-optimized" } }, "MinSize": 160, "MaxSize": 720, "DesiredCapacity": 480, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags": []}

既存の Auto Scaling グループの重みを付けるまたは変更するには

• update-auto-scaling-group コマンドを使用して、重みを付けるか変更します。たとえば、ここで示すコマンドは、以下を指定して既存の Auto Scaling グループのインスタンスタイプに重みを付けます。

• 優先度に従って起動するインスタンスタイプ(c5.18xlarge、c5.24xlarge、c5.2xlarge、c5.4xlarge)

• インスタンスタイプ間の相対的なサイズの違い (vCPU) に対応するインスタンスの重み(18、24、2、4)

• 増やす新しい希望する容量 (最大重みよりも大きい)

aws autoscaling update-auto-scaling-group --cli-input-json file://~/config.json

次は、config.json ファイルの例です。

{ "AutoScalingGroupName": "my-existing-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "Overrides": [ { "InstanceType": "c5.18xlarge", "WeightedCapacity": "18" }, { "InstanceType": "c5.24xlarge", "WeightedCapacity": "24" }, { "InstanceType": "c5.2xlarge", "WeightedCapacity": "2" }, { "InstanceType": "c5.4xlarge", "WeightedCapacity": "4" } ] } }, "MinSize": 0, "MaxSize": 100, "DesiredCapacity": 100}

Auto Scaling グループの重みを確認するには

• 重みを確認するには、以下の describe-auto-scaling-groups コマンドを使用します。

79

Page 87: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループの重みを付けるまたは変更する

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

以下に、応答の例を示します。

{ "AutoScalingGroups": [ { "AutoScalingGroupName": "my-asg", "AutoScalingGroupARN": "arn", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0b97f1e282EXAMPLE", "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "m4.16xlarge", "WeightedCapacity": "16" }, { "InstanceType": "m5.24xlarge", "WeightedCapacity": "24" } ] }, "InstancesDistribution": { "OnDemandAllocationStrategy": "prioritized", "OnDemandBaseCapacity": 10, "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "capacity-optimized" } }, "MinSize": 160, "MaxSize": 720, "DesiredCapacity": 480, "DefaultCooldown": 300, "AvailabilityZones": [ "us-west-2a", "us-west-2b", "us-west-2c" ], "LoadBalancerNames": [], "TargetGroupARNs": [], "HealthCheckType": "EC2", "HealthCheckGracePeriod": 0, "Instances": [ { "InstanceId": "i-027327f0ace86f499", "InstanceType": "m5.24xlarge", "AvailabilityZone": "us-west-2a", "LifecycleState": "InService", "HealthStatus": "Healthy", "LaunchTemplate": { "LaunchTemplateId": "lt-0b97f1e282EXAMPLE", "LaunchTemplateName": "my-launch-template", "Version": "7" }, "ProtectedFromScaleIn": false, "WeightedCapacity": "24" }, {

80

Page 88: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドインスタンスタイプの推奨事項

"InstanceId": "i-0ec0d761cc134878d", "InstanceType": "m4.16xlarge", "AvailabilityZone": "us-west-2a", "LifecycleState": "Pending", "HealthStatus": "Healthy", "LaunchTemplate": { "LaunchTemplateId": "lt-0b97f1e282EXAMPLE", "LaunchTemplateName": "my-launch-template", "Version": "7" }, "ProtectedFromScaleIn": false, "WeightedCapacity": "16" }, ... } ]}

インスタンスタイプに関する推奨事項の取得AWS では、AWS Compute Optimizer が搭載された機能を使い、性能の向上、コストの削減またはその両方に役立つ Amazon EC2 インスタンスの推奨事項を提供します。これらの推奨事項を使用して、新しいインスタンスタイプに移行するかどうかを判断できます。

推奨事項を作成するために、Compute Optimizer は既存インスタンスの仕様と最近のメトリックス履歴を分析します。次に、コンパイルされたデータを使用して、既存のパフォーマンスワークロードを処理するために最適な Amazon EC2 インスタンスタイプを推奨します。推奨事項は、時間あたりのインスタンス料金とともに返されます。

Note

Compute Optimizer から推奨事項を取得するには、まず Compute Optimizer にオプトインする必要があります。詳細については、AWS Compute Optimizer User Guideの「 AWS ComputeOptimizer の使用開始」を参照してください。

目次• 制約事項 (p. 81)• 結果 (p. 81)• 推奨事項の確認 (p. 82)• 推奨事項の評価に関する考慮事項 (p. 82)

制約事項Compute Optimizer は、現在、M、C、R、T そして X のインスタンスタイプの推奨事項を生成します。他のインスタンスタイプは、Compute Optimizer では考慮されません。他のインスタンスタイプを使用する場合、それらのインスタンスタイプは推奨事項から除外されます。

スケーリングポリシーがアタッチされている Auto Scaling グループや、希望容量、最小容量、最大容量の値が同じでないグループについては、このサービスは推奨事項を生成しません。Compute Optimizer がAuto Scaling グループを分析するには、固定サイズである必要があります。さらに、Compute Optimizerを使用しても、ECS クラスターに関連付けられた Auto Scaling グループや、複数のインスタンスタイプをサポートするグループの EC2 インスタンスの使用状況を分析することはできません。

結果Compute Optimizer は、Auto Scaling グループの調査結果を次のように分類します。

81

Page 89: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド推奨事項の確認

• 最適化されていない– Compute Optimizer がワークロードのパフォーマンスを向上できる推奨事項を特定した場合、Auto Scaling グループは、最適化されていないとみなされます。

• 最適化– 選択したインスタンスタイプに基づいて、ワークロードを実行するためにグループが正しくプロビジョニングされていると Compute Optimizer が判断した場合、Auto Scaling グループは、最適化されていると見なされます。最適化されたリソースについては、Compute Optimizer が新世代のインスタンスタイプを推奨することがあります。

• なし– Auto Scaling グループの推奨事項はありません。これは、Computer Optimizer を 12 時間未満にオプトインした場合、または Auto Scaling グループの実行が 30 時間未満の場合、または Auto Scaling グループまたはインスタンスタイプが Compute Optimizer でサポートされていない場合に発生する可能性があります。詳細については、前セクションの 制約事項 (p. 81) を参照してください。

推奨事項の確認Compute Optimizer にオプトインすると、Auto Scaling グループに対して生成された結果と推奨事項を表示できます。最近オプトインした場合、推奨事項が最大 12 時間、反映されないことがあります。

Auto Scaling グループに対して生成された推奨事項を表示する

1. https://console.aws.amazon.com/compute-optimizer/ で、Compute Optimizer コンソールを開きます。

ダッシュボードページが開きます。2. [View recommendations for all Auto Scaling groups (すべての Auto Scaling グループの推奨事項を表示

する)] を選択します。3. Auto Scaling グループを選択します。4. [詳細を表示] を選択します。

デフォルトのテーブル設定に基づいて、事前構成されたビューに最大 3 つの異なるインスタンスの推奨事項が表示されるように、ビューが変更されます。また、Auto Scaling グループ最新の CloudWatchメトリックデータ (平均 CPU 利用率、平均ネットワーク入力および平均ネットワーク出力) も提供されます。

推奨事項の 1 つを使用するかどうかを決定します。パフォーマンスの向上のために最適化するか、コスト削減のために最適化するか、これら 2 つの組み合わせを最適化するかを決定します。

Auto Scaling グループ内のインスタンスタイプを変更するには、新しい起動テンプレートまたは起動設定を作成する必要があります。新しい起動テンプレートまたは起動設定を使用するため、Auto Scaling グループを更新し、グループの希望する容量を増やすと、新しいインスタンスは新しいインスタンスタイプで起動されます。または、Auto Scaling グループ内の既存のインスタンスを終了して、新しい起動テンプレートまたは起動設定を使用する代替インスタンスを強制的に起動することもできます。CloudFormationでは、更新を自動化するオプションもあります。

推奨事項の評価に関する考慮事項新しいインスタンスタイプに移行する前に、次の点を考慮してください。

• 推奨情報は、使用状況は予測しません。推奨事項は、直近の 14 日間の使用履歴に基づいています。将来の使用ニーズを満たすことが予想されるインスタンスタイプをかならず選択してください。

• グラフ化されたメトリックスに焦点を当て、実際の使用量がインスタンスの容量よりも低いかどうかを判断します。メトリックスデータ (平均、ピーク、パーセンタイル数) を CloudWatch で表示し、EC2インスタンスの推奨事項をさらに評価することもできます。たとえば、日中の CPU パーセンテージメトリックがどのように変化するか、ピークに対応する必要があるかどうかがわかります。詳細については、Amazon CloudWatch ユーザーガイド の「使用可能なメトリックの表示」を参照してください。

• Compute Optimizer は、バーストパフォーマンスインスタンス (T3、T3a、および T2 インスタンス) の推奨事項を提供する場合があります。ベースラインを定期的に上回る場合は、新しいインスタンスタ

82

Page 90: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド最大インスタンス有効期間に基づいたインスタンスの置き換え

イプの vCPU に基づいて引き続きバーストを実行できることを確認します。詳細については、Linuxインスタンス用 Amazon EC2 ユーザーガイド の CPU Credits and Baseline Performance for BurstablePerformance Instances を参照してください。

• リザーブドインスタンスを購入した場合、オンデマンドインスタンスはリザーブドインスタンスとして請求される場合があります。現在のインスタンスタイプを変更する前に、まずリザーブドインスタンスの使用率と適用範囲に対する影響を評価します。

• 可能であれば、新世代のインスタンスへの交換を検討してください。• 別のインスタンスファミリーに移行する場合は、仮想化、アーキテクチャ、ネットワークタイプなど、

現在のインスタンスタイプと新しいインスタンスタイプに互換性があることを確認してください。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「インスタンスのサイズ変更の互換性」を参照してください。

• 最後に、推奨事項ごとに提供されるパフォーマンスリスク評価を検討します。パフォーマンスリスクは、推奨されるインスタンスタイプがワークロードのパフォーマンス要件を満たしているかどうかを検証するために費やす作業量を示します。また、変更前と変更後の綿密な負荷およびパフォーマンステストを実施することをお勧めします。

その他のリソース

このページのトピックに加えて、次のリソースも参照してください。

• Amazon EC2 インスタンスタイプ• Compute Optimizer User Guide

最大インスタンス有効期間に基づいた Auto Scalingインスタンスの置き換え

最大インスタンス有効期間の機能は、稼働時間が最大許容時間に達したインスタンスを置き換えることです。このトピックでは、この機能の重要な側面、および Auto Scaling グループ用に設定する方法について説明します。

まずは、Auto Scaling グループの最大インスタンス有効期間を設定します。この制限は、インスタンスが稼働できる最大時間 (秒単位) を指定します。この最大期間は、グループ内の現在および今後のインスタンスに適用されます。インスタンスが最大期間に近づくと、AWS によって終了され、再び使用することはできません。

インスタンスは、最大期間の終了まで稼働することが保証されるわけではありません。状況によっては、最大インスタンス有効期間を設定した直後に、Amazon EC2 Auto Scaling によってインスタンスの置き換えを開始するように求められる場合があります。その目的は、すべてのインスタンスが同時に置き換えられないようにすることです。

Auto Scaling グループ内の特定のインスタンスが置き換えられないようにする場合は、オプションで、インスタンスの保護を使用できます。詳細については、「インスタンスのスケールイン保護 (p. 130)」を参照してください。

Important

指定する期間が 604,800 秒 (7 日間) 以上であることを確認してください。これは、最大インスタンス有効期間の最小要件です。以前に設定した値をクリアするには、新しい値 0 を指定します。

最大インスタンス有効期間を設定するには (コンソール)

通常の方法で Auto Scaling グループを作成します。Auto Scaling グループを作成した後、グループを編集して最大インスタンス有効期間を指定します。

83

Page 91: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド最大インスタンス有効期間に基づいたインスタンスの置き換え

最大インスタンス有効期間を設定するには (AWS CLI)

AWS CLI を使用して最大インスタンス有効期間を指定する場合、この制限を既存の Auto Scaling グループに適用できます。この制限は、作成する新しい Auto Scaling グループに適用することもできます。

新しい Auto Scaling グループの場合は、create-auto-scaling-group コマンドを使用します。

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

次は、config.json ファイルの例です。

{ "AutoScalingGroupName": "my-asg", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "MinSize": 1, "MaxSize": 5, "MaxInstanceLifetime": 2592000, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags": []}

既存の Auto Scaling グループの場合は、update-auto-scaling-group コマンドを使用します。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-existing-asg --max-instance-lifetime 2592000

Auto Scaling グループの最大インスタンス有効期間を確認するには

describe-auto-scaling-groups コマンドを使用します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

以下に、応答の例を示します。

{ "AutoScalingGroups": [ { "AutoScalingGroupName": "my-asg", "AutoScalingGroupARN": "arn", "LaunchTemplate": { "LaunchTemplateId": "lt-0b97f1e282EXAMPLE", "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 1, "DefaultCooldown": 300, "AvailabilityZones": [ "us-west-2a", "us-west-2b", "us-west-2c" ], "LoadBalancerNames": [], "TargetGroupARNs": [], "HealthCheckType": "EC2", "HealthCheckGracePeriod": 0,

84

Page 92: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループのマージ

"Instances": [ { "InstanceId": "i-04d180b9d5fc578fc", "InstanceType": "t2.small", "AvailabilityZone": "us-west-2b", "LifecycleState": "Pending", "HealthStatus": "Healthy", "LaunchTemplate": { "LaunchTemplateId": "lt-0b97f1e282EXAMPLE", "LaunchTemplateName": "my-launch-template", "Version": "7" }, "ProtectedFromScaleIn": false } ], "CreatedTime": "2019-11-14T22:56:15.487Z", "SuspendedProcesses": [], "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "EnabledMetrics": [], "Tags": [], "TerminationPolicies": [ "Default" ], "NewInstancesProtectedFromScaleIn": false, "ServiceLinkedRoleARN": "arn", "MaxInstanceLifetime": 2592000 } ]}

Auto Scaling グループを 1 つのマルチゾーングループにマージする

別々の単一ゾーン Auto Scaling グループを複数のアベイラビリティーゾーンにまたがる 1 個のグループにマージするには、単一ゾーンのグループの 1 つをマルチゾーングループに再パーティションします。その後、他のグループを削除します。これは、新しいマルチゾーングループを元の単一ゾーングループと同じアベイラビリティーゾーンのいずれかに配置する限り、ロードバランサーの関連付けがあるグループでも、ないグループでも使用できます。

以下の例では、2 つの異なるアベイラビリティーゾーン us-west-2a と us-west-2c に 2 つの同一グループがあることを前提としています。この 2 つのグループは、以下の指定を共有します。

• 最小サイズ = 2• 最大サイズ = 5• 希望する容量 = 3

ゾーンをマージする (AWS CLI)以下の手順を使用して、my-group-a と my-group-c を、us-west-2a と us-west-2c の両方をカバーする 1 つのグループにマージします。

別々の単一ゾーン グループを 1 個のマルチゾーングループにマージするには

1. 次の update-auto-scaling-group コマンドを使用して、my-group-a でサポートされているアベイラビリティーゾーンに us-west-2c アベイラビリティーゾーンを追加します。このグループの最大サイズを引き上げて、両方の単一ゾーングループからインスタンスをマージする:

85

Page 93: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドゾーンをマージする (AWS CLI)

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-group-a \ --availability-zones "us-west-2a" "us-west-2c" \ –-max-size 10 –-min-size 4

2. 次の set-desired-capacity コマンドを使用して、my-group-a のサイズを増やします。

aws autoscaling set-desired-capacity --auto-scaling-group-name my-group-a \ --desired-capacity 6

3. (オプション) 次の describe-auto-scaling-groups コマンドを使用して、my-group-a が新しいサイズになっていることを確認します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-group-a

4. 次の update-auto-scaling-group コマンドを使用して、my-group-c からインスタンスを削除します。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-group-c \ --min-size 0 --max-size 0

5. (オプション) 次の describe-auto-scaling-groups コマンドを使用して、my-group-c にインスタンスが残っていないことを確認します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-group-c

出力例を次に示します。

{ "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "HealthCheckGracePeriod": 300, "SuspendedProcesses": [], "DesiredCapacity": 0, "Tags": [], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-group-c", "DefaultCooldown": 300, "MinSize": 0, "Instances": [], "MaxSize": 0, "VPCZoneIdentifier": "null", "TerminationPolicies": [ "Default" ], "LaunchConfigurationName": "my-launch-config", "CreatedTime": "2015-02-26T18:24:14.449Z", "AvailabilityZones": [ "us-west-2c" ], "HealthCheckType": "EC2" } ]}

6. delete-auto-scaling-group コマンドを使用して、my-group-c を削除します。

aws autoscaling delete-auto-scaling-group --auto-scaling-group-name my-group-c

86

Page 94: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling インフラストラクチャの削除

Auto Scaling インフラストラクチャの削除スケーリングインフラストラクチャを完全に削除するには、次のタスクを実行します。

タスク• Auto Scaling グループの削除 (p. 87)• (任意)起動設定の削除 (p. 87)• (オプション) 起動テンプレートを削除する (p. 88)• Load Balancer を削除する(省略可能) (p. 88)• CloudWatch アラームの削除(省略可能) (p. 89)

Auto Scaling グループの削除Auto Scaling グループを削除すると、目的の値、最小値、および最大値は 0 に設定されます。その結果、インスタンスは削除されます。インスタンスを削除すると、関連するログまたはデータ、およびインスタンスのすべてのボリュームも削除します。1 つ以上のインスタンスを終了しない場合は、 Auto Scaling グループを削除する前にこれらをデタッチすることができます。

Auto Scaling グループを削除するには (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. [Auto Scaling グループ] ページで、Auto Scaling グループを選択してから、[アクション]、[削除] の順

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

Auto Scaling グループを削除するには (AWS CLI)

次の delete-auto-scaling-group コマンドを使用して、Auto Scaling グループを削除します。

aws autoscaling delete-auto-scaling-group --auto-scaling-group-name my-asg

(任意)起動設定の削除今後使用できるように起動設定を保存するには、このステップをスキップします。

起動設定を削除するには (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[起動設定] を選択します。3. [起動設定] ページで、起動設定を選択してから、[Actions (アクション)]、[起動設定の作成] の順に選択

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

起動設定を削除するには (AWS CLI)

次の delete-launch-configuration コマンドを使用します。

aws autoscaling delete-launch-configuration --launch-configuration-name my-launch-config

87

Page 95: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド(オプション) 起動テンプレートを削除する

(オプション) 起動テンプレートを削除する起動テンプレートを削除することも、1 つの起動テンプレートバージョンを削除することもできます。起動テンプレートを削除すると、そのすべてのバージョンが削除されます。

このステップをスキップして、後で使用するために起動テンプレートを維持することもできます。

起動テンプレートを削除するには (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[Launch Templates (起動テンプレート)] を選択します。3. 起動テンプレートを選択し、次のいずれかの操作を行います。

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

• [アクション]、[Delete template version (テンプレートのバージョンの削除)] の順に選択します。削除するバージョンを選択し、[起動テンプレートのバージョンの削除] を選択します。

起動テンプレートを削除するには (AWS CLI)

次の delete-launch-template コマンドを使用して、テンプレートとそのすべてのバージョンを削除します。

aws ec2 delete-launch-template --launch-template-id lt-068f72b72934aff71

または、 delete-launch-template-versions コマンドを使用して特定の起動テンプレートのバージョンを削除することもできます。

aws ec2 delete-launch-template-versions --launch-template-id lt-068f72b72934aff71 --versions 1

Load Balancer を削除する(省略可能)Auto Scaling グループが Elastic Load Balancing ロードバランサーに関連付けされていない場合、または今後使用できるようにロードバランサーを維持する場合、このステップをスキップします。

ロードバランサーを削除するには (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[ロードバランサー] を選択します。3. ロードバランサーを選択してから、[Actions (アクション)]、[Delete (削除)] の順に選択します。4. 確認を求めるメッセージが表示されたら、[Yes, Delete] を選択します。

ターゲットグループを削除するには (コンソール)

1. ナビゲーションペインで、[Target Groups (ターゲットグループ)] を選択します。2. ターゲットグループを選択し、[Actions (アクション)]、[Delete (削除)] を選択します。3. 確認を求めるメッセージが表示されたら、[Yes] を選択します。

Auto Scaling グループに関連付けられているロードバランサーを削除するには (AWS CLI)

88

Page 96: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドCloudWatch アラームの削除(省略可能)

Application Load Balancer および Network Load Balancer では、次の delete-load-balancer コマンドとdelete-target-group コマンドを使用します。

aws elbv2 delete-load-balancer --load-balancer-arn my-load-balancer-arnaws elbv2 delete-target-group --target-group-arn my-target-group-arn

クラシックロードバランサー では、次の delete-load-balancer コマンドを使用します。

aws elb delete-load-balancer --load-balancer-name my-load-balancer

CloudWatch アラームの削除(省略可能)Auto Scaling グループに関連付けられた CloudWatch アラームを削除するには、次のステップを実行します。

Auto Scaling グループが CloudWatch アラームに関連付けられていない場合、または今後使用できるようにアラームを維持する場合、このステップはスキップします。

Note

Auto Scaling グループを削除すると、Amazon EC2 Auto Scaling がターゲットの追跡スケーリングポリシーのために管理する CloudWatch アラームが自動的に削除されます。

CloudWatch アラームを削除するには (コンソール)

1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。2. ナビゲーションペインで、[アラーム] を選択します。3. アラームを選び、[Action (アクション)]、[Delete (削除)] を選択します。4. 確認を求めるメッセージが表示されたら、[削除] を選択します。

CloudWatch アラームを削除するには (AWS CLI)

delete-alarms コマンドを実行します。1 つ以上のアラームを一度に削除することができます。たとえば、次のコマンドを使用して Step-Scaling-AlarmHigh-AddCapacity アラームおよび Step-Scaling-AlarmLow-RemoveCapacity アラームを削除します。

aws cloudwatch delete-alarms --alarm-name Step-Scaling-AlarmHigh-AddCapacity Step-Scaling-AlarmLow-RemoveCapacity

89

Page 97: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスケーリングのオプション

Auto Scaling グループのスケーリング

スケーリングは、アプリケーションのコンピューティング容量を増減する機能です。スケーリングは、Auto Scaling グループに Amazon EC2 インスタンスの起動または終了を指示するイベント (スケーリングアクション) で始まります。

Amazon EC2 Auto Scaling では、アプリケーションのニーズを最大限に満たすようにさまざまな方法でスケーリングを調整できます。そのため、アプリケーションを十分に理解していることが重要です。以下の考慮事項に注意が必要です。

• どのような役割を Amazon EC2 Auto Scaling がアプリケーションのアーキテクチャで果たすか。 自動スケーリングは容量の増減手段として考えるのが一般的ですが、一定数のサーバーを維持する場合にも便利です。

• どのようなコストの制約がお客様にとって重要か。 Amazon EC2 Auto Scaling は EC2 インスタンスを使用するため、お客様がリソースを使用した分に対してのみ支払いが発生します。コストの制約を知ることは、アプリケーションをスケーリングするタイミングと量を決定するときに役立ちます。

• どのようなメトリクスがアプリケーションにとって重要か。Amazon CloudWatch では、Auto Scaling グループ用にさまざまなメトリクスがサポートされています。

コンテンツ• スケーリングのオプション (p. 90)• Auto Scaling グループの容量制限の設定 (p. 91)• Auto Scaling グループでの固定数のインスタンスの維持 (p. 92)• Amazon EC2 Auto Scaling の手動スケーリング (p. 92)• Amazon EC2 Auto Scaling のスケジュールに基づくスケーリング (p. 101)• Amazon EC2 Auto Scaling の動的なスケーリング (p. 104)• Amazon EC2 Auto Scaling のスケーリングクールダウン (p. 124)• スケールイン時にどの Auto Scaling インスタンスを終了するかのコントロール (p. 127)• Amazon EC2 Auto Scaling ライフサイクルフック (p. 133)• Auto Scaling グループからの一時的なインスタンスの削除 (p. 141)• スケーリングプロセスの中断と再開 (p. 145)

スケーリングのオプションAmazon EC2 Auto Scaling では、Auto Scaling グループをスケーリングする方法がいくつか用意されています。

現在のインスタンスレベルの常時維持

実行中のインスタンスの指定された数を常に維持するように Auto Scaling グループを設定できます。Amazon EC2 Auto Scaling は、現在のインスタンスレベルを維持するために、Auto Scaling グループ内で実行中のインスタンスで定期的なヘルスチェックを実行します。Amazon EC2 Auto Scaling は、インスタンスに異常があると判断すると、そのインスタンスを終了して新しいインスタンスを起動します。詳細については、「Auto Scaling グループでの固定数のインスタンスの維持 (p. 92)」を参照してください。

手動スケーリング

90

Page 98: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド容量制限の設定

手動スケーリングは、リソースをスケーリングする最も基本的な方法です。ここでは、Auto Scaling グループの最大容量、最小容量、または希望する容量の変更のみを指定します。Amazon EC2 Auto Scalingは、更新された容量を維持するためにインスタンスを作成または終了するプロセスを管理します。詳細については、「Amazon EC2 Auto Scaling の手動スケーリング (p. 92)」を参照してください。

スケジュールに基づくスケーリング

スケジュールに基づくスケーリングとは、日付と時刻に基づいて自動的に実行されるスケーリングアクションのことです。グループのインスタンスの数を増減しなければならない状況が予測可能なスケジュールで発生するため、いつその数を増減すべきかが正確にわかっている場合に、このスケーリング方法は便利です。詳細については、「Amazon EC2 Auto Scaling のスケジュールに基づくスケーリング (p. 101)」を参照してください。

需要に基づくスケーリング

スケーリングポリシーを使用してリソースをスケーリングする高度な方法では、スケーリングプロセスをコントロールするパラメータを定義できます。たとえば、現在 2 つのインスタンスで実行されているウェブアプリケーションがあり、アプリケーションの負荷が変化しても Auto Scaling グループの CPU 使用率を約 50% に維持する必要があるとします。この方法は、いつ条件が変化するかが不明である場合に、変化する条件に応じてスケーリングするために役立ちます。お客様に代わって応答するように AmazonEC2 Auto Scaling を設定できます。詳細については、「Amazon EC2 Auto Scaling の動的なスケーリング (p. 104)」を参照してください。

予測スケーリング

また、Amazon EC2 Auto Scaling を AWS Auto Scaling と組み合わせて使用し、複数のサービス間でリソースをスケーリングできます。AWS Auto Scaling は、予測スケーリングと動的スケーリング (それぞれ予防的アプローチと事後的アプローチ) を組み合わせて Amazon EC2 キャパシティーを高速スケーリングすることで、最適な可用性とパフォーマンスを維持できます。詳細については、AWS Auto Scaling ユーザーガイド を参照してください。

Auto Scaling グループの容量制限の設定最小容量、最大容量、希望する容量を設定することで、Auto Scaling グループのサイズを設定します。Auto Scaling グループを作成するために、最小容量と最大容量は必須ですが、希望する容量はオプションです。希望する容量を事前に定義しない場合、この容量はデフォルトで最小容量に設定されます。

Note

デフォルトでは、コンソールから Auto Scaling グループを作成すると、最小容量、最大容量、希望する容量が 1 つのインスタンスに設定されます。希望する容量を変更した場合、Auto Scalingグループのサイズは、そのグループの作成直後に起動されるインスタンスの合計数になります。

Auto Scaling グループは、最小容量と最大容量の値が異なる限り、その範囲内で伸縮自在です。AutoScaling グループの希望する容量を変更するすべてのリクエスト (手動スケーリングまたは自動スケーリングによる) は、この制限内に収まる必要があります。

グループを自動的にスケーリングすることを選択した場合、Amazon EC2 Auto Scaling では需要の増加に対応するために、インスタンス数が必要に応じて最大制限までスケールアウトされます。最小制限は、常に一定数のインスタンスを稼働状態にするのに役立ちます。

これらの制限は、一時的または永続的に自動スケーリングをオフにしてグループを固定サイズで稼働する場合など、Auto Scaling グループを手動でスケーリングする場合にも適用されます。

コンソールで容量設定にアクセスするには:

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。

91

Page 99: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド固定数のインスタンスの維持

3. Auto Scaling グループを選択して表示します。4. [Details (詳細)] タブで、最小容量、最大容量、希望する容量の現在の設定を表示または変更します。

Auto Scaling グループでの固定数のインスタンスの維持

Auto Scaling グループを作成したら、その最小容量 (または指定されている場合は希望容量) を満たすのに十分な数の EC2 インスタンスの起動によって、Auto Scaling グループが開始されます。

固定数のインスタンスが必要な場合、そのためには、最小容量、最大容量、希望する容量に同じ値を設定します。Auto Scaling グループに他のスケーリング条件がアタッチされていない場合、インスタンスが異常になっても、そのグループは実行中のインスタンスのこの数を常に維持します。

Amazon EC2 Auto Scaling は、同じ数のインスタンスを維持するために、Auto Scaling グループ内で実行中のインスタンスで定期的なヘルスチェックを実行します。インスタンスが正常でないことがわかった場合、そのインスタンスは終了され、新しいインスタンスが起動されます。実行中のインスタンスを停止または終了した場合、そのインスタンスは異常になり置き換えられたと見なされます。ヘルスチェック交換の詳細については、「Auto Scaling インスタンスのヘルスチェック (p. 150)」を参照してください。

Auto Scaling グループを手動でスケーリングするには、希望する容量を調整することで、Amazon EC2Auto Scaling が維持しようとするインスタンスの数を更新できます。希望する容量を最小容量と最大容量の範囲外の値に調整するには、その前に、これらの制限を更新する必要があります。

Amazon EC2 Auto Scaling の手動スケーリング既存の Auto Scaling グループのサイズはいつでも手動で変更できます。Auto Scaling グループの希望する容量を更新したり、Auto Scaling グループにアタッチされているインスタンスを更新したりできます。グループの手動スケーリングは、自動スケーリングが不要な場合や、容量をインスタンスの固定数に保持する必要がある場合に役立ちます。

Auto Scaling グループのサイズの変更 (コンソール)Auto Scaling グループのサイズを変更する場合、Amazon EC2 Auto Scaling は新しいグループサイズを維持するために、インスタンスの起動または終了プロセスを管理します。

次の例では、最小サイズが 1 で、最大サイズが 5 である Auto Scaling グループを作成したことを前提としています。したがって、このグループでは現在インスタンスを実行中です。

Auto Scaling グループのサイズを変更するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Details] タブで、[Edit] を選択します。5. [Desired] で、希望する容量を 1 つ増やします。現在の値が 1 の場合、2 と入力します。

希望する容量はグループの最大サイズと同じかそれ以下である必要があります。[Desired] の新しい値が、[Max] よりも大きい場合、[Max] を更新する必要があります。

完了したら、[Save ] を選択します。

ここで、Auto Scaling グループが 1 つの追加のインスタンスを起動したことを確認します。

92

Page 100: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループのサイズの変更 (AWS CLI)

Auto Scaling グループのサイズが変更されたことを確認するには

1. [Activity History (アクティビティ履歴)] タブでは、[Status (ステータス)] 列にインスタンスの現在のステータスが表示されます。インスタンスのステータスが [成功] に変わるまで、更新ボタンを使用します。このステータスになると、Auto Scaling グループによって新しいインスタンスが正常に起動されています。

2. [Instances (インスタンス)] タブでは、[ライフサイクル] 列にインスタンスのステータスが表示されます。インスタンスはすぐに起動します。インスタンスが起動されると、状態は InService に変わります。Auto Scaling グループによって 1 つの新しいインスタンスが起動され、そのインスタンスがInService 状態になっていることを確認できます。

Auto Scaling グループのサイズの変更 (AWS CLI)Auto Scaling グループのサイズを変更する場合、Amazon EC2 Auto Scaling は新しいグループサイズを維持するために、インスタンスの起動または終了プロセスを管理します。デフォルトではデフォルトのクールダウン期間が完了するまで待機されませんが、デフォルトの動作を上書きしてクールダウン期間が完了するまで待機されるようにできます。詳細については、「Amazon EC2 Auto Scaling のスケーリングクールダウン (p. 124)」を参照してください。

以下の例では、最小サイズが 1 で、最大サイズが 5 である Auto Scaling グループを作成したことを前提としています。したがって、このグループでは現在インスタンスを実行中です。

Auto Scaling グループのサイズを変更するには

以下の例のように、Auto Scaling グループのサイズを変更するには、set-desired-capacity コマンドを使用します。

aws autoscaling set-desired-capacity --auto-scaling-group-name my-asg \ --desired-capacity 2

Auto Scaling グループのデフォルトのクールダウン期間を受け入れることを選択した場合は、以下の例に示しているように –-honor-cooldown オプションを指定する必要があります。

aws autoscaling set-desired-capacity --auto-scaling-group-name my-asg \ --desired-capacity 2 --honor-cooldown

Auto Scaling グループのサイズを確認するには

以下の例のように、describe-auto-scaling-groups コマンドを使用して、Auto Scaling グループのサイズが変更されたことを確認します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

以下に示すのは、グループおよび起動されたインスタンスの詳細を含む出力例です。

{ "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "ServiceLinkedRoleARN": "arn", "TargetGroupARNs": [], "SuspendedProcesses": [], "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" },

93

Page 101: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループへの EC2 インスタンスのアタッチ

"Tags": [], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg", "DefaultCooldown": 300, "MinSize": 1, "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "HealthStatus": "Healthy", "LifecycleState": "Pending" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], "MaxSize": 5, "VPCZoneIdentifier": "subnet-c87f2be0", "HealthCheckGracePeriod": 300, "TerminationPolicies": [ "Default" ], "CreatedTime": "2019-03-18T23:30:42.611Z", "AvailabilityZones": [ "us-west-2a" ], "HealthCheckType": "EC2", "NewInstancesProtectedFromScaleIn": false, "DesiredCapacity": 2 } ]}

DesiredCapacity が新しい値を示していることに注意してください。また、Auto Scaling グループによって追加のインスタンスが起動されています。

Auto Scaling グループへの EC2 インスタンスのアタッチAmazon EC2 Auto Scaling では、1 つ以上の EC2 インスタンスを既存の Auto Scaling グループにアタッチすることによって自動スケーリングを有効にするオプションが用意されています。インスタンスは、アタッチされた後、Auto Scaling グループの一部となります。

アタッチするインスタンスは次の条件を満たす必要があります。

• インスタンスが running 状態であること。

94

Page 102: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループへの EC2 インスタンスのアタッチ

• インスタンスの起動に使用する AMI が引き続き存在していること。• インスタンスが他の Auto Scaling グループのメンバーではないこと。• インスタンスは、Auto Scaling グループで定義されているいずれかのアベイラビリティーゾーンに起動

されます。• Auto Scaling グループにアタッチした標準ロードバランサーがある場合、インスタンスとロードバラン

サーが両方とも EC2- または同じ VPC にあることが必要です。Auto Scaling グループにアタッチしたターゲットグループがある場合は、インスタンスおよびロードバランサーは両方とも同じ VPC にあることが必要です。

インスタンスをアタッチすると、アタッチされるインスタンスの数によって、グループの必要な容量は増加します。アタッチするインスタンスの数と希望する容量がグループの最大サイズを超える場合、リクエストは失敗します。

インスタンスをロードバランサーにアタッチした Auto Scaling グループにアタッチする場合、インスタンスはロードバランサーに登録されます。インスタンスをターゲットグループにアタッチした Auto Scalingグループにアタッチする場合、インスタンスはターゲットグループに登録されます。

例では、次の設定で Auto Scaling グループを使用します。

• Auto Scaling グループ名 = my-asg• 最小サイズ = 1• 最大サイズ = 5• 希望する容量 = 2• 利用可能ゾーン = us-west-2a

インスタンスのアタッチ (コンソール)既存の Auto Scaling グループまたは作成する新しい Auto Scaling グループに既存のインスタンスをアタッチできます。

インスタンスを新しい Auto Scaling グループにアタッチするには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[インスタンス] を選択します。3. インスタンスを選択します。4. [Actions]、[Instance Settings]、[Attach to Auto Scaling Group] の順に選択します。5. [Attach to Auto Scaling Group] ページで、新しい Auto Scaling グループを選択し、そのグループの名

前を入力して、[Attach] を選択します。

Auto Scaling グループに指定したものと同じ名前で、新しい起動設定を使用して新しい Auto Scalingグループが作成されます。起動設定は、アタッチしたインスタンスから設定(セキュリティグループや IAM ロールなど)を取得します。Auto Scaling グループは、アタッチしたインスタンスから設定(たとえばアベイラビリティーゾーンおよびサブネット) を取得し、希望する容量と最大サイズ 1 があります。

6. (オプション) Auto Scaling グループの設定を編集するには、ナビゲーションペインの [Auto Scaling] で[Auto Scaling グループ] を選択します。新しい Auto Scaling グループを選択し、[編集] を選択して必要に応じて設定を変更したら、[保存] を選択します。

インスタンスを既存の Auto Scaling グループにアタッチするには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. (オプション) ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。Auto

Scaling グループを選択し、Auto Scaling グループの最大サイズが別のインスタンスを追加できる十分

95

Page 103: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループへの EC2 インスタンスのアタッチ

な大きさであることを確認します。それ以外の場合は、[Edit] を選択して最大サイズを増やし、[Save]を選択します。

3. ナビゲーションペインで、[インスタンス] を選択します。4. インスタンスを選択します。5. [Actions]、[Instance Settings]、[Attach to Auto Scaling Group] の順に選択します。6. [Attach to Auto Scaling Group] ページで、既存の Auto Scaling グループを選択し、インスタンスを選

択したら、[Attach] を選択します。7. インスタンスがこの基準を満たさない場合、エラーメッセージとその詳細が表示されます。たとえ

ば、インスタンスが Auto Scaling グループと同じアベイラビリティーゾーンにない可能性があります。[Close (閉じる)] を選択して、条件を満たすインスタンスでもう一度試してください。

インスタンスのアタッチ (AWS CLI)インスタンスを Auto Scaling グループにアタッチするには

1. 以下の describe-auto-scaling-groups コマンドを使用して Auto Scaling グループの詳細を表示します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg

以下のレスポンスの例では、希望する容量が 2 で、グループには実行中のインスタンスが 2 つあることが示されています。

{ "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "ServiceLinkedRoleARN": "arn", "TargetGroupARNs": [], "SuspendedProcesses": [], "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "Tags": [], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg", "DefaultCooldown": 300, "MinSize": 1, "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "HealthStatus": "Healthy", "LifecycleState": "Pending" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1",

96

Page 104: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループへの EC2 インスタンスのアタッチ

"LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], "MaxSize": 5, "VPCZoneIdentifier": "subnet-c87f2be0", "HealthCheckGracePeriod": 300, "TerminationPolicies": [ "Default" ], "CreatedTime": "2019-03-18T23:30:42.611Z", "AvailabilityZones": [ "us-west-2a" ], "HealthCheckType": "EC2", "NewInstancesProtectedFromScaleIn": false, "DesiredCapacity": 2 } ]}

2. 以下の attach-instances コマンドを使用して Auto Scaling グループにインスタンスをアタッチします。

aws autoscaling attach-instances --instance-ids i-0787762faf1c28619 --auto-scaling-group-name my-asg

3. インスタンスがアタッチされていることを確認するには、以下の describe-auto-scaling-groups コマンドを使用します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg

以下のレスポンスの例では、希望する容量が 1 から 3 つに増加したことと、新しいインスタンスi-0787762faf1c28619 があることが示されています。

{ "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "ServiceLinkedRoleARN": "arn", "TargetGroupARNs": [], "SuspendedProcesses": [], "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "Tags": [], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg", "DefaultCooldown": 300, "MinSize": 1, "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1",

97

Page 105: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループからの EC2 インスタンスのデタッチ

"LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "HealthStatus": "Healthy", "LifecycleState": "Pending" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "HealthStatus": "Healthy", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0787762faf1c28619", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], "MaxSize": 5, "VPCZoneIdentifier": "subnet-c87f2be0", "HealthCheckGracePeriod": 300, "TerminationPolicies": [ "Default" ], "CreatedTime": "2019-03-18T23:30:42.611Z", "AvailabilityZones": [ "us-west-2a" ], "HealthCheckType": "EC2", "NewInstancesProtectedFromScaleIn": false, "DesiredCapacity": 3 } ]}

Auto Scaling グループからの EC2 インスタンスのデタッチAuto Scaling グループからインスタンスを削除できます。インスタンスをデタッチした後、Auto Scalingグループの残りのメンバーとは別にそれらのインスタンスを管理できます。インスタンスをデタッチすることで、以下のことを行えます。

• インスタンスを 1 つの Auto Scaling グループから移動して別のグループにアタッチします。詳細については、「Auto Scaling グループへの EC2 インスタンスのアタッチ (p. 94)」を参照してください。

• アプリケーションを実行している既存のインスタンスを使用して作成することによって Auto Scaling グループをテストした後、テストが完了したら Auto Scaling グループからこれらのインスタンスをデタッチします。

98

Page 106: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループからの EC2 インスタンスのデタッチ

インスタンスをデタッチするときは、デタッチするインスタンスの数を Auto Scaling グループの希望する容量から減らすことができます。容量を減らさない場合、Amazon EC2 Auto Scaling はデタッチしたインスタンスに置き換わる新しいインスタンスを起動します。容量を減らして、同一アベイラビリティーゾーンから複数のインスタンスをデタッチする場合は、AZRebalance プロセスを中断しない限り、AmazonEC2 Auto Scaling はアベイラビリティーゾーンを再調整できます。詳細については、「スケーリングプロセス (p. 146)」を参照してください。

デタッチするインスタンス数によって Auto Scaling グループのサイズが最低容量を下回る場合、インスタンスをデタッチする前にグループの最低容量を減らす必要があります。

ロードバランサーにアタッチした Auto Scaling グループからインスタンスをデタッチすると、インスタンスはロードバランサーから登録解除されます。インスタンスをターゲットグループにアタッチした AutoScaling グループにデタッチする場合、インスタンスはターゲットグループから登録解除されます。ロードバランサーで Connection Draining が有効になっている場合、Amazon EC2 Auto Scaling は未処理のリクエストが完了するまで待機します。

例では、次の設定で Auto Scaling グループを使用します。

• Auto Scaling グループ名 = my-asg• 最小サイズ = 1• 最大サイズ = 5• 希望する容量 = 4• アベイラビリティーゾーン = us-west-2a

インスタンスのデタッチ (コンソール)Auto Scaling グループからインスタンスをデタッチするには、以下の手順を使用します。

既存の Auto Scaling グループからインスタンスをデタッチするには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Instances] タブで、インスタンスを選択し、[Actions]、[Detach] の順に選択します。5. 代わりのインスタンスを起動する場合、[Detach Instance] ページでチェックボックスを選択し、必要

な容量を減らす場合はチェックボックスをオフのままにしておきます。[Detach Instance (インスタンスのデタッチ)] を選択します。

インスタンスのデタッチ (AWS CLI)Auto Scaling グループからインスタンスをデタッチするには、以下の手順を使用します。

既存の Auto Scaling グループからインスタンスをデタッチするには

1. 以下の describe-auto-scaling-instances コマンドを使用して、現在のインスタンスを一覧表示します。

aws autoscaling describe-auto-scaling-instances

以下のレスポンスの例では、グループに実行中のインスタンスが 4 個あることが示されています。

{

99

Page 107: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループからの EC2 インスタンスのデタッチ

"AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0787762faf1c28619", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0f280a4c58d319a8a", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" } ]}

2. 以下の detach-instances コマンドを使用して、インスタンスをデタッチし、希望する容量を減らします。

aws autoscaling detach-instances --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg --should-decrement-desired-capacity

3. 以下の describe-auto-scaling-instances コマンドを使用して、インスタンスがデタッチされたことを確認します。

100

Page 108: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスケジュールに基づくスケーリング

aws autoscaling describe-auto-scaling-instances

以下のレスポンスの例では、実行中のインスタンスが 3 個になったことが示されています。

{ "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0787762faf1c28619", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0f280a4c58d319a8a", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" } ]}

Amazon EC2 Auto Scaling のスケジュールに基づくスケーリング

スケジュールに基づいたスケーリングにより、予想可能な負荷の変化に対する独自のスケーリングスケジュールを設定できます。たとえば、毎週、ウェブアプリケーションへのトラフィックが水曜日に増え始め、木曜日は高いままで、金曜日に下がり始めるとします。このような場合は、ウェブアプリケーションの予測可能なトラフィックパターンに基づいてスケーリングアクションを計画できます。スケーリングアクションは、時刻と日付に応じて自動的に実行されます。

101

Page 109: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド考慮事項

Note

予測可能な負荷の変化に基づくスケーリングの場合は、AWS Auto Scaling の予測スケーリング機能も使用できます。詳細については、AWS Auto Scaling ユーザーガイド を参照してください。

スケジュールに基づいてスケーリングするように Auto Scaling グループを設定するには、スケジュールされたアクションを作成します。スケジュールされたアクションは、特定の時刻にスケーリングアクションを実行するように Amazon EC2 Auto Scaling に指示します。スケジュールされたスケーリングアクションを作成するには、スケーリングアクションが有効になる開始時間と、そのスケーリングアクションでの新しい最小サイズ、最大サイズ、および希望するサイズを指定します。指定した時間に、Amazon EC2 AutoScaling はスケーリングアクションで指定された最小サイズ、最大サイズ、および希望するサイズの値でグループを更新します。

1 回のみ、または定期的なスケジュールでスケーリングする、スケジュールされたアクションを作成できます。

考慮事項スケジュールされたアクションを作成する場合、以下の点に注意してください。

• スケジュールされたアクションの実行順序は、それらのアクションが同じグループ内で実行される場合は維持されますが、複数のグループ間で実行される場合は必ずしも維持されません。

• 通常、スケジュールされたオペレーションは数秒以内に実行されます。ただし、アクションは、スケジュールされた開始時間から最大 2 分遅れる場合があります。Auto Scaling グループ内のアクションは指定された順序で実行されるため、スケジュールされている開始時間が互いに近い、スケジュールされたアクションの実行には時間がかかる可能性があります。

• 1 つの Auto Scaling グループあたり最大 125 のスケジュールされたアクションを作成できます。• スケジュールされたアクションには、一意の時間値が必要です。他のスケーリングアクティビティがす

でにスケジュールされているときにアクティビティをスケジュールしようとすると、呼び出しは拒否され、競合を知らせるエラーメッセージが表示されます。

• スケジュールされたアクションは、終了時刻に達するとアカウントに残りません。• スケジュールされたアクションを削除せずに、スケジュールされたスケーリングを一時的に無効にでき

ます。詳細については、「スケーリングプロセスの中断と再開 (p. 145)」を参照してください。• クールダウン期間はサポートされていません。• スケーリングアクションを Amazon EC2 以外のリソースに対してスケジュールすることもできます。詳

細については、Application Auto Scaling ユーザーガイド の「スケジュールに基づくスケーリング」を参照してください。

スケジュールされたアクションを作成および管理する(コンソール)コンソールを使用して、スケジュールされたアクションは 1 回のみ、または反復してスケーリングするように作成できます。スケジュールされたアクションを作成して Auto Scaling グループをスケーリングするには、以下の手順を実行します。

Auto Scaling グループに対してスケジュールされたアクションを作成するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Scheduled Actions] タブで、[Create Scheduled Action] を選択します。5. [Create Scheduled Action (スケジュールされたアクションの作成)] ページで、以下のことを行いま

す。

102

Page 110: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスケジュールされたアクション

を作成および管理する (AWS CLI)

• [最小]、[最大]、[希望する容量] のうち少なくとも 1 つを使用して、グループのサイズを指定します。

• [繰り返し] のオプションを選択します。[Once (1 回)] を選択した場合、アクションは指定された時刻に実行されます。[Cron] を選択した場合は、いつアクションを実行するかを UTC で指定するCron 式を入力します。[Every (毎)] で始まるオプションを選択した場合、Cron 式が作成されます。

• [繰り返し] で [Once (1 回)] を選択した場合、アクションの時刻を [開始時刻] で指定します。• 定期的なスケジュールを指定した場合、[開始時刻] と [終了時刻] の値を指定できます。開始時刻を

指定した場合、アクションが実行される最も早い時刻はその時刻です。終了時刻を指定した場合、アクションはこの時刻より後には実行されません。

6. [Create (作成)] を選択します。

スケジュールされたアクションの更新要件が変化した場合は、スケジュールされたアクションを変更できます。

スケジュールされたアクションを更新するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Scheduled Actions] タブで、スケジュールされたアクションを選択します。5. [Actions]、[Edit] の順に選択します。6. [Edit Scheduled Action] ページで、次の作業を行います。

• [Min]、[Max] または [Desired Capacity] を使用して、必要に応じてグループのサイズを変更します。• 必要に応じて、指定された繰り返しを更新します。• 必要に応じて、開始時刻と終了時刻を更新します。• [Save (保存)] を選択します。

スケジュールされたアクションを削除するスケジュールされたアクションが不要になったら、削除できます。

スケジュールされたアクションを削除するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Scheduled Actions] タブで、スケジュールされたアクションを選択します。5. [ Actions] で、[Delete ] を選択します。6. 確認を求めるメッセージが表示されたら、[Yes, Delete (はい、削除します)] を選択します。

スケジュールされたアクションを作成および管理する(AWS CLI)put-scheduled-update-group-action コマンドを使用して、スケジュールされたアクションは 1 回のみ、または反復してスケーリングするように作成して更新できます。

1 回のみスケーリングするには

103

Page 111: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド動的なスケーリング

1 回のみのスケジュールを指定して、特定の日時 (UTC) に Auto Scaling グループが自動的にスケーリングされるようにできます。

• 特定の日時に Auto Scaling グループで実行中のインスタンスの数を減らすには、以下のコマンドを使用します。--start-time に指定された日時に、グループの現在のインスタンス数が 2 以上である場合、グループは 1 インスタンスにスケールインされます。

aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-one-time-action \ --auto-scaling-group-name my-asg --start-time "2019-05-13T08:00:00Z" --desired-capacity 1

• 特定の日時に Auto Scaling グループで実行中のインスタンスの数を増やすには、以下のコマンドを使用します。--start-time に指定された日時に、グループの現在のインスタンス数が 3 未満である場合、グループは 3 インスタンスにスケールアウトされます。

aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-one-time-action \ --auto-scaling-group-name my-asg --start-time "2019-05-12T08:00:00Z" --desired-capacity 3

定期的なスケジュールでスケーリングするには

Unix の cron 構文形式を使用して定期的なスケーリングをスケジュールできます。この形式は、スペースで区切られた 5 つのフィールド ([分] [時間] [日] [月] [曜日]) で構成されます。この形式の詳細については、「Crontab」を参照してください。

以下の put-scheduled-update-group-action コマンドを使用して、毎年 1 月 1 日、6 月 1 日、12 月 1 日の00:30 に実行するスケジュールされたアクションを作成します。

aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-recurring-action \ --auto-scaling-group-name my-asg --recurrence "30 0 1 1,6,12 *" --desired-capacity 3

スケジュールされたアクションの削除スケジュールされたアクションを削除するには

以下の delete-scheduled-action コマンドを使用します。

aws autoscaling delete-scheduled-action --scheduled-action-name my-recurring-action

Amazon EC2 Auto Scaling の動的なスケーリング動的スケーリングを設定する場合は、需要の増減に応じてスケールする方法を定義する必要があります。たとえば、現在 2 つのインスタンスで実行されているウェブアプリケーションがあり、アプリケーションの負荷が変化しても Auto Scaling グループの CPU 使用率を約 50% に維持する必要があるとします。これにより、過剰な量のアイドルリソースを維持することなくトラフィックの急上昇を処理するための追加の容量が得られます。このニーズを満たすため、自動的にスケーリングするように Auto Scaling グループを設定できます。ポリシータイプによって、スケーリングアクションがどのように実行されるかが決まります。

コンテンツ• スケーリングポリシータイプ (p. 105)

104

Page 112: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスケーリングポリシータイプ

• 複数のスケーリングポリシー (p. 105)• Amazon EC2 Auto Scaling のターゲット追跡スケーリングポリシー (p. 106)• Amazon EC2 Auto Scaling の簡易スケーリングとステップスケーリングポリシー (p. 110)• 既存の Auto Scaling グループにスケーリングポリシーを追加する (p. 119)• Amazon SQS に基づくスケーリング (p. 120)• スケーリングポリシーの削除 (p. 123)

スケーリングポリシータイプAmazon EC2 Auto Scaling は、以下のタイプのスケーリングポリシーをサポートします。

• Target tracking scaling — 特定のメトリクスのターゲット値に基づいて、グループの現在の容量を増減させます。これはサーモスタットで家の温度を管理する方法と似ています (温度を選択すれば、後はサーモスタットがすべてを実行する)。

• Step scaling — アラーム超過のサイズに応じて変動する一連のスケーリング調整値 (ステップ調整値と呼ばれる) に基づいて、グループの現在の容量を増減させます。

• Simple scaling — 1 つのスケーリング調整値に基づいて、グループの現在の容量を増減させます。

Auto Scaling グループ内のインスタンス数に比例して使用率メトリクスに基づいてスケールする場合は、ターゲット追跡スケーリングポリシーを使用することをお勧めします。それ以外の場合は、ステップスケーリングポリシーを使用することをお勧めします。

複数のスケーリングポリシーほとんどの場合、ターゲット追跡スケーリングポリシーは、自動的にスケールアウトまたはスケールインするように Auto Scaling グループを設定するのに十分です。ターゲット追跡スケーリングポリシーでは、希望する結果を選択したら、その結果を達成するために、必要に応じて Auto Scaling グループに対してインスタンスを追加および削除できます。

高度なスケーリング設定では、Auto Scaling グループに複数のスケーリングポリシーを設定できます。たとえば、1 つ以上のターゲット追跡スケーリングポリシー、1 つ以上のステップスケーリングポリシー、またはその両方を定義できます。これにより、複数のシナリオに対応できる柔軟性が高まります。

複数のポリシーがどのように連携するかを説明するために、Auto Scaling グループと Amazon SQS キューを使用して 1 つの EC2 インスタンスにリクエストを送信するアプリケーションを考えてみます。アプリケーションのパフォーマンスを最適なレベルに維持するために、Auto Scaling グループをスケールアウトするタイミングをコントロールする 2 つのポリシーがあるとします。1 つは、キュー内の SQS メッセージの数に基づいて容量を追加および削除するカスタムメトリクスを使用する、ターゲット追跡ポリシーです。もう 1 つは、インスタンスが指定された時間内に 90% の使用率を超えたときに容量を追加するAmazon CloudWatch CPUUtilization メトリクスを使用する、ステップポリシーです。

同時に有効なポリシーが複数ある場合は、各ポリシーで、Auto Scaling グループが同時にスケールアウト(またはスケールイン) するように指定している可能性があります。たとえば、EC2 インスタンスによってCPUUtilization メトリクスの CloudWatch アラームがトリガーされると同時に、SQS キューによってカスタムメトリクスに対するアラームがトリガーされる可能性があります。

このような状況になると、Amazon EC2 Auto Scaling はスケールアウトとスケールインの両方に最大の容量を提供するポリシーを選択します。たとえば、CPU 使用率のポリシーが 1 つのインスタンスを起動する一方で、SQS キューのポリシーは 2 つのインスタンスを起動するとします。両方のポリシーのスケールアウト基準が同時に満たされた場合、Amazon EC2 Auto Scaling は SQS キューポリシーを優先します。これにより、Auto Scaling グループは 2 つのインスタンスを起動することになります。

ポリシーがスケールインに異なる基準を使用する場合でも、最大容量を提供するポリシーを優先するというアプローチが適用されます。たとえば、3 つのインスタンスを終了するポリシーと、インスタンス

105

Page 113: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドターゲット追跡スケーリングポリシー

数を 25% 減らすポリシーがあり、スケールイン時にグループに 8 つのインスタンスがあるとします。この場合、Amazon EC2 Auto Scaling は、グループに最大数のインスタンスを提供するポリシーを優先させます。その結果、Auto Scaling グループは 2 つのインスタンスを終了します (8 の 25% = 2)。その目的は、Amazon EC2 Auto Scaling がインスタンスを削除しすぎないようにすることです。

Amazon EC2 Auto Scaling のターゲット追跡スケーリングポリシーターゲット追跡スケーリングポリシーでは、スケーリングメトリクスを選択してターゲット値を設定します。Amazon EC2 Auto Scaling はスケーリングポリシーをトリガーする CloudWatch アラームを作成および管理し、メトリクスとターゲット値に基づいてスケーリング調整値を計算します。スケーリングポリシーは、指定されたターゲット値、またはそれに近い値にメトリクスを維持するために、必要に応じて容量を追加または削除します。ターゲット追跡スケーリングポリシーは、メトリクスをターゲット値に近い値に維持することに加えて、変化するロードパターンによるメトリクスの変化に適応します。

たとえば、ターゲット追跡スケーリングを使用して以下のことが可能です。

• ターゲットの追跡スケーリングポリシーを設定して、Auto Scaling グループの平均集計 CPU 使用率を40 パーセントに維持する。

• Elastic Load Balancing ターゲットグループのターゲットごとのリクエスト数を、Auto Scaling グループに対して 1,000 に維持するように追跡スケーリングポリシーを設定する。

使用率の変化に迅速に対応できるように、1 分間隔で Amazon EC2 インスタンスのメトリクスをスケーリングすることをお勧めします。5 分間隔でメトリクスをスケーリングすると、応答時間が低速になり、古いメトリクスデータに基づいてスケーリングすることになる可能性があります。デフォルトでは、Amazon EC2 インスタンスで基本モニタリングが有効になります。つまり、インスタンスのメトリクスデータは 5 分間隔で利用できます。詳細モニタリングを有効にして、1 分間隔でインスタンスのメトリクスデータを取得できます。詳細については、「Auto Scaling インスタンスのモニタリングの設定 (p. 155)」を参照してください。

考慮事項以下の考慮事項に注意が必要です。

• ターゲットの追跡スケーリングポリシーでは、指定されたメトリクスがターゲット値を超えている場合、Auto Scaling グループをスケールアウトする必要があるとみなされます。指定されたメトリクスがターゲット値を下回っている場合、ターゲット追跡スケーリングポリシーを使用して Auto Scaling グループをスケールアウトすることはできません。

• ターゲット値と実際のメトリクスデータポイント間に差が生じる場合があります。これは、追加または削除するインスタンス数を決定するときに、その数を切り上げまたは切り捨てて常に控えめに動作するためです。これにより、不十分な数のインスタンスを追加したり、インスタンスを過剰に削除したりすることがなくなります。ただし、インスタンス数が少ない、より小さな Auto Scaling グループでは、グループの使用率はターゲット値からかなり離れているように見える場合があります。たとえば、CPU 使用率に 50 パーセントのターゲット値を設定し、Auto Scaling グループがそのターゲットを超過した場合です。1.5 インスタンスを追加することで CPU 使用率が 50 パーセント近くに減少すると判断される場合があります。1.5 インスタンスを追加することはできないので、これを切り上げて、2 インスタンスを追加します。これにより、CPU 使用率は 50 パーセント未満の値に下がる可能性がありますが、アプリケーションをサポートする十分なリソースが確保されます。同様に、1.5 インスタンスを削除することで CPU 使用率が 50 パーセントを超えると判断した場合、1 インスタンスのみを削除します。

• より多くのインスタンスのある大規模な Auto Scaling グループの場合、使用率はより多くのインスタンス間で分散されます。その場合、インスタンスの追加または削除により、ターゲット値と実際のメトリクスデータポイントとの差が小さくなります。

• アプリケーションの可用性を高めるために、Auto Scaling グループのスケールアウトはメトリクスに比例して可能な限り高速に行われますが、スケールインはより緩やかです。

106

Page 114: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドターゲット追跡スケーリングポリシー

• Auto Scaling グループは、同時に複数のスケーリングポリシーを有効にすることができます。詳細については、「複数のスケーリングポリシー (p. 105)」を参照してください。

• それぞれが異なるメトリクスを使用していれば、Auto Scaling グループに対して複数のターゲット追跡スケーリングポリシーを設定できます。Amazon EC2 Auto Scaling の目的は常に可用性を優先することであるため、その動作は、ターゲット追跡ポリシーでスケールアウトまたはスケールインの準備ができているかによって異なります。ターゲット追跡ポリシーのいずれかでスケールアウトする準備ができると、Auto Scaling グループがスケールアウトされますが、すべてのターゲット追跡ポリシー (スケールイン部分が有効) でスケールインする準備ができている場合にのみスケールインされます。

• ターゲット追跡スケーリングポリシーのスケールイン部分を無効にすることもできます。この機能により、別の方法を使用して Auto Scaling グループをスケールインできる柔軟性が得られます。たとえば、スケールアウトにはターゲット追跡スケーリングポリシーを使用しながら、別のスケーリングポリシータイプを使用してスケールインできます。

• ターゲット追跡スケーリングポリシー用に設定された CloudWatch アラームを編集または削除しないでください。ターゲット追跡スケーリングポリシーに関連付けられた CloudWatch アラームは、スケーリングポリシーを削除すると自動的に削除されます。

• ターゲット追跡スケーリングを Amazon EC2 以外のリソースに使用することもできます。詳細については、Application Auto Scaling ユーザーガイド の「ターゲット追跡スケーリングポリシー」を参照してください。

メトリクスの選択Amazon EC2 コンソールを使用して、事前定義されたメトリクスに基づいてターゲット追跡スケーリングポリシーを適用できます。あるいは、Amazon EC2 Auto Scaling CLI または API を使用して、事前定義またはカスタマイズされたメトリクスに基づいてスケーリングポリシーを適用できます。以下の事前定義されたメトリクスを使用できます。

• ASGAverageCPUUtilization—Auto Scaling グループの平均 CPU 使用率。• ASGAverageNetworkIn—Auto Scaling グループがすべてのネットワークインターフェイスで受信した

バイトの平均数。• ASGAverageNetworkOut—Auto Scaling グループがすべてのネットワークインターフェイスで送信し

たバイトの平均数。• ALBRequestCountPerTarget — Application Load Balancer ターゲットグループ内のターゲットごと

に完了したリクエストの数。

カスタマイズされたメトリクスを指定することで、他の使用可能な Amazon CloudWatch メトリクスを選択できます。

メトリクスを選択するときは、以下の点に注意してください。

• すべてのメトリクスがターゲット追跡に使用できるわけではありません。これは、カスタマイズされたメトリクスを指定する場合に重要になる場合があります。メトリクスは有効な使用率メトリクスであり、インスタンスの使用頻度を指定する必要があります。メトリクス値は Auto Scaling グループのインスタンス数に比例して増減する必要があります。それにより、メトリクスデータを使用して比例的にインスタンス数をスケールアウトまたはスケールインできます。たとえば、Auto Scaling グループの負荷がインスタンス間で分散されている場合、Auto Scaling グループの CPU 使用率 (ディメンションAutoScalingGroupName の Amazon EC2 メトリクス CPUUtilization) は有効です。

• 以下のメトリクスはターゲットの追跡では機能しません。• Auto Scaling グループに面しているロードバランサーが受信したリクエスト数 (つまり、Elastic Load

Balancing メトリクス RequestCount)。ロードバランサーによって受信されたリクエストの数は、Auto Scaling グループの使用率に基づいて変化しません。

• ロードバランサーのリクエストのレイテンシー (Elastic Load Balancing メトリクス Latency)。リクエストのレイテンシーは、使用率の増加により増える場合がありますが、必ずしも比例して変化するわけではありません。

107

Page 115: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドターゲット追跡スケーリングポリシー

• CloudWatch SQS キューメトリクス ApproximateNumberOfMessagesVisible。キュー内のメッセージ数は、キューからのメッセージを処理する Auto Scaling グループのサイズに比例して変わらない可能性があるためです。ただし、Auto Scaling グループの EC2 インスタンスごとにキュー内のメッセージの数を測定するカスタマイズされたメトリクスは機能します。詳細については、「AmazonSQS に基づくスケーリング (p. 120)」を参照してください。

• 指定されたメトリクスに十分なデータがない場合、ALBRequestCountPerTarget メトリクスを使用しない限り、ターゲット追跡スケーリングポリシーによって Auto Scaling グループはスケールインされません。これは、ALBRequestCountPerTarget メトリクスから関連データのない期間にゼロが発行され、ターゲット追跡ポリシーでは、低い使用率の傾向と見なすためのメトリクスデータが必要なためです。ターゲットグループにリクエストがルーティングされないときに Auto Scaling グループを 0 インスタンスにスケールインするには、グループの最小容量を 0 に設定する必要があります。

ターゲット追跡スケーリングポリシーを使用する Auto Scaling グループを作成する (コンソール)ターゲット追跡スケーリングポリシーを使用する Auto Scaling グループを作成するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. [Auto Scaling グループの作成] を選択します。4. [Create Auto Scaling Group] ページで、以下のいずれかの操作を実行します。

• [既存の起動設定から Auto Scaling グループを作成する] を選択し、既存の起動設定を選択して、[次のステップ] を選択します。

• 使用する起動設定がない場合は、[Create a new launch configuration] を選択し、表示される指示に従います。詳細については、「起動設定を作成する (p. 34)」を参照してください。

5. [Configure Auto Scaling group details (Auto Scaling グループ詳細の設定)] ページで、以下を実行します。

a. [グループ名] に Auto Scaling グループの名前を入力します。b. [Group size (グループサイズ)] に Auto Scaling グループに必要な容量を入力します。c. VPC が必要なインスタンス(T2 のインスタンスなど)を起動設定で指定した場合、[Network] で

VPC を選択する必要があります。AWS アカウントで EC2-Classic がサポートされており、インスタンスで VPC が不要な場合は、Launch into EC2-Classic または VPC のいずれかを選択できます。

d. 前のステップで VPC を選択した場合、[Subnet] で 1 つ以上のサブネットを選択します。前のステップで EC2-Classic を選択した場合、[Availability Zone(s)] で 1 つ以上のアベイラビリティーゾーンを選択します。

e. [Next: Configure scaling policies] を選択します。6. [Configure scaling policies] ページで、以下を実行します。

a. [Use scaling policies to adjust the capacity of this group] を選択します。b. [Scale between] で始まる行を使用して、Auto Scaling グループの最小および最大サイズを指定し

ます。たとえば、グループがすでに最大サイズに達している場合、スケールアウトするには新しい最大サイズを指定します。

c. [Scale Group Size] で、スケーリングポリシーを指定します。オプションでポリシーの名前を指定し、[Metric type (メトリクスタイプ)] の値を選択します。

d. メトリクスの [Target value] を指定します。e. [Instances need (インスタンスのニーズ)] にインスタンスのウォームアップ値を指定します。これ

により、新しく起動したインスタンスが CloudWatch メトリクスに影響できるようになるまでの時間を制御できます。

108

Page 116: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドターゲット追跡スケーリングポリシー

f. [Disable scale-in] オプションをオンにして、スケールアウトポリシーのみが作成されるようにします。これにより、必要に応じて異なるタイプの別のスケールインポリシーを作成できます。

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

インスタンスのウォームアップ新しく起動されたインスタンスのウォームアップにかかる秒数を指定できます。その指定されたウォームアップ期間が終了するまで、インスタンスは Auto Scaling グループの集合メトリクスの対象になりません。

スケールアウト時、グループの現在の容量の一部としてウォームアップ中のインスタンスは対象にしません。これにより、必要以上の数のインスタンスが追加されることがなくなります。

スケールイン時、グループの現在の容量の一部として終了中のインスタンスを対象にします。したがって、Auto Scaling グループから必要以上の数のインスタンスが削除されることがなくなります。

スケールアウトアクティビティの進行中、スケールインアクティビティを開始することはできません。

ターゲット追跡スケーリングポリシーを作成する (AWS CLI)以下のように AWS CLI を使用して Auto Scaling グループのターゲット追跡スケーリングポリシーを設定します。

タスク• ステップ 1: Auto Scaling グループを作成する (p. 109)• ステップ 2: ターゲット追跡スケーリングポリシーを作成する (p. 109)

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

起動設定 my-launch-config を使用して my-asg という名前の Auto Scaling グループを作成するには、create-auto-scaling-group コマンドを使用します。使用する起動設定がない場合は、作成できます。詳細については、「create-launch-configuration」を参照してください。

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-configuration-name my-launch-config \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --max-size 5 --min-size 1

ステップ 2: ターゲット追跡スケーリングポリシーを作成する

アプリケーションの負荷が変化したときにグループ内で実行中の EC2 インスタンスの数を動的に増減するように Auto Scaling グループに指示する、ターゲット追跡スケーリングポリシーを作成できます。

例: ターゲット追跡設定ファイル

ターゲット追跡の設定ファイルの例を以下に示します。このファイルは config.json として保存する必要があります。

{ "TargetValue": 40.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ASGAverageCPUUtilization" }

109

Page 117: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド簡易スケーリングとステップスケーリングポリシー

}

あるいは、カスタマイズされたメトリクス仕様を作成し、各パラメータの値を CloudWatch から追加して、スケーリングに使用されるメトリクスをカスタマイズできます。指定されたメトリクスの平均使用率を 40 パーセントに維持するターゲット追跡設定の例を以下に示します。

{ "TargetValue":40.0, "CustomizedMetricSpecification":{ "MetricName":"MyUtilizationMetric", "Namespace":"MyNamespace", "Dimensions":[ { "Name":"MyOptionalMetricDimensionName", "Value":"MyOptionalMetricDimensionValue" } ], "Statistic":"Average", "Unit":"Percent" }}

例: cpu40-target-tracking-scaling-policy

Auto Scaling グループの平均 CPU 使用率を 40 パーセントに維持する、cpu40-target-tracking-scaling-policy という名前のスケーリングポリシーを作成するには、前に作成した config.jsonファイルと共に、put-scaling-policy コマンドを使用します。

aws autoscaling put-scaling-policy --policy-name cpu40-target-tracking-scaling-policy \ --auto-scaling-group-name my-asg --policy-type TargetTrackingScaling \ --target-tracking-configuration file://config.json

Amazon EC2 Auto Scaling の簡易スケーリングとステップスケーリングポリシー簡易およびステップスケーリングポリシーでは、スケーリングプロセスをトリガーする CloudWatch アラームのスケーリングメトリクスとしきい値を選択します。また、指定した評価期間内にしきい値を超えた場合の Auto Scaling グループのスケーリング方法を定義します。

スケーリング調整が 1 つの場合でも、簡易スケーリングポリシーではなくステップスケーリングポリシーを使用することをお勧めします。Amazon EC2 Auto Scaling はもともと、簡易スケーリングポリシーのみをサポートしていました。ターゲット追跡およびステップポリシーの導入前にスケーリングポリシーを作成した場合、そのポリシーは簡易スケーリングポリシーとして扱われます。詳細については、「簡易スケーリングポリシーとクールダウン (p. 111)」を参照してください。

スケーリングメトリクスが Auto Scaling グループのインスタンスの数に比例して増減する使用率メトリクスである場合は、ターゲット追跡スケーリングポリシーを使用することをお勧めします。詳細については、「Amazon EC2 Auto Scaling のターゲット追跡スケーリングポリシー (p. 106)」を参照してください。より高度なスケーリングポリシーの設定には、ステップスケーリングによりターゲット追跡スケーリングを使用するオプションが引き続き用意されています。たとえば、必要に応じて、使用率が一定のレベルに達したときにより積極的な応答を設定できます。

ステップスケーリングポリシーステップスケーリングポリシーは、一連のスケーリング調整値 (ステップ調整値) に基づいて、AutoScaling グループの現在の容量を増減させます。調整は、アラーム超過のサイズに応じて異なります。

110

Page 118: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド簡易スケーリングとステップスケーリングポリシー

スケーリングアクティビティが開始されると、ポリシーは、スケーリングアクティビティまたはヘルスチェック交換が進行中であっても、引き続き別のアラームに応答できます。したがってすべてのアラーム超過は、Amazon EC2 Auto Scaling によってアラームメッセージが受信されると評価されます。

スケールアウトポリシーを作成する場合は、新しく起動されたインスタンスが集合メトリクスの対象になるまでの予測ウォームアップ期間を指定できます。詳細については、「インスタンスのウォームアップ (p. 113)」を参照してください。

ステップスケーリングを Amazon EC2 以外のリソースに使用することもできます。詳細については、Application Auto Scaling ユーザーガイド の「ステップスケーリングポリシー」を参照してください。

簡易スケーリングポリシーとクールダウンほとんどの場合、ステップスケーリングポリシーは簡易スケーリングポリシーよりも適しています。簡易スケーリングでは、スケーリングアクティビティが開始されると、ポリシーはスケーリングアクティビティまたはヘルスチェック交換が完了し、クールダウン期間が終了するまで待つ必要があり、その後に別のアラームに応答できるようになります。クールダウンの期間を指定すると、前のアクティビティの効果が表示される前に、追加の規模の拡大や縮小が実行されることを防ぐことができます。詳細については、「Amazon EC2 Auto Scaling のスケーリングクールダウン (p. 124)」を参照してください。

Amazon EC2 Auto Scaling では、ステップスケーリングポリシーのクールダウン期間はサポートされていません。したがって、これらのポリシーにクールダウン期間を指定できず、グループのデフォルトのクールダウン期間は適用されません。

スケーリング調整タイプステップスケーリングまたは簡易スケーリングポリシーが実行されると、ポリシーで指定したスケーリング調整値を使用して Auto Scaling グループの現在の容量が変更されます。スケーリング調整では、グループの容量が最大グループサイズより大きい容量にも、最小グループサイズよりも小さい容量にも変更されることはありません。

Amazon EC2 Auto Scaling はステップスケーリングと簡易スケーリングに対して次の調整タイプをサポートしています。

• ChangeInCapacity— 指定したインスタンス数だけグループの現在の容量を増減させます。正の調整値は現在の容量を増やし、負の調整値は現在の容量を減らします。

例: グループの現在の容量が 3 インスタンスであり、調整値が 5 の場合、このポリシーが実行されると、グループに 5 インスタンスを追加して、合計で 8 インスタンスになります。

• ExactCapacity— 指定したインスタンス数にグループの現在の容量を変更します。この調整タイプには正の値を指定します。

例: グループの現在の容量が 3 インスタンスであり、調整値が 5 の場合、このポリシーが実行されると、容量は 5 インスタンスに設定されます。

• PercentChangeInCapacity—指定したパーセンテージだけ現在の容量を増減させます。正の値は容量を増やし、負の値は容量を減らします。結果の値が整数でない場合、その値を以下のように四捨五入します。• 1 より大きい値は小数点以下が切り捨てられます。たとえば、12.7 は 12 に丸められます。• 0 と 1 の間の値は 1 に丸められます。たとえば、.67 は 1 に丸められます。• 0 と -1 の間の値は -1 に丸められます。たとえば、-.58 は -1 に丸められます。• -1 未満の値は小数点以下が切り捨てられます。たとえば、-6.67 は -6 に丸められます。

例: グループの現在の容量が 10 インスタンスであり、調整値が 10 パーセントの場合、このポリシーが実行されると、グループに 1 インスタンスが追加され、合計で 11 インスタンスになります。

PercentChangeInCapacity を使用すると、最小数のインスタンスを指定してスケールすることもできます (MinAdjustmentMagnitude パラメータ、または [Add instances in increments of at least (最小増分

111

Page 119: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド簡易スケーリングとステップスケーリングポリシー

でインスタンスを追加)] をコンソールで使用します)。たとえば、25 パーセント追加するポリシーを作成し、インスタンスの最小増減値を 2 に指定するとします。4 つのインスタンスを持つ Auto Scaling グループがあり、スケーリングポリシーを実行する場合、25 パーセントは 1 インスタンスです。ただし、最小増減値が 2 に指定されているため、2 つのインスタンスが追加されます。

ステップ調整値ステップスケーリングポリシーを作成するときは、アラーム超過のサイズに基づいてスケールできるようにする 1 つ以上のステップ調整値を追加します。各ステップ調整値は、次のように指定します。

• メトリクス値の下限• メトリクス値の上限• スケーリング調整タイプに基づいてスケールする量

ポリシーのステップ調整値については、いくつかのルールがあります。

• ステップ調整値の範囲に重複や間隔があってはなりません。• 1 つのステップ調整値のみ、下限を null (負の無限大) にすることができます。下限が負のステップ調整

値がある場合は、下限が null のステップ調整値が必要です。• 1 つのステップ調整値のみ、上限を null (正の無限大) にすることができます。上限が正のステップ調整

値がある場合は、上限が null のステップ調整値が必要です。• 同じステップ調整値で上限と下限を null にすることはできません。• メトリクス値が超過しきい値を上回っている場合、下限にその値を含み、上限には含みません。メトリ

クス値が超過しきい値を下回っている場合、下限にその値を含まず、上限に含みます。

CloudWatch は、CloudWatch アラームに関連付けられたメトリクスの統計に基づいて、メトリクスデータポイントを集計します。アラームを超過した場合、適切なスケーリングポリシーがトリガーされます。Amazon EC2 Auto Scaling は集計タイプを (raw メトリクスデータではなく) CloudWatch からの最新のメトリクスデータポイントに適用します。ステップ調整によって定義された上限と下限に対して、この集約メトリクス値を比較することにより、実行するステップ調整が決定されます。

AWS マネジメントコンソール を使用している場合は、絶対値として上限と下限を指定します。API または CLI を使用している場合は、違反しきい値と相対的に上限と下限を指定します。たとえば、超過しきい値が 50 で、スケーリング調整タイプが PercentChangeInCapacity のアラームがあるとします。また、スケールアウトおよびスケールインポリシーに以下のステップ調整値が含まれるとします。

Scale out policy

Lower bound Upper bound Adjustment Metric value

0 10 0 50 <= 値 < 60

10 20 10 60 <= 値 < 70

20 null 30 70 <= 値 < 正の無限大

Scale in policy

Lower bound Upper bound Adjustment Metric value

-10 0 0 40 < 値 <= 50

-20 -10 -10 30 < 値 <= 40

null -20 -30 負の無限大 < 値 <= 30

112

Page 120: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド簡易スケーリングとステップスケーリングポリシー

グループの現在の容量と必要な容量は両方とも 10 インスタンスとします。集合メトリクス値が 40 より大きく 60 未満である間、グループは現在の容量と必要な容量を維持します。

メトリクス値が 60 になった場合、スケールアウトのポリシーの 2 番目のステップ調整値 (10 インスタンスの 10% を追加) に基づいて、グループの必要な容量を 1 インスタンスだけ増やして、11 インスタンスにします。新しいインスタンスが実行され、その指定されたウォームアップ期間が終了した後、グループの現在の容量を 11 インスタンスに増やします。この容量の増加後にメトリクス値が 70 に増えた場合、スケールアウトのポリシーの 3 番目のステップ調整値 (11 インスタンスの 30%、つまり 3.3 インスタンスを丸めた 3 インスタンスを追加) に基づいて、グループの必要な容量を 3 インスタンスだけ増やして、14 インスタンスにします。

メトリクス値が 40 になった場合、スケールインポリシーの 2 番目のステップ調整値 (14 インスタンスの10%、つまり 1.4 インスタンスを丸めた 1 インスタンスを削除) に基づいて、グループの必要な容量を 1インスタンスだけ減らして、13 インスタンスにします。この容量の減少後にメトリクス値が 30 に減った場合、スケールアウトのポリシーの 3 番目のステップ調整値 (13 インスタンスの 30%、つまり 3.9 インスタンスを丸めた 3 インスタンスを削除) に基づいて、グループの必要な容量をもう 3 インスタンスだけ減らして、10 インスタンスにします。

インスタンスのウォームアップステップスケーリングポリシーでは、新しく起動されたインスタンスのウォームアップにかかる秒数を指定できます。その指定されたウォームアップ期間が終了するまで、インスタンスは Auto Scaling グループの集合メトリクスの対象になりません。スケールアウト時、AWS はグループの現在の容量の一部としてウォームアップ中のインスタンスは対象にしません。したがって、複数のアラーム超過によってもステップ調整値の範囲は変わらず、1 つのスケーリングアクティビティという結果になります。これにより、必要以上の数のインスタンスが追加されることがなくなります。

先ほどのセクションの例で、新しいインスタンスのウォームアップの最中に、メトリクスが 60 になり、さらに 62 になったとします。現在の容量がまだ 10 インスタンスであるため、1 インスタンス (10 インスタンスの 10%) が追加されます。ただし、グループの必要容量はすでに 11 インスタンスのため、これ以上必要容量は増えません。新しいインスタンスがまだウォームアップ中にメトリックスが 70 になった場合は、3 インスタンス (10 インスタンスの 30%) を追加する必要があります。ただし、グループの必要な容量はすでに 11 であるため、2 つのインスタンスのみを追加し、新しい必要な容量は 13 インスタンスになります。

スケールイン時、AWS はグループの現在の容量の一部として終了中のインスタンスを対象にします。したがって、Auto Scaling グループから必要以上の数のインスタンスが削除されることがなくなります。

スケールアウトアクティビティの進行中、スケールインアクティビティを開始することはできません。

ステップスケーリングポリシーを使用する Auto Scaling グループを作成する (コンソール)CloudWatch アラームを使用して、Auto Scaling グループをスケールアウトまたはスケールインまたはするタグを判断するスケーリングポリシーを作成できます。各 CloudWatch アラームは 1 つのメトリクスを監視し、ポリシーで指定したしきい値にメトリクスが違反すると、メッセージを Amazon EC2 Auto Scalingに送信します。アラームにより、使用している AWS のサービスが CloudWatch に送信する任意のメトリクスをモニタリングできます。独自のカスタムメトリクスを作成し、モニタリングすることもできます。

CloudWatch アラームを作成するとき、Amazon SNS トピックを指定して、アラームの状態が変わったときにメールの通知が送信されるように設定できます。詳細については、「Amazon CloudWatch アラームの作成 (p. 157)」を参照してください。

コンソールで、2 つのスケーリングポリシーを使用する Auto Scaling グループを作成します。スケールアウトポリシーはグループの容量を 30 パーセント増やし、スケールインポリシーはグループの容量を 2 インスタンスに減らすとします。

113

Page 121: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド簡易スケーリングとステップスケーリングポリシー

ステップスケーリングポリシーを使用する Auto Scaling グループを作成するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. [Auto Scaling グループの作成] を選択します。4. [Create Auto Scaling Group] ページで、以下のいずれかの操作を実行します。

• [既存の起動設定から Auto Scaling グループを作成する] を選択し、既存の起動設定を選択して、[次のステップ] を選択します。

• 使用する起動設定がない場合は、[Create a new launch configuration] を選択し、表示される指示に従います。詳細については、「起動設定を作成する (p. 34)」を参照してください。

5. [Configure Auto Scaling group details (Auto Scaling グループ詳細の設定)] ページで、以下を実行します。

a. [グループ名] に Auto Scaling グループの名前を入力します。b. [Group size (グループサイズ)] に Auto Scaling グループに必要な容量を入力します。c. VPC が必要なインスタンス(T2 のインスタンスなど)を起動設定で指定した場合、[Network] で

VPC を選択する必要があります。AWS アカウントで EC2-Classic がサポートされており、インスタンスで VPC が不要な場合は、Launch into EC2-Classic または VPC のいずれかを選択できます。

d. 前のステップで VPC を選択した場合、[Subnet] で 1 つ以上のサブネットを選択します。前のステップで EC2-Classic を選択した場合、[Availability Zone(s)] で 1 つ以上のアベイラビリティーゾーンを選択します。

e. [Next: Configure scaling policies] を選択します。6. [Configure scaling policies] ページで、以下を実行します。

a. [Use scaling policies to adjust the capacity of this group] を選択します。b. [Scale between] で始まる行を使用して、Auto Scaling グループの最小および最大サイズを指定し

ます。たとえば、グループがすでにその最大サイズに達している場合は、スケールアウトするために新しい最大サイズを指定する必要があります。

c. [Increase Group Size] で、スケールアウトポリシーを指定します。オプションでポリシーの名前を指定し、[Add new alarm] を選択します。

d. [Create Alarm] ページで、[create topic] を選択します。[Send a notification to] に、SNS トピックの名前を入力します。[With these recipients] に、通知の受取先となる 1 つ以上の E メールアドレスを入力します。アラームのデフォルト名をカスタム名に置き換えることができます。次に、ポリシーのメトリクスおよび条件を指定します。たとえば、[Whenever] はデフォルト設定のままにすることができます (CPU 使用率の平均)。[Is] で、>= を選択して [80] パーセントを入力します。[For at least] では、[1] の連続した期間に 5 Minutes を入力します。[Create Alarm] を選択します。

114

Page 122: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド簡易スケーリングとステップスケーリングポリシー

e. [アクションを実行] で、Add を選択し、次のフィールドで 30 を入力して、percent of groupを選択します。デフォルトでは、このステップ調整値の下限はアラームしきい値であり、上限はnull(正の無限大)です。

別のステップ調整値を追加するには、[Add step] を選択します。最小数のインスタンスを設定してスケールするには、[Add instances in increments of at least 1 instance(s)] の数値フィールドをアップデートします。

f. [Instances need] にインスタンスのウォームアップ値を指定します。これにより、新しく起動したインスタンスが CloudWatch メトリクスに影響できるようになるまでの時間を制御できます。

g. [Decrease Group Size] で、スケールインポリシーを指定します。オプションでポリシーの名前を指定し、[Add new alarm] を選択します。

h. [Create Alarm] ページで、スケールアウトのポリシー用に作成した同じ通知を選択するか、ポリシーでスケール用の新しい通知を作成できます。アラームのデフォルト名をカスタム名に置き換えることができます。[Whenever] はデフォルト設定のままにします ([CPU Utilization] の[Average])。[Is] で、<= を選択して 40 パーセントを入力します。[For at least] では、[1] の連続した期間に 5 Minutes を入力します。[Create Alarm] を選択します。

i. [アクションを実行] で、Remove を選択し、次のフィールドで 2 を入力して、instances を選択します。デフォルトでは、このステップ調整値の上限はアラームしきい値であり、下限はnull(負の無限大)です。別のステップ調整値を追加するには、[Add step] を選択します。

(省略可能) ステップ値を含むスケーリングポリシーを作成するには、デフォルトを使用することをお勧めします。簡易スケーリングポリシーを作成するには、[Create a simple scaling policy] を選択します。詳細については、「スケーリングポリシータイプ (p. 105)」を参照してください。

115

Page 123: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド簡易スケーリングとステップスケーリングポリシー

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

7. Auto Scaling グループのスケーリングポリシーを確認するには、次のステップを使用します。

a. [Auto Scaling Group creation status] ページで、Auto Scaling グループが正常に作成されたことを確認します。[Auto Scaling グループの表示] を選択します。

b. [Auto Scaling Groups] ページで、先ほど作成した Auto Scaling グループを選択します。c. [Activity History] タブで、[Status] 列は Auto Scaling グループがインスタンスを正常に起動したか

どうかを表示します。d. [Instances] タブでは、[Lifecycle] 列にインスタンスのステータスが含まれます。インスタンスは

すぐに起動します。インスタンスが起動されると、そのライフサイクル状態は InService に変わります。

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

e. [Scaling Policies (スケーリングポリシー)] タブを選択すると、Auto Scaling グループ用に作成したポリシーが表示されます。

ステップスケーリングポリシーを設定する (AWS CLI)以下のように AWS CLI を使用して Auto Scaling グループのステップスケーリングポリシーを設定します。

タスク• ステップ 1: Auto Scaling グループを作成する (p. 116)• ステップ 2: スケーリングポリシーを作成する (p. 116)• ステップ 3: CloudWatch アラームを作成する (p. 118)

ステップ 1: Auto Scaling グループを作成する起動設定 my-launch-config を使用して my-asg という名前の Auto Scaling グループを作成するには、以下の create-auto-scaling-group コマンドを使用します。使用する起動設定がない場合は、作成できます。詳細については、create-launch-configuration を参照してください。

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-configuration-name my-launch-config \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --max-size 5 --min-size 1

ステップ 2: スケーリングポリシーを作成するアプリケーションの負荷が変化したときの処理を Auto Scaling グループに指示する、ステップまたは簡易スケーリングポリシーを作成できます。

116

Page 124: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド簡易スケーリングとステップスケーリングポリシー

例: my-step-scaleout-policy

以下の put-scaling-policy コマンドを使用して、調整タイプ PercentChangeInCapacity で my-step-scaleout-policy という名前のステップスケーリングポリシーを作成します。このポリシーでは、以下のステップ調整に基づいてグループの容量を増やします (CloudWatch アラームしきい値を 60% と想定)。

• メトリクスの値が 70% 以上 80% 未満の場合は、インスタンス数を 10% 増やします。• メトリクスの値が 80% 以上 90% 未満の場合は、インスタンス数を 20% 増やします。• メトリクスの値が 90% 以上の場合は、インスタンス数を 30% 増やします。

aws autoscaling put-scaling-policy \ --auto-scaling-group-name my-asg \ --policy-name my-step-scaleout-policy \ --policy-type StepScaling \ --adjustment-type PercentChangeInCapacity \ --metric-aggregation-type Average \ --step-adjustments MetricIntervalLowerBound=10.0,MetricIntervalUpperBound=20.0,ScalingAdjustment=10 \ MetricIntervalLowerBound=20.0,MetricIntervalUpperBound=30.0,ScalingAdjustment=20 \ MetricIntervalLowerBound=30.0,ScalingAdjustment=30 \ --min-adjustment-magnitude 1

出力には、ポリシーの ARN が含まれます。安全な場所にこの ARN を保存します。これは、CloudWatchアラームを作成するときに必要になります。

{ "PolicyARN": "arn:aws:autoscaling:region:123456789012:scalingPolicy:4ee9e543-86b5-4121-b53b-aa4c23b5bbcc:autoScalingGroupName/my-asg:policyName/my-step-scalein-policy}

例: my-step-scalein-policy

グループの容量を 2 インスタンスに減らす調整タイプ ChangeInCapacity で my-step-scalein-policy という名前のステップスケーリングポリシーを作成するには、以下の put-scaling-policy コマンドを使用します。

aws autoscaling put-scaling-policy \ --auto-scaling-group-name my-asg \ --policy-name my-step-scalein-policy \ --policy-type StepScaling \ --adjustment-type ChangeInCapacity \ --step-adjustments MetricIntervalUpperBound=0.0,ScalingAdjustment=-2

出力には、ポリシーの一意の名前となる ARN が含まれます。その後、ARN またはポリシー名とグループ名の組み合わせを使ってポリシーを指定することができます。安全な場所にこの ARN を保存します。これは、CloudWatch アラームを作成するときに必要になります。

{ "PolicyARN": "arn:aws:autoscaling:region:123456789012:scalingPolicy:ac542982-cbeb-4294-891c-a5a941dfa787:autoScalingGroupName/my-asg:policyName/my-step-scaleout-policy}

簡易スケーリングポリシーの例

あるいは、先ほどの CLI コマンドの代わりに以下の CLI コマンドを使用して、簡易スケーリングポリシーを作成できます。これらのコマンドの出力には、CloudWatch アラームを作成する必要がある各ポリシー

117

Page 125: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド簡易スケーリングとステップスケーリングポリシー

の ARN が含まれています。簡易スケーリングポリシーを使用しているため、クールダウン期間が設定されることに注意してください。

例 :my-simple-scaleout-policy

グループの容量を 30 パーセント増やす調整タイプ PercentChangeInCapacity で my-simple-scaleout-policy という名前の簡易スケーリングポリシーを作成するには、以下の put-scaling-policy コマンドを使用します。

aws autoscaling put-scaling-policy --policy-name my-simple-scaleout-policy \ --auto-scaling-group-name my-asg --scaling-adjustment 30 \ --adjustment-type PercentChangeInCapacity

例: my-simple-scalein-policy

グループの容量を 2 インスタンスに減らす調整タイプ ChangeInCapacity で my-simple-scalein-policy という名前の簡易スケーリングポリシーを作成するには、以下の put-scaling-policy コマンドを使用します。

aws autoscaling put-scaling-policy --policy-name my-simple-scalein-policy \ --auto-scaling-group-name my-asg --scaling-adjustment -2 \ --adjustment-type ChangeInCapacity

ステップ 3: CloudWatch アラームを作成する

ステップ 2 で、指定した条件が変更されたときにどのようにスケールインおよびスケールアウトするかをAuto Scaling グループに指示するスケーリングポリシーを作成しました。このステップでは、監視するメトリクスを識別し、スケーリングの条件を定義して、アラームをスケーリングポリシーに関連付けることでアラームを作成します。

例: AddCapacity

以下の CloudWatch put-metric-alarm コマンドを使用して、2 分間の連続した 2 つの評価期間にわたって平均 CPU しきい値 60% に基づいて Auto Scaling グループのサイズを増やすアラームを作成します。独自のカスタムメトリクスを使用するには、名前を --metric-name で指定し、その名前空間を --namespaceで指定します。

aws cloudwatch put-metric-alarm --alarm-name Step-Scaling-AlarmHigh-AddCapacity \ --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average \ --period 120 --evaluation-periods 2 --threshold 60 \ --comparison-operator GreaterThanOrEqualToThreshold \ --dimensions "Name=AutoScalingGroupName,Value=my-asg" \ --alarm-actions PolicyARN

例: RemoveCapacity

以下の CloudWatch put-metric-alarm コマンドを使用して、2 分間の連続した 2 つの評価期間にわたって平均 CPU しきい値 40% に基づいて Auto Scaling グループのサイズを減らすアラームを作成します。独自のカスタムメトリクスを使用するには、名前を --metric-name で指定し、その名前空間を --namespaceで指定します。

aws cloudwatch put-metric-alarm --alarm-name Step-Scaling-AlarmLow-RemoveCapacity \ --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average \ --period 120 --evaluation-periods 2 --threshold 40 \ --comparison-operator LessThanOrEqualToThreshold \ --dimensions "Name=AutoScalingGroupName,Value=my-asg" \ --alarm-actions PolicyARN

118

Page 126: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド既存の Auto Scaling グループにスケーリングポリシーを追加する

既存の Auto Scaling グループにスケーリングポリシーを追加するコンソールを使用して、既存の Auto Scaling グループにスケーリングポリシーを追加します。スケーリングポリシーは、状況の変化に合わせてグループ内で実行する EC2 インスタンスの数を動的に増減するために使用されます。詳細については、「Amazon EC2 Auto Scaling の動的なスケーリング (p. 104)」を参照してください。

メトリクスに基づくスケーリングで Auto Scaling グループを更新するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Scaling Policies] タブで、[Add policy] を選択します。

このページには、すべての使用可能なリソースが表示されます。5. ターゲット追跡スケーリングポリシーを追加する場合は、以下のステップを使用します。簡易スケー

リングポリシーまたはステップスケーリングポリシーを使用している場合は、次のステップに進んでください。

a. [名前] にポリシーの名前を入力します。b. [Metric type] を選択し、メトリクスの [Target value] を指定します。c. [Instances need] にインスタンスのウォームアップ値を指定します。これにより、新しく起動し

たインスタンスが CloudWatch メトリクスに影響できるようになるまでの時間を制御できます。d. スケールアウトポリシーのみが作成されるようにする場合は、[Disable scale-in] オプションをオ

ンにします。これにより、必要に応じて別のスケールインポリシーを作成できます。e. [作成] を選択します。

6. ステップスケーリングポリシーを使用する場合は、[Create a scaling policy with steps (ステップ値を含むスケーリングポリシーを作成)] を選択してから、次の操作を行います。

Note

ステップ値を含むスケーリングポリシーを作成するオプションを使用することをお勧めします。簡易スケーリングポリシーを使用するには、[Create a simple scaling policy (簡易スケーリングポリシーを作成)] を選択します。簡易スケーリングおよびステップスケーリングの詳細については、「Amazon EC2 Auto Scaling の簡易スケーリングとステップスケーリングポリシー (p. 110)」を参照してください。

a. [名前] にポリシーの名前を入力し、[Create new alarm (新しいアラームの作成)] を選択します。b. [Create Alarm] ページで、[create topic] を選択します。[Send a notification to] に、SNS トピック

の名前を入力します。[With these recipients] に、通知の受取先となる 1 つ以上の E メールアドレスを入力します。アラームのデフォルト名をカスタム名に置き換えることができます。次に、[Whenever]、[Is]、および [For at least] を使用して、アラームのメトリクスと条件を指定します。[Create Alarm] を選択します。

c. [Take the action] を使用して、ポリシー用のスケーリングアクティビティを指定します。デフォルトでは、このステップ調整値の下限はアラームしきい値であり、上限は null(正の無限大)です。別のステップ調整値を追加するには、[Add step] を選択します。

d. [Instances need] にインスタンスのウォームアップ値を指定します。これにより、新しく起動したインスタンスが CloudWatch メトリクスに影響できるようになるまでの時間を制御できます。

e. [作成] を選択します。

119

Page 127: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAmazon SQS に基づくスケーリング

Amazon SQS に基づくスケーリングこのセクションでは、Amazon Simple Queue Service (Amazon SQS) キューの需要の変化に応じて AutoScaling グループをスケールする方法を説明します。Amazon SQS は、分散されたソフトウェアシステムとコンポーネントを統合および分離することができる、安全で耐久性があり、利用可能なホストされたキューを提供します。Amazon SQS がよくわからない場合は、「Amazon Simple Queue Service 開発者ガイド」で詳細を参照してください。

Amazon SQS キューのアクティビティに応じたスケーリングを検討するシナリオはいくつかあります。ユーザーがイメージをアップロードしてオンラインで使用できるウェブアプリがあるとします。各イメージはサイズ変更されエンコードされてから公開されます。このアプリケーションは、標準的なアップロード速度を処理するように設定された Auto Scaling グループ内の EC2 インスタンスで実行されます。異常なインスタンスは終了され置き換えられて、常に現在のインスタンスレベルが維持されます。このアプリは処理のためイメージの raw ビットマップデータを Amazon SQS キューに配置します。イメージが処理され、処理されたイメージはユーザーから確認できる場所に発行されます。

このアーキテクチャは、イメージのアップロード数が時間の経過とともに変化しない場合はうまく機能します。それでは、アップロードレベルが変わるとどうなるでしょうか。 アップロードが予測可能なスケジュールで増減する場合は、これらの規模の拡大や縮小を実行する日時を指定できます。詳細については、「Amazon EC2 Auto Scaling のスケジュールに基づくスケーリング (p. 101)」を参照してください。ポリシーに基づくスケーリングは、Auto Scaling グループをより動的にスケーリングする方法であり、スケーリングプロセスを制御するパラメータを定義できます。たとえば、アップロードの平均数が特定のレベルに達したときは常に EC2 インスタンスのフリートを拡大するポリシーを作成できます。この方法は、いつ条件が変化するかが不明である場合に、変化する条件に応じてスケーリングするために役立ちます。

この設定は 3 つの主要な部分で構成されます。

• SQS キューからのメッセージを処理するために EC2 インスタンスを管理する Auto Scaling グループ。• Amazon CloudWatch に送信するカスタムメトリクス。Auto Scaling グループの EC2 インスタンスごと

にキュー内のメッセージの数を測定します。• ターゲット追跡ポリシー。カスタムメトリクスと一連のターゲット値に基づいて Auto Scaling グループ

をスケールするように設定します。CloudWatch アラームでスケーリングポリシーを呼び出します。

次の図は、この設定のアーキテクチャを示しています。

120

Page 128: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAmazon SQS に基づくスケーリング

効果的なメトリクスとターゲット値の選択Amazon SQS キューにあるメッセージの数のみでは、必要なインスタンスの数は定義されません。実際には、フリート内のインスタンスの数は複数の要因によって決まります。たとえば、メッセージを処理するためにかかる時間や、許容されるレイテンシー (キュー遅延) の量などです。

解決策は、インスタンスあたりのバックログのメトリクスを使用して、ターゲット値を維持するインスタンスあたりの適正バックログにすることです。これらの数は以下のように計算できます。

• インスタンスあたりのバックログ: インスタンスあたりのバックログを決定するには、まず AmazonSQS メトリックス ApproximateNumberOfMessages を使用して SQS キューの長さ (このキューから取得できるメッセージ数) を決定します。その数をフリートの実行キャパシティーで割ります。AutoScaling グループの場合、これは InService 状態にあるインスタンスの数です。これでインスタンスあたりのバックログを得ることができます。

• インスタンスあたりの適正バックログ: ターゲット値を決定するには、まずレイテンシーの点でアプリケーションが受け付けることができる数を計算します。次に、適切なレイテンシー値を取ってそれをEC2 インスタンスがメッセージを処理する平均所要時間で割ります。

例で説明すると、現在の ApproximateNumberOfMessages は 1500 であり、フリートの実行キャパシティーは 10 です。メッセージあたりの平均処理時間が 0.1 秒であり、最長許容レイテンシーが 10 秒の場合、インスタンスあたりの適正バックログは 10/0.1、つまり 100 です。つまり、100 がターゲット追跡ポリシーのターゲット値です。インスタンスあたりバックログは現在 150 (1500/10) であるため、フリートはターゲット値との比例を維持するために 5 インスタンス分スケールアウトします。

以下の例では、この計算に基づいて Auto Scaling グループをスケーリングするように設定する、カスタムメトリクスとターゲット追跡ポリシーを作成します。

Amazon SQS のスケーリングの設定以下のセクションでは、AWS CLI を使用して SQS キューの自動スケーリングを設定する方法について説明します。この手順は、キュー (標準または FIFO)、Auto Scaling グループ、キューを使用するアプリケーションを実行している EC2 インスタンスがあることを前提としています。

タスク• ステップ 1: CloudWatch カスタムメトリクスを作成する (p. 121)• ステップ 2: ターゲット追跡スケーリングポリシーを作成する (p. 122)• ステップ 3: スケーリングポリシーをテストする (p. 123)

ステップ 1: CloudWatch カスタムメトリクスを作成するカスタム集計メトリクスを作成します。まず、AWS アカウントからメトリクスを読み取ります。次に、前のセクションで推奨されたインスタンスメトリクスごとにバックログを計算します。最後に、この数字をCloudWatch に 1 分間隔で発行します。

可能な限り、1 分間隔で EC2 インスタンスメトリクスをスケールします (詳細モニタリングとも呼ばれます)。これにより、使用率の変化に迅速に対応できます。5 分間隔でメトリクスをスケーリングすると、応答時間が低速になり、古いメトリクスデータに基づいてスケーリングすることになる可能性があります。デフォルトでは、EC2 インスタンスで基本モニタリングが有効になります。つまり、インスタンスのメトリクスデータは 5 分間隔で利用できます。詳細モニタリングを有効にして、1 分間隔でインスタンスのメトリクスデータを取得できます。詳細については、「Amazon CloudWatch を使用した Auto Scaling グループとインスタンスのモニタリング (p. 153)」を参照してください。

CloudWatch カスタムメトリクスを作成するには

1. SQS get-queue-attributes コマンドを使用して、キューで待機しているメッセージ数を取得します(ApproximateNumberOfMessages)。

121

Page 129: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAmazon SQS に基づくスケーリング

aws sqs get-queue-attributes --queue-url https://sqs.region.amazonaws.com/123456789/MyQueue \ --attribute-names ApproximateNumberOfMessages

2. describe-auto-scaling-groups コマンドを使用して、グループの実行キャパシティーを取得します。これは InService ライフサイクル状態にあるインスタンスの数です。このコマンドは、Auto Scalingグループのインスタンスとそのライフサイクル状態を返します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg

3. ApproximateNumberOfMessages メトリックスをフリートの実行キャパシティーメトリックスで割って、インスタンスあたりのバックログを計算します。

4. AWS CLI または API を使用して、結果を CloudWatch カスタムメトリクスとして 1 分間隔で発行します。カスタムメトリックスは、選択したメトリックス名と名前空間を使用して定義されます。カスタムメトリクスの名前空間を「AWS/」で始めることはできません。カスタムメトリクスの発行に関する詳細については、Amazon CloudWatch ユーザーガイド の「カスタムメトリクスを発行する」トピックを参照してください。

以下に CLI put-metric-data コマンドの例を示します。

aws cloudwatch put-metric-data --metric-name MyBacklogPerInstance --namespace MyNamespace \ --unit None --value 20 --dimensions MyOptionalMetricDimensionName=MyOptionalMetricDimensionValue

アプリケーションが目的のメトリクスを出力すると、データが CloudWatch に送信されます。メトリクスは CloudWatch コンソールで表示できます。メトリクスにアクセスするには、AWS マネジメントコンソール にログインして CloudWatch ページに移動します。その後、メトリクスを表示するには、メトリクスページに移動するか、検索ボックスを使用してメトリクスを検索します。メトリクスの表示については、Amazon CloudWatch ユーザーガイド の「利用可能なメトリクスを表示する」を参照してください。

ステップ 2: ターゲット追跡スケーリングポリシーを作成する次に、アプリケーションの負荷が変化したときにグループ内で実行中の EC2 インスタンスの数を動的に増減するように Auto Scaling グループに指示する、ターゲット追跡スケーリングポリシーを作成できます。ターゲット追跡スケーリングポリシーを使用できるのは、スケーリングメトリクスがグループの容量に比例して増減する使用率メトリクスであるためです。

ターゲット追跡スケーリングポリシーを作成するには

1. 以下のコマンドを使用して、ホームディレクトリの config.json ファイルにスケーリングポリシーのターゲット値を指定します。

TargetValue には、インスタンスあたりの適正バックログメトリックスを計算して、それを入力します。この数を計算するには、通常のレイテンシー値を決定し、メッセージの処理にかかる平均時間で割ります。

$ cat ~/config.json{ "TargetValue":100, "CustomizedMetricSpecification":{ "MetricName":"MyBacklogPerInstance", "Namespace":"MyNamespace", "Dimensions":[ { "Name":"MyOptionalMetricDimensionName", "Value":"MyOptionalMetricDimensionValue"

122

Page 130: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスケーリングポリシーの削除

} ], "Statistic":"Average", "Unit":"None" }}

2. 前のステップで作成した config.json ファイルと共に put-scaling-policy コマンドを使用して、スケーリングポリシーを作成します。

aws autoscaling put-scaling-policy --policy-name my-scaling-policy --auto-scaling-group-name my-asg \ --policy-type TargetTrackingScaling --target-tracking-configuration file://~/config.json

これにより、2 つのアラーム (スケールアウトとスケールイン) が作成されます。また、CloudWatchに登録されたポリシーの Amazon リソースネーム (ARN) も返されます。CloudWatch はこれを使用して、メトリクスが違反するたびにスケーリングを呼び出します。

ステップ 3: スケーリングポリシーをテストする設定が完了したら、スケーリングポリシーが機能していることを確認します。そのためのテストを行うには、SQS キュー内のメッセージ数を増やしてから、Auto Scaling グループが追加の EC2 インスタンスを起動したことを確認し、さらに SQS キュー内のメッセージ数を減らしてから、Auto Scaling が EC2 インスタンスを終了したことを確認します。

スケールアウト機能をテストするには

1. 「チュートリアル: Amazon SQS キューへのメッセージの送信」の手順に従って、キューにメッセージを追加します。インスタンスあたりのバックログメトリックスがターゲット値を超えるようにキュー内のメッセージ数を増やしたことを確認します。

この変更により CloudWatch アラームがトリガーされるまで数分かかる場合があります。2. describe-auto-scaling-groups コマンドを使用して、グループがインスタンスを起動したことを確認し

ます。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

スケールイン機能をテストするには

1. 「チュートリアル: Amazon SQS キューへのメッセージの送信」の手順に従って、キューからメッセージを削除します。インスタンスあたりのバックログメトリックスがターゲット値を下回るようにキュー内のメッセージ数を減らしたことを確認します。

この変更により CloudWatch アラームがトリガーされるまで数分かかる場合があります。2. describe-auto-scaling-groups コマンドを使用して、グループがインスタンスを削除したことを確認し

ます。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

スケーリングポリシーの削除不要になったスケーリングポリシーは削除できます。CloudWatch アラームを削除することが必要になる場合もあります。ターゲット追跡スケーリングポリシーを削除すると、関連するすべての CloudWatch ア

123

Page 131: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスケーリングクールダウン

ラームも削除されます。ステップスケーリングポリシーあるいは簡易スケーリングポリシーを削除すると、基盤となるアラームアクションも削除されます。ただし、スケーリングポリシーに関連付けられたアクションがない場合でも、関連付けられた CloudWatch アラームは削除されません。

スケーリングポリシーを削除するには (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Scaling Policies (スケーリングポリシー)] タブで、[Actions (アクション)]、[Delete (削除)] の順に選択

します。5. 確認を求めるメッセージが表示されたら、[Yes, Delete] を選択します。6. (オプション) ステップスケーリングポリシーあるいは簡易スケーリングポリシーを削除する場合、ポ

リシーに関連付けられた CloudWatch アラームを削除するには以下を実行します。今後使用できるように、このステップをスキップしてアラームを保持することもできます。

a. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。b. ナビゲーションペインで、[アラーム] を選択します。c. アラームを選び (awsec2-my-auto-scaling-group-CPU-Utilization など)、[Action (アク

ション)]、[Delete (削除)] を選択します。d. 確認を求めるメッセージが表示されたら、[削除] を選択します。

スケーリングポリシーを削除するには (AWS CLI)

次の delete-policy コマンドを使用します。

aws autoscaling delete-policy --auto-scaling-group-name my-asg \ --policy-name my-step-scalein-policy

CloudWatch アラームを削除するには (AWS CLI)

ステップスケーリングポリシーおよび簡易スケーリングポリシーでは、delete-alarms コマンドを使用してこのポリシーに関連付けられた CloudWatch アラームを削除します。今後使用できるように、このステップをスキップしてアラームを保持することもできます。1 つ以上のアラームを一度に削除することができます。たとえば、次のコマンドを使用して Step-Scaling-AlarmHigh-AddCapacity および Step-Scaling-AlarmLow-RemoveCapacity アラームを削除します。

aws cloudwatch delete-alarms --alarm-name Step-Scaling-AlarmHigh-AddCapacity Step-Scaling-AlarmLow-RemoveCapacity

Amazon EC2 Auto Scaling のスケーリングクールダウン

クールダウン期間により、前のスケーリングアクティビティが有効になる前に Auto Scaling グループが追加のインスタンスを起動または削除することがなくなります。時間の長さは、インスタンスのウォームアップ期間やその他のアプリケーションのニーズに基づいて設定できます。

Amazon EC2 Auto Scaling は簡易スケーリングポリシーを使用する場合はクールダウン期間をサポートしますが、他のスケーリングポリシーを使用する場合はサポートしません。Auto Scaling グループが簡易スケーリングポリシーを使用して動的にスケールした後、クールダウン期間が完了するのを待ってから

124

Page 132: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド例: クールダウン

規模の拡大や縮小を再開します。Auto Scaling グループに関連付けられているデフォルトのクールダウン期間を使用するか、ポリシーのクールダウン期間を指定してデフォルトを上書きできます。簡易スケーリングについての詳細は、「Amazon EC2 Auto Scaling の簡易スケーリングとステップスケーリングポリシー (p. 110)」を参照してください。

Auto Scaling グループを手動でスケールすると、デフォルトではクールダウン期間を待つことはありませんが、デフォルトをオーバーライドしてクールダウン期間を採用できます。インスタンスが正常でなくなった場合、Auto Scaling グループはクールダウン期間の完了を待つことなく、異常のあるインスタンスを置き換えます。手動スケーリングの詳細については、「Amazon EC2 Auto Scaling の手動スケーリング (p. 92)」を参照してください。

Amazon EC2 Auto Scaling では、デフォルトのクールダウン期間およびスケーリング固有のクールダウン期間の両方がサポートされています。

コンテンツ• 例: クールダウン (p. 125)• デフォルトのクールダウン (p. 126)• スケーリング固有のクールダウン (p. 126)• クールダウンと複数のインスタンス (p. 127)• クールダウンとライフサイクルフック (p. 127)

例: クールダウン以下のシナリオを検討してください。AWS で実行されているウェブアプリケーションがあります。このウェブアプリケーションは、ウェブ、アプリケーション、およびデータベースの 3 つの基本的な層で構成されます。アプリケーションがトラフィックの需要を満たすリソースが常にあるようにするには、2 つのAuto Scaling グループを作成します。1 つはウェブ層用、もう 1 つはアプリケーション層用です。

アプリケーション層の Auto Scaling グループに適切な数の EC2 インスタンスを確保するために、インスタンスの CPUUtilization メトリクスが 90 パーセントを超えたときにスケールアウトする CloudWatch アラームを作成 (p. 157)します。アラームが発生した場合、Auto Scaling グループは別のインスタンスを起動して設定します。

125

Page 133: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドデフォルトのクールダウン

これらのインスタンスは、設定スクリプトを使用して、インスタンスがサービスに配置される前にソフトウェアをインストールして設定します。その結果、インスタンスが起動してから完全稼働までに約 2~3分かかります。実際の時間は、インスタンスのサイズ、および完了する起動スクリプトがあるかどうかなど、いくつかの要因によって決まります。

ここで、トラフィックの急増が発生し、CloudWatch でアラームが発生します。このときに、Auto Scalingグループは需要の増加を処理するためにインスタンスを起動します。ただし、インスタンスは起動に数分かかるという問題があります。その間、CloudWatch アラームは継続して発生し、Auto Scaling グループはアラームが発生するたびに別のインスタンスを起動する可能性があります。

ただし、クールダウン期間が実施されると、Auto Scaling グループは、特定の期間が経過するまで、インスタンスを起動し、簡易スケーリングポリシーまたは手動ポリシーによる規模の拡大や縮小を中断します(デフォルト値は 300 秒です)。 これにより、新しく起動されたインスタンスには、アプリケーショントラフィックの処理を開始するための時間が与えられます。クールダウン期間が過ぎると、停止されていたスケーリングアクションが再開します。CloudWatch アラームが再度発生した場合、Auto Scaling グループは別のインスタンスを起動し、クールダウン期間が再度有効になります。ただし、追加のインスタンスがCPU 使用率を戻すために十分だった場合、グループは現在のサイズのままになります。

デフォルトのクールダウンデフォルトのクールダウン期間は、Auto Scaling グループの作成時に適用されます。そのデフォルト値は300 秒です。このクールダウン期間は、簡易スケーリングポリシーのスケーリングアクティビティに適用されます。オプションで、手動のスケーリングアクティビティに適用されるようにリクエストすることもできます。

Auto Scaling グループを作成する際にデフォルトのクールダウン期間を設定するには、AWS マネジメントコンソール、create-auto-scaling-group コマンド (AWS CLI)、または CreateAutoScalingGroup API オペレーションを使用できます。

デフォルトのクールダウン期間は、いつでも AWS マネジメントコンソール、update-auto-scaling-groupコマンド (AWS CLI)、または UpdateAutoScalingGroup API オペレーションを使用して変更できます。

スケーリング固有のクールダウンAuto Scaling グループのデフォルトのクールダウン期間を指定することに加えて、特定の簡易スケーリングポリシーまたは手動スケーリングに適用されるクールダウンを作成できます。スケーリング固有のクールダウン期間は、デフォルトのクールダウンの期間をオーバーライドします。

スケーリング固有のクールダウンで一般的なのは、スケールインポリシー (— 特定の条件またはメトリクスに基づいてインスタンスを削除するポリシー) での使用です。このポリシーはインスタンスを削除するため、Amazon EC2 Auto Scaling が追加のインスタンスを削除するかどうかを判断するのにかかる時間が短くなります。デフォルトのクールダウン期間の 300 秒は長すぎます。この場合、スケールインポリシー

126

Page 134: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドクールダウンと複数のインスタンス

のスケーリング固有のクールダウン期間を 180 秒にすると、グループのスケールインが速くなるため、コストを削減できます。

スケーリング固有のクールダウン期間を作成するには、AWS マネジメントコンソール、put-scaling-policyコマンド (AWS CLI)、または PutScalingPolicy API オペレーションを使用できます。

クールダウンと複数のインスタンス前のセクションでは、1 つのインスタンスが起動または終了する際のクールダウン期間による AutoScaling グループへの影響を示す例を紹介しました。ただし、Auto Scaling グループが複数のインスタンスを一度に起動することもあります。たとえば、特定のメトリクスのしきい値に達したときに、AutoScaling が 3 つのインスタンスを起動するように選択する場合があります。

複数のインスタンスでは、最後のインスタンスが起動すると、クールダウン期間 (デフォルトのクールダウンまたはスケーリング固有のクールダウン) が有効になります。

クールダウンとライフサイクルフックAuto Scaling グループにライフサイクルフックを追加できます。これらのフックを使用して、Auto Scalingグループ内でのインスタンスの起動と削除をコントロールできます。インスタンスがサービス状態になる前、または削除される前にアクションを実行できます。

ライフサイクルフックは、Auto Scaling グループ、手動スケーリング、または簡易スケーリングポリシーに設定されたクールダウン期間に影響する場合があります。クールダウン期間は、インスタンスが待機状態から抜けるまで開始されません。

スケールイン時にどの Auto Scaling インスタンスを終了するかのコントロール

各 Auto Scaling グループでは、ネットワークアーキテクチャに対してインスタンスを追加 (スケールアウト) したり、インスタンスを削除 (スケールイン) したりするタイミングを制御できます。希望する容量を調整してグループのサイズを手動でスケーリングするか、スケジュールに基づくスケーリングまたはスケーリングポリシーを使用してこのプロセスを自動化できます。

このトピックでは、デフォルトの終了ポリシーについて説明し、また、独自のカスタマイズされた終了ポリシーの設定に使用できるオプションも取り上げます。終了ポリシーを使用すると、スケールインイベントが発生したときにどのインスタンスを最初に終了するかを制御できます。

また、インスタンスのスケールイン保護を有効にして、自動スケールイン中に特定のインスタンスが終了しないようにする方法についても説明します。Auto Scaling グループのインスタンスの場合、スケールインイベントが発生したときにインスタンスを保護するには、Amazon EC2 Auto Scaling の機能を使用します。インスタンスが誤って終了されないように保護する場合は、Amazon EC2 終了保護を使用します。

Note

Auto Scaling グループで異なるタイプの購入オプション (p. 46)が使用されているのは、特殊な状況です。Amazon EC2 Auto Scaling はまず、2 つのタイプ (スポットまたはオンデマンド) のどちらを終了するかを識別します。アベイラビリティーゾーン間でインスタンスのバランスを調整する場合、バランスが維持されるように、そのタイプのインスタンスが最も多いアベイラビリティーゾーンが選択されます。次に、デフォルトまたはカスタマイズされた終了ポリシーが適用されます。

目次

127

Page 135: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドデフォルトの終了ポリシー

• デフォルトの終了ポリシー (p. 128)• 終了ポリシーのカスタマイズ (p. 129)• インスタンスのスケールイン保護 (p. 130)

デフォルトの終了ポリシーこのデフォルトの終了ポリシーは、高可用性を得るためにインスタンスがアベイラビリティーゾーンに均等に配分されるように設計されています。デフォルトのポリシーは汎用性と柔軟性があり、さまざまなシナリオに対応できます。

デフォルトの終了ポリシーの動作は以下のとおりです。

1. インスタンスが最も多く、スケールインから保護されていないインスタンスが 1 つ以上あるアベイラビリティーゾーンを決定します。

2. 終了するオンデマンドまたはスポットインスタンスの配分戦略に残りのインスタンスが合うように、終了するインスタンスを決定します。このポリシーは、配分戦略 (p. 46)を指定する Auto Scaling グループにのみ適用されます。

たとえば、インスタンスの起動後、インスタンスタイプの優先順を変更します。スケールインイベントが発生すると、Amazon EC2 Auto Scaling は、優先度の低いインスタンスタイプからオンデマンドインスタンスを段階的に減らそうとします。

3. どのインスタンスが最も古い起動テンプレートまたは起動設定を使用しているかを判断します。a. [起動テンプレートを使用する Auto Scaling グループの場合]

最も古い起動テンプレートを使用している (ただし起動設定を使用していない) インスタンスを判断します。Amazon EC2 Auto Scaling は、起動テンプレートを使用しているインスタンスを終了する前に、起動設定を使用しているインスタンスを終了します。

b. [起動設定を使用する Auto Scaling グループの場合]

どのインスタンスが最も古い起動設定を使用しているかを判断します。4. 上記のすべての基準を適用した後で、終了する保護されていないインスタンスが複数ある場合は、どの

インスタンスが次の課金時間に最も近いかを判断します。次の課金時間に最も近い保護されていないインスタンスが複数ある場合、これらのインスタンスのいずれかをランダムに終了します。

次の課金時間に最も近いインスタンスを終了すると、時間単価のインスタンスを最大限に活用できます。または、Auto Scaling グループが Amazon Linux または Ubuntu を使用している場合は、EC2 の使用に対して 1 秒あたりの料金が発生します。詳細については、「Amazon EC2 料金表」を参照してください。

起動設定を使用する Auto Scaling グループを検討します。そのグループには、1 つのインスタンスタイプ、2 つのアベイラビリティーゾーン、希望する容量の 2 つのインスタンスが含まれます。また、特定のしきい値に達した場合にインスタンスを 1 つ増減するスケーリングポリシーも含まれます。このグループの 2 つのインスタンスは、以下のように分散されます。

128

Page 136: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド終了ポリシーのカスタマイズ

スケールアウトポリシーのしきい値が満たされた場合、ポリシーは有効になり、Auto Scaling グループは新しいインスタンスを起動します。その結果、Auto Scaling グループには 3 つのインスタンスが含まれ、次のように分散されます。

スケールインポリシーのしきい値が満たされた場合、ポリシーは有効になり、Auto Scaling グループはインスタンスの 1 つを終了します。グループに特定の終了ポリシーが割り当てられていない場合、デフォルトの終了ポリシーを使用します。2 つのインスタンスを含むアベイラビリティーゾーンを選択し、最も古い起動設定から起動されたインスタンスを終了します。インスタンスが同じ起動設定から起動されている場合、Auto Scaling グループは次の課金時間に最も近いインスタンスを選択して終了します。

Amazon EC2 Auto Scaling を使用した高可用性の詳細については、「複数のアベイラビリティーゾーンへのインスタンスの分散 (p. 6)」を参照してください。

終了ポリシーのカスタマイズアプリケーションの現在のバージョンがあるインスタンスを保持するなどの一般的なユースケースをサポートするために、デフォルトのポリシーをカスタマイズされたポリシーに置き換えることもできます。

終了ポリシーをカスタマイズするとき、グループに使用されている他のアベイラビリティーゾーンより多くのインスタンスが含まれるアベイラビリティーゾーンがある場合、終了ポリシーはそのバランスのとれていないアベイラビリティーゾーンのインスタンスに適用されます。グループで使用されているアベイラビリティーゾーン間でバランスがとれている場合、終了ポリシーはグループのすべてのアベイラビリティーゾーンに適用されます。

Amazon EC2 Auto Scaling は以下のカスタム終了ポリシーをサポートしています。

• OldestInstance。グループ内の最も古いインスタンスを削除します。このオプションは、AutoScaling グループ内のインスタンスを新しい EC2 インスタンスタイプにアップグレードする場合に役立ちます。より古いタイプのインスタンスをより新しいタイプのインスタンスに徐々に置き換えることができます。

• NewestInstance。グループ内の最も新しいインスタンスを削除します。このポリシーは、新しい起動設定をテストするが、新しい設定は本稼働環境には保持しない場合に便利です。

• OldestLaunchConfiguration.最も古い起動設定のインスタンスを削除します。このポリシーは、グループを更新し、以前の設定を使用しているインスタンスを廃止する場合に便利です。

• ClosestToNextInstanceHour.次の課金時間に最も近いインスタンスを削除します。これにより、時間単価のインスタンスを最大限に活用できます。

• Default。デフォルトの終了のポリシーに従って、インスタンスを終了します。このポリシーは、グループに複数のスケーリングポリシーがある場合に便利です。

• OldestLaunchTemplate。最も古い起動テンプレートを使用するインスタンスを終了します。このポリシーでは、現在の起動テンプレートを使用していないインスタンスが最初に終了され、その後、現在の起動テンプレートのうち最も古いバージョンを使用しているインスタンスが終了されます。このポリシーは、グループを更新し、以前の設定を使用しているインスタンスを廃止する場合に便利です。

• AllocationStrategy。Auto Scaling グループのインスタンスを終了して、残りのインスタンスを、終了するインスタンスのタイプ (スポットインスタンスまたはオンデマンドインスタンス) の配分戦略に合わせます。このポリシーは、優先するインスタンスタイプが変更されたときに便利です。スポット配分戦略が lowest-price の場合、N 個の最低価格のスポットプール間で、スポットインスタンスの分散バランスを徐々に再調整できます。スポット配分戦略が capacity-optimized の場合、使用可能な

129

Page 137: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドインスタンスのスケールイン保護

スポット容量がより多いスポットプール間で、スポットインスタンスの分散バランスを徐々に再調整できます。優先度の低いタイプのオンデマンドインスタンスを優先度の高いタイプのオンデマンドインスタンスに徐々に置き換えることもできます。

終了ポリシーをカスタマイズするには (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Actions] で、[Edit] を選択します。5. [Details] タブで、[Termination Policies] を見つけます。1 つ以上の終了ポリシーを選択します。複数の

ポリシーを選択する場合は、適用する順にリストします。[デフォルト] ポリシーを使用する場合は、リストの最後のポリシーとします。

6. [Save (保存)] を選択します。

終了ポリシーをカスタマイズするには (AWS CLI)

以下のいずれかのコマンドを使用します。

• create-auto-scaling-group• update-auto-scaling-group

これらのポリシーを個別に使用することも、ポリシーのリストに組み合わせることもできます。たとえば、次のコマンドを使用して、最初に OldestLaunchConfiguration ポリシーを使用し、その後でClosestToNextInstanceHour ポリシーを使用するように Auto Scaling グループを更新します。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --termination-policies "OldestLaunchConfiguration" "ClosestToNextInstanceHour"

Default の終了ポリシーを使用する場合、終了ポリシーのリストでは最後のポリシーになるように指定します。たとえば、--termination-policies "OldestLaunchConfiguration" "Default" と指定します。

インスタンスのスケールイン保護スケールイン時に Auto Scaling グループが特定のインスタンスを終了できるかどうかを制御するには、インスタンスのスケールイン保護を使用します。インスタンスのスケールイン保護の設定は、Auto Scalingグループまたは個別の Auto Scaling インスタンスで有効にできます。Auto Scaling グループがインスタンスを起動すると、インスタンスは Auto Scaling グループのインスタンスのスケールイン保護の設定を受け継ぎます。Auto Scaling グループまたは Auto Scaling インスタンスのインスタンスのスケールイン保護の設定はいつでも変更できます。

インスタンスのスケールイン保護は、インスタンスの状態が InService の場合に開始されます。終了されない設定のインスタンスをデタッチすると、インスタンスのスケールイン保護の設定は失われます。インスタンスをグループに再度アタッチすると、グループの現在のインスタンスのスケールイン保護を受け継ぎます。

Auto Scaling グループのすべてのインスタンスがスケールイン時の終了から保護されていて、スケールインイベントが発生した場合、希望する容量が減ります。ただし、Auto Scaling グループはインスタンスの保護の設定が無効になるまで、必要な数のインスタンスを終了することはできません。

インスタンスのスケールイン保護は、次の状況から Auto Scaling インスタンスを保護することはできません。

130

Page 138: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドインスタンスのスケールイン保護

• Amazon EC2 コンソール、terminate-instances コマンド、TerminateInstances アクションのいずれかを使用して、手動で終了します。手動の終了より Auto Scaling インスタンスを保護するには、Amazon EC2 終了保護を有効にします。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「終了保護の有効化」を参照してください。

• インスタンスがヘルスチェックに失敗した場合のヘルスチェックの置換。詳細については、「AutoScaling インスタンスのヘルスチェック (p. 150)」を参照してください。Amazon EC2 Auto Scaling による異常なインスタンスの終了を防止するには、ReplaceUnhealthy プロセスを停止します。詳細については、「スケーリングプロセスの中断と再開 (p. 145)」を参照してください。

• スポットインスタンスの中断。容量が使用できなくなった場合、またはスポット料金が上限価格を超えた場合、スポットインスタンスは終了されます。

タスク• グループのインスタンスのスケールイン保護の有効化 (p. 131)• グループのインスタンスのスケールイン保護の設定を変更する (p. 131)• インスタンスに対してインスタンスのスケールイン保護の設定を変更する (p. 132)

グループのインスタンスのスケールイン保護の有効化Auto Scaling グループを作成する際にインスタンスのスケールイン保護を有効にすることができます。デフォルトでは、インスタンスのスケールイン保護は無効になっています。

インスタンスのスケールイン保護を有効にする (コンソール)

Auto Scaling グループを作成するとき、[Configure Auto Scaling group details (Auto Scaling グループ詳細の設定)] ページの [高度な詳細] で、[Instance Protection (インスタンスの保護)] から [Protect FromScale In] オプションを選択します。

インスタンスのスケールイン保護を有効にする (AWS CLI)

以下の create-auto-scaling-group コマンドを使用して、インスタンスのスケールイン保護を有効にします。

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg --new-instances-protected-from-scale-in ...

グループのインスタンスのスケールイン保護の設定を変更するAuto Scaling グループのインスタンスのスケールイン保護の設定は、有効または無効にすることができます。

131

Page 139: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドインスタンスのスケールイン保護

グループのインスタンスのスケールイン保護の設定を変更する (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Details] タブで、[Edit] を選択します。5. [Instance Protection (インスタンスの保護)] で、[Protect From Scale In (スケールインから保護)] を選

択します。

6. [Save] を選択します。

グループのインスタンスのスケールイン保護設定を変更する (AWS CLI)

以下の update-auto-scaling-group コマンドを使用して、指定した Auto Scaling グループのインスタンスのスケールイン保護を有効にします。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --new-instances-protected-from-scale-in

次のコマンドを使用して、指定したグループのインスタンスのスケールイン保護を無効にします。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --no-new-instances-protected-from-scale-in

インスタンスに対してインスタンスのスケールイン保護の設定を変更するデフォルトで、インスタンスは所属する Auto Scaling グループからインスタンスのスケールイン保護の設定を取得します。ただし、インスタンスにおけるインスタンスのスケールイン保護はいつでも有効または無効にできます。

インスタンスに対するインスタンスのスケールイン保護設定を変更する (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Instances] タブで、インスタンスを選択します。5. インスタンスのスケールイン保護を有効にするには、[アクション]、[Instance Protection (インスタン

スの保護)]、[Set Scale In Protection (スケールイン保護を設定)] の順に選択します。プロンプトが表示されると、[Set Scale In Protection] を選択します。

6. インスタンスの保護を無効にするには、[アクション]、[Instance Protection (インスタンスの保護)]、[Remove Scale In Protection (スケールイン保護の削除)] の順に選択します。プロンプトが表示されたら、[Remove Scale In Protection (スケールイン保護の削除)] を選択します。

インスタンスに対するインスタンスのスケールイン保護設定を変更する (AWS CLI)

以下の set-instance-protection コマンドを使用して、指定したインスタンスに対するインスタンスのスケールイン保護を有効にします。

132

Page 140: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドライフサイクルフック

aws autoscaling set-instance-protection --instance-ids i-5f2e8a0d --auto-scaling-group-name my-asg --protected-from-scale-in

次のコマンドを使用して、指定したインスタンスにおけるインスタンスのスケールイン保護を無効にします。

aws autoscaling set-instance-protection --instance-ids i-5f2e8a0d --auto-scaling-group-name my-asg --no-protected-from-scale-in

Amazon EC2 Auto Scaling ライフサイクルフックライフサイクルフックを使用すると、Auto Scaling グループによるインスタンスの起動時または削除時にインスタンスを一時停止してカスタムアクションを実行できます。インスタンスが一時停止されると、complete-lifecycle-action コマンドまたは CompleteLifecycleAction オペレーションを使用してライフサイクルアクションを完了するか、タイムアウト期間が終了するまで (デフォルトでは 1 時間)、待機状態のままになります。

たとえば、新しく起動したインスタンスは起動シーケンスを完了し、ライフサイクルフックによって一時停止されます。インスタンスが待機状態の間に、ソフトウェアをインストールまたは設定して、トラフィックの受信を開始する前に、インスタンスの準備をすべて完了できます。ライフサイクルフックの別の使用例もあります。スケールインイベントが発生すると、まず、終了するインスタンスがロードバランサーから登録解除されます (Auto Scaling グループが Elastic Load Balancing で使用されている場合)。次に、ライフサイクルフックによってインスタンスが終了される前に一時停止されます。インスタンスが待機状態の間に、たとえば、インスタンスに接続して、インスタンスが完全に終了される前にログやその他のデータをダウンロードできます。

各 Auto Scaling グループは、複数のライフサイクルフックを保持できます。ただし、Auto Scaling グループごとにフックの数の制限があります。詳細については、「Amazon EC2 Auto Scaling の制限 (p. 10)」を参照してください。

コンテンツ• ライフサイクルフックの動作 (p. 133)• 考慮事項 (p. 134)• 通知の準備 (p. 135)• ライフサイクルフックの追加 (p. 135)• ライフサイクルフックのカスタムアクションを完了する (p. 137)• 通知をテストする (p. 137)• Amazon EC2 Auto Scaling ライフサイクルフックの通知の設定 (p. 138)

ライフサイクルフックの動作Auto Scaling グループにライフサイクルフックを追加すると、以下のように機能します。

1. Auto Scaling グループはスケールアウトイベントにはインスタンスを起動して、スケールインイベントにはインスタンスを終了して応答します。

2. ライフサイクルフックはインスタンスを待機状態 (Pending:Wait または Terminating:Wait) にします。処理を続行するように指示するまで、またはタイムアウト期間終了まで、インスタンスは一時停止されたままです。

3. 以下の 1 つ以上のオプションを使用して、カスタムアクションを実行できます。• ライフサイクルアクションが発生したときに、Lambda 関数を呼び出す CloudWatch イベント

ターゲットを定義します。Amazon EC2 Auto Scaling がライフサイクルアクションのイベントをCloudWatch イベント に送信したときに、Lambda 関数が呼び出されます。イベントには、起動また

133

Page 141: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド考慮事項

は終了されるインスタンスに関する情報と、ライフサイクルアクションをコントロールするために使用できるトークンが含まれています。

• ライフサイクルフック用の通知ターゲットを定義します。Amazon EC2 Auto Scaling はその通知ターゲットへメッセージを送信します。メッセージには、起動または終了されるインスタンスに関する情報と、ライフサイクルアクションをコントロールするために使用できるトークンが含まれています。

• インスタンスが起動されると、インスタンスで実行されるスクリプトが作成されます。このスクリプトは、それが実行されているインスタンスの ID を使用してライフサイクルアクションを制御できます。

4. デフォルトでは、インスタンスは 1 時間にわたり待機状態になった後、Auto Scaling グループは起動処理または削除処理を継続します (Pending:Proceed または Terminating:Proceed)。さらに時間が必要な場合は、ハートビートを記録することにより、タイムアウト期間を再開できます。タイムアウト期間が終了する前に終了した場合、起動処理または削除処理を継続するライフサイクルアクションを完了できます。

次の図は、このプロセスのインスタンス状態の遷移を示しています。

Auto Scaling グループのインスタンスの詳細なライフサイクルについては、「Auto Scaling ライフサイクル (p. 7)」を参照してください。

考慮事項Auto Scaling グループにライフサイクルフックを追加することで、インスタンスの起動と終了の方法をより詳細にコントロールすることができます。Auto Scaling グループにライフサイクルフックを追加した場合に、グループが引き続き想定どおりに実行できるようにするための考慮事項を以下に示します。

インスタンスを待機状態に維持するインスタンスは一定期間、待機状態に維持できます。デフォルトは 1 時間 (3,600 秒) です。この時間は以下の方法で調整できます。

• ライフサイクルフックを作成するときに、ライフサイクルフックのハートビートタイムアウトを設定します。put-lifecycle-hook コマンドで --heartbeat-timeout パラメータを使用します。PutLifecycleHook オペレーションで、HeartbeatTimeout パラメータを使用します。

• タイムアウト期間が終了する前に終了したときに次の状態に移るには、complete-lifecycle-action コマンド、または CompleteLifecycleAction オペレーションを使用します。

• ハートビートを記録することにより、タイムアウトの終了を延長するには、record-lifecycle-action-heartbeat コマンド、または RecordLifecycleActionHeartbeat オペレーションを使用します。こ

134

Page 142: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド通知の準備

れにより、ライフサイクルフックを作成するときに指定するタイムアウト時間によってタイムアウト期間が延長されます。たとえば、タイムアウト値が 1 時間に設定されている場合、30 分後にこのコマンドを呼び出すと、追加した時間に応じてインスタンスが待機状態のままになります (合計 90 分)。

インスタンスを待機状態に保つことができる最大時間は、48 時間またはハートビートのタイムアウトの100 倍の、どちらか短い方です。

クールダウンと簡易スケーリング簡易スケーリングポリシーによって Auto Scaling グループがインスタンスを起動または終了した場合、クールダウン (p. 124)が実施されます。クールダウン期間によって、Auto Scaling グループは必要な数を上回るインスタンスを起動または終了しなくなります。ライフサイクルアクションが発生し、インスタンスが待機状態になると、簡易スケーリングポリシーによるスケーリングアクティビティが一時停止されます。インスタンスが InService 状態になると、クールダウン期間が開始します。クールダウン期間が終了すると、一時停止されたスケーリングアクティビティが再開されます。

ヘルスチェックの猶予期間ライフサイクルフックを追加した場合、ヘルスチェックの猶予期間が始まるのは、ライフサイクルフックアクションが完了してインスタンスが InService 状態になってからになります。

スポットインスタンスライフサイクルフックはスポットインスタンスと共に使用できます。ただし、ライフサイクルフックでは、使用可能な容量がなくなった場合にインスタンスが終了するのを防ぐことはできません。また、スポットインスタンスを終了するときは、ライフサイクルアクションも完了する必要があります (complete-lifecycle-action コマンドまたは CompleteLifecycleAction オペレーションを使用)。

通知の準備インスタンスが待機状態になったときの通知を設定できます。通知を受信するために、AmazonCloudWatch Events、Amazon SNS、または Amazon SQS を使用できます。詳細については、「ライフサイクルフックの通知の設定 (p. 138)」を参照してください。

あるいは、起動するときにインスタンスを設定するスクリプトがある場合は、ライフサイクルアクションが発生したときに通知を受け取る必要はありません。まだそうしていない場合は、インスタンスメタデータからインスタンスのインスタンス ID を取得するためのスクリプトを更新します。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「インスタンスメタデータの取得」を参照してください。

ライフサイクルフックの追加ライフサイクルフックを Auto Scaling グループに追加すると、Auto Scaling グループでインスタンスが起動または終了するときにそのフックを実行するかどうかを指定できます。

コンテンツ• ライフサイクルフックを追加する (コンソール) (p. 135)• ライフサイクルフックを追加する (AWS CLI) (p. 136)

ライフサイクルフックを追加する (コンソール)以下の手順に従って、既存の Auto Scaling グループにライフサイクルフックを追加します。インスタンスの起動時または終了時にフックを使用するかどうか、ライフサイクルフックが完了してから他のライフサイクルフックが中止または続行されるまでの待機時間を指定できます。

135

Page 143: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドライフサイクルフックの追加

ライフサイクルフックを追加するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Lifecycle Hooks (ライフサイクルフック)] タブで、[Create Lifecycle Hook (ライフサイクルフックの作

成)] を選択します。5. ライフサイクルフックを定義するには、以下を実行します。

a. [Lifecycle Hook Name (ライフサイクルフック名)] で、ライフサイクルフックの名前を指定します。

b. [Lifecycle Transition (ライフサイクルの移行)] で、[Instance Launch (インスタンスの起動)] または[Instance Terminate (インスタンスの終了)] を選択します。

c. [Heartbeat Timeout (ハートビートタイムアウト)] でタイムアウト値を指定します。これにより、インスタンスが待機状態のままになる時間を制御できます。値は 30 〜 7,200 秒であることが必要です。タイムアウト期間中に、たとえば、新しく起動したインスタンスにログオンし、アプリケーションをインストールしたり、カスタムアクションを実行したりできます。

d. [Default Result (デフォルトの結果)] には、ライフサイクルフックのタイムアウトが経過したか、予期しないエラーが発生した場合に Auto Scaling グループが実行するアクションを指定します。ABANDON (中止) または CONTINUE (続行) のいずれかを選択できます。

インスタンスが起動中である場合、CONTINUE (続行) はアクションが成功し、Auto Scaling グループがインスタンスを稼働状態に移行できることを示します。それ以外の場合、ABANDON (中止) はカスタムアクションが失敗し、インスタンスを終了できることを示します。インスタンスが終了中である場合、ABANDON (中止) と CONTINUE (続行) の両方により、インスタンスを終了できます。ただし、ABANDON (中止) は他のライフサイクルフックなど残りのアクションをすべて停止し、CONTINUE (続行) は他のライフサイクルフックをすべて続行します。

e. (オプション) [Notification Metadata (通知メタデータ)] で、Amazon EC2 Auto Scaling が通知ターゲットにメッセージを送信するときに含める追加情報を指定します。

6. [Create] を選択します。

ライフサイクルフックを追加する (AWS CLI)put-lifecycle-hook コマンドを使用して、ライフサイクルフックを作成して更新します。

スケールアウトでアクションを実行するには、以下のコマンドを使用します。

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-hook --auto-scaling-group-name my-asg \ --lifecycle-transition autoscaling:EC2_INSTANCE_LAUNCHING

スケールインでアクションを実行するには、以下のコマンドを使用します。

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-hook --auto-scaling-group-name my-asg \ --lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING

Amazon SNS または Amazon SQS を使用して通知を受信するには、通知ターゲットと IAM ロールを指定する必要があります。詳細については、「ライフサイクルフックの通知の設定 (p. 138)」を参照してください。

たとえば、通知ターゲットとして SNS トピックを指定するには、以下のオプションを追加します。

136

Page 144: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドライフサイクルフックのカスタムアクションを完了する

--notification-target-arn arn:aws:sns:region:123456789012:my-sns-topic --role-arn arn:aws:iam::123456789012:role/my-notification-role

トピックは、以下のキーと値のペアが含まれたテスト通知を受け取ります。

"Event": "autoscaling:TEST_NOTIFICATION"

ライフサイクルフックのカスタムアクションを完了するAuto Scaling グループがスケールアウトまたはスケールインイベントに応答するときに、インスタンスを待機状態にし、ライフサイクルフックの設定方法に応じて通知を送信します。

ライフサイクルフックのカスタムアクションを完了するには

1. 通知を受信した後、インスタンスが待機状態にあるときにカスタムアクションを実行できます。2. カスタムアクション完了までにさらに時間が必要な場合は、record-lifecycle-action-heartbeat コマンド

を使用してタイムアウト時間を再開し、インスタンスを待機状態に維持します。以下のコマンドに示すように、通知と共に受信したライフサイクルアクショントークンを指定できます。

aws autoscaling record-lifecycle-action-heartbeat --lifecycle-hook-name my-launch-hook \ --auto-scaling-group-name my-asg --lifecycle-action-token bcd2f1b8-9a78-44d3-8a7a-4dd07d7cf635

または、以下のコマンドに示すように、前のステップで受け取ったインスタンスの ID を指定できます。

aws autoscaling record-lifecycle-action-heartbeat --lifecycle-hook-name my-launch-hook \ --auto-scaling-group-name my-asg --instance-id i-1a2b3c4d

3. complete-lifecycle-action コマンドを使用してタイムアウト期間が終了する前にカスタムアクションを終了すると、Auto Scaling グループは起動を継続するか、インスタンスを終了することができます。以下のコマンドに示すように、ライフサイクルアクショントークンを指定できます。

aws autoscaling complete-lifecycle-action --lifecycle-action-result CONTINUE \ --lifecycle-hook-name my-launch-hook --auto-scaling-group-name my-asg \ --lifecycle-action-token bcd2f1b8-9a78-44d3-8a7a-4dd07d7cf635

または、以下のコマンドに示すように、インスタンスの ID を指定できます。

aws autoscaling complete-lifecycle-action --lifecycle-action-result CONTINUE \ --instance-id i-1a2b3c4d --lifecycle-hook-name my-launch-hook \ --auto-scaling-group-name my-asg

通知をテストする起動イベントの通知を生成するには、Auto Scaling グループの希望容量を 1 増やして Auto Scaling グループを更新します。インスタンスを起動してから数分以内に通知を受け取ります。

137

Page 145: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドライフサイクルフックの通知の設定

希望する容量を変更するには (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Details] タブで、[Edit] を選択します。5. [Desired] で、現在の値を 1 増やします。この値が [Max] を超えた場合、[Max] の値も 1 増やす必要が

あります。6. [Save (保存)] を選択します。7. 数分後、イベントの通知が届きます。このテスト用に起動した追加のインスタンスが必要なくなった

場合は、[Desired] を 1 減らすことができます。数分後、イベントの通知が届きます。

Amazon EC2 Auto Scaling ライフサイクルフックの通知の設定インスタンスが待機状態になったときに通知をトリガーするライフサイクルフックを Auto Scaling グループに追加できます。これらの通知をさまざまな理由で、たとえば、Lambda 関数を呼び出したり、カスタムアクションを実行できるように E メール通知を受信したりするために設定できます。このトピックでは、Amazon CloudWatch Events、Amazon SNS、Amazon SQS を使用して通知を設定する方法について説明します。目的のオプションを選択します。または、起動するときにインスタンスを設定するスクリプトがある場合は、ライフサイクルアクションが発生したときに通知を受け取る必要はありません。

Important

通知対象の AWS リソースは、ライフサイクルフックを作成したのと同じ AWS リージョンに作成する必要があります。たとえば、Amazon SNS を使用して通知を設定する場合、Amazon SNS トピックはライフサイクルフックと同じリージョンにあることが必要です。

通知オプション• CloudWatch イベント を使用した Lambda への通知のルーティング (p. 138)• Amazon SNS を使用した通知の受け取り (p. 139)• Amazon SQS を使用した通知の受け取り (p. 140)

CloudWatch イベント を使用した Lambda への通知のルーティングCloudWatch イベント を使用して、ライフサイクルアクションが発生したときに Lambda 関数を呼び出すターゲットを設定できます。

CloudWatch イベント を使用して通知を設定するには

1. Lambda 関数の作成 (p. 162) の手順を使用して Lambda 関数を作成し、Amazon Resource Name (ARN) を書き留めておきます。たとえば、arn:aws:lambda:region:123456789012:function:my-function と指定します。

2. 以下の put-rule コマンドを使用して、ライフサイクルアクションと一致する CloudWatch イベントルールを作成します。

aws events put-rule --name my-rule --event-pattern file://pattern.json --state ENABLED

インスタンス起動のライフサイクルアクションのための pattern.json:

138

Page 146: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドライフサイクルフックの通知の設定

{ "source": [ "aws.autoscaling" ], "detail-type": [ "EC2 Instance-launch Lifecycle Action" ]}

インスタンス終了のライフサイクルアクションのための pattern.json:

{ "source": [ "aws.autoscaling" ], "detail-type": [ "EC2 Instance-terminate Lifecycle Action" ]}

3. 次の add-permission コマンドを使用して、Lambda 関数を呼び出すためのアクセス許可をルールに付与します。このコマンドは、CloudWatch イベント サービスのプリンシパル(events.amazonaws.com) および範囲に関するアクセス許可を指定のルールに付与します。

aws lambda add-permission --function-name LogScheduledEvent --statement-id my-scheduled-event \ --action 'lambda:InvokeFunction' --principal events.amazonaws.com --source-arn arn:aws:events:region:123456789012:rule/my-scheduled-rule

4. 以下の put-targets コマンドを使用して、ライフサイクルアクションが発生したときに Lambda 関数を呼び出すターゲットを作成します。

aws events put-targets --rule my-rule --targets Id=1,Arn=arn:aws:lambda:region:123456789012:function:my-function

5. これらの指示に従った後、次のステップとして ライフサイクルフックの追加 (p. 135) に進みます。

Auto Scaling グループがスケールアウトまたはスケールインイベントに応答するとき、インスタンスを待機状態にします。インスタンスが待機状態にあるときに、Lambda 関数が呼び出されます。イベントデータの詳細については、「Auto Scaling イベント (p. 159)」を参照してください。

Amazon SNS を使用した通知の受け取りライフサイクルアクションが発生したときに通知を受け取るよう、Amazon SNS を使用して通知ターゲットをセットアップできます。

Amazon SNS を使用して通知をセットアップするには

1. 以下の create-topic コマンドを使用して Amazon SNS トピックを作成します。詳細については、Amazon Simple Notification Service 開発者ガイド の「トピックの作成」を参照してください。

aws sns create-topic --name my-sns-topic

ターゲットの ARN に注意してください (たとえば、arn:aws:sns:region:123456789012:my-sns-topic など)。

2. 通知ターゲットに対するアクセス許可を Amazon EC2 Auto Scaling に付与するためのサービスロールを作成します (または引き受けます)。

IAM ロールを作成して Amazon EC2 Auto Scaling にその引き受けを許可するには

a. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。b. ナビゲーションペインで [ロール]、[新しいロールの作成] の順に選択します。c. [信頼されたエンティティの種類を選択] で、[AWS のサービス] を選択します。

139

Page 147: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドライフサイクルフックの通知の設定

d. [このロールを使用するサービスを選択] で、リストから [EC2 Auto Scaling] を選択します。e. [ユースケースの選択] で、[EC2 Auto Scaling Notification Access (EC2 Auto Scaling 通知アクセ

ス)]、[Next:Permissions (次のステップ: アクセス許可)] の順に選択します。f. [Next:Tags (次のステップ: タグ)] を選択します。(オプション) タグをキーと値のペアとしてア

タッチして [Next:Review (次のステップ: 確認)] を選択することで、ロールにメタデータを追加します。

g. [Review (確認)] ページで、ロールの名前 (my-notification-role など) を入力し、[ロールの作成] を選択します。

h. [ロール] ページで、作成したロールを選択して [Summary (概要)] ページを開きます。ロールのARN をメモします。たとえば、arn:aws:iam::123456789012:role/my-notification-role と指定します。次の手順でライフサイクルフックを作成するときにロール ARN を指定します。

3. これらの指示に従った後、次のステップとして「ライフサイクルフックを追加する (AWSCLI) (p. 136)」に進みます。

Auto Scaling グループがスケールアウトまたはスケールインイベントに応答するとき、インスタンスを待機状態にします。インスタンスが待機状態のときに、通知ターゲットにメッセージが発行されます。メッセージには、次に示すイベントデータが含まれます。

• LifecycleActionToken — ライフサイクルアクショントークン。• AccountId — AWS アカウント ID。• AutoScalingGroupName — Auto Scaling グループの名前。• LifecycleHookName — ライフサイクルフックの名前。• EC2InstanceId — EC2 インスタンスの ID。• LifecycleTransition — ライフサイクルフックタイプ。

例:

Service: AWS Auto ScalingTime: 2019-04-30T20:42:11.305ZRequestId: 18b2ec17-3e9b-4c15-8024-ff2e8ce8786aLifecycleActionToken: 71514b9d-6a40-4b26-8523-05e7ee35fa40AccountId: 123456789012AutoScalingGroupName: my-asgLifecycleHookName: my-hookEC2InstanceId: i-0598c7d356eba48d7LifecycleTransition: autoscaling:EC2_INSTANCE_LAUNCHINGNotificationMetadata: null

Amazon SQS を使用した通知の受け取りライフサイクルアクションが発生したときに通知を受け取るよう、Amazon SQS を使用して通知ターゲットをセットアップできます。

Important

FIFO キューはライフサイクルフックとの互換性がありません。

Amazon SQS を使用して通知をセットアップするには

1. Amazon SQS を使用してターゲットを作成します。詳細については、Amazon Simple Queue Service開発者ガイド の「Amazon SQS の開始方法」を参照してください。ターゲットの ARN に注意してください (たとえば、arn:aws:sqs:region:123456789012:my-sqs-queue など)。

2. 通知ターゲットに対するアクセス許可を Amazon EC2 Auto Scaling に付与するためのサービスロールを作成します (または引き受けます)。

140

Page 148: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド一時的なインスタンスの削除

IAM ロールを作成して Amazon EC2 Auto Scaling にその引き受けを許可するには

a. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。b. ナビゲーションペインで [ロール]、[新しいロールの作成] の順に選択します。c. [信頼されたエンティティの種類を選択] で、[AWS のサービス] を選択します。d. [このロールを使用するサービスを選択] で、リストから [EC2 Auto Scaling] を選択します。e. [ユースケースの選択] で、[EC2 Auto Scaling Notification Access (EC2 Auto Scaling 通知アクセ

ス)]、[Next:Permissions (次のステップ: アクセス許可)] の順に選択します。f. [Next:Tags (次のステップ: タグ)] を選択します。(オプション) タグをキーと値のペアとしてア

タッチして [Next:Review (次のステップ: 確認)] を選択することで、ロールにメタデータを追加します。

g. [Review (確認)] ページで、ロールの名前 (my-notification-role など) を入力し、[ロールの作成] を選択します。

h. [ロール] ページで、作成したロールを選択して [Summary (概要)] ページを開きます。ロールのARN をメモします。たとえば、arn:aws:iam::123456789012:role/my-notification-role と指定します。次の手順でライフサイクルフックを作成するときにロール ARN を指定します。

3. これらの指示に従った後、次のステップとして「ライフサイクルフックを追加する (AWSCLI) (p. 136)」に進みます。

Auto Scaling グループがスケールアウトまたはスケールインイベントに応答するとき、インスタンスを待機状態にします。インスタンスが待機状態のときに、通知ターゲットにメッセージが発行されます。

Auto Scaling グループからの一時的なインスタンスの削除

インスタンスを InService 状態から Standby 状態に移行でき、インスタンスを更新またはトラブルシューティングして、インスタンスをサービスに返すことができます。スタンバイ状態のインスタンスはまだ Auto Scaling グループの一部ですが、アプリケーショントラフィックをアクティブに処理しません。

Important

スタンバイ状態のインスタンスに対して課金されます。

たとえば、Auto Scaling グループの起動設定をいつでも変更でき、Auto Scaling グループを起動するインスタンスすべてがこの設定を使用します。ただし、Auto Scaling グループは現在稼働中のインスタンスを更新しません。これらのインスタンスを削除して、Auto Scaling グループを使用して交換できます。または、インスタンスをスタンバイ状態にしてソフトウェアを更新し、次にインスタンスをサービスに戻すことができます。

コンテンツ• スタンバイ状態の仕組み (p. 141)• スタンバイ状態のインスタンスのヘルスステータス (p. 142)• インスタンスを一時的に削除する (コンソール) (p. 142)• インスタンスを一時的に削除する (AWS CLI) (p. 143)

スタンバイ状態の仕組みAuto Scaling グループからインスタンスを一時的に削除できるように、スタンバイ状態は次のように機能します。

141

Page 149: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスタンバイ状態のインスタンスのヘルスステータス

1. ユーザーがインスタンスをスタンバイ状態にする。スタンバイ状態を終了するまで、インスタンスはこの状態のままです。

2. Auto Scaling グループにアタッチされたロードバランサーまたはターゲットグループがある場合、インスタンスはロードバランサーまたはターゲットグループから登録解除されます。

3. デフォルトでは、インスタンスをスタンバイ状態にすると、希望する容量として指定した値は減ります。この場合、スタンバイ状態になっているインスタンスがあると、追加のインスタンスを起動できません。あるいは、希望する容量を減らさないように指定できます。このオプションを指定した場合、Auto Scaling グループはインスタンスを起動して、スタンバイ状態のインスタンスと置き換えます。その目的は、1 つ以上のインスタンスがスタンバイ状態である間にアプリケーションの容量を維持できるようにすることです。

4. インスタンスを更新またはトラブルシューティングできます。5. スタンバイ状態を終了することにより、インスタンスを稼働状態に戻します。6. スタンバイ状態にあったインスタンスを稼働状態に戻すと、希望する容量が増やされます。インスタン

スをスタンバイ状態に移行するときに容量を減らさない場合、Auto Scaling グループによって必要以上のインスタンスがあると検出されます。これにより終了ポリシーが適用され、グループのサイズが削減されます。詳細については、「スケールイン時にどの Auto Scaling インスタンスを終了するかのコントロール (p. 127)」を参照してください。

7. Auto Scaling グループにアタッチされたロードバランサーまたはターゲットグループがある場合、インスタンスはロードバランサーまたはターゲットグループに登録されます。

次の図は、このプロセスのインスタンス状態の遷移を示しています。

Auto Scaling グループのインスタンスの詳細なライフサイクルについては、「Auto Scaling ライフサイクル (p. 7)」を参照してください。

スタンバイ状態のインスタンスのヘルスステータスAmazon EC2 Auto Scaling はスタンバイ状態にあるインスタンスのヘルスチェックを実行しません。インスタンスがスタンバイ状態にあるとき、スタンバイ状態に移行する前の状態がヘルスステータスに反映されます。インスタンスを稼働状態に戻すまで、Amazon EC2 Auto Scaling はインスタンスのヘルスチェックを実行しません。

たとえば、正常なインスタンスをスタンバイ状態に移行して終了する場合、インスタンスは正常であると Amazon EC2 Auto Scaling がレポートし続けます。終了されたインスタンスを稼働状態に戻すと、Amazon EC2 Auto Scaling はインスタンスのヘルスチェックを実行し、そのインスタンスが終了中または異常であると判定すると、代わりのインスタンスを起動します。

インスタンスを一時的に削除する (コンソール)以下の手順は、サービスに現在存在するインスタンスを更新する一般的な手順を示しています。

インスタンスを一時的に削除するには

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

142

Page 150: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドインスタンスを一時的に削除する (AWS CLI)

2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Instances] タブで、インスタンスを選択します。5. [Actions]、[Set to Standby] を選択します。6. [Set to Standby] ページで、代替インスタンスを起動するにはチェックボックスをオンにします。必要

な容量を減らすには、オフのままにします。[Set to Standby] を選択します。7. 必要に応じてインスタンスを更新、またはトラブルシューティングできます。終了したら、インスタ

ンスを稼働状態に戻すために次のステップに進みます。8. インスタンスを選択し、[Actions]、[Set to InService] を選択します。[Set to InService (InService に設

定)] ページで、[Set to InService (InService に設定)] を選択します。

インスタンスを一時的に削除する (AWS CLI)以下の手順は、サービスに現在存在するインスタンスを更新する一般的な手順を示しています。

インスタンスを一時的に削除するには

1. 以下の describe-auto-scaling-instances コマンドを実行して、更新するインスタンスを確認します。

aws autoscaling describe-auto-scaling-instances

以下に、応答の例を示します。

{ "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, ... ]}

2. 次の enter-standby コマンドを使用してインスタンスを Standby 状態に変更します。--should-decrement-desired-capacity オプションは、Auto Scaling グループで代わりのインスタンスが起動されないように希望する容量を減らします。

aws autoscaling enter-standby --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg --should-decrement-desired-capacity

以下に、レスポンスの例を示します。

{ "Activities": [ { "Description": "Moving EC2 instance to Standby: i-05b4f7d5be44822a6",

143

Page 151: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドインスタンスを一時的に削除する (AWS CLI)

"AutoScalingGroupName": "my-asg", "ActivityId": "3b1839fe-24b0-40d9-80ae-bcd883c2be32", "Details": "{\"Availability Zone\":\"us-west-2a\"}", "StartTime": "2014-12-15T21:31:26.150Z", "Progress": 50, "Cause": "At 2014-12-15T21:31:26Z instance i-05b4f7d5be44822a6 was moved to standby in response to a user request, shrinking the capacity from 4 to 3.", "StatusCode": "InProgress" } ]}

3. (オプション) 以下の describe-auto-scaling-instances コマンドを使用して、インスタンスが Standbyであることを確認します。

aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6

以下に、レスポンスの例を示します。インスタンスのステータスが Standby に設定されました。

{ "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "Standby" }, ... ]}

4. 必要に応じてインスタンスを更新、またはトラブルシューティングできます。終了したら、インスタンスを稼働状態に戻すために次のステップに進みます。

5. 以下の exit-standby コマンドを使用して、インスタンスを稼働状態に戻します。

aws autoscaling exit-standby --instance-ids i-05b4f7d5be44822a6 --auto-scaling-group-name my-asg

以下に、レスポンスの例を示します。

{ "Activities": [ { "Description": "Moving EC2 instance out of Standby: i-05b4f7d5be44822a6", "AutoScalingGroupName": "my-asg", "ActivityId": "db12b166-cdcc-4c54-8aac-08c5935f8389", "Details": "{\"Availability Zone\":\"us-west-2a\"}", "StartTime": "2014-12-15T21:46:14.678Z", "Progress": 30, "Cause": "At 2014-12-15T21:46:14Z instance i-05b4f7d5be44822a6 was moved out of standby in response to a user request, increasing the capacity from 3 to 4.", "StatusCode": "PreInService"

144

Page 152: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスケーリングの停止

} ]}

6. (オプション) 以下の describe-auto-scaling-instances コマンドを使用して、インスタンスが稼働状態に戻っていることを確認します。

aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6

以下に、レスポンスの例を示します。インスタンスのステータスが InService に設定されました。

{ "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, ... ]}

スケーリングプロセスの中断と再開このトピックでは、Auto Scaling グループの 1 つ以上のスケーリングプロセスを中断および再開する方法について説明します。また、Amazon EC2 Auto Scaling の中断/再開機能の使用を選択するときに考慮すべき問題についても説明しています。

Important

インスタンスのトラブルシューティングまたは再起動が必要な場合は、中断/再開機能の代わりにスタンバイ機能を使用します。詳細については、「Auto Scaling グループからの一時的なインスタンスの削除 (p. 141)」を参照してください。インスタンスのスケールイン保護機能を使用して、自動スケールイン中に特定のインスタンスが終了しないようにします。詳細については、「インスタンスのスケールイン保護 (p. 130)」を参照してください。

Auto Scaling グループのプロセスは、お客様が中断するだけでなく、インスタンスの起動に繰り返し失敗するという理由で Amazon EC2 Auto Scaling によって中断されることもあります。これは、管理上の中断と呼ばれます。管理上の中断は一般に、24 時間以上インスタンスの起動を試みているが、インスタンスの起動に成功しない Auto Scaling グループに適用されます。管理上の理由で Amazon EC2 Auto Scaling によって中断されたプロセスは、お客様が再開できます。

目次• スケーリングプロセス (p. 146)• 中断の選択 (p. 146)• スケーリングプロセスを中断および再開する (コンソール) (p. 148)• スケーリングプロセスを中断および再開する (AWS CLI) (p. 149)

145

Page 153: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスケーリングプロセス

スケーリングプロセスAmazon EC2 Auto Scaling では、基本プロセスタイプとして Launch と Terminate の 2 つがあります。Launch プロセスは新しい Amazon EC2 インスタンスを Auto Scaling グループに追加して容量を増やし、Terminate プロセスは Amazon EC2 インスタンスをグループから削除して容量を減らします。

Amazon EC2 Auto Scaling の他のプロセスタイプは、特定のスケーリング機能に関連しています。

• AddToLoadBalancer— インスタンスが起動されたときに、アタッチされたロードバランサーまたはターゲットグループにインスタンスを追加します。

• AlarmNotification — グループのスケーリングポリシーに関連付けられている CloudWatch アラームから通知を受け取ります。

• AZRebalance — グループのバランスがとれなくなった場合 (たとえば、以前は使用できなかったアベイラビリティーゾーンが正常な状態に戻った場合)、グループに指定されたすべてのアベイラビリティーゾーン間で EC2 インスタンスを均等に分散させてバランスをとります。詳細については、「アクティビティの再分散 (p. 7)」を参照してください。

• HealthCheck — インスタンスのヘルスを確認し、インスタンスが正常でないと Amazon EC2 またはElastic Load Balancing が Amazon EC2 Auto Scaling に通知した場合、そのインスタンスに異常とマークします。このプロセスは、手動で設定したインスタンスのヘルス ステータスをオーバーライドできます。詳細については、「Auto Scaling インスタンスのヘルスチェック (p. 150)」を参照してください。

• ReplaceUnhealthy — 異常とマークされたインスタンスを終了してから、代わりの新しいインスタンスを作成します。

• ScheduledActions — お客様が作成したか、または AWS Auto Scaling の予測スケーリング機能によって作成された、スケジュールされたスケーリングアクションを実行します。

中断の選択各プロセスタイプは個別に中断および再開できます。このセクションでは、スケーリングプロセスの中断を決定する前に考慮すべきガイダンスと動作について説明します。個々のプロセスを中断すると、他のプロセスが妨げられる可能性があることに注意してください。プロセスの中断理由によっては、複数のプロセスをまとめて中断することが必要になる場合があります。

以下では、個々のプロセスタイプが中断されたときの動作について説明しています。

Warning

Launch または Terminate プロセスタイプを中断した場合、他のプロセスタイプが正しく機能しなくなることがあります。

Terminate

• プロセスの中断中に発生したアラームまたはスケジュールされたアクションに応じて、Auto Scaling グループはスケールインされません。さらに、以下のプロセスが中断されます。• AZRebalance はまだアクティブですが、正しく機能していません。古いインスタンスを終了せずに

新しいインスタンスを起動することがあります。これにより、Auto Scaling グループがその最大サイズより 10% まで大きくなることあります。バランスの再調整アクティビティ中にこの状態が一時的に許可されるためです。Terminate プロセスを再開するまで、Auto Scaling グループは最大サイズを超えることがあります。Terminate が再開されると、グループで使用されているアベイラビリティーゾーン間のバランスがとれなくなった場合や、異なるアベイラビリティーゾーンが指定されている場合、AZRebalance は Auto Scaling グループのバランスを段階的に再調整します。

• ReplaceUnhealthy は非アクティブですが、HealthCheck はアクティブです。Terminate が再開されると、ReplaceUnhealthy プロセスはすぐに実行を開始します。Terminate が中断されている間に異常とマークされたインスタンスがある場合、それらのインスタンスはすぐに置き換えられます。

146

Page 154: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド中断の選択

Launch

• プロセスの中断中に発生したアラームまたはスケジュールされたアクションに応じて、Auto Scalingグループはスケールアウトされません。AZRebalance はグループのバランスを再調整しなくなります。ReplaceUnhealthy は引き続き異常なインスタンスを終了しますが、代わりのインスタンスを起動しません。Launch を再開すると、バランスの再調整アクティビティとヘルスチェックによる置き換えは以下の方法で処理されます。• グループで使用されているアベイラビリティーゾーン間のバランスがとれなくなった場合や、異なる

アベイラビリティーゾーンが指定された場合、AZRebalance は Auto Scaling グループのバランスを段階的に再調整します。

• ReplaceUnhealthy は、Launch が中断されていた間に終了したインスタンスをすぐに置き換えます。

AddToLoadBalancer

• Amazon EC2 Auto Scaling はインスタンスを起動しますが、それらのインスタンスをロードバランサーやターゲットグループに追加しません。AddToLoadBalancer プロセスを再開すると、インスタンスが起動されるときのロードバランサーまたはターゲットグループへの追加が再開されます。ただし、このプロセスが中断されている間に起動されたインスタンスは追加されません。これらのインスタンスを手動で登録する必要があります。

AlarmNotification

• CloudWatch アラームしきい値に違反している場合、Amazon EC2 Auto Scaling はスケーリングポリシーを実行しません。AlarmNotification を中断すると、スケーリングポリシーまたは関連するCloudWatch アラームを削除することなく、グループのスケーリングポリシーによってトリガーされたスケーリングイベントを一時停止できます。AlarmNotification を再開すると、Amazon EC2 AutoScaling はアラームしきい値に現在違反しているポリシーを処理します。

AZRebalance

• 特定のイベントが発生した後、Auto Scaling グループはインスタンスの再分散を試みません。ただし、スケールアウトまたはスケールインのイベントが発生した場合でも、スケーリングプロセスはアベイラビリティーゾーン間のバランスを調整します。たとえば、スケールアウト中に、インスタンスが最も少ないアベイラビリティーゾーンでインスタンスを起動します。AZRebalance が中断されている間にグループのバランスがとれなくなった場合、そのプロセスを再開しても、Amazon EC2 Auto Scaling はグループのバランスを再調整しようとしません。最初に Launch を呼び出してから Terminate を呼び出します。

HealthCheck

• Amazon EC2 Auto Scaling は、EC2 および Elastic Load Balancing のヘルスチェックの結果として、インスタンスに異常とマークしなくなります。ただし、カスタムヘルスチェックは引き続き正常に機能します。HealthCheck を中断した後、必要に応じて、グループ内のインスタンスのヘルス状態を手動で設定し、ReplaceUnhealthy がそれらのインスタンスを置き換えるようにできます。

ReplaceUnhealthy

• Amazon EC2 Auto Scaling は、異常とマークされたインスタンスを置き換えなくなります。EC2または Elastic Load Balancing のヘルスチェックに失敗したインスタンスも異常とマークされます。ReplaceUnhealthly プロセスを再開するとすぐに、Amazon EC2 Auto Scaling はこのプロセスが中断されている間に異常とマークされたインスタンスを置き換えます。ReplaceUnhealthy プロセスは両方の基本プロセスタイプを Terminate、Launch の順に呼び出します。

147

Page 155: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスケーリングプロセスを中断および再開する (コンソール)

ScheduledActions

• Amazon EC2 Auto Scaling は、中断期間中に実行される予定だったスケーリングアクションを実行しません。ScheduledActions を再開すると、Amazon EC2 Auto Scaling は実行時間をまだ過ぎていないスケジュールされたアクションのみを処理します。

起動と終了の両方を中断するLaunch および Terminate プロセスタイプを同時に中断すると、以下のようになります。

• Auto Scaling グループはスケーリングアクティビティを開始することも、その希望する容量を維持することもできません。

• グループで使用されているアベイラビリティーゾーン間のバランスがとれなくなった場合、AmazonEC2 Auto Scaling は Auto Scaling グループに指定されたアベイラビリティーゾーン間でインスタンスを均等に再分散させようとしません。

• Auto Scaling グループは異常とマークされたインスタンスを置き換えることはできません。

Launch および Terminate プロセスタイプを再開すると、Amazon EC2 Auto Scaling はそれらのプロセスの中断中に異常とマークされたインスタンスを置き換え、グループのバランスを再調整しようとします。スケーリングアクティビティも再開されます。

追加の考慮事項Launch と Terminate が中断されている間に影響される可能性のある外部オペレーションがいくつかあります。

• スポットインスタンスの中断 — Terminate が中断され、Auto Scaling グループにスポットインスタンスがある場合、使用可能な容量がなくなっていても、それらのインスタンスはまだ終了できます。Launch が中断されている間、Amazon EC2 Auto Scaling は別のまたは同じスポットインスタンスプールから、再利用可能になった代わりのインスタンスを起動することはできません。

• インスタンスのアタッチとデタッチ — Launch と Terminate が中断されているとき、Auto Scaling グループにアタッチされているインスタンスをデタッチすることはできますが、新しいインスタンスをそのグループにアタッチすることはできません。インスタンスをアタッチするには、最初に Launch を再開する必要があります。

Note

インスタンスをデタッチしてからすぐに手動でインスタンスを終了する場合、代わりにterminate-instance-in-auto-scaling-group CLI コマンドを呼び出すことができます。これにより、指定したインスタンスが終了し、オプションでグループの希望する容量が調整されます。さらに、Auto Scaling グループがライフサイクルフックで使用されている場合、インスタンスの終了に指定したカスタムアクションは、インスタンスが完全に終了する前に実行されます。

• スタンバイインスタンス — Launch の中断中、Standby 状態のインスタンスを稼働状態に戻すことはできません。インスタンスを稼働状態に戻すには、最初に Launch を再開する必要があります。

スケーリングプロセスを中断および再開する (コンソール)個別のプロセスまたはすべてのプロセスを中断および再開することができます。

プロセスを中断および再開するには

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

148

Page 156: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスケーリングプロセスを中断および再開する (AWS CLI)

2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Details] タブで、[Edit] を選択します。5. [Suspended Processes] で、停止するプロセスを選択します。

中断したプロセスを再開するには、[Suspended Processes] からそのプロセスを削除します。

6. [Save (保存)] を選択します。

スケーリングプロセスを中断および再開する (AWSCLI)個別のプロセスまたはすべてのプロセスを中断および再開することができます。

プロセスを停止するには

次のように、suspend-processes コマンドを --scaling-processes オプションと共に使用します。

aws autoscaling suspend-processes --auto-scaling-group-name my-asg --scaling-processes AlarmNotification

すべてのプロセスを停止するには

suspend-processes コマンドを使用します (--scaling-processes オプションを省略)。

aws autoscaling suspend-processes --auto-scaling-group-name my-asg

停止されたプロセスを再開するには

次のように resume-processes コマンドを使用します。

aws autoscaling resume-processes --auto-scaling-group-name my-asg --scaling-processes AlarmNotification

停止されたすべてのプロセスを再開するには

resume-processes コマンドを使用します (--scaling-processes オプションを省略)。

aws autoscaling resume-processes --auto-scaling-group-name my-asg

149

Page 157: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドヘルスチェック

Auto Scaling インスタンスおよびグループのモニタリング

次の機能を使用して、Auto Scaling インスタンスおよびグループをモニタリングできます。

ヘルスチェック

Amazon EC2 Auto Scaling は、Auto Scaling グループのインスタンスのヘルスチェックを定期的に実行し、異常なインスタンスを識別します。Amazon EC2 ステータスチェック、Elastic Load Balancingヘルスチェック、またはカスタムヘルスチェックを使用して、インスタンスのヘルスステータスを確認する Auto Scaling を設定できます。詳細については、「Auto Scaling インスタンスのヘルスチェック (p. 150)」を参照してください。

CloudWatch メトリクス

Amazon EC2 Auto Scaling は、Auto Scaling グループに関するデータポイントを Amazon CloudWatchに発行します。CloudWatch では、それらのデータポイントについての統計を、順序付けられた時系列データのセット (メトリクスと呼ばれる) として取得できます。これらのメトリクスを使用して、システムが正常に実行されていることを確認できます。詳細については、「Amazon CloudWatch を使用した Auto Scaling グループとインスタンスのモニタリング (p. 153)」を参照してください。

CloudWatch イベント

Amazon EC2 Auto Scaling は、Auto Scaling グループがインスタンスを起動または終了したとき、または、ライフサイクルアクションが発生したときに、Amazon CloudWatch Events にイベントを送信できます。これにより、イベントが発生したときに Lambda 関数を呼び出せます。詳細については、「Auto Scaling グループスケーリング時の CloudWatch イベント の取得 (p. 158)」を参照してください。

SNS の通知

Auto Scaling グループがインスタンスを起動または終了したときに、Amazon EC2 Auto Scaling はAmazon SNS の通知を送信できます。詳細については、「Auto Scaling グループスケーリング時のAmazon SNS 通知の取得 (p. 164)」を参照してください。

CloudTrail ログ

AWS CloudTrail を使用すると、ご使用の AWS アカウントまたはその代理による Amazon EC2 AutoScaling API への呼び出しを追跡できます。CloudTrail は、指定した Amazon S3 バケットのログファイルにその情報を保存します。これらのログファイルを使用して、Auto Scaling グループの動作をモニタリングできます。ログには、実行されたリクエスト、そのリクエストの作成元のソース IPアドレス、リクエストの実行者、リクエストの実行日時などが含まれています。詳細については、「Amazon EC2 Auto Scaling を使用した AWS CloudTrail API 呼び出しのログ記録 (p. 169)」を参照してください。

Auto Scaling インスタンスのヘルスチェックAuto Scaling インスタンスのヘルスステータスは、正常または異常のどちらかです。Auto Scaling グループ内のすべてのインスタンスは正常な状態で起動されます。インスタンスに異常があるという通知をAmazon EC2 Auto Scaling が受け取らない限り、インスタンスは正常であると見なされます。この通知は、Amazon EC2、Elastic Load Balancing、カスタムヘルスチェックのうち 1 つ以上のソースから送られる可能性があります。

150

Page 158: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドインスタンスのヘルスステータス

Amazon EC2 Auto Scaling がインスタンスを異常ありとマークすると、置き換えがスケジュールされます。インスタンスを置き換えない場合は、個々の Auto Scaling グループに対するヘルスチェックプロセスを停止できます。

インスタンスのヘルスステータスAmazon EC2 Auto Scaling は、以下の 1 つ以上のチェックによりインスタンスのヘルスステータスを判断できます。

• インスタンスを損なう可能性があるハードウェアとソフトウェアの問題を特定するために Amazon EC2によって提供されるステータスチェック。これには、インスタンスステータスチェックとシステムステータスチェックの両方が含まれます。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「ステータスチェックのタイプ」を参照してください。

• Elastic Load Balancing が提供するヘルスチェック。• カスタムヘルスチェック。

EC2 ステータスチェックは Amazon EC2 Auto Scaling に対するデフォルトのヘルスチェックであり、特別な設定は必要ありません。ただし、追加のチェックを指定することで、Auto Scaling グループによって実施されるデフォルトのヘルスチェックをカスタマイズできます。詳細については、「Auto Scalingグループへの Elastic Load Balancing ヘルスチェックの追加 (p. 70)」および「カスタムヘルスチェック (p. 152)」を参照してください。

インスタンスのヘルスの確認各インスタンスが完全に設定され、最初のヘルスチェックに合格すると、Amazon EC2 Auto Scaling によって正常であると見なされ、InService 状態へ移行します。Amazon EC2 Auto Scaling は、AutoScaling グループのインスタンスのヘルスチェックを定期的に実行し、異常なインスタンスを識別します。

Amazon EC2 Auto Scaling ヘルスチェックは、Amazon EC2 ステータスチェックの結果を使用してインスタンスのヘルスステータスを判断します。インスタンスのステータスが running 以外である場合、またはシステムステータスが impaired である場合、Amazon EC2 Auto Scaling はインスタンスを異常と見なし、代わりのインスタンスを起動します。これには、インスタンスが以下のいずれかの状態にある場合が含まれます。

• stopping

• stopped

• terminating

• terminated

Auto Scaling グループにロードバランサーまたはターゲットグループをアタッチした場合、Elastic LoadBalancing がそれらを OutOfService とレポートしたときにインスタンスを異常とマークするように、そのグループを設定できます。ロードバランサーに対して Connection Draining が有効になっている場合、Amazon EC2 Auto Scaling は実行中のリクエストが完了するか最大制限時間に達するかのどちらか早いほうまで待ってから、スケーリングイベントまたはヘルスチェック交換によってインスタンスを終了します。Elastic Load Balancing ヘルスチェックを使用するように Auto Scaling グループを設定した場合、Amazon EC2 Auto Scaling は EC2 ステータスチェックと Elastic Load Balancing ヘルスチェックの両方を調べて、インスタンスのヘルスステータスを判断します。詳細については、「Auto Scaling グループへの Elastic Load Balancing ヘルスチェックの追加 (p. 70)」を参照してください。

カスタムヘルスチェックがある場合、ヘルスチェックから情報を Amazon EC2 Auto Scaling に送信し、Amazon EC2 Auto Scaling がその情報を使用するようにできます。たとえば、インスタンスが正常に機能していないと判断した場合は、インスタンスのヘルスステータスを Unhealthy に設定できます。Amazon EC2 Auto Scaling が次回インスタンスのヘルスチェックを行うときは、インスタンスが異常であると判断して代替インスタンスを起動します。

151

Page 159: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドヘルスチェックの猶予期間

ヘルスチェックの猶予期間多くの場合、サービス状態になったばかりの Auto Scaling インスタンスは、ヘルスチェックに合格する前にウォームアップが必要です。Amazon EC2 Auto Scaling は、インスタンスのヘルスステータスをチェックする前に、ヘルスチェックの猶予期間が終了するまで待機します。Amazon EC2 ステータスチェックとElastic Load Balancing ヘルスチェックは、ヘルスチェックの猶予期間が終了する前に完了することができます。ただし、Amazon EC2 Auto Scaling はヘルスチェックの猶予期間が終了するまで、それらに対応しません。インスタンスに十分なウォームアップ期間を設けるためには、アプリケーションで想定される開始期間に対応するようにヘルスチェックの猶予期間を設定します。ライフサイクルフックを追加した場合、ヘルスチェックの猶予期間が始まるのは、ライフサイクルフックアクションが完了してインスタンスが InService 状態になってからになります。

異常のあるインスタンスの置き換えAmazon EC2 または Elastic Load Balancing のヘルスチェックでインスタンスが異常ありとマークされると、ほぼ即座に代わりのインスタンスがスケジュールされます。これが自動的に正常に回復することはありません。SetInstanceHealth アクション (または set-instance-health コマンド) を呼び出してインスタンスのヘルスステータスを正常に設定し直すことで、手動で介入できます。インスタンスが既に終了している場合は、エラーが発生します。インスタンスを正常でないとマークしてからその実際の終了までの間隔は短いため、インスタンスの正常性を正常に設定し直すために SetInstanceHealth アクション(または set-instance-health コマンド)を使用することは、多くの場合、停止されたグループに対してのみ有効です。詳細については、「スケーリングプロセスの中断と再開 (p. 145)」を参照してください。

Amazon EC2 Auto Scaling により、異常があるインスタンスを終了する新しいスケーリングアクティビティが作成され、異常があるインスタンスが終了されます。その後、別のスケーリングアクティビティによって、終了したインスタンスを置き換えるために新しいインスタンスが起動します。

インスタンスを削除すると、関連付けられたすべての Elastic IP アドレスは関連付けを解除され、新しいインスタンスと自動的に関連付けられることはありません。これらの Elastic IP アドレスと新しいインスタンスの関連付けは、手動で行う必要があります。同様に、インスタンスが終了すると、アタッチされている EBS ボリュームはデタッチされます。これらの EBS ボリュームを新しいインスタンスに手動でアタッチする必要があります。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「Elastic IP アドレスの関連付け解除と別のインスタンスへの再関連付け」と「インスタンスへの AmazonEBS ボリュームのアタッチ」を参照してください。

カスタムヘルスチェック独自のヘルスチェックシステムがある場合、システムから Amazon EC2 Auto Scaling にインスタンスの状態情報を直接送信できます。

指定したインスタンスのヘルスステータスを Unhealthy に設定するには、次の set-instance-health コマンドを使用します。

aws autoscaling set-instance-health --instance-id i-123abc45d --health-status Unhealthy

インスタンスの状態が Unhealthy であることを確認するには、次の describe-auto-scaling-groups コマンドを使用します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg

次に示すのは、インスタンスのヘルスステータスが Unhealthy であり、インスタンスが終了中であることを示す応答の例です。

{

152

Page 160: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAmazon CloudWatch のメトリクス

"AutoScalingGroups": [ { .... "Instances": [ { "InstanceId": "i-123abc45d", "AvailabilityZone": "us-west-2a", "HealthStatus": "Unhealthy", "LifecycleState": "Terminating", "LaunchConfigurationName": "my-lc" }, ... ] } ]}

Amazon CloudWatch を使用した Auto Scaling グループとインスタンスのモニタリング

Amazon CloudWatch を使用すると、統計を順序付けられた時系列データのセット (メトリクスと呼ばれる)として取得できます。これらのメトリクスを使用して、システムが正常に実行されていることを確認できます。

Amazon EC2 は Auto Scaling インスタンスを説明する CloudWatch にメトリクスを送信します。これらのメトリクスは、Auto Scaling グループにあるものだけでなく、すべての EC2 インスタンスに利用することができます。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「インスタンスメトリクス」を参照してください。

Auto Scaling グループは、グループそのものについて説明する CloudWatch にメトリクスを送信できます。これらのメトリクスを有効にする必要があります。

コンテンツ• Auto Scaling グループメトリクス (p. 153)• Auto Scaling グループメトリクスのディメンション (p. 154)• Auto Scaling グループメトリクスを有効にする (p. 154)• Auto Scaling インスタンスのモニタリングの設定 (p. 155)• CloudWatch メトリクスの表示 (p. 156)• Amazon CloudWatch アラームの作成 (p. 157)

Auto Scaling グループメトリクスAWS/AutoScaling 名前空間には、次のメトリクスが含まれます。

メトリクス 説明

GroupMinSize Auto Scaling グループの最小サイズ。

GroupMaxSize Auto Scaling グループの最大サイズ。

GroupDesiredCapacity Auto Scaling グループが保持しようとするインスタンスの数。

153

Page 161: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling グループメトリクスのディメンション

メトリクス 説明

GroupInServiceInstances Auto Scaling グループの一部として実行するインスタンスの数。このメトリクスには保留中もしくは終了処理中のインスタンスは含まれません。

GroupPendingInstances 保留中のインスタンスの数。保留中のインスタンスは、稼働状態ではありません。このメトリクスには稼働中もしくは終了処理中のインスタンスは含まれません。

GroupStandbyInstances Standby 状態にあるインスタンスの数。この状態のインスタンスはまだ実行中ですが、実際には使用されていません。

GroupTerminatingInstances 終了処理中のインスタンスの数。このメトリクスには稼働中もしくは保留中のインスタンスは含まれません。

GroupTotalInstances Auto Scaling グループに含まれるインスタンスの合計数。このメトリクスは稼働中、保留中、および終了処理中のインスタンスの数を特定します。

Auto Scaling グループメトリクスのディメンショングループ名で Auto Scaling グループのメトリクスをフィルタするには、AutoScalingGroupName ディメンションを使用します。

Auto Scaling グループメトリクスを有効にするAuto Scaling グループメトリクスを有効にすると、Auto Scaling は毎分 CloudWatch にサンプルデータを送信します。

グループメトリクスを有効にするには (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[Auto Scaling Groups] を選択します。3. Auto Scaling グループを選択します。4. [Monitoring] タブで、[Auto Scaling Metrics] の [Enable Group Metrics Collection] を選択します。この

オプションが表示されない場合は、[Display] の [Auto Scaling] を選択します。

グループメトリクスを無効にするには (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[Auto Scaling Groups] を選択します。3. Auto Scaling グループを選択します。4. [Monitoring] タブで、[Auto Scaling Metrics] の [Disable Group Metrics Collection] を選択します。この

オプションが表示されない場合は、[Display] の [Auto Scaling] を選択します。

154

Page 162: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling インスタンスのモニタリングの設定

グループメトリクスを有効にするには (AWS CLI)

enable-metrics-collection コマンドを使用して、1 つ以上のグループメトリクスを有効にします。たとえば、次のコマンドは GroupDesiredCapacity メトリクスを有効にします。

aws autoscaling enable-metrics-collection --auto-scaling-group-name my-asg \--metrics GroupDesiredCapacity --granularity "1Minute"

--metrics メトリクスを省略した場合、すべてのメトリクスが有効になります。

aws autoscaling enable-metrics-collection --auto-scaling-group-name my-asg \--granularity "1Minute"

グループメトリクスを無効にするには (AWS CLI)

disable-metrics-collection コマンドを実行します。たとえば、次のコマンドはすべての Auto Scaling グループメトリクスを無効にします。

aws autoscaling disable-metrics-collection --auto-scaling-group-name my-asg

Auto Scaling インスタンスのモニタリングの設定起動設定または起動テンプレートを使用して EC2 インスタンスのモニタリングを設定します。モニタリングは、インスタンスが作成されるたびに、基本モニタリング (5 分間隔) または詳細モニタリング (1 分間隔) で有効になります。詳細モニタリングでは追加料金が適用されます。詳細については、「AmazonCloudWatch 料金表」を参照してください。

Note

デフォルトでは、起動テンプレートを作成した場合、または AWS マネジメントコンソールを使用して起動設定を作成した場合、基本モニタリングが有効になります。詳細モニタリングは、AWS CLI または SDK を使用して起動設定を作成する場合に有効になります。

新しい EC2 インスタンスで有効になるモニタリングのタイプを変更するには、起動テンプレートを更新するか、Auto Scaling グループを更新して新しい起動設定を使用します。インスタンスを終了しても、以前に有効化されたモニタリングタイプが使用されます。すべてのインスタンスを更新するには、それらを削除して Auto Scaling グループに置き換えるか、monitor-instances または unmonitor-instances を使用してインスタンスを個別に更新します。

Auto Scaling グループに関連付けられている CloudWatch アラームがある場合は、put-metric-alarm コマンドを使用して各アラームを更新します。各間隔をモニタリングタイプに合わせます (基本モニタリングでは 300 秒、詳細モニタリングでは 60 秒)。詳細モニタリングから基本モニタリングに変更しても、5 分間アラームを更新しないと、1 分ごとに統計を確認し続けます。5 回のうち最大 4 回は利用可能なデータが検出されない可能性があります。

CloudWatch モニタリングを設定するには (コンソール)

AWS マネジメントコンソール を使用して起動設定を作成する場合は、[Configure Details (詳細の設定)]ページで [CloudWatch 詳細モニタリングを有効化] を選択します。それ以外の場合は、基本モニタリングが有効です。詳細については、「起動設定を作成する (p. 34)」を参照してください。

155

Page 163: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドCloudWatch メトリクスの表示

AWS マネジメントコンソール を使用して起動テンプレートの詳細モニタリングを有効にするには、[Advanced Details (詳細情報)] セクションの [Monitoring (モニタリング)] で、[Enable (有効)] を選択します。それ以外の場合は、基本モニタリングが有効です。詳細については、「Auto Scaling グループの起動テンプレートを作成する (p. 26)」を参照してください。

CloudWatch モニタリングを設定するには (AWS CLI)

起動設定の場合は、create-launch-configuration コマンドを --instance-monitoring オプションとともに使用します。このオプションを true に設定して詳細モニタリングを有効に、または false に設定して基本モニタリングを有効にします。

--instance-monitoring Enabled=true

起動テンプレートの場合は、create-launch-template コマンドを使用して、起動テンプレートを作成するための情報が含まれる JSON ファイルを渡します。モニタリング属性を "Monitoring":{"Enabled":true} に設定して詳細モニタリングを有効にするか、または "Monitoring":{"Enabled":false} に設定して基本モニタリングを有効にします。

CloudWatch メトリクスの表示Amazon EC2 コンソールを使用して、Auto Scaling グループとインスタンスの CloudWatch メトリクスを表示できます。これらのメトリクスは、モニタリング用のグラフのように表示されます。

または、CloudWatch コンソールを使用してこれらのメトリクスを表示できます。

Amazon EC2 コンソールを使用してメトリクスを表示するには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[Auto Scaling Groups] を選択します。3. Auto Scaling グループを選択します。4. [Monitoring] タブを選択します。5. (オプション) 結果を時間でフィルタリングするには、[Showing data for] から時間範囲を選択します。6. グループのメトリクスを表示するには、[Display] の [Auto Scaling] を選択します。1 つのメトリクス

の大きいビューを取得するには、グラフを選択します。グループでは、次のメトリクスを使用できます。

• 最小グループサイズ — GroupMinSize• 最大グループサイズ — GroupMaxSize• 希望する容量 — GroupDesiredCapacity• 実行中のインスタンス — GroupInServiceInstances• 保留中のインスタンス — GroupPendingInstances• スタンバイインスタンス — GroupStandbyInstances• インスタンスの終了 — GroupTerminatingInstances• 合計インスタンス — GroupTotalInstances

7. インスタンスのメトリクスを表示するには、[Display] の [EC2] を選択します。1 つのメトリクスの大きいビューを取得するには、グラフを選択します。インスタンスでは、次のメトリクスを使用できます。

• CPU 使用率 — CPUUtilization• ディスク読み取り — DiskReadBytes• ディスク読み取り操作 — DiskReadOps• ディスク書き込み — DiskWriteBytes

156

Page 164: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAmazon CloudWatch アラームの作成

• ディスク書き込み操作 — DiskWriteOps• ネットワーク入力 — NetworkIn• ネットワーク出力 — NetworkOut• ステータスチェックに失敗 (すべて) — StatusCheckFailed• ステータスチェックに失敗 (インスタンス) — StatusCheckFailed_Instance• ステータスチェックに失敗 (システム) — StatusCheckFailed_System

CloudWatch コンソールを使用してメトリクスを表示するには

詳細については、「Auto Scaling グループ別に統計を集計する」を参照してください。

CloudWatch メトリクスを表示するには (AWS CLI)

すべての Auto Scaling グループのメトリクスをすべて表示するには、以下の list-metrics コマンドを使用します。

aws cloudwatch list-metrics --namespace "AWS/AutoScaling"

1 つの Auto Scaling グループのメトリクスを表示するには、次のように AutoScalingGroupName ディメンションを指定します。

aws cloudwatch list-metrics --namespace "AWS/AutoScaling" --dimensions Name=AutoScalingGroupName,Value=my-asg

すべての Auto Scaling グループに 1 つのメトリクスを表示するには、次のようにメトリクスの名前を指定します。

aws cloudwatch list-metrics --namespace "AWS/AutoScaling" --metric-name GroupDesiredCapacity

Amazon CloudWatch アラームの作成メトリクスを監視する目的の 1 つは、アプリケーションが正常に動作しているかどうかを確認することです。メトリクスが許容しきい値と考慮される値を超える場合、CloudWatch アラームによってアクションがトリガーされるよう設定できます。CloudWatch でサポートされるアラームアクションのいずれかを指定できます。

アラームを設定するには、モニタリングするメトリクスを特定します。たとえば、Auto Scaling グループの EC2 インスタンスの平均 CPU 使用率を監視するアラームを設定できます。このアクションは、グループの平均的な CPU 使用率が特定の連続する期間に指定したしきい値を超えたときに送信する通知にできます。たとえば、それぞれが 1 分間の連続した 4 つの期間でメトリクスが 70 以上になる場合です。

詳細については、『Amazon CloudWatch ユーザーガイド』の「Amazon CloudWatch アラームの使用」を参照してください。

平均 CPU 使用率に基づいた CloudWatch アラームを作成するには

1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。2. ナビゲーションペインで、[Alarms]、[Create Alarm] の順に選択します。3. [Select Metric (メトリクスを選択する)]、[EC2] の順に選択します。4. 結果をフィルタリングするメトリクスのカテゴリを選択します。Auto Scaling グループメトリクスを

表示するには、[Auto Scaling グループ別] を選択します。個別のインスタンスのメトリクスのみが必要な場合は、[Per-Instance Metrics (インスタンスごとのメトリクス)] を選択します。

157

Page 165: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAmazon CloudWatch Events

5. 次のようにメトリクスを選択します。

a. アラームを作成する Auto Scaling グループあるいはインスタンスを含む行と [CPUUtilization] メトリクスを選択します。

b. [グラフ化したメトリクス] タブを選択します。c. [Statistic (統計)] で [Average (平均)] を選択します。d. [Period (期間)] でアラームの評価期間 (1 分など) を選択します。アラームを評価する場合、各期

間は 1 つのデータポイントに集約されます。

Note

期間が短いほどより高感度の高いアラームが作成されます。e. [メトリクスの選択] を選択します。

6. [Conditions (条件)] で、しきい値条件を定義してアラームを定義します。たとえば、メトリクスが 70以上の値になるたびにアラームをトリガーするしきい値を定義できます。

7. [Additional configuration (追加設定)] の [Datapoints to alarm (アラームするデータポイント)] では、アラームをトリガーする必要のあるデータポイント (評価期間) の数を指定します (4 つのうち 4 つなど)。これでアラームが作成されます。このアラームは、指定した数の期間で連続してしきい値を超過すると、ALARM 状態に移行します。

8. [Missing data treatment (欠落データの処理)] では、次のいずれかを選択します。CPUUtilization など継続的にデータを報告するメトリクスでは、欠落したデータポイントは問題があることを示す場合があるため、[Treat missing data as bad (breaching threshold) (欠落データを問題として処理 (しきい値を超過))] を選択することができます。詳細については、『Amazon CloudWatch ユーザーガイド』の「CloudWatch アラームが欠落データを処理する方法の設定」を参照してください。

9. [Next] を選択します。10. [Configure actions (アクションの設定)] で、実行するアクションを定義します。11. [Next] を選択します。12. [Add a description (説明の追加)] でアラームの名前と説明を入力し、[Next (次)] を選択します。13. [Create Alarm] を選択します。

Auto Scaling グループスケーリング時のCloudWatch イベント の取得

Amazon CloudWatch Events を使用すると、AWS のサービスを自動化して、アプリケーションの可用性の問題やリソースの変更などのシステムイベントに対応できます。AWS のサービスからのイベントは、ほぼリアルタイムに CloudWatch イベント に提供されます。シンプルなルールを記述して、注目するイベントと、イベントがルールに一致した場合に自動的に実行するアクションを指定できます。

CloudWatch イベント では、JSON 形式のイベントを受け取るさまざまなターゲット (Lambda 関数やAmazon SNS トピックなど) を設定できます。詳細については、Amazon CloudWatch Events ユーザーガイド を参照してください。

Amazon EC2 Auto Scaling が Auto Scaling グループの EC2 インスタンスをいつ起動または終了するかを知っておくと便利です。Auto Scaling グループをスケーリングするたびに、イベントを CloudWatch イベント に送信するように Amazon EC2 Auto Scaling 設定できます。

Note

スポットインスタンスが Amazon EC2 によって再利用されようとすると、その利用の 2 分前に警告を受け取ることもできます。スポットインスタンスの中断イベントの例については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「スポットインスタンスの中断の通知」を参照してください。

158

Page 166: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling イベント

目次• Auto Scaling イベント (p. 159)• Lambda 関数の作成 (p. 162)• Lambda 機能にイベントをルーティングします。 (p. 163)

Auto Scaling イベントAmazon EC2 Auto Scaling は、次のイベントが発生したときに、CloudWatch イベント へのイベントの送信をサポートします。

• EC2 インスタンス起動のライフサイクルアクション (p. 159)• EC2 インスタンスの起動に成功 (p. 159)• EC2 インスタンスの起動に失敗 (p. 160)• EC2 インスタンス削除のライフサイクルアクション (p. 161)• EC2 インスタンスの削除に成功 (p. 161)• EC2 インスタンスの削除に失敗 (p. 162)

EC2 インスタンス起動のライフサイクルアクションライフサイクルのフックにより、Amazon EC2 Auto Scaling がインスタンスを Pending:Wait 状態に移動しました。

イベントデータ

以下はこのイベントのサンプルデータです。

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance-launch Lifecycle Action", "source": "aws.autoscaling", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "LifecycleActionToken": "87654321-4321-4321-4321-210987654321", "AutoScalingGroupName": "my-asg", "LifecycleHookName": "my-lifecycle-hook", "EC2InstanceId": "i-1234567890abcdef0", "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING", "NotificationMetadata": "additional-info" } }

EC2 インスタンスの起動に成功Amazon EC2 Auto Scaling が正常にインスタンスを起動しました。

イベントデータ

以下はこのイベントのサンプルデータです。

159

Page 167: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling イベント

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance Launch Successful", "source": "aws.autoscaling", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-west-2", "resources": [ "auto-scaling-group-arn", "instance-arn" ], "detail": { "StatusCode": "InProgress", "Description": "Launching a new EC2 instance: i-12345678", "AutoScalingGroupName": "my-auto-scaling-group", "ActivityId": "87654321-4321-4321-4321-210987654321", "Details": { "Availability Zone": "us-west-2b", "Subnet ID": "subnet-12345678" }, "RequestId": "12345678-1234-1234-1234-123456789012", "StatusMessage": "", "EndTime": "yyyy-mm-ddThh:mm:ssZ", "EC2InstanceId": "i-1234567890abcdef0", "StartTime": "yyyy-mm-ddThh:mm:ssZ", "Cause": "description-text" }}

EC2 インスタンスの起動に失敗Amazon EC2 Auto Scaling がインスタンスの起動に失敗しました。

イベントデータ

以下はこのイベントのサンプルデータです。

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance Launch Unsuccessful", "source": "aws.autoscaling", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-west-2", "resources": [ "auto-scaling-group-arn", "instance-arn" ], "detail": { "StatusCode": "Failed", "AutoScalingGroupName": "my-auto-scaling-group", "ActivityId": "87654321-4321-4321-4321-210987654321", "Details": { "Availability Zone": "us-west-2b", "Subnet ID": "subnet-12345678" }, "RequestId": "12345678-1234-1234-1234-123456789012", "StatusMessage": "message-text", "EndTime": "yyyy-mm-ddThh:mm:ssZ", "EC2InstanceId": "i-1234567890abcdef0", "StartTime": "yyyy-mm-ddThh:mm:ssZ",

160

Page 168: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAuto Scaling イベント

"Cause": "description-text" }}

EC2 インスタンス削除のライフサイクルアクションライフサイクルのフックにより、Amazon EC2 Auto Scaling がインスタンスを Terminating:Wait 状態に移動しました。

イベントデータ

以下はこのイベントのサンプルデータです。

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance-terminate Lifecycle Action", "source": "aws.autoscaling", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "LifecycleActionToken":"87654321-4321-4321-4321-210987654321", "AutoScalingGroupName":"my-asg", "LifecycleHookName":"my-lifecycle-hook", "EC2InstanceId":"i-1234567890abcdef0", "LifecycleTransition":"autoscaling:EC2_INSTANCE_TERMINATING", "NotificationMetadata":"additional-info" } }

EC2 インスタンスの削除に成功Amazon EC2 Auto Scaling が正常にインスタンスを終了しました。

イベントデータ

以下はこのイベントのサンプルデータです。

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance Terminate Successful", "source": "aws.autoscaling", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-west-2", "resources": [ "auto-scaling-group-arn", "instance-arn" ], "detail": { "StatusCode": "InProgress", "Description": "Terminating EC2 instance: i-12345678", "AutoScalingGroupName": "my-auto-scaling-group", "ActivityId": "87654321-4321-4321-4321-210987654321", "Details": { "Availability Zone": "us-west-2b",

161

Page 169: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドLambda 関数の作成

"Subnet ID": "subnet-12345678" }, "RequestId": "12345678-1234-1234-1234-123456789012", "StatusMessage": "", "EndTime": "yyyy-mm-ddThh:mm:ssZ", "EC2InstanceId": "i-1234567890abcdef0", "StartTime": "yyyy-mm-ddThh:mm:ssZ", "Cause": "description-text" }}

EC2 インスタンスの削除に失敗Amazon EC2 Auto Scaling がインスタンスの終了に失敗しました。

イベントデータ

以下はこのイベントのサンプルデータです。

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance Terminate Unsuccessful", "source": "aws.autoscaling", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-west-2", "resources": [ "auto-scaling-group-arn", "instance-arn" ], "detail": { "StatusCode": "Failed", "AutoScalingGroupName": "my-auto-scaling-group", "ActivityId": "87654321-4321-4321-4321-210987654321", "Details": { "Availability Zone": "us-west-2b", "Subnet ID": "subnet-12345678" }, "RequestId": "12345678-1234-1234-1234-123456789012", "StatusMessage": "message-text", "EndTime": "yyyy-mm-ddThh:mm:ssZ", "EC2InstanceId": "i-1234567890abcdef0", "StartTime": "yyyy-mm-ddThh:mm:ssZ", "Cause": "description-text" }}

Lambda 関数の作成以下の手順を使用して、Auto Scaling イベントを処理する Lambda 関数を作成します。

Lambda 関数を作成するには

1. https://console.aws.amazon.com/lambda/ にある AWS Lambda コンソールを開きます。2. Lambda を初めて利用する場合は、ようこそページを参照して [Get Started Now (今すぐ始める)] を選

択するか、[Lambda 関数の作成] を選択します。3. [Select blueprint] ページで、[Filter] に hello-world を入力し、[hello-world] 設計図を選択します。4. [Configure triggers] ページで、[Next] を選択します。

162

Page 170: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドLambda 機能にイベントをルーティングします。

5. [: Configure function] ページで、以下の作業を行います。

a. Lambda 関数の名前と説明を入力します。b. Lambda 関数のコードを編集します。たとえば、次のコードスニペットはイベントだけを記録し

ます。

console.log('Loading function');

exports.handler = function(event, context) { console.log("AutoScalingEvent()"); console.log("Event data:\n" + JSON.stringify(event, null, 4)); context.succeed("...");};

c. 使用したい既存のロールがある場合は、[Role] で [Choose an existing role] を選択して、[Existingrole] を選択します。または、新しいロールを作成するには、[Role] で他のオプションの 1 つを選択し、指示に従います。

d. (オプション) [Advanced settings] で、必要な変更を加えます。e. [次へ] を選択します。

6. [Review] ページで、[Create function] を選択します。

Lambda 機能にイベントをルーティングします。以下の手順を使用して、Lambda 関数に Auto Scaling イベントをルーティングします。

Lambda 関数にイベントをルーティングするには

1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。2. ナビゲーションペインの [Events] を選択します。3. [Create rule] を選択します。4. [Event selector] で、イベントのソースとして [Auto Scaling] を選択します。デフォルトでは、すべて

の Auto Scaling グループのすべての Auto Scaling イベントにルールが適用されます。または、特定のイベントや特定の Auto Scaling グループを選択することもできます。

5. [Targets] で、[Add target] を選択します。[Lambda 関数] をターゲットのタイプとして選択後、Lambda 関数を選択します。

6. [Configure details] を選択します。7. [Rule definition] で、ルールの名前と説明を入力します。8. [Create rule] を選択します。

ルールをテストするには、Auto Scaling グループのサイズを変更します。Lambda 関数にサンプル コードを使用する場合は、イベントを CloudWatch Logs に記録します。

ルールをテストするには

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインで、[Auto Scaling グループ] を選択して、Auto Scaling グループを選択します。3. [Details] タブで、[Edit] を選択します。4. [Desired] の値を変更して、[Save] を選択します。5. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。6. ナビゲーションペインで [Logs] を選択します。7. Lambda 関数のロググループを選択します (例: /aws/lambda/my-function)。8. イベントデータを表示するログストリームを選択します。以下のようなデータが表示されます。

163

Page 171: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAmazon SNS 通知

Auto Scaling グループスケーリング時の AmazonSNS 通知の取得

Amazon EC2 Auto Scaling が Auto Scaling グループ内の EC2 インスタンスをいつ作成または削除するかを認識していると便利です。Amazon SNS は、受信登録しているクライアントまたはエンドポイントへの通知の配信または送信の統合と管理を行います。Auto Scaling グループがスケーリングされるたびに SNS通知を送信するように Amazon EC2 Auto Scaling を設定できます。

Amazon SNS は、HTTP または HTTPS POST、E メール (SMTP、プレーンテキストまたは JSON フォーマット)、あるいは Amazon SQS キューに投稿されるメッセージとして通知を配信できます。詳細については、『Amazon Simple Notification Service 開発者ガイド』の「Amazon SNS とは」を参照してください。

たとえば、autoscaling: EC2_INSTANCE_TERMINATE 通知タイプを使用するように Auto Scaling グループを設定すると、Auto Scaling グループはインスタンスを終了したときに、E メール通知を送信します。この E メールには、インスタンス ID やインスタンスを終了した理由など、終了したインスタンスの詳細が含まれます。

Tip

必要に応じて、Auto Scaling グループのスケーリングまたはライフサイクルアクションが発生したときに、Amazon CloudWatch Events を使用してターゲットを設定し Lambda 関数を実行することができます。詳細については、「Auto Scaling グループスケーリング時の CloudWatch イベント の取得 (p. 158)」を参照してください。

コンテンツ• [SNS Notifications] (p. 164)• Amazon SNS の設定 (p. 165)• 通知を送信するように Auto Scaling グループを設定する (p. 166)• 通知設定のテスト (p. 166)• スケーリングイベント通知の受信を確認する (p. 167)• 通知設定の削除 (p. 168)

[SNS Notifications]Amazon EC2 Auto Scaling は、次のイベントが発生したときに、Amazon SNS 通知の送信をサポートします。

イベント 説明

autoscaling:EC2_INSTANCE_LAUNCH インスタンスの起動成功

autoscaling:EC2_INSTANCE_LAUNCH_ERROR インスタンスの起動失敗

164

Page 172: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAmazon SNS の設定

イベント 説明

autoscaling:EC2_INSTANCE_TERMINATE インスタンスの削除成功

autoscaling:EC2_INSTANCE_TERMINATE_ERRORインスタンスの削除失敗

メッセージには、次に示す情報が含まれます。

• Event — イベント。• AccountId — AWS アカウント ID。• AutoScalingGroupName — Auto Scaling グループの名前。• AutoScalingGroupARN — Auto Scaling グループの ARN。• EC2InstanceId — EC2 インスタンスの ID。

例:

Service: AWS Auto ScalingTime: 2016-09-30T19:00:36.414ZRequestId: 4e6156f4-a9e2-4bda-a7fd-33f2ae528958Event: autoscaling:EC2_INSTANCE_LAUNCHAccountId: 123456789012AutoScalingGroupName: my-asgAutoScalingGroupARN: arn:aws:autoscaling:region:123456789012:autoScalingGroup...ActivityId: 4e6156f4-a9e2-4bda-a7fd-33f2ae528958Description: Launching a new EC2 instance: i-0598c7d356eba48d7Cause: At 2016-09-30T18:59:38Z a user request update of AutoScalingGroup constraints to ...StartTime: 2016-09-30T19:00:04.445ZEndTime: 2016-09-30T19:00:36.414ZStatusCode: InProgressStatusMessage: Progress: 50EC2InstanceId: i-0598c7d356eba48d7Details: {"Subnet ID":"subnet-id","Availability Zone":"zone"}

Amazon SNS の設定Amazon SNS を使用して E メール通知を送信するには、最初にトピックを作成してから、そのトピックと共に E メールアドレスを登録する必要があります。

Amazon SNS トピックの作成SNS トピックは論理アクセスポイント、つまり Auto Scaling グループが通知を送信するために使用する通信チャネルです。トピックの名前を指定することにより、トピックを作成します。

詳細については、Amazon Simple Notification Service 開発者ガイドの「トピックの作成」を参照してください。

Amazon SNS トピックへの登録Auto Scaling グループがトピックに送信した通知を受信するには、そのトピックにエンドポイントを登録する必要があります。この手順では、[Endpoint] に、Amazon EC2 Auto Scaling からの通知を受信する Eメールアドレスを指定します。

詳細については、Amazon Simple Notification Service 開発者ガイド の「トピックへのサブスクライブ」を参照してください。

165

Page 173: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド通知を送信するように Auto Scaling グループを設定する

Amazon SNS 受信登録の確認Amazon SNS は、前のステップで指定した E メールアドレスに確認メールを送信します。

次のステップに進む前に、必ず AWS 通知の E メールを開き、リンクを選択して受信登録を確認してください。

AWS から受信確認メッセージを受け取ります。Amazon SNS は、通知を受信し、通知を E メールとして指定された E メールアドレスに送信するように設定されました。

通知を送信するように Auto Scaling グループを設定するこのセクションでは、インスタンスの起動または終了などのスケーリングイベントが発生したときにAmazon SNS に通知を送信するように、Auto Scaling グループを設定します。Amazon SNS は、指定したE メールアドレスに、インスタンスについての情報とともに通知を送信します。

Amazon SNS グループ用に Auto Scaling 通知を設定するには (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Notifications] タブで、[Create notification] を選択します。5. [Create notifications] ペインで、以下の作業を行います。

a. [Send a notification to:] で、SNS トピックを選択します。b. [Whenever instances] で、通知を送信するイベントを選択します。c. [Save] を選択します。

Amazon SNS グループ用に Auto Scaling 通知を設定するには (AWS CLI)

次の put-notification-configuration コマンドを使用します。

aws autoscaling put-notification-configuration --auto-scaling-group-name my-asg --topic-arn arn --notification-types "autoscaling:EC2_INSTANCE_LAUNCH" "autoscaling:EC2_INSTANCE_TERMINATE"

通知設定のテスト起動イベントの通知を生成するには、Auto Scaling グループの希望容量を 1 増やして Auto Scaling グループを更新します。Amazon EC2 Auto Scaling が EC2 インスタンスを起動してから数分以内に E メール通知を受信します。

166

Page 174: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドスケーリングイベント通知の受信を確認する

希望する容量を変更するには (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Details] タブで、[Edit] を選択します。5. [Desired] で、現在の値を 1 増やします。この値が [Max] を超えた場合、[Max] の値も 1 増やす必要が

あります。6. [Save] を選択します。7. 数分後、起動イベントに対する通知 E メールが届きます。このテスト用に起動した追加のインスタン

スが必要なくなった場合は、[Desired] を 1 減らすことができます。数分後、終了イベントに対する通知 E メールが届きます。

希望する容量を変更するには (AWS CLI)

次の set-desired-capacity コマンドを使用します。

aws autoscaling set-desired-capacity --auto-scaling-group-name my-asg --desired-capacity 2

スケーリングイベント通知の受信を確認するAmazon SNS からのメッセージが E メールされていることを確認し、E メールを開きます。Auto Scalingグループのスケーリングイベントの通知を受信したら、Auto Scaling グループの説明を調べることでスケーリングイベントを確認できます。起動または削除したインスタンスの ID など、通知 E メールの情報が必要になります。

Auto Scaling グループが新しいインスタンスを起動したことを確認するには (コンソール)

1. Auto Scaling グループを選択します。2. [Activity History] タブでは、[Status] 列にインスタンスの現在のステータスが表示されます。たとえ

ば、インスタンスが起動されたことが通知に示されている場合、更新ボタンを使用して、起動アクティビティのステータスが [Successful] であることを確認します。

3. [Instances] タブで、通知 E メールで ID を受け取ったインスタンスの現在の [Lifecycle] の状態を表示できます。新しいインスタンスが起動されると、そのライフサイクル状態は InService に変わります。

Auto Scaling グループが新しいインスタンスを起動したことを確認するには (AWS CLI)

次の describe-auto-scaling-groups コマンドを使用して、Auto Scaling グループのサイズが変更されたことを確認します。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

次の出力例では、グループにインスタンスが 2 個あることが示されています。通知 E メールで ID を受け取ったインスタンスを確認します。

{ "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "HealthCheckGracePeriod": 0, "SuspendedProcesses": [], "DesiredCapacity": 2,

167

Page 175: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド通知設定の削除

"Tags": [], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg", "DefaultCooldown": 300, "MinSize": 1, "Instances": [ { "InstanceId": "i-d95eb0d4", "AvailabilityZone": "us-west-2b", "HealthStatus": "Healthy", "LifecycleState": "InService", "LaunchConfigurationName": "my-lc" }, { "InstanceId": "i-13d7dc1f", "AvailabilityZone": "us-west-2a", "HealthStatus": "Healthy", "LifecycleState": "InService", "LaunchConfigurationName": "my-lc" } ], "MaxSize": 5, "VPCZoneIdentifier": null, "TerminationPolicies": [ "Default" ], "LaunchConfigurationName": "my-lc", "CreatedTime": "2015-03-01T16:12:35.608Z", "AvailabilityZones": [ "us-west-2b", "us-west-2a" ], "HealthCheckType": "EC2" } ]}

通知設定の削除Amazon EC2 Auto Scaling の通知設定はいつでも削除できます。

Amazon EC2 Auto Scaling 通知設定を削除するには (コンソール)

1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。3. Auto Scaling グループを選択します。4. [Notifications] タブで、通知の横にある [Delete] を選択します。

Amazon EC2 Auto Scaling 通知設定を削除するには (AWS CLI)

次の delete-notification-configuration コマンドを使用します。

aws autoscaling delete-notification-configuration --auto-scaling-group-name my-asg --topic-arn arn

Amazon SNS トピックおよび Auto Scaling グループに関連付けられたすべてのサブスクリプションの削除に関する詳細については、Amazon Simple Notification Service 開発者ガイドの「クリーンアップ」を参照してください。

168

Page 176: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAWS CloudTrail のログ記録

Amazon EC2 Auto Scaling を使用した AWSCloudTrail API 呼び出しのログ記録

Amazon EC2 Auto Scaling は、ユーザーやロール、または AWS のサービスによって Amazon EC2 AutoScaling を使用して実行されたアクションを記録するサービスである AWS CloudTrail と統合されています。CloudTrail は、Amazon EC2 Auto Scaling のすべての API コールをイベントとしてキャプチャします。キャプチャされた呼び出しには、Amazon EC2 Auto Scaling コンソールの呼び出しと、Amazon EC2Auto Scaling API へのコード呼び出しが含まれます。

証跡を作成する場合は、Amazon EC2 Auto Scaling のイベントなど、Amazon S3 バケットへの CloudTrailイベントの継続的な配信を有効にすることができます。証跡を設定しない場合でも、CloudTrail コンソールの [Event history (イベント履歴)] で最新のイベントを表示できます。CloudTrail によって収集された情報を使用して、リクエストの作成元の IP アドレス、リクエストの実行者、リクエストの実行日時などの詳細を調べて、Amazon EC2 Auto Scaling に対してどのようなリクエストが行われたかを判断できます。

CloudTrail の詳細については、「AWS CloudTrail User Guide」を参照してください。

CloudTrail 内の Amazon EC2 Auto Scaling 情報CloudTrail は、アカウント作成時に AWS アカウントで有効になります。Amazon EC2 Auto Scaling でアクティビティが発生すると、そのアクティビティは [Event history] の AWS の他のサービスのイベントとともに CloudTrail イベントに記録されます。最近のイベントは、AWS アカウントで表示、検索、ダウンロードできます。詳細については、「CloudTrail イベント履歴でのイベントの表示」を参照してください。

Amazon EC2 Auto Scaling のイベントなど、AWS アカウントのイベントの継続的な記録については、証跡を作成します。証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで作成した証跡がすべての AWS リージョンに適用されます。証跡では、AWS パーティションのすべてのリージョンからのイベントがログに記録され、指定した Amazon S3 バケットにログファイルが配信されます。さらに、より詳細な分析と AWS ログで収集されたデータに基づいた行動のためにその他の CloudTrail サービスを設定できます。詳細については、以下を参照してください。

• 証跡を作成するための概要• CloudTrail でサポートされるサービスと統合• CloudTrail の Amazon SNS 通知の設定• 「複数のリージョンから CloudTrail ログファイルを受け取る」と「複数のアカウントから CloudTrail ロ

グファイルを受け取る」

Amazon EC2 Auto Scaling アクションはすべて CloudTrail によって記録されます。また、これらのアクションは Amazon EC2 Auto Scaling API リファレンスで説明されています。たとえば、CreateLaunchConfiguration、DescribeAutoScalingGroup、および UpdateAutoScalingGroup アクションの呼び出しにより、CloudTrail ログファイルにエントリが生成されます。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。この ID 情報は以下のことを確認するのに役立ちます。

• リクエストが、ルートまたは AWS Identity and Access Management (IAM) ユーザー認証情報のどちらを使用して送信されたかどうか。

• リクエストが、ロールとフェデレーティッドユーザーのどちらの一時的なセキュリティ認証情報を使用して送信されたか.

• リクエストが、別の AWS サービスによって送信されたかどうか。

詳細については、「CloudTrail userIdentity 要素」を参照してください。

169

Page 177: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAmazon EC2 Auto Scaling ログファイルエントリの概要

Amazon EC2 Auto Scaling ログファイルエントリの概要証跡は、指定した Amazon S3 バケットにイベントをログファイルとして配信できる設定です。CloudTrailログファイルには、1 つ以上のログエントリが含まれます。イベントは任意の送信元からの単一のリクエストを表し、リクエストされたアクション、アクションの日時、リクエストのパラメータなどに関する情報が含まれます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

次の例は、CreateLaunchConfiguration アクションを表す CloudTrail ログエントリの例です。

{ "eventVersion": "1.05", "userIdentity": { "type": "Root", "principalId": "123456789012", "arn": "arn:aws:iam::123456789012:root", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-08-21T17:05:42Z" } } }, "eventTime": "2018-08-21T17:07:49Z", "eventSource": "autoscaling.amazonaws.com", "eventName": "CreateLaunchConfiguration", "awsRegion": "us-west-2", "sourceIPAddress": "192.0.2.0", "userAgent": "Coral/Jakarta", "requestParameters": { "ebsOptimized": false, "instanceMonitoring": { "enabled": false }, "instanceType": "t2.micro", "keyName": "EC2-key-pair-oregon", "blockDeviceMappings": [ { "deviceName": "/dev/xvda", "ebs": { "deleteOnTermination": true, "volumeSize": 8, "snapshotId": "snap-01676e0a2c3c7de9e", "volumeType": "gp2" } } ], "launchConfigurationName": "launch_configuration_1", "imageId": "ami-6cd6f714d79675a5", "securityGroups": [ "sg-00c429965fd921483" ] }, "responseElements": null, "requestID": "0737e2ea-fb2d-11e3-bfd8-99133058e7bb", "eventID": "3fcfb182-98f8-4744-bd45-b38835ab61cb", "eventType": "AwsApiCall", "recipientAccountId": "123456789012"}

170

Page 178: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドポリシーでのアクションの指定

Amazon EC2 Auto Scaling リソースに対するアクセスのコントロール

Amazon EC2 Auto Scaling へのアクセスには、AWS によってリクエストの認証に使用される認証情報が必要です。それらの認証情報を取得したユーザーに、Amazon EC2 Auto Scaling アクションを実行するためのアクセス権限を付与する必要があります。

このトピックでは、IAM 管理者が AWS Identity and Access Management (IAM) を使用して、Amazon EC2Auto Scaling アクションを実行できるユーザーを制御することで、リソースをセキュリティで保護する方法について詳しく説明します。

デフォルトでは、新しい IAM ユーザーには、何かを実施するためのアクセス権限がありません。AmazonEC2 Auto Scaling アクションを呼び出すアクセス権限を付与するには、付与されるアクセス権限を必要とする IAM ユーザーまたはグループに、IAM ポリシーをアタッチします。

Amazon EC2 Auto Scaling へのフルアクセスをユーザーに許可するポリシーについては、「事前定義のAWS 管理ポリシー (p. 174)」を参照してください。また、アクションおよびリソースを許可あるいは拒否し、アクションが許可あるいは拒否されるための条件を指定する独自にポリシーを作成することもできます。例については、「お客様が管理するポリシーの例 (p. 175)」を参照してください。ただし、Amazon EC2 Auto Scaling リソースへのアクセスを管理するための基本概念とオプションについて説明する概要トピックをまず読むことをお勧めします。

ポリシーでのアクションの指定IAM ポリシーでは、すべての Amazon EC2 Auto Scaling アクションを指定できます。詳細については、Amazon EC2 Auto Scaling API リファレンス の「アクション」を参照してください。

単一のポリシーを指定するには、アクション名に次のプレフィックスを使用できます: autoscaling:。

"Action": "autoscaling:CreateAutoScalingGroup"

1 つのポリシーで複数のアクションを指定するには、アクションをカンマで区切って角かっこで囲みます。

"Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup"]

ワイルドカードがサポートされています。たとえば、すべての Amazon EC2 Auto Scaling アクションを指定するには autoscaling:* を使用できます。

"Action": "autoscaling:*"

また、名前が Describe で始まるすべてのアクションを指定するには、Describe* を使用できます。

"Action": "autoscaling:Describe*"

171

Page 179: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド追加の IAM アクセス権限

追加の IAM アクセス権限特定のアクションを実行するには、ユーザーに Amazon EC2 と IAM の追加のアクセス権限が必要です。IAM ポリシーステートメントの Action 要素では、以下のアクションを指定します。

起動設定を使用して Auto Scaling グループを作成する

• autoscaling:CreateAutoScalingGroup

• iam:CreateServiceLinkedRole

起動テンプレートを使用して Auto Scaling グループを作成する

• autoscaling:CreateAutoScalingGroup

• iam:CreateServiceLinkedRole

• ec2:RunInstances

起動テンプレートを使用する Auto Scaling グループを更新する

• autoscaling:UpdateAutoScalingGroup

• ec2:RunInstances

起動設定を作成する

• autoscaling:CreateLaunchConfiguration

• ec2:DescribeImages

• ec2:DescribeInstances

• ec2:DescribeInstanceAttribute

• ec2:DescribeKeyPairs

• ec2:DescribeSecurityGroups

• ec2:DescribeSpotInstanceRequests

• ec2:DescribeVpcClassicLink

ボリュームを操作する場合やコンソールからセキュリティグループを管理する場合などは、Amazon EC2リソースの作成や使用に追加のアクセス権限が必要になることがあります。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon EC2 コンソールで機能するサンプルポリシー」を参照してください。起動テンプレートを作成および更新するアクセス許可については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「起動テンプレートの使用の制御」を参照してください。

また、CloudWatch、Elastic Load Balancing、IAM、および Amazon SNS で追加の API アクションが必要になる場合があります。たとえば、インスタンスプロファイル (p. 188)を使用するには、iam:PassRole アクションへのアクセスが必要です。

リソースの指定リソースへのアクセスは IAM ポリシーで制御できます。リソースレベルのアクセス許可をサポートするアクションの場合は、Amazon リソースネーム (ARN) を使用して、ポリシーが適用されるリソースを識別します。

Auto Scaling グループを指定するには、次のように ARN を指定する必要があります。

172

Page 180: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドリソースの指定

"Resource": "arn:aws:autoscaling:region:123456789012:autoScalingGroup:uuid:autoScalingGroupName/asg-name"

起動設定を指定するには、次のように ARN を指定する必要があります。

"Resource": "arn:aws:autoscaling:region:123456789012:launchConfiguration:uuid:launchConfigurationName/lc-name"

CreateAutoScalingGroup アクションを使用して Auto Scaling グループを指定するには、次のようにUUID を * に置き換える必要があります。

"Resource": "arn:aws:autoscaling:region:123456789012:autoScalingGroup:*:autoScalingGroupName/asg-name"

CreateLaunchConfiguration アクションを使用して起動設定を指定するには、次のように UUID を *に置き換える必要があります。

"Resource": "arn:aws:autoscaling:region:123456789012:launchConfiguration:*:launchConfigurationName/lc-name"

または、特定のリソースをターゲットにしない場合には、* ワイルドカードをリソースとして使用できます。

"Resource": "*"

IAM ポリシーではすべての Amazon EC2 Auto Scaling アクションを使用して、そのアクションを使用するアクセス権限をユーザーに付与または拒否できます。ただし、すべての Amazon EC2 Auto Scaling アクションが、アクションを実行することができるリソースを指定できる、リソースレベルのアクセス許可をサポートしているわけではありません。

リソースレベルの権限をサポートしていないアクションの場合、"*" をリソースとして使用する必要があります。

次の Amazon EC2 Auto Scaling アクションは、リソースレベルのアクセス許可をサポートしていません。

• DescribeAccountLimits

• DescribeAdjustmentTypes

• DescribeAutoScalingGroups

• DescribeAutoScalingInstances

• DescribeAutoScalingNotificationTypes

• DescribeLaunchConfigurations

• DescribeLifecycleHooks

• DescribeLifecycleHookTypes

• DescribeLoadBalancers

• DescribeLoadBalancerTargetGroups

• DescribeMetricCollectionTypes

• DescribeNotificationConfigurations

• DescribePolicies

• DescribeScalingActivities

173

Page 181: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドポリシーでの条件の指定

• DescribeScalingProcessTypes

• DescribeScheduledActions

• DescribeTags

• DescribeTerminationPolicyTypes

ポリシーでの条件の指定リソースレベルのアクセス許可をサポートするアクションでは、満たす必要がある条件に基づいて、ユーザーがそれらのアクションをいつ使用できるかを制御できます。

アクセス権限を付与するとき、IAM ポリシー言語と事前定義済み条件キーを使用できます。

次の条件キーは Amazon EC2 Auto Scaling に固有です。

• autoscaling:ImageId

• autoscaling:InstanceType

• autoscaling:InstanceTypes

• autoscaling:LaunchConfigurationName

• autoscaling:LaunchTemplateVersionSpecified

• autoscaling:LoadBalancerNames

• autoscaling:MaxSize

• autoscaling:MinSize

• autoscaling:ResourceTag/key

• autoscaling:SpotPrice

• autoscaling:TargetGroupARNs

• autoscaling:VPCZoneIdentifiers

Important

制約可能な API アクション、各アクションでサポートされている条件キー、および AWS 全体の条件キーの完全なリストについては、IAM ユーザーガイドの「Amazon EC2 Auto Scaling のアクション、リソース、および条件キー」および「AWS 共通条件コンテキストキー」を参照してください。

事前定義の AWS 管理ポリシーAWS によって作成された管理ポリシーは、一般的ユースケースに必要なアクセス権限を付与します。これらのポリシーは、必要なアクセス権に基づき、IAM ユーザーにアタッチできます。各ポリシーは AmazonEC2 Auto Scaling のすべてまたは一部の API アクションへのアクセスを許可します。

Amazon EC2 Auto Scaling に対する AWS 管理ポリシーを次に示します。

• AutoScalingConsoleFullAccess — AWS マネジメントコンソール を使用して Amazon EC2 AutoScaling へのフルアクセスを付与します。

• AutoScalingConsoleReadOnlyAccess — AWS マネジメントコンソール を使用して Amazon EC2Auto Scaling への読み取り専用アクセスを付与します。

• AutoScalingFullAccess — Amazon EC2 Auto Scaling へのフルアクセスを付与します。• AutoScalingReadOnlyAccess — Amazon EC2 Auto Scaling への読み取り専用アクセス権を付与しま

す。

174

Page 182: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドお客様が管理するポリシーの例

AmazonEC2FullAccess ポリシーを使用して、すべての Amazon EC2 リソースと関連サービスへのフルアクセスを許可することもできます。

お客様が管理するポリシーの例IAM ユーザーあるいはグループが Amazon EC2 Auto Scaling アクションを実行する権限を許可あるいは拒否する独自のカスタム IAM ポリシーを作成できます。これらのカスタムポリシーは、指定されたアクセス権限が必要な IAM ユーザーまたはグループにアタッチできます。次の例では、いくつかの一般的ユースケースのアクセス許可を示します。

例: サービスにリンクされたどのロールを渡せるかを制限する (PassRole を使用)カスタムのサービスにリンクされたロールを Auto Scaling グループに渡せることをユーザーが必要とする場合は、必要なアクセス許可に基づいてポリシーをユーザーまたはロールにアタッチします。ユーザーがアクセスする必要のあるサービスにリンクされたロールのみにこのポリシーを制限することをお勧めします。カスタムサフィックス付きのサービスにリンクされたロールの詳細については、「Amazon EC2 AutoScaling のサービスにリンクされたロール (p. 181)」を参照してください。

以下の例は、別のサービスにリンクされたロールに別のキーへのアクセスを許可する場合に、カスタマー管理の CMK のセキュリティを促進するのに役立ちます。必要に応じて、開発チームに1 つの CMK、QA チームにもう 1 つの CMK、そして財務チームにもう 1 つの CMK を設定できます。まず、必要な CMK にアクセス権があるサービスにリンクされたロールを作成します (たとえば、AWSServiceRoleForAutoScaling_devteamkeyaccess という名前のサービスにリンクされたロール)。次に、このサービスにリンクされたロールを Auto Scaling グループに渡すアクセス権限を付与すために、示されるようにポリシーを IAM ユーザーにアタッチします。

次の例のポリシーは、devteam で始まる名前のすべての Auto Scaling グループを作成するためにAWSServiceRoleForAutoScaling_devteamkeyaccess ロールを渡すユーザー権限を付与します。ユーザーが別のサービスにリンクされたロールを指定しようとすると、エラーが発生します。サービスにリンクされたロールを指定しないことを選択した場合は、代わりにデフォルトのAWSServiceRoleForAutoScaling ロールが使用されます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling_devteamkeyaccess", "Condition": { "StringEquals": { "iam:PassedToService": [ "autoscaling.amazonaws.com" ] }, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:autoscaling:region:123456789012:autoScalingGroup:*:autoScalingGroupName/devteam*" ] } } } ]

175

Page 183: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド例: 起動テンプレートを要求する

}

例: 起動テンプレートを要求する以下のポリシーでは、起動テンプレートを使用していて、インスタンスの起動に使用する起動テンプレートのバージョンを指定していることを前提に、IAM ユーザーに、Auto Scaling グループを作成および更新するためのアクセス許可を付与します。各インスタンスは、ユーザーが指定した起動テンプレートのバージョンを起動時に使用します。ユーザーは起動テンプレートで指定された Amazon EC2 リソースにアクセスできます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Bool": { "autoscaling:LaunchTemplateVersionSpecified": "true" } } }, { "Effect": "Allow", "Action": [ "ec2:*" ], "Resource": "*" } ]}

autoscaling:LaunchTemplateVersionSpecified 条件キーは、次の値を受け入れます。

• true - 起動テンプレートのバージョンが指定されていることを示します。• false - Latest または Default 起動テンプレートのバージョンが指定されていることを示します。• null - 起動テンプレートが指定されていないことを示します。

ec2:* はすべての Amazon EC2 API アクションを呼び出すアクセス許可を付与し、すべての AmazonEC2 リソースへのアクセスを許可します。

例 1: 起動設定を作成および管理する次のポリシーでは、名前に文字列 LaunchConfiguration を含むすべての Amazon EC2 Auto Scalingアクションを使用するためのアクセス許可をユーザーに付与します。または、ワイルドカードを使用する代わりに、各アクションを明示的にリストすることもできます。ただし、ポリシーは名前にLaunchConfiguration を含む新しい Amazon EC2 Auto Scaling アクションには自動的に適用されません。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow",

176

Page 184: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド例: Auto Scaling グループおよびスケー

リングポリシーを作成して管理する

"Action": "autoscaling:*LaunchConfiguration*", "Resource": "*" }]}

次のポリシーでは、インスタンスタイプが t2.micro で、起動設定の名前が t2micro- で始まる場合に起動設定を作成するアクセス許可をユーザーに付与します。名前が t2micro- で始まる場合にのみ、AutoScaling グループの起動設定を指定することができます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "autoscaling:CreateLaunchConfiguration", "Resource": [ "arn:aws:autoscaling:region:123456789012:launchConfiguration:*:launchConfigurationName/t2micro-*" ], "Condition": { "StringEquals": { "autoscaling:InstanceType": "t2.micro" } } }, { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "StringLikeIfExists": { "autoscaling:LaunchConfigurationName": "t2micro-*" } } }]}

例: Auto Scaling グループおよびスケーリングポリシーを作成して管理する次のポリシーでは、名前に文字列 Scaling を含むすべての Amazon EC2 Auto Scaling アクションを使用するためのアクセス許可をユーザーに付与します。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": ["autoscaling:*Scaling*"], "Resource": "*" }]}

次のポリシーでは、Auto Scaling グループにタグ purpose=webserver がある限り、名前に文字列Scaling を含むすべての Amazon EC2 Auto Scaling アクションを使用するアクセス許可をユーザーに付与します。Describe アクションはリソースレベルのアクセス権限をサポートしないため、条件のない別のステートメントでそれらのアクセス権限を指定する必要があります。

{ "Version": "2012-10-17",

177

Page 185: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド例: タグを使用してアクセスを制御する

"Statement": [ { "Effect": "Allow", "Action": ["autoscaling:*Scaling*"], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/purpose": "webserver" } } }, { "Effect": "Allow", "Action": "autoscaling:Describe*Scaling*", "Resource": "*" }]}

次のポリシーでは、1 未満の最小サイズ、または 10 より大きい最大サイズを指定しない限り、名前に文字列 Scaling を含むすべての Amazon EC2 Auto Scaling アクションを使用するアクセス許可をユーザーに付与します。Describe アクションはリソースレベルのアクセス権限をサポートしないため、条件のない別のステートメントでそれらのアクセス権限を指定する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["autoscaling:*Scaling*"], "Resource": "*", "Condition": { "NumericGreaterThanEqualsIfExists": { "autoscaling:MinSize": 1 }, "NumericLessThanEqualsIfExists": { "autoscaling:MaxSize": 10 } } }, { "Effect": "Allow", "Action": "autoscaling:Describe*Scaling*", "Resource": "*" }]}

例: タグを使用してアクセスを制御する特定のタグを指定する場合に限り、Auto Scaling グループを作成またはタグ付けするアクセス許可をユーザーに付与するには、aws:RequestTag 条件キーを使用します。特定のタグキーのみ許可するには、ForAnyValue 修飾子とともに aws:TagKeys 条件キーを使用します。

次のポリシーでは、タグ purpose=webserver および cost-center=cc123 を使用して任意の AutoScaling グループにタグを付けることをユーザーに要求し、purpose および cost-center タグのみを許可します (その他のタグは指定できません)。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "StringEquals": {

178

Page 186: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド例: タグを使用してアクセスを制御する

"aws:RequestTag/purpose": "webserver", "aws:RequestTag/cost-center": "cc123" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["purpose", "cost-center"] } } }]}

次のポリシーでは、そのリクエストでキー environment を使用してタグを指定することをユーザーに要求します。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "StringLike": { "aws:RequestTag/environment": "*" } } }]}

次のポリシーでは、ユーザーがリクエストで少なくとも 1 つのタグを指定することを要求し、cost-center および owner キーのみ使用できます。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["cost-center", "owner"] } } }]}

次のポリシーでは、タグ allowed=true を使用して Auto Scaling グループへのアクセス権をユーザーに付与し、タグ environment=test の適用のみを許可します。起動設定はタグをサポートしておらず、Describe アクションはリソースレベルのアクセス権限をサポートしていないため、これらは条件なしで別のステートメントで指定する必要があります。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:*Scaling*", "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/allowed": "true" }, "StringEqualsIfExists": { "aws:RequestTag/environment": "test" }, "ForAllValues:StringEquals": { "aws:TagKeys": "environment" } } },

179

Page 187: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド例: Auto Scaling グループ容量を変更する

{ "Effect": "Allow", "Action": [ "autoscaling:*LaunchConfiguration*", "autoscaling:Describe*" ], "Resource": "*" }]}

例: Auto Scaling グループ容量を変更する次のポリシーは、SetDesiredCapacity アクションを使用して任意の Auto Scaling グループ容量を変更するためのアクセス許可をユーザーに付与します。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:SetDesiredCapacity", "Resource": "*" }]}

次のポリシーは、SetDesiredCapacity アクションを使用して、指定された Auto Scaling グループの容量を変更するためのアクセス許可をユーザーに付与します。UUID を含めることで、特定の Auto Scalingグループに確実にアクセス権が付与されます。新しいグループの UUID は、削除された同じ名前のグループの UUID とは異なります。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:SetDesiredCapacity", "Resource": [ "arn:aws:autoscaling:region:123456789012:autoScalingGroup:7fe02b8e-7442-4c9e-8c8e-85fa99e9b5d9:autoScalingGroupName/group-1", "arn:aws:autoscaling:region:123456789012:autoScalingGroup:9d8e8ea4-22e1-44c7-a14d-520f8518c2b9:autoScalingGroupName/group-2", "arn:aws:autoscaling:region:123456789012:autoScalingGroup:60d6b363-ae8b-467c-947f-f1d308935521:autoScalingGroupName/group-3" ] }]}

次のポリシーでは、SetDesiredCapacity アクションを使用して、名前が group- で始まる AutoScaling グループの容量を変更するアクセス許可をユーザーに付与します。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:SetDesiredCapacity", "Resource": [ "arn:aws:autoscaling:region:123456789012:autoScalingGroup:*:autoScalingGroupName/group-*" ] }]}

180

Page 188: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドサービスにリンクされたロール

Amazon EC2 Auto Scaling のサービスにリンクされたロール

Amazon EC2 Auto Scaling は、ユーザーに代わって他の AWS のサービスを呼び出すために必要なアクセス許可を持つサービスにリンクされたロールを使用します。サービスにリンクされたロールは、AWS サービスに直接リンクされた一意のタイプの IAM ロールです。

サービスにリンクされたロールは、AWS のサービスにアクセス許可を委任するためのセキュアな方法を提供します。これは、リンクされたサービスのみが、サービスにリンクされたロールを引き受けることができるためです。詳細については、IAM ユーザーガイド の「サービスにリンクされたロールの使用」を参照してください。また、サービスにリンクされたロールにより、すべての API コールが AWS CloudTrailを介して表示可能になります。これがモニタリングと監査の要件を満たすのに役立つのは、Amazon EC2Auto Scaling によってお客様に代わって実行されるすべてのアクションを追跡できるためです。詳細については、「Amazon EC2 Auto Scaling を使用した AWS CloudTrail API 呼び出しのログ記録 (p. 169)」を参照してください。

以下のセクションでは、Amazon EC2 Auto Scaling サービスにリンクされたロールを作成および管理する方法について説明します。まず、サービスにリンクされたロールを作成、編集、または削除するためのアクセス許可を設定して IAM エンティティ (ユーザー、グループ、ロールなど) に付与します。詳細については、IAM ユーザーガイド の「サービスにリンクされたロールの使用」を参照してください。

概要Amazon EC2 Auto Scaling サービスにリンクされたロールには 2 つのタイプがあります。

• アカウントのデフォルトのサービスにリンクされたロール (AWSServiceRoleForAutoScaling)。このロールは、自動的に Auto Scaling グループに割り当てられます。ただし、別のサービスにリンクされたロールを指定している場合を除きます。

• ロールの作成時に指定するカスタムサフィックス付きのサービスにリンクされたロール(AWSServiceRoleForAutoScaling_mysuffix など)。

カスタムサフィックス付きのサービスにリンクされたロールのアクセス許可は、デフォルトのサービスにリンクされたロールのアクセス許可と同じです。いずれの場合も、ロールを編集することはできません。また、Auto Scaling グループが使用中の場合は削除することもできません。唯一の違いは、ロール名サフィックスです。

Amazon EC2 Auto Scaling によって起動されたインスタンスをカスタマー管理の CMK で暗号化できるように、AWS Key Management Service キーポリシーを編集するときに、いずれかのロールを指定できます。ただし、特定のカスタマー管理の CMK へのきめ細かなアクセスを許可する場合は、カスタムサフィックス付きのサービスにリンクされたロールを使用する必要があります。カスタムサフィックス付きのサービスにリンクされたロールを使用すると、以下のことが可能です。

• CMK をより詳細にコントロールする。• CloudTrail ログでどの Auto Scaling グループが API コールを行ったかを追跡する。

一部のユーザーにのみアクセスを許可するカスタマー管理の CMK を作成する場合は、以下のステップに従って、カスタムサフィックス付きのサービスにリンクされたロールを使用できます。

1. カスタムサフィックス付きのサービスにリンクされたロールを作成します。詳細については、「サービスにリンクされたロールを作成する (手動) (p. 183)」を参照してください。

2. サービスにリンクされたロールにカスタマー管理の CMK へのアクセスを許可します。サービスにリンクされたロールに CMK の使用を許可するキーポリシーの詳細については、「暗号化されたボリュームで使用するのに必要な CMK キーポリシー (p. 184)」を参照してください。

181

Page 189: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドサービスにリンクされたロール

によって付与されるアクセス許可

3. IAM ユーザーまたはロールに、指定したサービスにリンクされたロールへのアクセスを許可します。IAM ポリシーの作成の詳細については、「例: サービスにリンクされたどのロールを渡せるかを制限する (PassRole を使用) (p. 175)」を参照してください。

サービスにリンクされたロールによって付与されるアクセス許可Amazon EC2 Auto Scaling は、サービスにリンクされたロール AWSServiceRoleForAutoScaling またはカスタムサフィックス付きのサービスリンクロールを使用して、指定されたリソースに対してお客様に代わって以下のアクションを実行します。

• ec2:AttachClassicLinkVpc

• ec2:CancelSpotInstanceRequests

• ec2:CreateFleet

• ec2:CreateTags

• ec2:DeleteTags

• ec2:Describe*

• ec2:DetachClassicLinkVpc

• ec2:ModifyInstanceAttribute

• ec2:RequestSpotInstances

• ec2:RunInstances

• ec2:TerminateInstances

• elasticloadbalancing:Register*

• elasticloadbalancing:Deregister*

• elasticloadbalancing:Describe*

• cloudwatch:DeleteAlarms

• cloudwatch:DescribeAlarms

• cloudwatch:PutMetricAlarm

• sns:Publish

このロールを引き受けるために autoscaling.amazonaws.com サービスを信頼します。

サービスにリンクされたロールを作成する (自動)Amazon EC2 Auto Scaling によって、Auto Scaling グループの初回作成時、サービスにリンクされたロール AWSServiceRoleForAutoScaling が作成されます。ただし、カスタムサフィックス付きのサービスにリンクされたロールを手動で作成し、グループの作成時に指定している場合は除きます。

Important

サービスにリンクされたロールを作成するための IAM アクセス許可が必要です。それ以外の場合、自動作成は失敗します。詳細については、IAM ユーザーガイド の「サービスにリンクされたロールのアクセス許可」を参照するか、このガイドで、必要なユーザーアクセス許可 (p. 172)に関する情報を参照してください。

Amazon EC2 Auto Scaling は、サービスにリンクされたロールのサポートを 2018 年 3 月に開始しました。それより前に Auto Scaling グループを作成した場合は、Amazon EC2 Auto Scaling によって AWS アカウントに AWSServiceRoleForAutoScaling ロールが作成されています。詳細については、IAM ユーザーガイド の「AWS アカウントに新しいロールが表示される」を参照してください。

182

Page 190: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドサービスにリンクされたロールを作成する (手動)

サービスにリンクされたロールを作成する (手動)サービスにリンクされたロールを作成するには (コンソール)

1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。2. ナビゲーションペインで [ロール]、[ロールの作成] の順に選択します。3. [Select type of trusted entity (信頼されたエンティティのタイプの選択)] で、[AWS のサービス] を選択

します。4. [このロールを使用するサービスを選択] で、[EC2 Auto Scaling]、[EC2 Auto Scaling] ユースケースの

順に選択します。5. [Next: Permissions (次へ: アクセス許可)]、[Next: Tags (次へ: タグ)]、[Next: Review (次へ: レビュー)]

の順に選択します。注意: サービスにリンクされたロールの作成時にタグ付けを行うことはできません。

6. [Review (レビュー)] ページで、[ロール名] を空白のままにして AWSServiceRoleForAutoScalingという名前でサービスにリンクされたロールを作成するか、サフィックスを入力してAWSServiceRoleForAutoScaling_suffix という名前でサービスにリンクされたロールを作成します。

7. (オプション) [ロールの説明] で、サービスにリンクされたロールの説明を編集します。8. [ロールの作成] を選択します。

サービスにリンクされたロールを作成するには (AWS CLI)

以下の create-service-linked-role CLI コマンドを使用して AWSServiceRoleForAutoScaling_suffixという名前で Amazon EC2 Auto Scaling のサービスにリンクされたロールを作成します。

aws iam create-service-linked-role --aws-service-name autoscaling.amazonaws.com --custom-suffix suffix

このコマンドの出力には、サービスにリンクされたロールの ARN が含まれており、これを使用してサービスにリンクされたロールに CMK キーへのアクセスを許可できます。

{ "Role": { "RoleId": "ABCDEF0123456789ABCDEF", "CreateDate": "2018-08-30T21:59:18Z", "RoleName": "AWSServiceRoleForAutoScaling_suffix", "Arn": "arn:aws:iam::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling_suffix", "Path": "/aws-service-role/autoscaling.amazonaws.com/", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "autoscaling.amazonaws.com" ] }, "Effect": "Allow" } ] } }

183

Page 191: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドサービスにリンクされたロールを編集する

}

詳細については、IAM ユーザーガイド の「サービスにリンクされたロールの作成」を参照してください。

サービスにリンクされたロールを編集するAmazon EC2 Auto Scaling 用に作成されたサービスにリンクされたロールは編集できません。サービスにリンクされたロールを作成した後、ロールの名前またはアクセス許可を変更することはできません。ただし、ロールの説明は編集できます。詳細については、IAM ユーザーガイド の「サービスにリンクされたロールの編集」を参照してください。

サービスにリンクされたロールを削除するAuto Scaling グループを使用していない場合、そのサービスにリンクされたロールを削除することをお勧めします。ロールを削除すると、使用されていないエンティティやアクティブにモニタリングおよび維持されていないエンティティがなくなります。

サービスにリンクされたロールを削除するには、まずその関連 AWS リソースを削除します。これにより、リソースに対する Amazon EC2 Auto Scaling アクセス許可を誤って取り消すことがなくなります。サービスにリンクされたロールが複数の Auto Scaling グループで使用されている場合、サービスにリンクされたロールを削除する前に、そのロールを使用するすべての Auto Scaling グループを削除する必要があります。詳細については、「Auto Scaling インフラストラクチャの削除 (p. 87)」を参照してください。

IAM を使用して、サービスにリンクされたロールを削除できます。詳細については、IAM ユーザーガイドの「サービスにリンクされたロールの削除」を参照してください。

AWSServiceRoleForAutoScaling というサービスにリンクされたロールを削除した場合は、Auto Scalingグループの作成時に別のサービスにリンクされたロールを指定しないと、Amazon EC2 Auto Scaling によって再び作成されます。

Amazon EC2 Auto Scaling サービスにリンクされたロールがサポートされているリージョンAmazon EC2 Auto Scaling は、サービスを利用できるすべての AWS リージョンで、サービスにリンクされたロールの使用をサポートします。詳細については、「AWS リージョンとエンドポイント」を参照してください。

暗号化されたボリュームで使用するのに必要なCMK キーポリシー

暗号化された Amazon EBS スナップショットを作成するときや、暗号化されたボリュームを指定する起動テンプレートを作成するとき、またはデフォルトで暗号化を有効にするときは、以下の AWS KeyManagement Service カスタマーマスターキー (CMK) のいずれかを選択してデータを暗号化できます。

• AWS 管理の CMK—お客様のアカウント用に Amazon EBS によって作成、所有、管理される暗号化キー。これは、新しいアカウントのデフォルトの暗号化キーです。AWS 管理の CMK は、カスタマー管理の CMK を指定する場合を除き、暗号化に使用されます。

• カスタマー管理の CMK—お客様が作成、所有、管理するカスタムの暗号化キー。詳細については、AWS Key Management Service Developer Guide の「キーの作成」を参照してください。

注 : Amazon EBS は非対称 CMK をサポートしていません。

184

Page 192: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドキーポリシーの設定

Amazon EC2 Auto Scaling では、AWS アカウントの暗号化されたボリュームの保護にデフォルトの AWS管理の CMK を使用する場合、追加の承認は不要です。

Amazon EBS 暗号化用にカスタマー管理の CMK を指定する場合、Amazon EC2 Auto Scaling がお客様に代わってインスタンスを起動できるように、お客様 (またはアカウント管理者) は、適切なサービスにリンクされたロール (p. 181)にその CMK へのアクセスを許可する必要があります。そのためには、CMK 作成時またはそれ以降に CMK のキーポリシーを変更する必要があります。

キーポリシーの設定このページの例を使用して、Amazon EC2 Auto Scaling にカスタマー管理の CMK へのアクセスを許可するようにキーポリシーを設定します。Amazon EC2 Auto Scaling で CMK のキーポリシーを使用するには、少なくとも、2 つのポリシーステートメントをそのポリシーに追加する必要があります。

• 最初のステートメントでは、Principal 要素で指定された IAM アイデンティティに、CMK を直接使用できるようにします。また、CMK で AWSKMS、Encrypt、Decrypt、ReEncrypt*、GenerateDataKey*、および DescribeKey オペレーションを実行するためのアクセス許可を含めます。

• 2 番目のステートメントでは、Principal 要素で指定された IAM アイデンティティに、独自のアクセス許可のサブセットを AWS KMS または別のプリンシパルと統合された AWS のサービスに委任するための許可を使用できるようにします。これにより、それらのサービスはお客様に代わって、CMK を使用して、暗号化されたリソースを作成できるようになります。

CMK ポリシーに新しいポリシーステートメントを追加する場合は、ポリシーの既存のステートメントを変更しないでください。

以下の各例では、キー ID やサービスにリンクされたロールの名前など、置き換える必要のある引数は置置置置置置置置置置として斜体で示しています。ほとんどの場合、サービスにリンクされたロールの名前を AmazonEC2 Auto Scaling サービスにリンクされたロールの名前に置き換えることができます。ただし、起動設定を使用してスポットインスタンスを起動する場合は、AWSServiceRoleForEC2Spot という名前のロールを使用します。

以下のリソースを参照してください。

• AWS CLI で CMK を作成するには、「create-key」を参照してください。• AWS CLI を使用して CMK ポリシーを更新するには、「put-key-policy」を参照してください。• キー ID と Amazon リソースネーム (ARN) を見つけるには、AWS Key Management Service Developer

Guide の「キー ID と ARN を検索する」を参照してください。• Amazon EC2 Auto Scaling サービスにリンクされたロールについては、「Amazon EC2 Auto Scaling の

サービスにリンクされたロール (p. 181)」を参照してください。

コンソールでのキーポリシーの編集

以下のセクションの例では、キーポリシーにステートメントを追加する方法のみを示しています。これは、キーポリシーを変更する 1 つの方法にすぎません。キーポリシーを変更する最も簡単な方法は、キーポリシーに対して IAM コンソールのデフォルトビューを使用し、IAM エンティティ (ユーザーまたはロール) を適切なキーポリシーのいずれかのキーユーザーにすることです。詳細については、AWS KeyManagement Service Developer Guide の「AWS マネジメントコンソールのデフォルトビューの使用」を参照してください。

Important

以下の点に注意してください。コンソールのデフォルトビューポリシーステートメントには、CMK に対して AWS KMS の Revoke オペレーションを実行するためのアクセス許可が含まれています。AWS アカウントにお客様のアカウントの CMK へのアクセスを許可した場合、このアクセス許可を付与するための許可を誤って取り消すと、外部ユーザーは暗号化されたデータにもデータの暗号化に使用されたキーにもアクセスできなくなります。

185

Page 193: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド例: CMK へのアクセスを許可す

る CMK のキーポリシーセクション

例: CMK へのアクセスを許可する CMK のキーポリシーセクション以下の 2 つのポリシーステートメントをカスタマー管理の CMK のキーポリシーに追加して、例の ARNを、CMK へのアクセスが許可されている適切なサービスにリンクされたロールの ARN に置き換えます。この例のポリシーセクションでは、AWSServiceRoleForAutoScaling という名前のサービスにリンクされたロールに、カスタマー管理の CMK を使用するためのアクセス許可を付与します。

{ "Sid": "Allow use of the CMK", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*"}

{ "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" ] }, "Action": [ "kms:CreateGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } }}

例: CMK へのクロスアカウントアクセスを許可するCMK のキーポリシーセクションカスタマー管理 CMK が、Auto Scaling グループとは異なるアカウントにある場合は、CMK へのアクセスを許可するキーポリシーを組み合わせて付与する必要があります。詳細については、AWS KeyManagement Service Developer Guide の「許可の使用」を参照してください。

まず、以下の 2 つのポリシーステートメントを CMK のキーポリシーに追加して、例の ARN を外部アカウントの ARN に置き換え、キーを使用できるアカウントを指定します。指定したアカウントの IAM ユーザーまたはロールがこの後の CLI コマンドを使用して許可を作成できるようにするための、GrantIsForAWSResource 条件は含まれていません。

186

Page 194: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド例: CMK へのクロスアカウントアクセスを許可する CMK のキーポリシーセクション

{ "Sid": "Allow use of the key in account 111122223333", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*"}

{ "Sid": "Allow attachment of persistent resources in account 111122223333", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "kms:CreateGrant" ], "Resource": "*"}

次に、関連するアクセス許可を適切なサービスにリンクされたロールに委任するための許可を作成します。許可の Grantee Principal 要素は、適切なサービスにリンクされたロールの ARN です。key-id は CMK の ARN です。以下の create-a-grant CLI コマンドの例では、アカウント 111122223333の AWSServiceRoleForAutoScaling という名前のサービスにリンクされたロールに、アカウント444455556666 の CMK を使用するためのアクセス許可を付与しています。

aws kms create-grant \ --region us-west-2 \ --key-id arn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d \ --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling \ --operations "Encrypt" "Decrypt" "ReEncryptFrom" "ReEncryptTo" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "DescribeKey" "CreateGrant"

このコマンドが成功するには、リクエストを行うユーザーに CreateGrant アクションに対するアクセス許可が必要です。以下の例の IAM ポリシーでは、アカウント 111122223333 の IAM ユーザーまたはロールに、アカウント 444455556666 の CMK に対する許可を作成できるようにしています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreationOfGrant", "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" } ]

187

Page 195: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAmazon EC2 インスタンスで実行され

るアプリケーションに対する IAM ロール

}

暗号化されたボリュームを含むインスタンスを起動するのに必要なカスタマー管理の CMK へのクロスアカウントアクセスの設定に問題がある場合は、トラブルシューティングのセクション (p. 197)を参照してください。

詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』および『AWS Key ManagementService Developer Guide』の「Amazon EBS Encryption」を参照してください。

Amazon EC2 インスタンスで実行されるアプリケーションに対する IAM ロール

Amazon EC2 インスタンスで実行されるアプリケーションには、他の AWS サービスにアクセスするための認証情報が必要です。これらの認証情報を安全な方法で提供するには、IAM ロールを使用します。このロールは、アプリケーションが他の AWS リソースにアクセスするときに使用できる一時的なアクセス許可を付与します。ロールのアクセス許可とは、アプリケーションを実施しても良いという決定することです。

詳細については、IAM ユーザーガイド の「Amazon EC2 インスタンスで実行されるアプリケーションにIAM ロールを使用してアクセス許可を付与する」を参照してください。

Auto Scaling グループ内のインスタンス用に、起動設定またはテンプレートを作成し、インスタンスに関連付けるインスタンスプロファイルを選択する必要があります。インスタンスプロファイルは、インスタンスを起動したときに Amazon EC2 が IAM ロールをインスタンスに渡すことを許可する IAM のコンテナです。まず、AWS リソースにアクセスするために必要なアクセス権限のすべてを持つ IAM ロールを作成します。次に、インスタンスプロファイルを作成し、そのプロファイルにロールを割り当てます。詳細については、IAM ユーザーガイド の「インスタンスプロファイルの使用」を参照してください。

Note

IAM コンソールを使用して Amazon EC2 のロールを作成する場合、コンソールで示される手順に従ってロールを作成すると、IAM ロールと同じ名前のインスタンスプロファイルが自動的に作成されます。

前提条件Amazon EC2 で実行されているアプリケーションが引き受けることができる IAM ロールを作成します。結果としてロールを引き受けたアプリケーションが必要なリソースにアクセスできるように、適切なアクセス権限を選択します。

IAM ロールを作成するには

1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。2. ナビゲーションペインで [ロール]、[ロールの作成] の順に選択します。3. [Select type of trusted entity (信頼されたエンティティのタイプの選択)] で、[AWS のサービス] を選択

します。4. [このロールを使用するサービスを選択] で、[EC2]、[EC2] ユースケースの順に選択します。[Next:

Permissions (次へ: アクセス許可)] を選択します。5. [Attach permissions policy (アクセス許可ポリシーのアタッチ)] ページで、必要なアクセス許可を含む

AWS 管理ポリシーを選択します。[Next: Tags (次へ: タグ)]、[Next: Review (次へ: レビュー)] の順に選択します。

6. [Review (レビュー)] ページで、ロールの名前を入力し、[ロールの作成] を選択します。

188

Page 196: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド起動設定を作成する

起動設定を作成するAWS マネジメントコンソール を使用して起動設定を作成するときは、[Configure Details] ページで、[IAMロール] からロールを選択します。詳細については、「起動設定を作成する (p. 34)」を参照してください。

AWS CLI から create-launch-configuration コマンドを使用して起動設定を作成する場合は、以下のようにインスタンスプロファイル名を指定します。

aws autoscaling create-launch-configuration --launch-configuration-name my-lc-with-instance-profile \--image-id ami-01e24be29428c15b2 --instance-type t2.micro \--iam-instance-profile my-instance-profile

起動テンプレートを作成するAWS マネジメントコンソール を使用して起動テンプレートを作成するときは、[高度な詳細] セクションで、[IAM インスタンスプロファイル] からロールを選択します。詳細については、「Auto Scaling グループの起動テンプレートを作成する (p. 26)」を参照してください。

AWS CLI から create-launch-template コマンドを使用して起動テンプレートを作成する場合は、次のようにインスタンスプロファイル名を指定します。

aws ec2 create-launch-template --launch-template-name my-lt-with-instance-profile --version-description version1 \--launch-template-data '{"ImageId":"ami-01e24be29428c15b2","InstanceType":"t2.micro","IamInstanceProfile":{"Name":"my-instance-profile"}}'

Amazon EC2 Auto Scaling とインターフェイスVPC エンドポイント

インターフェイス VPC エンドポイントを作成することで、仮想プライベートクラウド (VPC) と AmazonEC2 Auto Scaling API の間にプライベート接続を確立できます。この接続を使用して、インターネット経由でトラフィックを送信せずに VPC から Amazon EC2 Auto Scaling API を呼び出します。エンドポイントは、Amazon EC2 Auto Scaling API への信頼性の高いスケーラブルな接続を提供します。これは、インターネットゲートウェイ、NAT インスタンス、または VPN 接続なしで実行できます。

インターフェイス VPC エンドポイントは AWS PrivateLink を利用しています。これは、プライベート IPアドレスを使用して AWS のサービス間のプライベート通信を可能にする機能です。詳細については、「AWS PrivateLink」を参照してください。

Note

インターフェイス VCP エンドポイントを介してアクセスする各 API を明示的に有効にする必要があります。たとえば、Amazon EC2 API オペレーションを呼び出すときに使用するec2.region.amazonaws.com のインターフェイス VPC エンドポイントを設定する必要もあります。詳細については、Amazon VPC ユーザーガイド の「インターフェイス VPC エンドポイント (AWS PrivateLink)」を参照してください。

Amazon EC2 Auto Scaling は現在、中国 (北京) と中国 (寧夏) を除くすべてのリージョンで VPC エンドポイントをサポートしています。

189

Page 197: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドインターフェイス VPC エンドポイントを作成する

インターフェイス VPC エンドポイントを作成する以下のサービス名を使用して、Amazon EC2 Auto Scaling のエンドポイントを作成します。

• com.amazonaws.region.autoscaling — Amazon EC2 Auto Scaling API オペレーションのエンドポイントを作成します。

詳細については、Amazon VPC ユーザーガイド の「インターフェイスエンドポイントの作成」を参照してください。

エンドポイントのプライベート DNS を有効にすることで、デフォルトの DNS ホスト名(autoscaling.us-east-1.amazonaws.com など) を使用して、サポートされているサービスに API リクエストが送信されるようにします。AWS のサービスのエンドポイントを作成すると、この設定はデフォルトで有効になっています。詳細については、Amazon VPC ユーザーガイド の「インターフェイスエンドポイントを介したサービスへのアクセス」を参照してください。

Amazon EC2 Auto Scaling のいずれの設定も変更する必要はありません。Amazon EC2 Auto Scaling は、パブリックエンドポイントまたはプライベートインターフェイス VPC エンドポイントのうち使用中のいずれかを介して、他の AWS のサービスを呼び出します。

VPC エンドポイントポリシーを作成するAmazon EC2 Auto Scaling API へのアクセスをコントロールするために VPC エンドポイントにポリシーをアタッチすることができます。このポリシーでは以下の内容を指定します。

• アクションを実行できるプリンシパル。• 実行可能なアクション。• このアクションを実行できるリソース。

以下の例では、エンドポイントを介してスケーリングポリシーを作成するためのアクセス許可を全員に対して拒否する VPC エンドポイントポリシーを示しています。このポリシー例では、他のすべてのアクションを実行するアクセス許可も全員に付与しています。

{ "Statement": [ { "Action": "*", "Effect": "Allow", "Resource": "*", "Principal": "*" }, { "Action": "autoscaling:PutScalingPolicy", "Effect": "Deny", "Resource": "*", "Principal": "*" } ]}

詳細については、Amazon VPC ユーザーガイド の「VPC エンドポイントポリシーの使用」を参照してください。

190

Page 198: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドエラーメッセージの取得

Amazon EC2 Auto Scaling のトラブルシューティング

Amazon EC2 Auto Scaling では、問題のトラブルシューティングに役立つ、固有の説明的なエラー情報を提供しています。エラーメッセージは規模の拡大や縮小の説明から取得できます。

コンテンツ• エラーメッセージの取得 (p. 191)• Amazon EC2 Auto Scaling のトラブルシューティング: EC2 インスタンスの起動失敗 (p. 193)• Amazon EC2 Auto Scaling のトラブルシューティング: AMI に関する問題 (p. 198)• Amazon EC2 Auto Scaling のトラブルシューティング: ロードバランサーに関する問題 (p. 199)• Auto Scaling のトラブルシューティング;: 容量の制限 (p. 201)

エラーメッセージの取得スケーリングアクティビティの説明からエラーメッセージを取得するには、次のように describe-scaling-activities コマンドを使用します。

aws autoscaling describe-scaling-activities --auto-scaling-group-name my-asg

以下に示しているのは応答の例であり、StatusCode アクティビティには現在のステータスが含まれており、StatusMessage にはエラーメッセージが含まれています。

{ "Activities": [ { "Description": "Launching a new EC2 instance: i-4ba0837f", "AutoScalingGroupName": "my-asg", "ActivityId": "f9f2d65b-f1f2-43e7-b46d-d86756459699", "Details": "{"Availability Zone":"us-west-2c"}", "StartTime": "2013-08-19T20:53:29.930Z", "Progress": 100, "EndTime": "2013-08-19T20:54:02Z", "Cause": "At 2013-08-19T20:53:25Z a user request created an AutoScalingGroup...", "StatusCode": "Failed", "StatusMessage": "The image id 'ami-4edb0327' does not exist. Launching EC2 instance failed." } ]}

以下の表に、各種のエラーメッセージと、問題のトラブルシューティングに使用できるリソースへのリンクを示します。

EC2 インスタンスの起動失敗

問題 エラーメッセージ

Auto Scaling グループ AutoScalingGroup <Auto Scaling グループ名> が見つかりません。 (p. 194)

191

Page 199: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドエラーメッセージの取得

問題 エラーメッセージ

アベイラビリティーゾーン

リクエストされたアベイラビリティーゾーンはサポートされていません。リクエストを再実行してください。 (p. 195)

AWS アカウント このサービスに登録されていません。https://aws.amazon.com/ を参照してください。 (p. 195)

ブロックデバイスマッピング

デバイス名のアップロードが無効です。EC2 インスタンスの起動に失敗しました。 (p. 195)

ブロックデバイスマッピング

パラメータ virtualName の値 (<インスタンスストレージのデバイスに関連付けられている名前>) は無効です。 (p. 196)

ブロックデバイスマッピング

EBS ブロックデバイスマッピングはインスタンスストア AMI ではサポートされません。 (p. 196)

インスタンスタイプとアベイラビリティーゾーン

リクエストされたインスタンスタイプ (<インスタンスタイプ>) は、リクエストされたアベイラビリティーゾーン (<インスタンスのアベイラビリティーゾーン>) ではサポートされません。 (p. 195)

キーペア キーペア <お使いの EC2 インスタンスに関連付けられているキーペア> は存在しません。EC2 インスタンスの起動に失敗しました。 (p. 194)

起動設定 リクエストされた設定は現在サポートされていません。 (p. 194)

配置グループ プレイスメントグループは、タイプが 'm1.large' のインスタンスでは使用できません。EC2 インスタンスの起動に失敗しました。 (p. 196)

セキュリティグループ セキュリティグループ <セキュリティグループ名> は存在しません。EC2 インスタンスの起動に失敗しました。 (p. 194)

サービスにリンクされたロール

Client.InternalError: 起動時のクライアントエラー。 (p. 197)

AMI に関する問題

問題 エラーメッセージ

AMI ID AMI ID <お使いの AMI の ID> は存在しません。EC2 インスタンスの起動に失敗しました。 (p. 198)

AMI ID AMI <AMI ID> は保留中のため実行できません。EC2 インスタンスの起動に失敗しました。 (p. 198)

AMI ID パラメータ virtualName の値 (<AMI ID>) は無効です。 (p. 198)

アーキテクチャの不一致

リクエストされたインスタンスタイプのアーキテクチャ(i386)は、ami-6622f00f(x86_64)のマニフェストのアーキテクチャと一致しません。EC2 インスタンスの起動に失敗しました。 (p. 199)

ロードバランサーに関する問題

問題 エラーメッセージ

ロードバランサーが見つかりません

ロードバランサー <お使いの起動環境> が見つかりません。ロードバランサーの設定の確認が失敗しました。 (p. 199)

192

Page 200: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドインスタンスの起動の失敗

問題 エラーメッセージ

VPC のインスタンス EC2 インスタンス <インスタンス ID> は VPC にありません。ロードバランサーの設定の更新が失敗しました。 (p. 200)

アクティブなロードバランサーがありません

<ロードバランサー名> という名前のアクティブなロードバランサーはありません。ロードバランサーの設定の更新が失敗しました。 (p. 200)

セキュリティトークン リクエストに含まれているセキュリティトークンが無効です。ロードバランサーの設定の確認が失敗しました。 (p. 200)

容量制限

問題 エラーメッセージ

容量制限 <インスタンス数> 個のインスタンスがすでに実行中です。EC2 インスタンスの起動に失敗しました。 (p. 201)

アベイラビリティーゾーンの容量が不十分です

現在、リクエストされたアベイラビリティーゾーン (<リクエストされたアベイラビリティーゾーン>) に十分な <インスタンスタイプ> 容量がありません。 (p. 201)

Amazon EC2 Auto Scaling のトラブルシューティング: EC2 インスタンスの起動失敗

このページでは、起動に失敗する EC2 インスタンスに関する情報、考えられる原因、問題を解決するために実行できるステップを提供します。

エラーメッセージを取得するには、「エラーメッセージの取得 (p. 191)」を参照してください。

EC2 インスタンスが起動に失敗する場合、以下のエラーメッセージが 1 つ以上表示される可能性があります。

エラーメッセージ• セキュリティグループ <セキュリティグループ名> は存在しません。EC2 インスタンスの起動に失敗

しました。 (p. 194)• キーペア <お使いの EC2 インスタンスに関連付けられているキーペア> は存在しません。EC2 インス

タンスの起動に失敗しました。 (p. 194)• リクエストされた設定は現在サポートされていません。 (p. 194)• AutoScalingGroup <Auto Scaling グループ名> が見つかりません。 (p. 194)• リクエストされたアベイラビリティーゾーンはサポートされていません。リクエストを再実行してく

ださい。 (p. 195)• リクエストされたインスタンスタイプ (<インスタンスタイプ>) は、リクエストされたアベイラビリ

ティーゾーン (<インスタンスのアベイラビリティーゾーン>) ではサポートされません。 (p. 195)• このサービスに登録されていません。https://aws.amazon.com/ を参照してください。 (p. 195)• デバイス名のアップロードが無効です。EC2 インスタンスの起動に失敗しました。 (p. 195)• パラメータ virtualName の値 (<インスタンスストレージのデバイスに関連付けられている名前>) は無

効です。 (p. 196)• EBS ブロックデバイスマッピングはインスタンスストア AMI ではサポートされません。 (p. 196)• プレイスメントグループは、タイプが 'm1.large' のインスタンスでは使用できません。EC2 インスタ

ンスの起動に失敗しました。 (p. 196)

193

Page 201: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドセキュリティグループ <セキュリティグループ名> は存在しません。EC2 インスタンスの起動に失敗しました。

• Client.InternalError: 起動時のクライアントエラー。 (p. 197)

セキュリティグループ <セキュリティグループ名> は存在しません。EC2 インスタンスの起動に失敗しました。• 原因: 起動設定で指定されたセキュリティグループが削除された可能性があります。• 解決策:

1. describe-security-groups コマンドを使用して、アカウントに関連付けられているセキュリティグループのリストを取得します。

2. リストから、使用するセキュリティグループを選択します。代わりにセキュリティグループを作成するには、create-security-group コマンドを使用します。

3. 新しい起動設定を作成する.4. 新しい起動設定の Auto Scaling グループを、update-auto-scaling-group コマンドを使用して更新しま

す。

キーペア <お使いの EC2 インスタンスに関連付けられているキーペア> は存在しません。EC2 インスタンスの起動に失敗しました。• 原因: インスタンスの起動時に使用されたキーペアが削除された可能性があります。• 解決策:

1. describe-key-pairs コマンドを使用して、利用可能なキーペアのリストを取得します。2. リストから、使用するキーペアを選択します。代わりにキーペアを作成するには、create-key-pair コ

マンドを使用します。3. 新しい起動設定を作成する.4. 新しい起動設定の Auto Scaling グループを、update-auto-scaling-group コマンドを使用して更新しま

す。

リクエストされた設定は現在サポートされていません。• 原因: 起動設定の一部のオプションが、現在サポートされていない可能性があります。• 解決策:

1. 新しい起動設定を作成する.2. 新しい起動設定の Auto Scaling グループを、update-auto-scaling-group コマンドを使用して更新しま

す。

AutoScalingGroup <Auto Scaling グループ名> が見つかりません。• 原因: Auto Scaling グループが削除された可能性があります。

194

Page 202: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドリクエストされたアベイラビリティーゾーンはサポー

トされていません。リクエストを再実行してください。

• 解決策: 新しい Auto Scaling グループを作成します。

リクエストされたアベイラビリティーゾーンはサポートされていません。リクエストを再実行してください。• エラーメッセージ: リクエストされたアベイラビリティーゾーンはサポートされていません。アベイラビ

リティーゾーンを指定しないか、<利用可能なアベイラビリティーゾーンの一覧> から選択して、再試行します。EC2 インスタンスの起動に失敗しました。

• 原因: お使いの Auto Scaling グループに関連付けられているアベイラビリティーゾーンが現在利用できない可能性があります。

• 解決策: エラーメッセージの推奨事項に従って Auto Scaling グループを更新してください。

リクエストされたインスタンスタイプ (<インスタンスタイプ>) は、リクエストされたアベイラビリティーゾーン (<インスタンスのアベイラビリティーゾーン>)ではサポートされません。• エラーメッセージ: リクエストされたインスタンスタイプ (<インスタンスタイプ>) は、リクエストさ

れたアベイラビリティーゾーン (<インスタンスのアベイラビリティーゾーン>) ではサポートされません。アベイラビリティーゾーンを指定しないか、<このインスタンスタイプをサポートするアベイラビリティーゾーンのリスト> から選択して、再試行します。EC2 インスタンスの起動に失敗しました。

• 原因: お使いの起動設定に関連付けられているインスタンスタイプは、Auto Scaling グループで指定されているアベイラビリティーゾーンでは現在利用できない可能性があります。

• 解決策: エラーメッセージの推奨事項に従って Auto Scaling グループを更新してください。

このサービスに登録されていません。https://aws.amazon.com/ を参照してください。• 原因: お使いの AWS アカウントは有効期限切れの可能性があります。• 解決策:https://aws.amazon.com/ にアクセスして [今すぐサインアップ] ボタンを選択し、新しいアカウ

ントを作成します。

デバイス名のアップロードが無効です。EC2 インスタンスの起動に失敗しました。• 原因: お使いの起動設定のブロックデバイスマッピングに、使用不可または現在サポートされていないブ

ロックデバイス名が含まれている可能性があります。• 解決策:

1. describe-volumes コマンドを使用して、ボリュームをインスタンスに公開する方法を確認します。2. ボリュームの説明にリストされているデバイス名を使用して、新しい起動設定を作成します。

195

Page 203: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドパラメータ virtualName の値 (<インスタンスストレー

ジのデバイスに関連付けられている名前>) は無効です。

3. 新しい起動設定の Auto Scaling グループを、update-auto-scaling-group コマンドを使用して更新します。

パラメータ virtualName の値 (<インスタンスストレージのデバイスに関連付けられている名前>) は無効です。• エラーメッセージ: パラメータ virtualName の値 (<インスタンスストレージデバイスに関連付けられて

いる名前>) は無効です。想定された形式: 'ephemeralNUMBER'。EC2 インスタンスの起動に失敗しました。

• 原因: ブロックデバイスに関連付けられている仮想名の指定形式が正しくありません。• 解決策:

1. virtualName パラメータでデバイス名を指定して、新しい起動設定を作成します。デバイス名の形式の詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「インスタンスストアデバイス名」参照してください。

2. 新しい起動設定の Auto Scaling グループを、update-auto-scaling-group コマンドを使用して更新します。

EBS ブロックデバイスマッピングはインスタンスストア AMI ではサポートされません。• 原因: 起動設定で指定されたブロックデバイスマッピングは、お使いのインスタンスではサポートされま

せん。• 解決策:

1. お使いのインスタンスタイプでサポートされるブロックデバイスマッピングを指定して新しい起動設定を作成します。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「ブロックデバイスのマッピング」を参照してください。

2. 新しい起動設定の Auto Scaling グループを、update-auto-scaling-group コマンドを使用して更新します。

プレイスメントグループは、タイプが 'm1.large' のインスタンスでは使用できません。EC2 インスタンスの起動に失敗しました。• 原因: お使いのクラスタープレイスメントグループに無効なインスタンスタイプが含まれています。• 解決策:

1. プレイスメントグループでサポートされる有効なインスタンスタイプについては、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「プレイスメントグループ」を参照してください。

2. 新しいプレイスメントグループを作成するには、「プレイスメントグループ」の詳細手順に従ってください。

3. または、サポートされるインスタンスタイプで新しい起動設定を作成します。4. update-auto-scaling-group コマンドを使用して、新しいプレイスメントグループまたは起動設定を使

用するように Auto Scaling グループを更新します。

196

Page 204: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドClient.InternalError: 起動時のクライアントエラー。

Client.InternalError: 起動時のクライアントエラー。• 原因: このエラーは、Auto Scaling グループが暗号化された EBS ボリュームがあるインスタンスを起動

する場合、サービスにリンクされたロール (p. 181)が暗号化に使用されたカスタマー管理の CMK へアクセスできない場合に発生することがあります。

• 解決策: Auto Scaling グループがインスタンスを起動できるように追加のセットアップが必要です。エラーを解決するための手順の概要を次の表に示します。詳細については、https://forums.aws.amazon.com/thread.jspa?threadID=277523 を参照してください。

シナリオ 次のステップ

シナリオ 1:

CMK と Auto Scaling グループが、同じAWS アカウントに存在する

サービスにリンクされたロールが CMK を使用できるように、以下を実行します。

1. この Auto Scaling グループで使用するサービスにリンクされたロールを決定します。

2. CMK のキーポリシーを更新して、サービスにリンクされたロールが CMK を使用することを許可します。

3. サービスにリンクされたロールを使用するため、AutoScaling グループを更新します。

シナリオ 2:

CMK と Auto Scaling グループが、異なる AWS アカウントに存在する

考えられる解決策が 2 つあります。

解決策 1: Auto Scaling グループと同じ AWS アカウントのCMK を使用する

1. Auto Scaling グループと同じアカウントに属する別の CMKでスナップショットをコピーして再暗号化します。

2. サービスにリンクされたロールが新しい CMK を使用することを許可します。シナリオ 1 のステップを参照してください。

解決策 2: Auto Scaling グループと異なる AWS アカウントのCMK をそのまま使用する

1. この Auto Scaling グループで使用するサービスにリンクされたロールを決定します。

2. Auto Scaling グループアカウント (ルートユーザー) アクセスを CMK に許可します。

3. 許可を作成できる Auto Scaling グループアカウントで、IAM ユーザーまたはロールを定義します。

4. サービスにリンクされたロールで CMK に被付与者プリンシパルとして許可を作成します。

5. サービスにリンクされたロールを使用するため、AutoScaling グループを更新します。

197

Page 205: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドAMI に関する問題

Amazon EC2 Auto Scaling のトラブルシューティング: AMI に関する問題

このページでは、AMI に関連する問題、考えられる原因、問題を解決するために実行できる手順に関する情報を提供します。

エラーメッセージを取得するには、「エラーメッセージの取得 (p. 191)」を参照してください。

AMI に関する問題が原因で EC2 インスタンスの起動に失敗する場合、以下のエラーメッセージが 1 つ以上表示される可能性があります。

エラーメッセージ• AMI ID <お使いの AMI の ID> は存在しません。EC2 インスタンスの起動に失敗しました。 (p. 198)• AMI <AMI ID> は保留中のため実行できません。EC2 インスタンスの起動に失敗しました。 (p. 198)• パラメータ virtualName の値 (<AMI ID>) は無効です。 (p. 198)• リクエストされたインスタンスタイプのアーキテクチャ(i386)は、ami-6622f00f(x86_64)のマニ

フェストのアーキテクチャと一致しません。EC2 インスタンスの起動に失敗しました。 (p. 199)

AMI ID <お使いの AMI の ID> は存在しません。EC2インスタンスの起動に失敗しました。• 原因: 起動設定の作成後に AMI が削除された可能性があります。• 解決策:

1. 有効な AMI を使用して、新しい起動設定を作成します。2. 新しい起動設定の Auto Scaling グループを、update-auto-scaling-group コマンドを使用して更新しま

す。

AMI <AMI ID> は保留中のため実行できません。EC2インスタンスの起動に失敗しました。• 原因: (実行中のインスタンスのスナップショットを取得するか、またはそのほかの方法で)AMI を作成

したばかりのため、まだ利用可能ではない可能性があります。• 解決策: AMI が利用可能になるのを待ってから、起動設定を作成します。

パラメータ virtualName の値 (<AMI ID>) は無効です。• 原因: 値が正しくありません。virtualName パラメータは、デバイスに関連付けられた仮想名を参照し

ます。• 解決策:

1. virtualName パラメータに、お使いのインスタンスの仮想デバイス名を指定して、新しい起動設定を作成します。

2. 新しい起動設定の Auto Scaling グループを、update-auto-scaling-group コマンドを使用して更新します。

198

Page 206: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイドリクエストされたインスタンスタイプのアーキテクチャ(i386)は、ami-6622f00f(x86_64)のマニフェストのアーキテクチャと一致しません。EC2 インスタンスの起動に失敗しました。リクエストされたインスタンスタイプのアーキテク

チャ(i386)は、ami-6622f00f(x86_64)のマニフェストのアーキテクチャと一致しません。EC2 インスタンスの起動に失敗しました。• 原因: 起動設定で指定されている InstanceType のアーキテクチャがイメージのアーキテクチャと一致

しません。• 解決策:

1. リクエストされたインスタンスタイプのアーキテクチャと一致する AMI アーキテクチャを使用して、新しい起動設定を作成します。

2. 新しい起動設定の Auto Scaling グループを、update-auto-scaling-group コマンドを使用して更新します。

Amazon EC2 Auto Scaling のトラブルシューティング: ロードバランサーに関する問題

このページでは、Auto Scaling グループに関連付けられているロードバランサーが原因で発生する問題、考えられる原因、問題を解決するために実行できる手順に関する情報を提供します。

エラーメッセージを取得するには、「エラーメッセージの取得 (p. 191)」を参照してください。

Auto Scaling グループに関連付けられているロードバランサーに関する問題が原因で EC2 インスタンスが起動しない場合、以下のエラーメッセージが 1 つ以上表示される可能性があります。

エラーメッセージ• ロードバランサー <お使いの起動環境> が見つかりません。ロードバランサーの設定の確認が失敗しま

した。 (p. 199)• <ロードバランサー名> という名前のアクティブなロードバランサーはありません。ロードバランサー

の設定の更新が失敗しました。 (p. 200)• EC2 インスタンス <インスタンス ID> は VPC にありません。ロードバランサーの設定の更新が失敗し

ました。 (p. 200)• EC2 インスタンス <インスタンス ID> は VPC にあります。ロードバランサーの設定の更新が失敗しま

した。 (p. 200)• リクエストに含まれているセキュリティトークンが無効です。ロードバランサーの設定の確認が失敗

しました。 (p. 200)

ロードバランサー <お使いの起動環境> が見つかりません。ロードバランサーの設定の確認が失敗しました。• 原因 1: このロードバランサーは削除されました。• 解決策 1:

1. ロードバランサーがまだ存在しているかどうかを確認してください。describe-load-balancers コマンドを使用できます。

199

Page 207: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド<ロードバランサー名> という名前のアクティ

ブなロードバランサーはありません。ロードバランサーの設定の更新が失敗しました。

2. お使いのロードバランサーが応答にリストされている場合は、原因 2 を参照してください。3. お使いのロードバランサーが応答に表示されていない場合は、新しいロードバランサーを作成してか

ら新しい Auto Scaling グループを作成するか、ロードバランサーを指定せずに新しい Auto Scaling グループを作成することができます。

• 原因 2: Auto Scaling グループの作成時に、ロードバランサーの名前が正しい順序で指定されませんでした。

• 解決策 2: 新しい Auto Scaling グループを作成し、最後にロードバランサーの名前を指定します。

<ロードバランサー名> という名前のアクティブなロードバランサーはありません。ロードバランサーの設定の更新が失敗しました。• 原因: 指定されたロードバランサーが削除された可能性があります。• 解決策: 新しいロードバランサーを作成してから新しい Auto Scaling グループを作成するか、または

ロードバランサーを指定せずに新しい Auto Scaling グループを作成することができます。

EC2 インスタンス <インスタンス ID> は VPC にありません。ロードバランサーの設定の更新が失敗しました。• 原因: 指定されたインスタンスは VPC に存在しません。• 解決策: インスタンスに関連付けられているロードバランサーを削除するか、新しい Auto Scaling グ

ループを作成することができます。

EC2 インスタンス <インスタンス ID> は VPC にあります。ロードバランサーの設定の更新が失敗しました。• 原因: ロードバランサーは EC2-Classic にありますが、Auto Scaling グループは VPC 内にあります。• 解決策: ロードバランサーと Auto Scaling グループが同じネットワーク(EC2-Classic または VPC)に

あることを確認します。

リクエストに含まれているセキュリティトークンが無効です。ロードバランサーの設定の確認が失敗しました。• 原因: お使いの AWS アカウントは有効期限切れの可能性があります。• 解決策: お使いの AWS アカウントが有効かどうか確認します。https://aws.amazon.com/ にアクセスし

て [今すぐサインアップ] を選択し、新しいアカウントを作成します。

200

Page 208: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド容量制限

Auto Scaling のトラブルシューティング;: 容量の制限

このページでは、Auto Scaling グループの容量制限に関連する問題、考えられる原因、問題を解決するために実行できる手順に関する情報を提供します。Amazon EC2 Auto Scaling の制限事項の詳細については、「Amazon EC2 Auto Scaling の制限 (p. 10)」を参照してください。

エラーメッセージを取得するには、「エラーメッセージの取得 (p. 191)」を参照してください。

Auto Scaling グループの容量制限に関する問題が原因で EC2 インスタンスが起動しない場合、以下のエラーメッセージが 1 つ以上表示される可能性があります。

エラーメッセージ• 現在、リクエストされたアベイラビリティーゾーン (<リクエストされたアベイラビリティーゾーン>)

に十分な <インスタンスタイプ> 容量がありません。 (p. 201)• <インスタンス数> 個のインスタンスがすでに実行中です。EC2 インスタンスの起動に失敗しまし

た。 (p. 201)

現在、リクエストされたアベイラビリティーゾーン (<リクエストされたアベイラビリティーゾーン>) に十分な <インスタンスタイプ> 容量がありません。• エラーメッセージ: 現在、リクエストされたアベイラビリティーゾーン (<リクエストされたアベイラビ

リティーゾーン>) に十分な <インスタンスタイプ> 容量がありません。追加の容量をプロビジョニングする作業を進めます。現時点では、リクエストでアベイラビリティーゾーンを指定しないか、<このインスタンスタイプを現在サポートしているアベイラビリティーゾーンのリスト> から選択することによって、<インスタンスタイプ> の容量を取得できます。EC2 インスタンスの起動に失敗しました。

• 原因: Auto Scaling は現時点では、リクエストされたアベイラビリティーゾーンでお使いのインスタンスタイプをサポートできません。

• 解決策:1. エラーメッセージの推奨事項に従って新しい起動設定を作成します。2. 新しい起動設定の Auto Scaling グループを、update-auto-scaling-group コマンドを使用して更新しま

す。

<インスタンス数> 個のインスタンスがすでに実行中です。EC2 インスタンスの起動に失敗しました。• 原因: Auto Scaling グループは、DesiredCapacity パラメータで設定された制限に達しました。• 解決策:

• update-auto-scaling-group コマンドを使用して、--desired-capacity パラメータに新しい値を指定して Auto Scaling グループを更新します。

• EC2 インスタンス数の制限に達した場合は、その増数をリクエストできます。詳細については、「AWS サービスの制限」を参照してください。

201

Page 209: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

Auto Scaling リソースこのサービスを利用する際に役立つ関連リソースは以下の通りです。

• Amazon EC2 Auto Scaling – Amazon EC2 Auto Scaling に関する情報のメインのウェブページです。• Amazon EC2 技術面のよくある質問 – Amazon EC2 および Amazon EC2 Auto Scaling に関してお客様

から寄せられる質問への回答です。• Amazon EC2 ディスカッションフォーラム – コミュニティからサポートを得られます。• AWS Auto Scaling ユーザーガイド – AWS Auto Scaling コンソールでは、複数のサービスのスケーリン

グ機能をより簡単に使用できます。AWS Auto Scaling では、Auto Scaling グループの動的スケーリングポリシーを定義するプロセスがシンプルになり、予測されるトラフィックの変化に先立って予測スケーリングを使用して Amazon EC2 容量をスケーリングすることもできます。

AWS の詳細を参照するために、以下の追加リソースを利用できます。

• クラスとワークショップ – AWS に関するスキルを磨き、実践的経験を積むために役立つ、職務別の特別コースとセルフペースラボへのリンクです。

• AWS 開発者用ツール – AWS アプリケーションの開発と管理のための開発者ツール、SDK、IDE ツールキット、およびコマンドラインツールへのリンクです。

• AWS ホワイトペーパー – アーキテクチャ、セキュリティ、エコノミクスなどのトピックをカバーし、AWS のソリューションアーキテクトや他の技術エキスパートによって書かれた、技術的な AWS ホワイトペーパーの包括的なリストへのリンクです。

• AWS サポートセンター – AWS サポートケースを作成および管理するためのハブです。フォーラム、技術上のよくある質問、サービス状態ステータス、AWS Trusted Advisor などの便利なリソースへのリンクも含まれています。

• AWS サポート – 1 対 1 での迅速な対応を行うサポートチャネルである AWS サポートに関する情報のメインウェブページです。AWS サポートは、クラウドでのアプリケーションの構築および実行を支援します。

• お問い合わせ – AWS の支払、アカウント設定その他に関する連絡先です。• AWS サイトの利用規約 – 当社の著作権、商標、お客様のアカウント、ライセンス、サイトへのアクセ

ス、およびその他のトピックに関する詳細情報です。

202

Page 210: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

ドキュメント履歴次の表は、2018 年 7 月以降の Amazon EC2 Auto Scaling ドキュメントへの重要な追加項目をまとめたものです。このドキュメントの更新に関する通知については、RSS フィードにサブスクライブできます。

update-history-change update-history-description update-history-date

インスタンスタイプの推奨事項 (p. 203)

AWS Compute Optimizer は、パフォーマンスの向上、コストの削減、またはその両方に役立つ Amazon EC2 インスタンスの推奨事項を提供します。詳細については、Amazon EC2Auto Scaling ユーザーガイド のGetting Recommendations for anInstance Type を参照してください。

December 3, 2019

Dedicated Hosts とホストリソースグループ (p. 203)

ホストリソースグループを指定する起動テンプレートの作成方法を示すガイドを更新しました。これにより、Dedicated Hosts で使用する BYOL AMI を指定する起動テンプレートを使用して AutoScaling グループを作成できます。詳細については、『AmazonEC2 Auto Scaling ユーザーガイド』の「Auto Scaling グループの起動テンプレートの作成」を参照してください。

December 3, 2019

Amazon VPC エンドポイントのサポート (p. 203)

これで、VPC と Amazon EC2Auto Scaling との間でプライベート接続を確立できます。詳細については、Amazon EC2Auto Scaling ユーザーガイド の「Amazon EC2 Auto Scaling とインターフェイス VPC エンドポイント」を参照してください。

November 22, 2019

最大インスタンス有効期間 (p. 203)

インスタンスが稼働できる最大時間を指定することにより、インスタンスを自動的に置き換えることができるようになりました。インスタンスがこの制限に近づくにつれ、Amazon EC2 AutoScaling は段階的にそれらのインスタンスを置き換えます。詳細については、Amazon EC2 AutoScaling ユーザーガイド の「最大インスタンス有効期間に基づいたAuto Scaling インスタンスの置き換え」を参照してください。

November 19, 2019

203

Page 211: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

インスタンスの重み付け (p. 203)

複数のインスタンスタイプを含むAuto Scaling グループの場合、オプションで、各インスタンスタイプからグループの容量に割り当てる容量の単位数を定義できるようになりました。詳細については、Amazon EC2 Auto Scalingユーザーガイド の「AmazonEC2 Auto Scaling のインスタンスの重み付け」を参照してください。

November 19, 2019

インスタンスタイプの最小数 (p. 203)

スポット、オンデマンド、リザーブドインスタンスのグループに、追加のインスタンスタイプを指定する必要がなくなりました。すべての Auto Scaling グループで、インスタンスタイプの最小値が1 つになりました。詳細については、Amazon EC2 Auto Scalingユーザーガイド の「複数のインスタンスタイプおよび購入オプションを使用する Auto Scalingグループ」を参照してください。

September 16, 2019

新しいスポット配分戦略のサポート (p. 203)

Amazon EC2 Auto Scaling は、使用可能なスポット容量に基づいて選択された最適なスポットインスタンスプールを使用してリクエストを満たす、新しい「容量最適化」スポット配分戦略をサポートするようになりました。詳細については、Amazon EC2 AutoScaling ユーザーガイド の「複数のインスタンスタイプおよび購入オプションを使用する AutoScaling グループ」を参照してください。

August 12, 2019

ガイドの変更点 (p. 203) Amazon EC2 Auto Scaling ドキュメントの「サービスにリンクされたロール」および「暗号化されたボリュームで使用するのに必要な CMK キーポリシー」トピックを改訂しました。

August 1, 2019

タグ付けのサポートの強化 (p. 203)

Amazon EC2 Auto Scaling では、インスタンスを起動する同じAPI コールの一環として AmazonEC2 インスタンスにタグを追加するようになりました。詳細については「Auto Scaling グループとインスタンスへのタグ付け」を参照してください。

July 26, 2019

204

Page 212: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

ガイドの変更点 (p. 203) Amazon EC2 Auto Scaling ドキュメントの「スケーリングプロセスの中断と再開」トピックを改訂しました。更新された「カスタマー管理ポリシーの例」には、カスタムサフィックス付きの特定のサービスにリンクされたロールのみを Amazon EC2 Auto Scalingに渡すことをユーザーに許可するポリシーの例が含まれています。

June 13, 2019

新しい Amazon EBS 機能のサポート (p. 203)

起動テンプレートのトピックに新しい Amazon EBS 機能のサポートを追加しました。スナップショットからの復元中に EBS ボリュームの暗号化状態を変更します。詳細については、AmazonEC2 Auto Scaling ユーザーガイド の「Auto Scaling グループの起動テンプレートの作成」を参照してください。

May 13, 2019

ガイドの変更点 (p. 203) Amazon EC2 Auto Scaling ドキュメントの以下のセクションを改訂しました。「スケールイン中に終了する Auto Scaling インスタンスのコントロール」、「Auto Scaling グループ」、「複数のインスタンスタイプおよびグループ購入オプションを使用する Auto Scaling グループ」、「Amazon EC2 Auto Scaling の動的スケーリング」。

March 12, 2019

インスタンスタイプおよび購入オプションの組み合わせのサポート (p. 203)

1 つの Auto Scaling グループ内で、購入オプション (スポット、オンデマンド、リザーブドインスタンス) およびインスタンスタイプ間でインスタンスをプロビジョニングおよび自動的にスケーリングします。詳細については、Amazon EC2 Auto Scalingユーザーガイド の「複数のインスタンスタイプおよび購入オプションを使用する Auto Scalingグループ」を参照してください。

November 13, 2018

Amazon SQS に基づくスケーリングのトピックが更新されました (p. 203)

Amazon SQS キューの需要の変化に応じて、カスタムメトリクスを使用して Auto Scaling グループをスケールする方法を説明するガイドが更新されました。詳細については、『Amazon EC2Auto Scaling ユーザーガイド』の「Amazon SQS に基づくスケーリング」を参照してください。

July 26, 2018

205

Page 213: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

次の表は、2018 年 7 月以前の Amazon EC2 Auto Scaling ドキュメントへの重要な変更点をまとめたものです。

機能 説明 リリース日

ターゲット追跡スケーリングポリシーのサポート

わずかなステップで、アプリケーションの動的スケーリングを設定します。詳細については、「Amazon EC2 AutoScaling のターゲット追跡スケーリングポリシー」を参照してください。

2017年7月12日

リソースレベルのアクセス許可のサポート

リソースレベルでアクセスを制御する IAM ポリシーを作成します。詳細については、「Amazon EC2 Auto Scaling リソースに対するアクセスのコントロール」を参照してください。

2017 年 5 月 15 日

改善のモニタリング

Auto Scaling グループメトリクスでは、詳細モニタリングを有効にする必要はなくなりました。コンソールの [Monitoring]タブから、グループメトリクスの収集とメトリクスグラフの表示を有効にできるようになりました。詳細については、「Amazon CloudWatch を使用した Auto Scaling グループとインスタンスのモニタリング」を参照してください。

2016 年 8 月 18 日

Application LoadBalancer のサポート

新しいまたは既存の Auto Scaling グループに 1 つまたは複数のターゲットグループをアタッチします。詳細については、「Auto Scaling グループにロードバランサーをアタッチする」を参照してください。

2016 年 8 月 11 日

ライフサイクルフックのイベント

Amazon EC2 Auto Scaling はライフサイクルフックを実行すると、CloudWatch イベント にイベントを送信します。詳細については、「Auto Scaling グループスケーリング時のCloudWatch イベント の取得」を参照してください。

2016 年 2 月 24 日

インスタンスの保護

スケールインする際に、Amazon EC2 Auto Scaling が終了させる特定のインスタンスを選択するのを防ぎます。詳細については、「インスタンスの保護」を参照してください。

2015 年 12 月 07日

ステップスケーリングポリシー

超過アラームのサイズに基づいてスケールできるようになるスケーリングポリシーを作成します。詳細については、「スケーリングポリシータイプ」を参照してください。

2015 年 7 月 6 日

ロードバランサーの更新

既存の Auto Scaling グループに対してロードバランサーをアタッチ/デタッチできるようになりました。詳細については、「Auto Scaling グループにロードバランサーをアタッチする」を参照してください。

2015 年 6 月 11 日

ClassicLink のサポート

Auto Scaling グループの EC2-Classic インスタンスを VPCにリンクすることで、これらのリンクされた EC2-Classic インスタンスと VPC 内のインスタンスがプライベート IP アドレスを使用して通信できるようになりました。詳細については、「EC2-Classic インスタンスの VPC へのリンク」を参照してください。

2015 年 1 月 19 日

ライフサイクルフック

新しく起動されたインスタンスまたは終了中のインスタンスに対してアクションを実行する間、これらのインスタンスを保留状態に維持できるようになりました。詳細については、「Amazon EC2 Auto Scaling ライフサイクルフック」を参照してください。

2014 年 7 月 30 日

206

Page 214: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

機能 説明 リリース日

インスタンスのデタッチ

Auto Scaling グループからインスタンスをデタッチします。詳細については、「Auto Scaling グループから EC2 インスタンスをデタッチする」を参照してください。

2014 年 7 月 30 日

Standby 状態へのインスタンスの移行

InService 状態にあるインスタンスを Standby 状態に移行できるようになりました。詳細については、「Auto Scalingグループからのインスタンスの一時的な削除」を参照してください。

2014 年 7 月 30 日

タグの管理 AWS マネジメントコンソール を使用して Auto Scaling グループを管理できるようになりました。詳細については「Auto Scaling グループとインスタンスへのタグ付け」を参照してください。

2014 年 5 月 01 日

ハードウェア専有インスタンスのサポート

起動設定を作成するときにプレイスメントテナンシー属性を指定して、ハードウェア専有インスタンスを起動できるようになりました。詳細については、「インスタンスのプレイスメントテナンシー」を参照してください。

2014 年 4 月 23 日

EC2 インスタンスからのグループまたは起動設定の作成

EC2 インスタンスを使用して Auto Scaling グループまたは起動設定を作成できるようになりました。EC2 インスタンスを使用して起動設定を作成する方法については、「EC2 インスタンスを使用した起動設定の作成」を参照してください。EC2 インスタンスを使用して Auto Scaling グループを作成する方法については、「EC2 インスタンスを使用した AutoScaling グループの作成」を参照してください。

2014 年 1 月 2 日

インスタンスのアタッチ

インスタンスを既存の Auto Scaling グループにアタッチして、EC2 インスタンスに対する自動スケーリングを有効にできるようになりました。詳細については、「Auto Scaling グループへの EC2 インスタンスのアタッチ」を参照してください。

2014 年 1 月 2 日

アカウントの制限の表示

アカウントの Auto Scaling リソースの制限を表示できるようになりました。詳細については、「Auto Scaling の制限」を参照してください。

2014 年 1 月 2 日

コンソールでのAmazon EC2 AutoScaling のサポート

AWS マネジメントコンソール を使用した Amazon EC2 AutoScaling へのアクセス。詳細については、「Amazon EC2Auto Scaling の開始方法」を参照してください。

2013 年 12 月 10日

パブリック IP アドレスの割り当て

VPC で起動されるインスタンスにパブリック IP アドレスの割り当てられるようになりました。詳細については、「VPCでの Auto Scaling インスタンスの起動」を参照してください。

2013 年 9 月 19 日

インスタンス終了ポリシー

EC2 インスタンスを終了するときに Amazon EC2 AutoScaling で使用するインスタンス終了ポリシーを指定できるようになりました。詳細については、「スケールイン時にどのAuto Scaling インスタンスを削除するかを制御する」を参照してください。

2012 年 9 月 17 日

207

Page 215: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

機能 説明 リリース日

IAM ロールのサポート

IAM インスタンスプロファイルを使用して EC2 インスタンスを起動できるようになりました。この機能を使用してインスタンスに IAM ロールを割り当てると、アプリケーションは他の AWS サービスに安全にアクセスできます。詳細については、「IAM ロールを使用した Auto Scaling インスタンスの起動」を参照してください。

2012 年 6 月 11 日

スポットインスタンスのサポート

スポットインスタンスの入札価格を起動設定に指定することで、Auto Scaling グループのスポットインスタンスをリクエストできるようになりました。詳細については、「AutoScaling グループのスポットインスタンスの起動」を参照してください。

2012 年 6 月 7 日

グループとインスタンスへのタグ付け

Auto Scaling グループにタグを付けることができるようになりました。さらに、タグの作成後に起動された EC2 インスタンスにもタグが適用されるように指定できるようになりました。詳細については「Auto Scaling グループとインスタンスへのタグ付け」を参照してください。

2012 年 1 月 26 日

Amazon SNS のサポート

Amazon SNS を使用して、Amazon EC2 Auto Scaling によるEC2 インスタンスの起動または終了のたびに、通知を受け取れるようになりました。詳細については、「Auto Scaling グループのスケーリング時の SNS 通知の取得」を参照してください。

また、Amazon EC2 Auto Scaling には以下の新機能も追加されました。

• 構文を使用して反復的なスケーリングアクティビティを設定する機能。詳細については、PutScheduledUpdateGroupAction API コマンドを参照してください。

• 起動されたインスタンスをロードバランサー(LoadBalancer)に追加せずにスケールアウトすることを可能にする新しい設定。詳細については、ProcessTypeAPI データ型を参照してください。

• DeleteAutoScalingGroup オペレーションのForceDelete フラグ。このフラグを付けてこのコマンドを実行すると、指定した Auto Scaling グループは関連付けられているインスタンスの削除を待たずにすぐに削除するよう Amazon EC2 Auto Scaling に指示されます。詳細については、DeleteAutoScalingGroup API オペレーションを参照してください。

2011 年 7 月 20 日

スケジュールされたスケーリングアクション

スケジュールに基づくスケーリングアクションのために追加されたサポート。詳細については、「Amazon EC2 AutoScaling のスケジュールに基づくスケーリング」を参照してください。

2010 年 12 月 2 日

Amazon VPC のサポート

Amazon VPC のサポートが追加されました。詳細については、「VPC での Auto Scaling インスタンスの起動」を参照してください。

2010 年 12 月 2 日

HPC クラスターのサポート

ハイパフォーマンスコンピューティング(HPC)クラスターのサポートが追加されました。

2010 年 12 月 2 日

208

Page 216: Amazon EC2 Auto Scaling (日本語) - ユーザーガイド · Amazon EC2 Auto Scaling (日本語) ユーザーガイド Amazon EC2 Auto Scaling とは

Amazon EC2 Auto Scaling (日本語) ユーザーガイド

機能 説明 リリース日

ヘルスチェックのサポート

Amazon EC2 Auto Scaling によって管理される EC2 インスタンスの Elastic Load Balancing ヘルスチェックがサポートされるようになりました。詳細については、「Auto Scaling での ELB ヘルスチェックの使用」を参照してください。

2010 年 12 月 2 日

CloudWatch アラームのサポート

古いトリガーメカニズムが削除され、CloudWatch アラーム機能を使用するように Amazon EC2 Auto Scaling が設計し直されました。詳細については、「Amazon EC2 Auto Scalingの動的なスケーリング」を参照してください。

2010 年 12 月 2 日

スケーリングの停止と再開

スケーリングプロセスを停止および再開するために追加されたサポート。

2010 年 12 月 2 日

IAM のサポート IAM のサポートが追加されました。詳細については、「Amazon EC2 Auto Scaling リソースに対するアクセスのコントロール」を参照してください。

2010 年 12 月 2 日

209