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

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

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

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

前提条件

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

考慮事項

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

  • 起動テンプレートを使用すると、1 種類のインスタンスか、インスタンスタイプとオンデマンドおよびスポット購入のオプションの組み合わせを起動する柔軟性が得られます。詳細については、「複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ」を参照してください。次のような組み合わせでインスタンスを起動することはできません。

    • [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 を選択して特定のホストを対象にすることはできません。

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

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

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

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

  3. [起動テンプレートの作成] を選択します。名前を入力し、起動テンプレートの最初のバージョンの説明を加えます。

  4. [Launch template contents (軌道テンプレートのコンテンツ)] で、各必須フィールドと、インスタンス起動仕様として使用するオプションフィールドに入力します。

    1. [Amazon Machine Image (AMI)]: インスタンスを起動する AMI の ID を選択します。使用可能なすべての AMI を検索するか、[クイックスタート] リストから、リスト内でよく使用される AMI の 1 つを選択します。必要な AMI が見つからない場合は、適切な AMI を見つけて、その ID を書き留め、カスタム値として指定することができます。

    2. (推奨)[インスタンスタイプ]: インスタンスタイプを選択します。インスタンスタイプが、指定した AMI と互換性があることを確認します。

    3. (推奨) [キーペア (ログイン)]: インスタンスへの接続時に使用するキーペアを指定します。

  5. [ネットワーク設定] で、1 つ以上の VPC または EC2-Classic セキュリティグループを設定するには、次のステップを実行します。

    1. [Networking platform (ネットワークプラットフォーム)] で、インスタンスを VPC か EC2-Classic のどちらに起動するかを選択します(該当する場合)。ただし、Auto Scaling グループの設定が優先されるため、Amazon EC2 Auto Scaling に対して起動テンプレートのネットワークタイプとアベイラビリティーゾーンの設定は無視されます。

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

  6. 起動する各インスタンスには、Amazon EBS ボリュームまたはインスタンスストアボリュームという、どちらかのルートデバイスボリュームが関連付けられています。追加の EBS ボリュームまたはインスタンスストアボリュームを指定してインスタンスの起動時にインスタンスにアタッチできます。ボリュームを指定してインスタンスにアタッチする場合は(AMI で指定されたボリュームは含まない)、[ストレージ (ボリューム)] で、[Add new volume (新しいボリュームの追加)] を選択し、次の情報を入力します。

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

    2. [デバイス名]: ボリュームのデバイス名を指定します。

    3. [スナップショット]: ボリュームを作成するスナップショットの ID を入力します。

    4. [サイズ (GiB)]: Amazon EBS-Backed ボリュームについては、ストレージサイズを指定します。スナップショットからボリュームを作成しており、ボリュームサイズを指定しない場合のデフォルトはスナップショットサイズです。

    5. ボリュームタイプ: Amazon EBS ボリュームで、ボリュームタイプを選択します。

    6. IOPS: プロビジョンド IOPS の SSD ボリュームで、ボリュームでサポートする IOPS (1 秒あたりの入力/出力オペレーションの数) の最大数を入力します。

    7. 終了時に削除: Amazon EBS ボリュームで、関連付けられたインスタンスの終了時にボリュームを削除するかどうかを選択します。

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

      暗号化の結果
      Encrypted パラメータの設定 ボリュームのソース デフォルトの暗号化状態 注意
      No (いいえ) 新しい (空の) ボリューム 暗号化されていない* 該当なし
      所有する暗号化されていないスナップショット 暗号化されていない*
      お客様が所有する暗号化されたスナップショット 同じキーで暗号化されている
      お客様と共有されている暗号化されていないスナップショット 暗号化されていない*
      お客様と共有されている暗号化されたスナップショット デフォルト CMK で暗号化されている
      はい 新しいボリューム デフォルト CMK で暗号化されている デフォルト以外の CMK を使用するには、[Key (キー)] パラメータの値を指定します。
      所有する暗号化されていないスナップショット デフォルト CMK で暗号化されている
      お客様が所有する暗号化されたスナップショット 同じキーで暗号化されている
      お客様と共有されている暗号化されていないスナップショット デフォルト CMK で暗号化されている
      お客様と共有されている暗号化されたスナップショット デフォルト CMK で暗号化されている

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

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

      注記

      [暗号化済み] パラメータも設定せずに CMK を指定するとエラーが発生します。

  7. [Instance tags (インスタンスタグ)] で、キーと値の組み合わせをタグとして指定します。インスタンス、ボリューム、またはその両方にタグ付けできます。

  8. [ネットワークインターフェイス] で、[ネットワークインターフェイスの追加] を選択し、オプションで以下の情報を入力します。VPC でインスタンスを起動するときは、プライマリネットワークインターフェイス (eth0) と呼ばれるデフォルトのネットワークインターフェイスを指定できます。ネットワークインターフェイスは 1 つのみ指定できます。以下のフィールドに注意してください。

    1. デバイス: eth0 をデバイス名として指定します (デバイスインデックスが 0 のデバイス)。

    2. ネットワークインターフェイス: 空白のままにして、インスタンス起動時に AWS によって新しいネットワークインターフェイスを作成するか、既存のネットワークインターフェイスの ID を入力します。ID を指定すると、Auto Scaling グループは 1 つのインスタンスに制限されます。

    3. 説明: わかりやすい名前を入力します。

    4. [サブネット]: サブネットを指定することはできますが、Auto Scaling グループの設定が優先されるため、Amazon EC2 Auto Scaling に対してサブネットは無視されます。

    5. [自動割り当てパブリック IP]: eth0 のデバイスインデックスを持つネットワークインターフェイスに、自動的にパブリック IP アドレスを割り当てるかどうかを指定します。この設定は、1 つの新しいネットワークインターフェイスにのみ有効にすることができます。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「インスタンス起動時のパブリック IPv4 アドレスの割り当て」を参照してください。

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

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

  9. [高度な詳細] では、セクションを開いてフィールドを表示し、インスタンスの追加パラメータを指定します。

    • 購入のオプション: スポットインスタンスをリクエストし、1 つのインスタンスで 1 時間ごとに支払うことができる上限価格を指定するオプションがあります。このオプションで Auto Scaling グループを操作するには、終了日なしのワンタイムリクエストを指定する必要があります。詳細については、「Auto Scaling グループのスポットインスタンスの起動」を参照してください。

      重要

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

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

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

    • [Stop - Hibernate behavior (停止 - 休止動作)]: Amazon EC2 Auto Scaling では無視されるため、このフィールドは空白のままにします。Amazon EC2 Auto Scaling のデフォルトの動作は、インスタンスの終了です。

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

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

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

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

    • 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 にのみ有効。

    • [License configurations (ライセンス設定)]: 使用するライセンス設定を指定できます。

    • [ユーザーデータ]: 起動時にインスタンスを設定するユーザーデータ、または設定スクリプトを実行するユーザーデータを指定できます。

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

新しい EC2 コンソールを現在使用していない場合は、古い EC2 コンソールを使用して起動テンプレートを作成できます。

Auto Scaling グループの新しい起動テンプレートを作成するには(古い EC2 コンソール)

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

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

  3. [新しいテンプレートの作成] を選択します。名前を入力し、起動テンプレートの最初のバージョンの説明を加えます。

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

    1. [ソーステンプレート] で、既存の起動テンプレートを選択します。

    2. 新しい起動テンプレートのベースとなる起動テンプレートのバージョンを [ソーステンプレートのバージョン] から選択します。

  5. [起動テンプレートの内容] で、次の情報を指定します。

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

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

    3. キーペア名: インスタンスへの接続時に使用するキーペアを指定します。

    4. ネットワークタイプ: インスタンスを VPC と EC2-Classic のどちらに起動するかを選択します (該当する場合)。ただし、Auto Scaling グループの設定が優先されるため、Amazon EC2 Auto Scaling に対して起動テンプレートのネットワークタイプとアベイラビリティーゾーンの設定は無視されます。

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

  6. [ネットワークインターフェイス] で、プライマリネットワークインターフェイス (eth0) を指定します。ネットワークインターフェイスは 1 つのみ指定できます。

  7. [ストレージ (ボリューム)] で、ブロックデバイスマッピングを使用して、インスタンスの追加のストレージボリュームを指定します。

  8. [Instance tags (インスタンスタグ)] で、キーと値の組み合わせをタグとして指定します。インスタンス、ボリューム、またはその両方にタグ付けできます。

  9. [高度な詳細] では、セクションを開いてフィールドを表示し、インスタンスの追加パラメータを指定します。

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

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

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

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

  3. インスタンスを選び、[アクション]、[Create Template from Instance (インスタンスからテンプレートを作成)] の順に選択します。

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

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

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

以下のように 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" ], "AssociatePublicIpAddress": true } ] }, "DefaultVersion": true, "CreateTime": "2019-02-28T19:52:27.000Z" } ] }