

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Amazon EC2 Auto Scaling と統合された サービス
<a name="ec2-auto-scaling-integrations"></a>

Amazon EC2 Auto Scaling は、他の AWS サービスと統合できます。各サービスが Amazon EC2 Auto Scaling と連動する方法については、以下の統合オプションをご確認ください。

**Topics**
+ [リスクがあるスポットインスタンスを置き換えるための Auto Scaling でのキャパシティの再調整](ec2-auto-scaling-capacity-rebalancing.md)
+ [キャパシティ予約を使用して特定のアベイラビリティーゾーンでキャパシティを予約する](use-ec2-capacity-reservations.md)
+ [を使用してコマンドラインから Auto Scaling グループを作成する AWS CloudShell](create-auto-scaling-groups-with-cloudshell.md)
+ [を使用して Auto Scaling グループを作成する AWS CloudFormation](creating-auto-scaling-groups-with-cloudformation.md)
+ [でインスタンスタイプのレコメンデーションを取得する AWS Compute Optimizer](asg-getting-recommendations.md)
+ [Elastic Load Balancing を使用して Auto Scaling グループ内で受信アプリケーショントラフィックを分散する](autoscaling-load-balancer.md)
+ [VPC Lattice ターゲットグループを使用してトラフィックフローを管理する](ec2-auto-scaling-vpc-lattice.md)
+ [Auto Scaling イベントの処理に EventBridge を使用する](automating-ec2-auto-scaling-with-eventbridge.md)
+ [Amazon VPC を使用して Auto Scaling インスタンスにネットワーク接続を提供する](asg-in-vpc.md)

# リスクがあるスポットインスタンスを置き換えるための Auto Scaling でのキャパシティの再調整
<a name="ec2-auto-scaling-capacity-rebalancing"></a>

Auto Scaling でのキャパシティの再調整は、中断のリスクがあるスポットインスタンスをプロアクティブに置き換えることで、ワークロードの可用性を維持するのに役立ちます。

スポットインスタンスの中断リスクが高い場合、Amazon EC2 スポットサービスは、Amazon EC2 Auto Scaling に EC2 インスタンスの再調整レコメンデーションを送信します。キャパシティの再調整を有効にすると、Auto Scaling は、EC2 インスタンスの再調整レコメンデーションを受け取ったグループ内のスポットインスタンスをプロアクティブに置き換えようとします。これは、ワークロードを中断リスクが低い新しいスポットインスタンスに再調整する機会を提供します。

キャパシティの再調整が無効化されていると、Auto Scaling は、Amazon EC2 スポットサービスがインスタンスを中断し、それらのヘルスチェックが失敗するまでスポットインスタンスを置き換えません。Amazon EC2 は常に、インスタンスを中断する前に EC2 インスタンスの再調整レコメンデーションと、スポットインスタンスの中断 2 分前の通知の両方を提供します。

**Topics**
+ [概要:](#capacity-rebalancing-overview)
+ [キャパシティーの再調整の動作](#capacity-rebalancing-behavior)
+ [考慮事項](#capacity-rebalancing-considerations)
+ [キャパシティの再調整を有効にして、リスクがあるスポットインスタンスをプロアクティブに置き換える](enable-capacity-rebalancing-console-cli.md)

## 概要:
<a name="capacity-rebalancing-overview"></a>

Auto Scaling グループでキャパシティの再調整を使用するための基本的な手順は、以下のとおりです。

1. 複数のインスタンスタイプとアベイラビリティーゾーンを使用するように Auto Scaling グループを設定します。そうすることで、Amazon EC2 Auto Scaling は各アベイラビリティーゾーンでスポットインスタンスの利用可能なキャパシティを検討できるようになります。詳細については、「[複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ](ec2-auto-scaling-mixed-instances-groups.md)」を参照してください。

1. 必要に応じてライフサイクルフックを追加して、再調整通知を受け取るインスタンス内でアプリケーションを正常にシャットダウンします。詳細については、「[Amazon EC2 Auto Scaling のライフサイクルフック](lifecycle-hooks.md)」を参照してください。

   以下は、ライフサイクルフックを使用するいくつかの理由です。
   + Amazon SQS ワーカーの正常なシャットダウンのために
   + ドメインネームシステム (DNS) からの登録解除を完了するには
   + システムログまたはアプリケーションログをプルし、Amazon Simple Storage Service (Amazon S3) にアップロードするには

1. ライフサイクルフックのカスタムアクションを開発します。カスタムアクションを呼び出すには、インスタンスの終了の準備が整ったタイミングを知る必要があります。インスタンスのライフサイクル状態を検出することでタイミングを確認します。
   + インスタンスの外部でアクションを呼び出すには、EventBridge ルールを作成し、イベントパターンがルールに一致したときに実行するアクションを自動化できます。
   + インスタンス内でアクションを呼び出すには、シャットダウンスクリプトを実行し、インスタンスのメタデータを介してライフサイクルスの状態を取得するようにインスタンスを設定します。

   カスタムアクションが 2 分以内に終了するように設計することが重要です。これにより、インスタンス終了前にタスクを完了するのに十分な時間が確保されます。

これらの手順を完了すると、キャパシティの再調整を使用できるようになります。

## キャパシティーの再調整の動作
<a name="capacity-rebalancing-behavior"></a>

キャパシティの再調整では、インスタンスが再調整レコメンデーションを受け取ると、Amazon EC2 Auto Scaling は次のように動作します。
+ 新しいスポットインスタンスの起動時、Amazon EC2 Auto Scaling は、新しいインスタンスがヘルスチェックに合格するまで待機してから、以前のインスタンスを終了させます。複数のインスタンスを置き換える場合、以前の各インスタンスの終了は、新しいインスタンスが起動され、ヘルスチェックに合格してから開始されます。
+ Amazon EC2 Auto Scaling は以前のインスタンスを終了する前に新しいインスタンスの起動を試みるため、指定された最大キャパシティに到達している、またはそれに近い状態は、再調整アクティビティを妨げたり、それらを完全に停止させる可能性があります。この問題を回避するために、Amazon EC2 Auto Scaling は一時的にグループの最大サイズを必要なキャパシティの最大 10% まで超過できます。
+ Auto Scaling グループにライフサイクルフックを追加しなかった場合、Amazon EC2 Auto Scaling は、新しいインスタンスがヘルスチェックに合格すると同時に以前のインスタンスの終了を開始します。
+ ライフサイクルフックを追加した場合は、前のインスタンスの終了を開始するまでの時間が、ライフサイクルフックに指定したタイムアウト値だけ延長されます。
+ スケーリングポリシーまたはスケジュールされたスケーリングを使用している場合、スケーリングアクティビティは並行して実行されます。スケーリングアクティビティが進行中で、Auto Scaling グループが新しい希望キャパシティを下回っている場合、Amazon EC2 Auto Scaling はまずスケールアウトを行ってから、以前のインスタンスを終了します。

あるアベイラビリティーゾーンに該当するインスタンスタイプのキャパシティがない場合、Amazon EC2 Auto Scaling は他の有効なアベイラビリティーゾーンで成功するまでスポットインスタンスの起動を試行し続けます。

最悪のシナリオでは、新しいインスタンスの起動に失敗するか、ヘルスチェックに失敗すると、Amazon EC2 Auto Scaling はインスタンスの再起動を試行し続けます。　 新しいインスタンスの起動試行中、以前のインスタンスは最終的に中断され、2 分間の中断通知により強制的に終了されます。

## 考慮事項
<a name="capacity-rebalancing-considerations"></a>

キャパシティの再調整を使用する場合は、次の点を考慮してください。

**スポットの中断に耐えられるようにアプリケーションを設計する**  
アプリケーションはインスタンス数の動的な変化と、スポット インスタンスが早期に中断される可能性に対処する必要があります。例えば、Auto Scaling グループが Elastic Load Balancing ロードバランサーの背後にある場合、Amazon EC2 Auto Scaling は、インスタンスがロードバランサーから登録解除されるまで待機してから、終了ライフサイクルフックを呼び出します。インスタンスの登録解除とライフサイクルアクションの完了にかかる時間が長すぎる場合、Amazon EC2 Auto Scaling がインスタンスを終了させる前にライフサイクルアクションの完了を待機する間に、インスタンスが中断される可能性があります。  
2 分間のスポットインスタンス中断通知の前に、Amazon EC2 が再調整のレコメンデーションシグナルを送信できるとは限りません。場合によっては、再調整のレコメンデーションシグナルが、2 分間の中断通知と同時に到着する可能性があります。この場合、Amazon EC2 Auto Scaling はライフサイクルフックを呼び出し、新しいスポットインスタンスをすぐに起動しようとします。

**代替スポットインスタンスが中断されるリスクの増大を回避する**  
`lowest-price` 割り当て戦略を使用している場合、代替スポットインスタンスが中断されるリスクが高くなることがあります。これは、代替スポットインスタンスが起動後すぐに中断される可能性が高い場合も、その時点で利用可能なキャパシティを持つ最低料金のプールでインスタンスを起動することが原因です。中断のリスクが高まるのを避けるため、`lowest-price` の割り当て戦略を使用しないことを強くお勧めします。代わりに、`price-capacity-optimized` の使用をお勧めします。この戦略では、中断される可能性が最も低く、可能な限り低価格のスポットプールで代替スポットインスタンスを起動します。したがって、近い将来に中断される可能性は低くなります。

**Amazon EC2 Auto Scaling は、可用性が同じかそれ以上の場合にのみ、新しいインスタンスを起動します**  
キャパシティ再調整の目的の 1 つは、スポットインスタンスの可用性を改善することです。既存のスポットインスタンスが再調整のレコメンデーションを受け取った場合、Amazon EC2 Auto Scaling は、新しいインスタンスが既存のインスタンスと同等かそれ以上の可用性を提供する場合にのみ新しいインスタンスを起動します。新しいインスタンスの中断のリスクが既存のインスタンスよりもひどい場合、Amazon EC2 Auto Scaling は新しいインスタンスを起動しません。ただし、Amazon EC2 Auto Scaling は引き続き Amazon EC2 スポットサービスから提供された情報に基づいてスポットキャパシティプールを評価し、可用性が向上した場合は新しいインスタンスを起動します。  
Amazon EC2 Auto Scaling が新しいインスタンスをプロアクティブに起動しないと、既存のインスタンスが中断する可能性があります。中断が発生すると、Amazon EC2 Auto Scaling は、スポットインスタンスの中断通知を受け取ると直ちに新しいインスタンスの起動を試みます。これは、新しいインスタンスが中断されるリスクが高いかどうかに関係なく起こります。

**キャパシティーの再調整は、スポットインスタンスの中断率を増加させるものではありません**  
キャパシティの再調整を有効にしても、[スポットインスタンスの中断率](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html) (Amazon EC2 がキャパシティを取り戻す必要があるときに再利用されるスポットインスタンスの数) は増加しません。ただし、インスタンスに中断のリスクがあることをキャパシティの再調整が検出した場合、Amazon EC2 Auto Scaling は直ちに新しいインスタンスの起動を試みます。したがって、リスクのあるインスタンスが中断された後に Amazon EC2 Auto Scaling が新しいインスタンスを起動するのを待つ場合よりも多くのインスタンスが置き換えられる可能性があります。  
キャパシティの再調整が有効になっているインスタンスをさらに置き換える可能性がありますが、事後対応ではなくプロアクティブに対応できるというメリットがあります。これにより、インスタンスが中断される前にアクションを実行できる時間が増えます。[スポットインスタンスの中断通知](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-instance-termination-notices.html)では、通常、インスタンスを正常にシャットダウンするための猶予期間が最大 2 分しかありません。キャパシティの再調整で新しいインスタンスが事前に起動されるため、リスクのあるインスタンスで既存のプロセスを完了できる可能性が高まります。また、インスタンスのシャットダウン手順を開始し、リスクのあるインスタンスで新しい作業がスケジュールされないようにしたり、新しく起動したインスタンスがアプリケーションを引き継ぐように準備することもできます。キャパシティの再調整のプロアクティブな置き換えにより、正常な継続性の恩恵を受けることができます。  
次の理論的な例は、キャパシティの再調整を使用するリスクとメリットを示しています。  
+ 午後 2 時 – インスタンス A に対する再調整のレコメンデーションを受け取りました。Amazon EC2 Auto Scaling が直ちに代替インスタンス B の起動の試行を開始するため、ユーザーはシャットダウン手順を開始する時間を確保できます。
+ 午後 2 時 30 分 – インスタンス B の再調整のレコメンデーションを受け取り、インスタンス C に置き換えられました。これにより、ユーザーはシャットダウン手順を開始する時間を確保できます。
+ 午後 2 時 32 分 – キャパシティの再調整が有効になっておらず、インスタンス A のスポットインスタンスの中断通知が午後 2 時 32 分に受信されていたとすれば、アクションを実行するための猶予時間は最大でも 2 分だけでした。ただし、インスタンス A はこの時点まで実行され続けていたはずです。

# キャパシティの再調整を有効にして、リスクがあるスポットインスタンスをプロアクティブに置き換える
<a name="enable-capacity-rebalancing-console-cli"></a>

 AWS マネジメントコンソール または を使用して AWS CLI 、Auto Scaling グループのキャパシティの再調整を有効にできます。キャパシティの再調整が有効になっている場合、Amazon EC2 Auto Scaling は、EC2 インスタンスの再調整レコメンデーションを受け取ったスポットインスタンスをプロアクティブに置き換えようとします。

## キャパシティの再調整を有効にする (コンソール)
<a name="enable-capacity-rebalancing-console"></a>

Auto Scaling グループを作成または更新するときに、キャパシティの再調整を有効または無効にできます。

**新しい Auto Scaling グループのキャパシティの再調整を有効にするには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. **[Auto Scaling グループの作成]** を選択します。

1. **ステップ 1 で、起動テンプレートまたは構成を選択し**、Auto Scaling グループの名前を入力し、起動テンプレートを選択してから、**[Next]** (次へ) を選択して次のステップに進みます。

1. **[ステップ 2: インスタンスの起動オプションを選択]** の **[インスタンスタイプの要件]** で、混合インスタンスグループを作成するための設定を選択します。この混合インスタンスグループには、起動できるインスタンスタイプ、インスタンス購入オプション、スポットインスタンスとオンデマンドインスタンスの配分戦略が含まれます。これらの設定はデフォルトで設定されていません。これらを設定するには、**[Override launch template]** (起動テンプレートを上書きする) を選択する必要があります。混合インスタンスグループの作成に関する詳細については、「[複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ](ec2-auto-scaling-mixed-instances-groups.md)」を参照してください。

1. **[ネットワーク]** で、必要なオプションを選択します。使用するサブネットが、異なるアベイラビリティーゾーンにあることを確認します。

1. **[配分戦略]** セクションで、スポット配分戦略を選択します。**[容量の再分散]** で、チェックボックスをオンまたはオフにして、容量の再分散を有効または無効にします。このオプションは、**[インスタンスの購入オプション]** セクションで Auto Scaling グループのスポットインスタンスとして起動するようにリクエストした場合にのみ表示されます。

1. Auto Scaling グループを作成します。

1. (オプション) 必要に応じてライフサイクルフックを追加します。詳細については、「[Auto Scaling グループにライフサイクル フックを追加する](adding-lifecycle-hooks.md)」を参照してください。

**既存の Auto Scaling グループのキャパシティの再調整を有効または無効にするには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. Auto Scaling グループの横にあるチェックボックスを選択します。ページの下部にスプリットペインが開きます。

1. **[Details]** (詳細) タブで、**[Allocation strategies]** (配分戦略)、**[Edit]** (編集) の順に選択します。

1. **[配分戦略]** セクションで、**[容量の再分散]** チェックボックスをオンまたはオフにして、容量の再分散を有効または無効にします。

1. **[更新]** を選択します。

## キャパシティの再調整を有効にする (AWS CLI)
<a name="enable-capacity-rebalancing-aws-cli"></a>

次の例は、 を使用してキャパシティの再調整 AWS CLI を有効または無効にする方法を示しています。

[[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html)] または [[update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html)] コマンドに次のパラメータを指定して使用します。
+ `--capacity-rebalance` / `--no-capacity-rebalance` – キャパシティーの再調整が有効かどうかを示すブール値。

[[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html)] コマンドを呼び出す前に、Auto Scaling グループで使用するように設定されている起動テンプレートの名前が必要です。詳細については、「[Auto Scaling グループの起動テンプレートを作成する](create-launch-template.md)」を参照してください。

**注記**  
次の手順は、JSON または YAML でフォーマットされた設定ファイルの使用方法を示しています。 AWS CLI バージョン 1 を使用する場合は、JSON 形式の設定ファイルを指定する必要があります。 AWS CLI バージョン 2 を使用する場合は、YAML または JSON のいずれかでフォーマットされた設定ファイルを指定できます。

### JSON
<a name="enable-capacity-rebalancing-aws-cli-json"></a>

**新しい Auto Scaling グループを作成して設定するには**
+ 次の [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用して、新しい Auto Scaling グループを作成し、キャパシティの再調整を有効にします。このコマンドは、Auto Scaling グループの唯一のパラメーターとして JSON ファイルを参照します。

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

  [[混合インスタンス・ポリシー](ec2-auto-scaling-mixed-instances-groups.md)] を指定する CLI 設定ファイルがまだない場合は、作成します。

  次の行を設定ファイルのトップレベルの JSON オブジェクトに追加します。

  ```
  {
      "CapacityRebalance": true
  }
  ```

  次は、`config.json` ファイルの例です。

  ```
  {
      "AutoScalingGroupName": "my-asg",
      "DesiredCapacity": 12,
      "MinSize": 12,
      "MaxSize": 15,
      "CapacityRebalance": true,
      "MixedInstancesPolicy": {
          "InstancesDistribution": {
              "OnDemandBaseCapacity": 0,
              "OnDemandPercentageAboveBaseCapacity": 25,
              "SpotAllocationStrategy": "price-capacity-optimized"
          },
          "LaunchTemplate": {
              "LaunchTemplateSpecification": {
                  "LaunchTemplateName": "my-launch-template",
                  "Version": "$Default"
              },
              "Overrides": [
                  {
                      "InstanceType": "c5.large"
                  },
                  {
                      "InstanceType": "c5a.large"
                  },
                  {
                      "InstanceType": "m5.large"
                  },
                  {
                      "InstanceType": "m5a.large"
                  },
                  {
                      "InstanceType": "c4.large"
                  },
                  {
                      "InstanceType": "m4.large"
                  },
                  {
                      "InstanceType": "c3.large"
                  },
                  {
                      "InstanceType": "m3.large"
                  }
              ]
          }
      },
      "TargetGroupARNs": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-alb-target-group/943f017f100becff",
      "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
  }
  ```

### YAML
<a name="enable-capacity-rebalancing-aws-cli-yaml"></a>

**新しい Auto Scaling グループを作成して設定するには**
+ 次の [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用して、新しい Auto Scaling グループを作成し、キャパシティの再調整を有効にします。このコマンドは、Auto Scaling グループの唯一のパラメーターとして YAML ファイルを参照します。

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

  YAML でフォーマットされた設定ファイルに以下の行を追加します。

  ```
  CapacityRebalance: true
  ```

  次は、`config.yaml` ファイルの例です。

  ```
  ---
  AutoScalingGroupName: my-asg
  DesiredCapacity: 12
  MinSize: 12
  MaxSize: 15
  CapacityRebalance: true
  MixedInstancesPolicy:
    InstancesDistribution:
      OnDemandBaseCapacity: 0
      OnDemandPercentageAboveBaseCapacity: 25
      SpotAllocationStrategy: price-capacity-optimized
    LaunchTemplate:
      LaunchTemplateSpecification:
        LaunchTemplateName: my-launch-template
        Version: $Default
      Overrides:
      - InstanceType: c5.large
      - InstanceType: c5a.large
      - InstanceType: m5.large
      - InstanceType: m5a.large
      - InstanceType: c4.large
      - InstanceType: m4.large
      - InstanceType: c3.large
      - InstanceType: m3.large
  TargetGroupARNs:
  - arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-alb-target-group/943f017f100becff
  VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782
  ```

**既存の Auto Scaling グループのキャパシティの再調整を有効にするには**
+ 以下の [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) コマンドを使用して、キャパシティの再調整を有効にします。

  ```
  aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
    --capacity-rebalance
  ```

**Auto Scaling グループのキャパシティの再調整を有効になっていることを確認するには**
+ 以下の [describe-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) コマンドを使用して、キャパシティの再調整が有効になっていることを確認し、詳細を表示します。

  ```
  aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  ```

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

  ```
  {
      "AutoScalingGroups": [
          {
              "AutoScalingGroupName": "my-asg",
              "AutoScalingGroupARN": "arn",
              ...
              "CapacityRebalance": true
          }
      ]
  }
  ```

**キャパシティの再調整を無効にするには**  
キャパシティの再調整を無効にするには、[[update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html)] コマンドに`--no-capacity-rebalance`オプションを付けて使用します。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --no-capacity-rebalance
```

## 関連リソース
<a name="capacity-rebalancing-related-resources"></a>

容量の再調整の詳細については、 AWS コンピューティングブログ[のAmazon EC2 Auto Scaling の新しい容量再調整機能を使用してスポットインスタンスのライフサイクルをプロアクティブに管理する](https://aws.amazon.com/blogs/compute/proactively-manage-spot-instance-lifecycle-using-the-new-capacity-rebalancing-feature-for-ec2-auto-scaling/)」を参照してください。

EC2 インスタンスの再調整のレコメンデーションの詳細については、「*Amazon EC2 ユーザーガイド*」の「[EC2 インスタンスの再調整に関する推奨事項](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/rebalance-recommendations.html)」を参照してください。

ライフスタイルフックの詳細については、以下のリソースを参照してください。
+ [チュートリアル:Lambda 関数を呼び出すライフサイクルフックの設定](tutorial-lifecycle-hook-lambda.md) (EventBridge の使用)
+ [チュートリアル: データスクリプトとインスタンスメタデータを使用してライフサイクル状態を取得する](tutorial-lifecycle-hook-instance-metadata.md)

## 制限事項
<a name="capacity-rebalancing-limitations"></a>
+ Amazon EC2 Auto Scaling は、インスタンスがスケールインから保護されていない場合のみ、再調整通知を受信したインスタンスを置き換えることができます。ただし、スケールイン保護はスポットの中断による終了を防ぐことはできません。詳細については、「[インスタンスのスケールイン保護を使用してインスタンスの終了を制御する](ec2-auto-scaling-instance-protection.md)」を参照してください。
+ キャパシティの再調整のサポートは、中東 (アラブ首長国連邦) リージョンを除くAmazon EC2 Auto Scaling が使用可能なすべての商用 AWS リージョン で利用できます。

# キャパシティ予約を使用して特定のアベイラビリティーゾーンでキャパシティを予約する
<a name="use-ec2-capacity-reservations"></a>

Amazon EC2 オンデマンドキャパシティ予約を使用すると、特定のアベイラビリティーゾーンでコンピューティング性能を予約できます。Auto Scaling と共にキャパシティ予約の使用を開始するには、まず特定のアベイラビリティーゾーンにキャパシティ予約またはキャパシティ予約グループを作成します。次に、Auto Scaling グループの作成時または既存のグループの更新時に、キャパシティ予約の詳細設定を Auto Scaling グループに追加できます。

キャパシティ予約を作成するには、「*Amazon EC2 ユーザーガイド*」の「[キャパシティーの予約の作成](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-create.html)」を参照してください。キャパシティ予約グループを作成するには、「*Amazon EC2 ユーザーガイド*」の「[キャパシティ予約グループを作成する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-cr-group.html)」を参照してください。

## キャパシティ予約の詳細設定
<a name="asg-capacity-reservation-preference"></a>

キャパシティ予約の詳細設定を利用して、オンデマンドキャパシティを使用する前にキャパシティ予約内のリザーブドキャパシティを優先することで、キャパシティ予約を効率的に使用できます。次のキャパシティ予約の詳細設定オプションから選択できます。
+ **デフォルト** – Auto Scaling は、起動テンプレートのキャパシティ予約の詳細設定またはオープンなキャパシティ予約を使用します。
+ **なし** – Auto Scaling はキャパシティ予約にインスタンスを起動しません。インスタンスはオンデマンドキャパシティで実行されます。
+ **キャパシティ予約のみ** – Auto Scaling は、キャパシティ予約またはキャパシティ予約グループにのみインスタンスを起動します。キャパシティがない場合、インスタンスは起動に失敗します。
+ **最初にキャパシティ予約** – Auto Scaling は、キャパシティ予約またはキャパシティ予約グループにインスタンスを起動します。キャパシティがない場合、インスタンスはオンデマンドキャパシティで実行されます。

[キャパシティ予約のみ] または [最初にキャパシティ予約] を選択すると、キャパシティ予約ターゲットを指定できます。

**注記**  
キャパシティ予約の詳細設定を選択する必要があります。キャパシティ予約ターゲットはオプションです。

**キャパシティ予約の詳細設定と起動テンプレートに関する考慮事項**  
[キャパシティ予約のみ] または [最初にキャパシティ予約] を選択する場合は、次の点を考慮してください。
+ [キャパシティ予約のみ] または [最初にキャパシティ予約] を選択すると、Auto Scaling は起動テンプレートのキャパシティ予約ターゲットではなく、Auto Scaling グループで指定されたキャパシティ予約ターゲットを使用します。
+ [キャパシティ予約のみ] または [最初にキャパシティ予約] を選択し、キャパシティ予約ターゲットを指定しない場合、Auto Scaling は起動テンプレートのキャパシティ予約ターゲットまたはオープン状態のキャパシティ予約を使用します。

**キャパシティ予約のターゲット仕様**  
[キャパシティ予約のみ] または [最初にキャパシティ予約] を選択すると、次のキャパシティ予約ターゲットオプションを使用できます。
+ **[オープン]** – Auto Scaling は、オープンなキャパシティ予約にインスタンスを起動します。[キャパシティ予約のみ] を選択したが、キャパシティが利用できない場合、インスタンスは起動できません。[最初にキャパシティ予約] を選択したが、キャパシティが利用できない場合、インスタンスはオンデマンドキャパシティで起動します。
+ **[キャパシティーの予約の指定]** — Auto Scaling は、指定されたキャパシティ予約にインスタンスを起動します。[キャパシティ予約のみ] を選択したが、キャパシティが利用できない場合、インスタンスは起動できません。[最初にキャパシティ予約] を選択したが、キャパシティが利用できない場合、インスタンスはオンデマンドキャパシティで起動します。
+ **[キャパシティー予約リソースグループの指定]** – Auto Scaling は、指定されたキャパシティ予約リソースグループのオープンなキャパシティ予約でインスタンスを起動します。[キャパシティ予約のみ] を選択したが、キャパシティが利用できない場合、インスタンスは起動できません。[最初にキャパシティ予約] を選択したが、キャパシティが利用できない場合、インスタンスはオンデマンドキャパシティで起動します。

## アベイラビリティーゾーンの調整とキャパシティ予約
<a name="az-balance-capacity-reservations"></a>

Auto Scaling は、キャパシティ予約の詳細設定を使用している場合でも、アベイラビリティーゾーンの調整を優先します。つまり、次のようになります。
+ `capacity-reservations-first` を使用 – Auto Scaling グループは、まず AZ 間でインスタンスを均等に分散し、次に、利用可能な場合はキャパシティ予約を使用します。AZ でキャパシティ予約が利用できない場合、インスタンスは AZ の調整を維持するためにオンデマンドとして起動します。
+ `capacity-reservations-only` を使用 — Auto Scaling グループはキャパシティ予約のみを使用します。これにより、キャパシティ予約が利用可能な場所に基づいて、AZ 間でインスタンスの分散が不均等になる可能性があります。

**例**  
AZ-a に 10 個、AZ-b に 3 個、AZ-c に 1 個のキャパシティ予約があり、希望するキャパシティが 9 個のインスタンスである場合、次のようになります。
+ 9 個のインスタンスに `capacity-reservations-first` を使用すると、AZ ごとに 3 個のインスタンスとなり (AZ の調整を維持)、一部のインスタンスはオンデマンドとして実行される可能性があります。
+ 9 個のインスタンスに `capacity-reservations-only` を使用すると、利用可能なキャパシティ予約に基づいて不均等な分散になります。

# Auto Scaling グループでキャパシティ予約の詳細設定を使用する
<a name="capacity-reservation-create-asg-procedure"></a>

Auto Scaling グループでキャパシティ予約を使用するには、まずキャパシティ予約またはキャパシティ予約リソースグループを作成する必要があります。次に、Auto Scaling グループの作成時または既存のグループの更新時に、キャパシティ予約の詳細設定を Auto Scaling グループに追加できます。

キャパシティ予約を作成するには、「*Amazon EC2 ユーザーガイド*」の「[キャパシティーの予約の作成](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-create.html)」を参照してください。キャパシティ予約グループを作成するには、「*Amazon EC2 ユーザーガイド*」の「[キャパシティ予約グループを作成する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-group.html)」を参照してください。

Auto Scaling グループを作成または編集するときにキャパシティ予約の詳細設定を使用するには、次のいずれかの方法を使用します。

------
#### [ Console ]

**新しいグループでキャパシティ予約の詳細設定を使用するには (コンソール)**

1. [Amazon EC2 起動ウィザードを使用して Auto Scaling グループを作成する](create-asg-ec2-wizard.md) 「」の手順に従って、ステップ 3 までの手順の各ステップを完了します。

1. **[グループサイズとスケーリングを設定する]** ページの **[その他のキャパシティ設定]**、**[キャパシティ予約の詳細設定]** で、キャパシティ予約の詳細設定を選択します。キャパシティ予約の詳細設定の詳細については、「[キャパシティ予約の詳細設定](use-ec2-capacity-reservations.md#asg-capacity-reservation-preference)」を参照してください。

1. [Amazon EC2 起動ウィザードを使用して Auto Scaling グループを作成する](create-asg-ec2-wizard.md) のステップを続行します。

------
#### [ AWS CLI ]

**新しいグループでキャパシティ予約の詳細設定を使用するには (AWS CLI)**  
[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドに `--capacity-reservation-specification` パラメータを追加します。

1. キャパシティ予約の詳細設定を指定します。詳細については、「[キャパシティ予約の詳細設定](use-ec2-capacity-reservations.md#asg-capacity-reservation-preference)」を参照してください。

1. キャパシティ予約ターゲットを指定します。[キャパシティ予約のみ] または [最初にキャパシティ予約] を選択し、キャパシティ予約ターゲットを指定しない場合、Auto Scaling は起動テンプレートのキャパシティ予約ターゲットまたはオープン状態のキャパシティ予約を使用します。

------

------
#### [ Console ]

**既存のグループでキャパシティ予約の詳細設定を使用するには (コンソール)**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで **[Auto Scaling グループ]** を選択します。

1. 画面の上部のナビゲーションバーで、Auto Scaling グループを作した AWS リージョン を選択します。

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

   ページの下部にスプリットペインが開きます。

1. **[詳細]** タブの **[キャパシティ予約の詳細設定]** で、**[編集]** を選択します。

1. **[その他のキャパシティ設定]** の **[キャパシティ予約の詳細設定]** で、キャパシティ予約の詳細設定を選択します。キャパシティ予約の詳細設定の詳細については、「[キャパシティ予約の詳細設定](use-ec2-capacity-reservations.md#asg-capacity-reservation-preference)」を参照してください。

1. **[更新]** を選択します。

------
#### [ AWS CLI ]

**既存のグループでキャパシティ予約の詳細設定を使用するには (AWS CLI)**  
[update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) コマンドに `--capacity-reservation-specification` パラメータを追加します。

1. キャパシティ予約の詳細設定を指定します。詳細については、「[キャパシティ予約の詳細設定](use-ec2-capacity-reservations.md#asg-capacity-reservation-preference)」を参照してください。

1. キャパシティ予約ターゲットを指定します。[キャパシティ予約のみ] または [最初にキャパシティ予約] を選択し、キャパシティ予約ターゲットを指定しない場合、Auto Scaling は起動テンプレートのキャパシティ予約ターゲットまたはオープン状態のキャパシティ予約を使用します。

------

# EC2 Auto Scaling による中断可能なキャパシティ予約
<a name="asg-interruptible-capacity-reservations"></a>

中断可能なキャパシティ予約は、 AWS 組織内のオンデマンドキャパシティ予約の所有者によって貸された予備のキャパシティを表します。これらの予約は、キャパシティー所有者が 2 分間の中断通知でいつでもキャパシティーを再利用できるため、中断可能なワークロードに適しています。その後、インスタンスは終了します。中断可能なキャパシティ予約の概要とその仕組みについては、*Amazon EC2 ユーザーガイド*」の[「中断可能なキャパシティ予約](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/interruptible-capacity-reservations.html)」を参照してください。

開始するには、アカウント内のオンデマンドキャパシティ予約から未使用のキャパシティを割り当てることで、割り込み可能な予約を作成します。次に、起動テンプレートを作成し、割り込み可能なキャパシティ予約 ID と適切な市場タイプを指定します。最後に、作成した起動テンプレートを使用するように Auto Scaling グループを作成します。

**注記**  
混合インスタンスグループは、割り込み可能なキャパシティ予約ではサポートされていません。
割り込み可能なキャパシティ予約は、新しい属性を `interruptible`に設定してアカウントに表示されます`true`。

**Topics**
+ [操作のガイドライン](#operational-guidelines)
+ [起動テンプレートで中断可能なキャパシティ予約を指定する](#specify-interruptible-cr)
+ [制限事項](#limitations)
+ [関連リソース](#related-resources)

## 操作のガイドライン
<a name="operational-guidelines"></a>

以下は、Auto Scaling グループで中断可能なキャパシティ予約を使用する際に従うべき基本的な運用ガイドラインです。
+ 割り込み可能なキャパシティ予約から起動されたインスタンスは、キャパシティが再利用されたときに 2 分間の通知で終了できます。正常なシャットダウンを処理するようにアプリケーションを設計します。
+ Amazon EC2 は、インスタンスを終了する 2 分前に EventBridge 通知を送信します。Auto Scaling はこれらのイベントに自動的には反応しませんが、中断通知に応答するようにカスタムオートメーションを設定できます。
+ 容量の再利用によりインスタンスが終了すると、Auto Scaling のヘルスチェッカーは終了を検出し、グループの設定に従って代替インスタンスを自動的に起動します。
+ 整合性を確保するために、 `$Default`または バージョンではなく、特定の`$Latest`バージョンの起動テンプレートをポイントします。

**注記**  
割り込み可能なキャパシティ予約インスタンスが再利用されると、Auto Scaling グループのスケーリングアクティビティは になります`taken out of service in response to an Amazon EC2 health check that indicated it had been terminated or stopped`。Auto Scaling は、ヘルスチェックに失敗したインスタンスの場合と同じ方法でインスタンスの置き換えを試みます。

## 起動テンプレートで中断可能なキャパシティ予約を指定する
<a name="specify-interruptible-cr"></a>

Auto Scaling グループの特定の中断可能なキャパシティ予約をターゲットとする起動テンプレートを作成するには、次のいずれかの方法を使用します。

------
#### [ Console ]

**起動テンプレートで中断可能なキャパシティ予約を指定するには (コンソール)**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. 上部のナビゲーションバーで、割り込み可能なキャパシティ予約がある AWS リージョン を選択します。

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

1. **[起動テンプレートの作成]** を選択し、起動テンプレートを作成します。必要に応じて、AMI の ID、インスタンスタイプ、およびその他の起動テンプレート設定を含めます。

1. **[高度な詳細]** セクションを展開して、詳細設定を表示します。

1. **購入オプション**で、**中断可能なキャパシティ予約**を選択します。

1. **キャパシティ予約** で **ID でターゲット**を選択し、次に**キャパシティ予約 - ID でターゲット** で、既存の割り込み可能なキャパシティ予約のキャパシティ予約 ID を選択します。

1. 完了したら、**[起動テンプレートの作成]** を選択します。

起動テンプレートを使用した Auto Scaling グループの作成について詳しくは、「[起動テンプレートを使用して Auto Scaling グループを作成する](create-asg-launch-template.md)」を参照してください。

------
#### [ AWS CLI ]

**起動テンプレートで中断可能なキャパシティ予約を指定するには (AWS CLI)**  
次の [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html) コマンドを使用して、既存の割り込み可能なキャパシティ予約 ID を指定する起動テンプレートを作成します。各ユーザー入力プレースホルダーを独自の情報に置き換えます。

```
aws ec2 create-launch-template --launch-template-name my-template-for-interruptible-cr \
  --version-description AutoScalingVersion1 --region us-east-2 \
  --launch-template-data file://config.json
```

**ヒント**  
このコマンドがエラーをスローする場合は、 を AWS CLI ローカルで最新バージョンに更新していることを確認してください。

`config.json` の内容:

```
{
    "ImageId": "ami-04d5cc9b88example",
    "InstanceType": "t3.nano",
    "SecurityGroupIds": [
        "sg-903004f88example"
    ],
    "KeyName": "MyKeyPair",
    "InstanceMarketOptions": {
        "MarketType": "interruptible-capacity-reservation"
    },
    "CapacityReservationSpecification": {
        "CapacityReservationTarget": {
            "CapacityReservationId": "cr-02168da1478b509e0"
        }
    }
}
```

出力例を次に示します。

```
{
    "LaunchTemplate": {
        "LaunchTemplateId": "lt-068f72b724example",
        "LaunchTemplateName": "my-template-for-interruptible-cr",
        "CreateTime": "2023-10-27T15:12:44.000Z",
        "CreatedBy": "arn:aws:iam::123456789012:user/Bob",
        "DefaultVersionNumber": 1,
        "LatestVersionNumber": 1
    }
}
```

次の [describe-launch-template-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-template-versions.html) コマンドを使用して、起動テンプレートに関連付けられた割り込み可能なキャパシティ予約 ID を確認できます。

```
aws ec2 describe-launch-template-versions --launch-template-names my-template-for-interruptible-cr \
  --region us-east-2
```

------

**Auto Scaling グループレベルの設定**  
オプションでAuto Scaling グループレベルでキャパシティ予約設定を指定して、起動テンプレート設定を上書きできます。
+ **キャパシティ予約設定: **割り込み可能なキャパシティ予約でのみサポート`capacity-reservations-only`されます。`capacity-reservations-first` 設定はサポートされていません。
+ **ターゲット仕様**: グループレベルで別の割り込み可能なキャパシティ予約 ID を指定して、起動テンプレート設定を上書きできます。

## 制限事項
<a name="limitations"></a>
+ 混合インスタンスポリシーは、割り込み可能なキャパシティ予約ではサポートされていません。
+ 起動テンプレートで、キャパシティ予約 ID とともに正しい市場タイプ (`interruptible-capacity-reservation`) を指定する必要があります。

## 関連リソース
<a name="related-resources"></a>
+ 割り込み可能なキャパシティ予約の作成と管理の詳細については、*Amazon EC2 ユーザーガイド*」の[「割り込み可能なキャパシティ予約](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/interruptible-capacity-reservations.html)」を参照してください。
+ Auto Scaling でのキャパシティ予約の使用に関する一般的な情報については、「」を参照してください[キャパシティ予約を使用して特定のアベイラビリティーゾーンでキャパシティを予約する](use-ec2-capacity-reservations.md)。
+ Auto Scaling グループのヘルスチェックの詳細については、[Auto Scaling グループのインスタンスのヘルスチェック](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html)」を参照してください。

# を使用してコマンドラインから Auto Scaling グループを作成する AWS CloudShell
<a name="create-auto-scaling-groups-with-cloudshell"></a>

[サポートされている AWS リージョン](https://docs.aws.amazon.com/cloudshell/latest/userguide/supported-aws-regions.html)では、 から直接起動するブラウザベースの事前認証済みシェル AWS CloudShell に対して を使用して AWS CLI コマンドを実行できます AWS マネジメントコンソール。任意のシェル (Bash、PowerShell、または Z シェル) を使用して、 サービスに対して AWS CLI コマンドを実行できます。

次の 2 つの方法のいずれか AWS マネジメントコンソール を使用して、 AWS CloudShell から を起動できます。
+ コンソールナビゲーションバー AWS CloudShell のアイコンを選択します。これは検索ボックスの右側にあります。
+ コンソールのナビゲーションバーにある検索ボックスを使用して **CloudShell** を検索し、**[CloudShell]** オプションを選択します。

が新しいブラウザウィンドウで初めて AWS CloudShell 起動すると、ウェルカムパネルが表示され、主要な機能が一覧表示されます。このパネルを閉じると、シェルがコンソール認証情報を構成および転送する間、ステータスのアップロードが提供されます。コマンドプロンプトが表示されたら、シェルは対話的な操作の準備ができています。

このサービスの詳細については、「[AWS CloudShell ユーザーガイド](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html)」を参照してください。

# を使用して Auto Scaling グループを作成する AWS CloudFormation
<a name="creating-auto-scaling-groups-with-cloudformation"></a>

Amazon EC2 Auto Scaling は と統合されています。これは AWS CloudFormation、 AWS リソースとインフラストラクチャの作成と管理に費やす時間を短縮できるように、リソースのモデル化とセットアップに役立つサービスです。必要なすべての AWS リソース (Auto Scaling グループなど) を記述するテンプレートを作成し、それらのリソースを CloudFormation プロビジョニングして設定します。

を使用すると CloudFormation、テンプレートを再利用して Amazon EC2 Auto Scaling リソースを一貫して繰り返しセットアップできます。リソースを一度記述し、複数の AWS アカウント およびリージョンで同じリソースを何度もプロビジョニングします。

## Amazon EC2 Auto Scaling と CloudFormation テンプレート
<a name="working-with-templates"></a>

Amazon EC2 Auto Scaling と関連サービスのリソースをプロビジョニングして設定するには、[CloudFormation テンプレート](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)を理解しておく必要があります。テンプレートは、JSON や YAML でフォーマットされたテキストファイルです。これらのテンプレートは、 CloudFormation スタックでプロビジョニングするリソースを記述します。JSON または YAML に慣れていない場合は、 CloudFormation デザイナー を使用して CloudFormation テンプレートの使用を開始できます。詳細については、 *AWS CloudFormation ユーザーガイド*の[CloudFormation 「デザイナーとは](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/working-with-templates-cfn-designer.html)」を参照してください。

Amazon EC2 Auto Scaling に独自のスタックテンプレートの作成を開始するには、次のタスクを完了してください。
+ 「[AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)」を使用して起動テンプレートを作成します。
+ 「[AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html)」を使用して Auto Scaling グループを作成します。

Auto Scaling グループを Application Load Balancer の背後にデプロイする方法を表示するウォークスルーについては、「*AWS CloudFormation ユーザーガイド*」の「[チュートリアル: スケールおよび負荷分散されたアプリケーションを作成する](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/walkthrough-autoscaling.html)」を参照してください。

Auto Scaling グループおよび関連リソースを作成するテンプレートスニペットのその他の便利な例については、「*AWS CloudFormation ユーザーガイド*」の次のセクションを参照してください。
+ [Amazon EC2 Auto Scaling リソースタイプのリファレンス](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html)
+ [を使用して Amazon EC2 Auto Scaling リソースを設定する AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ec2-auto-scaling.html)

## の詳細 CloudFormation
<a name="learn-more-cloudformation"></a>

詳細については CloudFormation、次のリソースを参照してください。
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/)
+ [AWS CloudFormation ユーザーガイド](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [CloudFormation API リファレンス](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/Welcome.html)
+ [AWS CloudFormation コマンドラインインターフェイスユーザーガイド](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html)

# でインスタンスタイプのレコメンデーションを取得する AWS Compute Optimizer
<a name="asg-getting-recommendations"></a>

AWS は Amazon EC2 インスタンスタイプのレコメンデーションを提供し、 の機能を使用して、パフォーマンスの向上、コスト削減、またはその両方を支援します AWS Compute Optimizer。これらの推奨事項を使用して、Auto Scaling グループ内の新しいインスタンスタイプに移行するかどうかを判断できます。

推奨事項を作成するために、Compute Optimizer は既存インスタンスの仕様と最近のメトリックス履歴を分析します。次に、コンパイルされたデータを使用して、既存のパフォーマンスワークロードを処理するために最適な Amazon EC2 インスタンスタイプを推奨します。推奨事項は、時間あたりのインスタンス料金とともに返されます。

**注記**  
Compute Optimizer から推奨事項を取得するには、まず Compute Optimizer にオプトインする必要があります。詳細については、「AWS Compute Optimizer ユーザーガイド」の「[AWS Compute Optimizerの使用開始](https://docs.aws.amazon.com/compute-optimizer/latest/ug/getting-started.html)」を参照してください。

**Topics**
+ [制限](#compute-optimizer-limitations)
+ [検出結果](#findings-classifications)
+ [推奨事項の表示](#viewing-recommendations)
+ [推奨事項の評価に関する考慮事項](#considerations)

## 制限
<a name="compute-optimizer-limitations"></a>

Compute Optimizer は、M、C、R、T、X のインスタンスタイプを起動して実行するように設定された Auto Scaling グループ内のインスタンスの推奨事項を生成します。ただし、 AWS Graviton2 プロセッサを搭載した -g インスタンスタイプ (C6g など) と、ネットワーク帯域幅パフォーマンスが高い -n インスタンスタイプ (M5n など) の推奨事項は生成されません。

また、Auto Scaling グループは、単一のインスタンスタイプを実行するように設定する必要があります（つまり、インスタンスタイプが混在しない）。また、スケーリングポリシーがアタッチされておらず、希望キャパシティ、最小キャパシティ、最大キャパシティ（インスタンス数が固定されている Auto Scaling グループ）に対して同じ値を持つ必要があります。Compute Optimizer は、これらの構成要件の*すべて*を満たす Auto Scaling グループのインスタンス推奨事項を生成します。

## 検出結果
<a name="findings-classifications"></a>

Compute Optimizer は、Auto Scaling グループの調査結果を次のように分類します。
+ **最適化されていない** – Compute Optimizer がワークロードのパフォーマンスを向上できる推奨事項を特定した場合、Auto Scaling グループは、最適化されていないとみなされます。
+ **最適化** – 選択したインスタンスタイプに基づいて、ワークロードを実行するためにグループが正しくプロビジョニングされていると Compute Optimizer が判断した場合、Auto Scaling グループは、最適化されていると見なされます。最適化されたリソースについては、Compute Optimizer が新世代のインスタンスタイプを推奨することがあります。
+ **なし** – Auto Scaling グループの推奨事項はありません。これは、Compute Optimizer を 12 時間未満にオプトインした場合、または Auto Scaling グループの実行が 30 時間未満の場合、または Auto Scaling グループまたはインスタンスタイプが Compute Optimizer でサポートされていない場合に発生する可能性があります。詳細については「[制限](#compute-optimizer-limitations)」セクションを参照してください。

## 推奨事項の表示
<a name="viewing-recommendations"></a>

Compute Optimizer にオプトインすると、Auto Scaling グループに対して生成された結果と推奨事項を表示できます。最近オプトインした場合、推奨事項が最大 12 時間、反映されないことがあります。

**Auto Scaling グループに対して生成された推奨事項を表示する**

1. [https://console.aws.amazon.com/compute-optimizer/](https://console.aws.amazon.com/compute-optimizer/) で、Compute Optimizer コンソールを開きます。

   ダッシュボードページが開きます。

1. [**View recommendations for all Auto Scaling groups (すべての Auto Scaling グループの推奨事項を表示する)**] を選択します。

1. Auto Scaling スケーリンググループを選択します。

1. [**View detail (詳細を表示)**] を選択します。

   デフォルトのテーブル設定に基づいて、事前構成されたビューに最大 3 つの異なるインスタンスの推奨事項が表示されるように、ビューが変更されます。また、Auto Scaling グループ最新の CloudWatch メトリックデータ (平均 CPU 利用率、平均ネットワーク入力および平均ネットワーク出力) も提供されます。

推奨事項の 1 つを使用するかどうかを決定します。パフォーマンスの向上のために最適化するか、コスト削減のために最適化するか、これら 2 つの組み合わせのために最適化するかを決定します。

Auto Scaling グループのインスタンスタイプを変更するには、起動テンプレートを更新するか、Auto Scaling group を更新して新しい起動設定を使用します。既存のインスタンスでは、引き続き以前の設定を使用します。既存のインスタンスを更新するには、これらのインスタンスを終了して Auto Scaling グループに置き換えるようにするか、オートスケーリングにより[終了ポリシー](as-instance-termination.md)に基づいて古いインスタンスを新しいインスタンスに徐々に置き換えるようにします。

**注記**  
インスタンスの最大有効期間とインスタンスの更新機能を使用すると、Auto Scaling グループ内の既存のインスタンスを置き換えて、新しい起動テンプレートや起動設定を使用する新しいインスタンスを起動することもできます。詳細については、「[インスタンスの最大存続期間に基づいて Auto Scaling インスタンスを置き換える](asg-max-instance-lifetime.md)」および「[インスタンスの更新を使用して Auto Scaling グループのインスタンスを更新する](asg-instance-refresh.md)」を参照してください。

## 推奨事項の評価に関する考慮事項
<a name="considerations"></a>

新しいインスタンスタイプに移行する前に、次の点を考慮してください。
+ 推奨情報は使用状況を予測するものではありません。推奨事項は、直近の 14 日間の使用履歴に基づいています。将来の使用ニーズを満たすことが予想されるインスタンスタイプをかならず選択してください。
+ グラフ化されたメトリクスを参考にして、実際の使用量がインスタンスのキャパシティーよりも低いかどうかを判断します。メトリクスデータ (平均、ピーク、パーセンタイル) を CloudWatch で表示し、EC2 インスタンスの推奨事項をさらに評価することもできます。例えば、一日の CPU パーセンテージメトリクスがどのように変化するか、ピークに対応する必要があるかどうかに注目します。詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[利用可能なメトリクスを表示する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html)」を参照してください。
+ Compute Optimizer は、バーストパフォーマンスインスタンス (T3、T3a、および T2 インスタンス) の推奨事項を提供する場合があります。ベースラインを定期的に上回る場合は、新しいインスタンスタイプの vCPU に基づいて引き続きバーストを実行できることを確認します。詳細については、「*Amazon EC2 ユーザーガイド*」の「[バーストパフォーマンスインスタンスの CPU クレジットおよびベースラインパフォーマンス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html)」を参照してください。
+ リザーブドインスタンスを購入した場合、オンデマンドインスタンスはリザーブドインスタンスとして請求される場合があります。現在のインスタンスタイプを変更する前に、まず リザーブドインスタンス の使用率とカバレッジに対する影響を評価します。
+ 可能であれば、新世代のインスタンスへの交換を検討します。
+ 別のインスタンスファミリーに移行する場合は、仮想化、アーキテクチャー、ネットワークタイプなどの点で、現在のインスタンスタイプと新しいインスタンスタイプに互換性があることを確認してください。詳細については、「*Amazon EC2 ユーザーガイド*」の「[インスタンスのサイズ変更の互換性](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html#resize-limitations)」を参照してください。
+ 最後に、推奨事項ごとに提供されるパフォーマンスリスク評価を検討します。パフォーマンスリスクは、推奨されるインスタンスタイプがワークロードのパフォーマンス要件を満たすかどうかを検証するために費やす必要のある作業量を示します。また、変更前と変更後に厳格な負荷テストおよびパフォーマンステストを行うことをお勧めします。

**その他のリソース**  
このページのトピックに加えて、次のリソースも参照してください。
+ [Amazon EC2 インスタンスタイプ](https://aws.amazon.com/ec2/instance-types/)
+ [AWS Compute Optimizer ユーザーガイド](https://docs.aws.amazon.com/compute-optimizer/latest/ug/)

# Elastic Load Balancing を使用して Auto Scaling グループ内で受信アプリケーショントラフィックを分散する
<a name="autoscaling-load-balancer"></a>

Elastic Load Balancing は、実行しているすべての EC2 インスタンス間で、受信したアプリケーションのトラフィックを自動的に分散させます。Elastic Load Balancing は、どのインスタンスにも負荷がかからないように、トラフィックを最適にルーティングすることで受信したリクエストを管理します。Auto Scaling グループで Elastic Load Balancing を使用するには、[Auto Scaling グループにロードバランサーをアタッチする](attach-load-balancer-asg.md)。これにより、グループがロードバランサーに登録され、ロードバランサーは、Auto Scaling グループへのすべての受信ウェブトラフィックの 1 つのお問合せポイントとして機能します。

Auto Scaling グループで Elastic Load Balancing を使用する場合、ロードバランサーまたはターゲットグループに個々の EC2 インスタンスをロードバランサーに登録する必要はありません。Auto Scaling グループによって起動されたインスタンスは、自動的にロードバランサーのメンバーとなります。同様に、Auto Scaling グループによって終了されたインスタンスは、ロードバランサーから自動的に登録解除されます。

ロードバランサーを Auto Scaling グループにアタッチした後、Elastic Load Balancing メトリクス (ターゲットあたりの Application Load Balancer のリクエスト数など)を使用して、需要の変化に応じてグループ内のインスタンス数をスケールするように Auto Scaling グループを設定できます。

必要に応じて、Auto Scaling グループに Elastic Load Balancing ヘルスチェックを追加できます。これにより、Amazon EC2 Auto Scaling はこれらの追加のヘルスチェックに基づいて異常なインスタンスを識別して置き換えることができます。それ以外の場合は、ターゲットグループの正常なホスト数が許可されているよりも少ない場合、通知する CloudWatch アラームを作成できます。

**Topics**
+ [Elastic Load Balancing のタイプ](#integrations-aws-elastic-load-balancing-types)
+ [ロードバランサーをアタッチする準備をする](getting-started-elastic-load-balancing.md)
+ [ロードバランサーをアタッチする](attach-load-balancer-asg.md)
+ [ロードバランサーを設定する](as-create-load-balancer-console.md)
+ [アタッチメントステータスを確認する](load-balancer-status.md)
+ [アベイラビリティーゾーンを追加する](as-add-az-console.md)
+ [アベイラビリティーゾーンの削除](as-remove-az-console.md)
+ [ロードバランサーをデタッチする](as-remove-load-balancer.md)
+ [AWS CLI Elastic Load Balancing の使用例](examples-elastic-load-balancing-aws-cli.md)

## Elastic Load Balancing のタイプ
<a name="integrations-aws-elastic-load-balancing-types"></a>

Elastic Load Balancing は、Auto Scaling グループで使用できる四つのタイプのロードバランサーを提供します:それらは、Application Load Balancer、Network Load Balancer、Gateway Load Balancer、Classic Load Balancer です。

ロードバランサーの設定方法は、種類によって大きく異なります。Application Load Balancer、Network Load Balancer、Gateway Load Balancer で、インスタンスはターゲットグループにターゲットとしてメンバーとされ、トラフィックをターゲットグループに送信します。Classic Load Balancer で、インスタンスはロードバランサーに直接メンバーとされます。

Application Load Balancer  
ルーティングと負荷分散をアプリケーションレイヤー (HTTP/HTTPS) で行い、パスベースのルーティングをサポートしています。Application Load Balancer は、仮想プライベートクラウド (VPC) の EC2 instancesのように、1 つまたは複数のメンバーとなったターゲット上のポート にリクエストを送信することができます。

Network Load Balancer  
レイヤー 4 ヘッダーから抽出されたアドレス情報に基づいて、トランスポートレイヤー (TCP/UDP レイヤー 4) でルーティングとロードバランシングを行います。Network Load Balancer は、ロードバランサーの有効期間中、トラフィックバーストを処理し、クライアントの出典 IP を保持して、固定 IP を使用します。

Gateway Load Balancer  
アプライアンス・インスタンスのフリートにトラフィックを分散します。ファイアウォール、侵入検知および防止システム、その他のアプライアンスなど、サードパーティー製の仮想アプライアンスのスケール、可用性、およびシンプルさを提供します。Gateway Load Balancer は、GENEVEプロトコルをサポートする仮想アプライアンスと連携します。追加の技術統合が必要なため、Gateway Load Balancer を選択する前に、必ずユーザーガイドを参照してください。

Classic Load Balancer  
トランスポートレイヤー (TCL/SSL) あるいはアプリケーションレイヤー (HTTP/HTTPS) のいずれかで行うルーティングあるいはロードバランサー。

利用可能なさまざまなタイプのロードバランサーの詳細については、次のリソースを参照してください。
+ [Elastic Load Balancing とは?](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html)
+ [Application Load Balancer とは?](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html)
+ [Network Load Balancer とは?](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html)
+ [Gateway Load Balancer とは？](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/introduction.html)
+ [Classic Load Balancer とは？](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/introduction.html)

# Elastic Load Balancing ロードバランサーをアタッチする準備をする
<a name="getting-started-elastic-load-balancing"></a>

Auto Scaling グループに Elastic Load Balancing ロードバランサーをアタッチするには、次の前提条件を満たす必要があります。
+ Auto Scaling グループにトラフィックをルーティングするために使用されるロードバランサーおよびターゲットグループをすでに作成している必要があります。

  ロードバランサーおよびターゲットグループを作成するには、次の 2 つの方法があります。
  + **Elastic Load Balancing の使用** — Elastic Load Balancing ドキュメントの手順に従い、Auto Scaling グループを作成する前にロードバランサーおよびターゲットグループを作成、設定します。Amazon EC2 インスタンスを登録するステップは省略します。ターゲットグループを Auto Scaling グループにアタッチすると、Amazon EC2 Auto Scaling では自動的にインスタンスの登録 (および登録解除) が処理されます。詳細については、Elastic Load Balancing ユーザーガイドの [Elastic Load Balancing で使用開始](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/load-balancer-getting-started.html) を参照してください。
  + **Amazon EC2 Auto Scaling の使用** — Amazon EC2 Auto Scaling コンソールの基本設定を使用して、ロードバランサーおよびターゲットグループを作成、設定、アタッチします。詳細については、「[コンソールから Application Load Balancer または Network Load Balancer を設定する](as-create-load-balancer-console.md)」を参照してください。
+ ロードバランサーを作成する前に、必要なロードバランサーのタイプを確認してください。詳細については、「[Elastic Load Balancing のタイプ](autoscaling-load-balancer.md#integrations-aws-elastic-load-balancing-types)」を参照してください。
+ ロードバランサーとそのターゲットグループは AWS アカウント、Auto Scaling グループと同じ、VPC、リージョンに存在する必要があります。
+ ターゲットグループは、`instance` のターゲットタイプを指定する必要があります。Auto Scaling グループを使用する場合、`ip` のターゲットタイプを指定することはできません。
+ Auto Scaling グループの起動テンプレートに、ロードバランサーからの必要なインバウンドトラフィックを許可する正しいセキュリティグループが含まれていない場合、起動テンプレートを更新する必要があります。推奨されるルールは、ロードバランサーのタイプと、ロードバランサーが使用するバックエンドのタイプによって異なります。例えば、トラフィックをウェブ サーバーに送信するには、ロードバランサーからポート 80 でインバウンド HTTP アクセスを許可します。起動テンプレートが変更されても、既存のインスタンスは新しい設定に更新されません。既存のインスタンスを更新するには、インスタンスの更新を開始してインスタンスを置き換えることができます。詳細については、「[インスタンスの更新を使用して Auto Scaling グループのインスタンスを更新する](asg-instance-refresh.md)」を参照してください。
+ 起動テンプレートのセキュリティグループでは、ヘルスチェックを実行するために Elastic Load Balancing の正しいポート上のロードバランサーからのアクセスも許可される必要があります。
+ Gateway Load Balancer の背後に仮想アプライアンスをデプロイする場合、起動テンプレートの Amazon マシンイメージ (AMI) で GENEVE プロトコルをサポートする AMI の ID を指定して、Auto Scaling グループが Gateway Load Balancer とトラフィックを交換できるようにする必要があります。また、起動テンプレートのセキュリティグループでは、ポート 6081 で UDP トラフィックが許可される必要があります。

**ヒント**  
完了に時間がかかるブートストラップスクリプトがある場合、必要に応じて起動ライフサイクルフックを Auto Scaling グループに追加して、ブートストラップスクリプトが正常に完了し、インスタンス上のアプリケーションでトラフィックを受け入れる準備ができるまで、ロードバランサーの背後でのインスタンス登録を遅延させることができます。Amazon EC2 Auto Scaling コンソールで Auto Scaling グループを初めて作成するときにライフサイクルフックを追加することはできません。ただし、ライフサイクルフックはグループを作成した後に追加できます。詳細については、「[Amazon EC2 Auto Scaling のライフサイクルフック](lifecycle-hooks.md)」を参照してください。

## ターゲットのヘルスチェックを設定する
<a name="elb-health-checks-for-targets"></a>

Elastic Load Balancing ロードバランサーで登録されたターゲットのヘルスチェックを設定して、トラフィックを適切に処理できるようにします。具体的な手順は、使用しているロードバランサーのタイプによって異なります。詳細については、以下のリソースを参照してください。
+ **Application Load Balancer** —「*Application Load Balancer のユーザーガイド*」の「[ターゲットグループのヘルスチェック](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html)」を参照してください。
+ **Network Load Balancer** —「*Network Load Balancer のユーザーガイド*」の「[ターゲットグループのヘルスチェック](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-health-checks.html)」を参照してください。
+ **Gateway Load Balancer** —「*Gateway Load Balancer のユーザーガイド*」の「[ターゲットグループのヘルスチェック](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/health-checks.html)」を参照してください。
+ **Classic Load Balancer** —「*Classic Load Balancer のユーザーガイド*」の「[Configure health checks for your Classic Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-healthchecks.html)」を参照してください。

デフォルトで、Elastic Load Balancing のヘルスチェックに失敗した場合、Amazon EC2 Auto Scaling ではインスタンスが異常であるとは見なさず、置き換えは行われません。Auto Scaling グループのデフォルトのヘルスチェックは EC2 ヘルスチェックのみです。詳細については、「[Auto Scaling グループでのインスタンスのヘルスチェック](ec2-auto-scaling-health-checks.md)」を参照してください。

Elastic Load Balancing によって異常と報告されたインスタンスを Amazon EC2 Auto Scaling で置き換えられるようにするには、Elastic Load Balancing のヘルスチェックを使用するように Auto Scaling グループを設定できます。これにより、Amazon EC2 Auto Scaling では、EC2 ヘルスチェックまたは Elastic Load Balancing のヘルスチェックのいずれかに失敗した場合、インスタンスが異常と見なされます。複数のロードバランサー ターゲットグループまたは Classic Load Balancer をグループにアタッチする場合、インスタンスが正常と見なされるためには、すべてのロードバランサーが、インスタンスは正常であるとして報告する必要があります。ロードバランサーの 1 つがインスタンスを異常として報告した場合は、他のロードバランサーがこれを正常として報告した場合でも、Auto Scaling グループ はそのインスタンスを置き換えます。

Auto Scaling グループに対してこれらのヘルスチェックを有効にする方法の詳細については、「[Auto Scaling グループに Elastic Load Balancing ロードバランサーをアタッチする](attach-load-balancer-asg.md)」を参照してください。

**注記**  
これらのヘルスチェックをできるだけ早く開始するには、設定されているグループのヘルスチェック猶予期間が長すぎず、Elastic Load Balancing のヘルスチェックによりターゲットがリクエストを処理できるかどうかを判断できるのに十分な長さに設定されていることを確認してください。詳細については、「[Auto Scaling グループにヘルスチェックの猶予期間を設定する](health-check-grace-period.md)」を参照してください。

# Auto Scaling グループに Elastic Load Balancing ロードバランサーをアタッチする
<a name="attach-load-balancer-asg"></a>

このトピックでは、Auto Scaling グループに Elastic Load Balancing ロードバランサーをアタッチする方法について説明します。また、Elastic Load Balancing のヘルスチェックを有効にして、Elastic Load Balancing から異常として報告されたインスタンスを Amazon EC2 Auto Scaling で置き換える方法についても説明します。

デフォルトでは、Amazon EC2 Auto Scaling は、Amazon EC2 ヘルスチェックに基づいて、異常なインスタンスまたはアクセスできないインスタンスのみを置き換えます。Elastic Load Balancing のヘルスチェックを有効にすると、Auto Scaling グループにアタッチした Elastic Load Balancing ロードバランサーのいずれかから実行中のインスタンスが異常として報告された場合、Amazon EC2 Auto Scaling でそのインスタンスを置き換えることができます。

Application Load Balancer を Auto Scaling グループにアタッチするチュートリアルについては、「[チュートリアル: スケーリングとロードバランシングを使用するアプリケーションのセットアップ](tutorial-ec2-auto-scaling-load-balancer.md)」を参照してください。

**重要**  
先に進む前に、前のセクションのすべての[前提条件](getting-started-elastic-load-balancing.md)を満たしてください。

**Contents**
+ [ターゲットグループまたは Classic Load Balancer をアタッチする](#as-add-load-balancer-console)
+ [ターゲットグループまたは Classic Load Balancer をデタッチする](#as-remove-load-balancer)

## ターゲットグループまたは Classic Load Balancer をアタッチする
<a name="as-add-load-balancer-console"></a>

Auto Scaling グループを作成または更新する際は、1 つ以上のターゲットグループまたは Classic Load Balancer をアタッチできます。Application Load Balancer、Network Load Balancer、または Gateway Load Balancer をアタッチする場合は、ロードバランサーではなくターゲットグループをアタッチします。

このセクションの手順に従い、コンソールを使用して次の操作を実行します。
+ Auto Scaling グループにターゲットグループまたは Classic Load Balancer をアタッチする
+ Elastic Load Balancing のヘルスチェックを有効にする

**新しい Auto Scaling グループを作成しているときに、既存のロードバランサーをアタッチするには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで **[Auto Scaling グループ]** を選択します。

1. 画面の上部のナビゲーションバーで、ロードバランサーを作成した AWS リージョン を選択します。

1. **[Auto Scaling グループの作成]** を選択します。

1.  ステップ 1 と 2 では、必要に応じてオプションを選択し、「**ステップ 3: アドバンストオプションを設定する**」へ進みます。

1. **[ロードバランシング]** では、**[既存のロードバランサーにアタッチ]** を選択します。

1. **[既存のロードバランサーにアタッチ]** で、次のいずれかの操作を行います。

   1. Application Load Balancerでは、Network Load Balancers、および Gateway Load Balancer:

      **[ロードバランサーのターゲットグループから選択]** を選択して、**[Existing load balancer target groups]** (既存のロードバランサーターゲットグループ) でターゲットグループを選択します。

   1. Classic Load Balancerでは:

      **[Classic Load Balancerから選択]** を選択して、**[Classic Load Balancer]** でロードバランサーを選択します。

1. (オプション) **[ヘルスチェック]** の **[追加のヘルスチェックタイプ]** で、**[Elastic Load Balancing のヘルスチェックをオンにする]** を選択します。

1. (オプション) **[ヘルスチェックの猶予期間]** に秒単位で時間を入力します。これは、インスタンスが `InService` 状態になった後で、Amazon EC2 Auto Scaling がインスタンスのヘルスステータスチェックの実行を待つ必要がある時間です。詳細については、「[Auto Scaling グループにヘルスチェックの猶予期間を設定する](health-check-grace-period.md)」を参照してください。

1. Auto Scaling グループの作成に進みます。Auto Scaling グループの作成後、インスタンスは自動的にロードバランサーにメンバーとされます。

**Auto Scaling グループの作成後に既存のロードバランサーをアタッチするには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

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

   **[Auto Scaling groups]** (Auto Scaling グループ) ページの下部にスプリットペインが開きます。

1. **[統合]** タブで、**[ロードバランシング]**、**[編集]** の順に選択します。

1. **[Load balancing]** (ロードバランシング) で、次のいずれかの操作を行います。

   1. **[Application, Network または Gateway Load Balancer のターゲットグループ]** で、そのチェックボックスを選択してターゲットグループを選択します。

   1. **[Classic Load Balancer]** で、そのチェックボックスを選択してロードバランサーを選択します。

1. **[更新]** を選択します。

ロードバランサーのアタッチが完了したら、必要に応じて、そのターゲットグループで使用するヘルスチェックを有効にできます。

**Elastic Load Balancing のヘルスチェックを有効にするには**

1. **[詳細]** タブで、**[ヘルスチェック]**、**[編集]** の順に選択します。

1. **[ヘルスチェック]** の **[追加のヘルスチェックタイプ]** で、**[Elastic Load Balancing のヘルスチェックをオンにする]** を選択します。

1. **[ヘルスチェックの猶予期間]** に、秒単位で時間を入力します。これは、インスタンスが `InService` 状態になった後で、Amazon EC2 Auto Scaling がインスタンスのヘルスステータスチェックの実行を待つ必要がある時間です。詳細については、「[Auto Scaling グループにヘルスチェックの猶予期間を設定する](health-check-grace-period.md)」を参照してください。

1. **[更新]** を選択します。

**注記**  
ロードバランサーがアタッチされている間、 AWS CLIを使用してロードバランサーのステータスを監視できます。Amazon EC2 Auto Scaling がインスタンスを正常に登録し、少なくとも 1 つの登録済みインスタンスがヘルスチェックに合格すると、`InService` のステータスが得られます。詳細については、「[ロードバランサーのアタッチメントステータスを確認する](load-balancer-status.md)」を参照してください。

## ターゲットグループまたは Classic Load Balancer をデタッチする
<a name="as-remove-load-balancer"></a>

ロードバランサーが不要になった場合、以下の手順に従って、Auto Scaling グループからデタッチします。

**グループからロードバランサーをデタッチするには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. 既存のグループの横にあるチェックボックスをオンにします。

   **[Auto Scaling groups]** (Auto Scaling グループ) ページの下部にスプリットペインが開きます。

1. **[詳細]** タブで、**[ロードバランシング]**、**[編集]** の順に選択します。

1. **[ロードバランシング]** で、次のいずれかの操作を行います。

   1. **[Application, Network または Gateway Load Balancer のターゲットグループ]** で、ターゲットグループの横にある削除 (X) アイコンを選択します。

   1. **[Classic Load Balancer]** で、ロードバランサーの横にある削除 (X) アイコンを選択します。

1. **[更新]** を選択します。

ターゲットグループのデタッチが完了したら、Elastic Load Balancing のヘルスチェックを無効にできます。

**Elastic Load Balancing のヘルスチェックを無効にするには**

1. **[詳細]** タブで、**[ヘルスチェック]**、**[編集]** の順に選択します。

1. **[ヘルスチェック]** の **[追加のヘルスチェックタイプ]** で、**[Elastic Load Balancing のヘルスチェックをオンにする]** の選択を解除します。

1. **[更新]** を選択します。

# コンソールから Application Load Balancer または Network Load Balancer を設定する
<a name="as-create-load-balancer-console"></a>

以下の手順に従い、Auto Scaling グループを作成するときに、Application Load Balancer または Network Load Balancer を作成してアタッチします。

**新しい Auto Scaling グループの作成時に、新しいロードバランサーを作成してアタッチするには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで **[Auto Scaling グループ]** を選択します。

1. **[Auto Scaling グループの作成]** を選択します。

1. ステップ 1 と 2 では、必要に応じてオプションを選択し、「**ステップ 3: アドバンストオプションを設定する**」へ進みます。

1. **[ロードバランシング]** で、**[新しいロードバランサーにアタッチ]** を選択します。

   1. **[新しいロードバランサーにアタッチ]** で、**[ロードバランサーのタイプ]** に、Application Load Balancer または Network Load Balancer のいずれを作成するかを選択します。

   1. **[ロードバランサーの名前]** は、ロードバランサーの名前を入力するか、デフォルトの名前のままにします。

   1. **[ロードバランサーのスキーム]** で、インターネット向け 公開ロードバランサーを作成するか、内部向けロードバランサーのデフォルトのままにするかを選択します。

   1. **[アベイラビリティーゾーンとサブネット]** で、EC2 インスタンスを起動するために選択した各アベイラビリティーゾーンに対して、パブリックサブネットを選択します。(これらは、ステップ 2 で事前設定されます)。

   1. **[リスナーとルーティング]** をクリックし、リスナーのポート番号を更新し (必要な場合)、**[デフォルトルーティング]** で、**[ターゲットグループの作成]** を選択します。または、ドロップダウンリストから既存のターゲットグループを選択することができます。

   1. 最後のステップで、**[ターゲットグループの作成]** を選択した場合、**[新しいターゲットグループ名]** にターゲットグループの名前を入力するか、デフォルトの名前のままにします。

   1. ロードバランサーにタグを追加するには、**[タグの追加]** を選択して、タグごとにタグのキーと値を指定します。

1. (オプション) **[ヘルスチェック]** の **[追加のヘルスチェックタイプ]** で、**[Elastic Load Balancing のヘルスチェックをオンにする]** を選択します。

1. (オプション) **[ヘルスチェックの猶予期間]** に秒単位で時間を入力します。これは、インスタンスが `InService` 状態になった後で、Amazon EC2 Auto Scaling がインスタンスのヘルスステータスチェックの実行を待つ必要がある時間です。詳細については、「[Auto Scaling グループにヘルスチェックの猶予期間を設定する](health-check-grace-period.md)」を参照してください。

1. Auto Scaling グループの作成に進みます。Auto Scaling グループの作成後、インスタンスは自動的にロードバランサーにメンバーとされます。
**注記**  
Auto Scaling グループを作成したら、Elastic Load Balancing コンソールを使用して追加のリスナーを作成できます。これは、HTTPS などの安全なプロトコルや UDP リスナーを使用してリスナーを作成する必要がある場合に便利です。異なるポートを使用していれば、既存のロードバランサーにもっとリスナーを追加できます。

# ロードバランサーのアタッチメントステータスを確認する
<a name="load-balancer-status"></a>

ロードバランサーは、アタッチされた後、グループのインスタンスを登録している間は、`Adding` 状態になります。グループのすべてのインスタンスが登録済みになると、`Added` 状態になります。最低 1 つの登録されたインスタンスがヘルスチェックを通過した後、`InService` 状態になります。ロードバランサーが `InService` 状態にある場合、Amazon EC2 Auto Scaling は異常と報告されたインスタンスを 終了し、置き換えることができます。メンバーとされたインスタンスがヘルスチェックに合格しない場合 (例えば、誤って設定されたヘルスチェックが原因)、ロードバランサーは `InService` 状態に入力しません。Amazon EC2 Auto Scaling はインスタンスを終了し置き換えをすることはありません。

ロードバランサーをデタッチすると、グループのインスタンスの登録解除中、`Removing` 状態になります。登録解除してもインスタンスは引き続き実行されます。Application Load Balancer、Network Load Balancer、および Gateway Load Balancer では、Connection Draining がデフォルトで有効になっています。Connection Draining が有効になっている場合、Elastic Load Balancing は、処理中のリクエストが完了するまで、または最大タイムアウトの期限が切れるまで (どちらか早い方) 待機してから、インスタンスの登録を解除します。

( AWS Command Line Interface AWS CLI) または AWS SDKs を使用して、アタッチメントのステータスを確認できます。アタッチメントステータスはコンソールから確認できません。

**を使用してアタッチメントのステータス AWS CLI を確認するには**  
次の [describe-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-traffic-sources.html) コマンドは、指定した Auto Scaling グループのすべてのトラフィックソースのアタッチメントステータスを返します。

```
aws autoscaling describe-traffic-sources --auto-scaling-group-name my-asg
```

この例では、Auto Scaling グループにアタッチされている Elastic Load Balancing ターゲットグループの ARN と、`State` エレメント内のターゲットグループのアタッチメントステータスを返します。

```
{
    "TrafficSources": [
        {
            "Identifier": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456",
            "State": "InService",
            "Type": "elbv2"
        }
    ]
}
```

# アベイラビリティーゾーンを追加する
<a name="as-add-az-console"></a>

理的な冗長性による安全性と信頼性を活用するには、作業しているリージョンの複数のアベイラビリティーゾーンにまたがって Auto Scaling グループを配置し、ロードバランサーをアタッチしてそれらのアベイラビリティーゾーンに受信トラフィックを分散させます。

1 つのアベイラビリティーゾーンが異常または使用不可になったとき、Amazon EC2 Auto Scaling は、影響を受けていないアベイラビリティーゾーンで新しいインスタンスを起動します。異常な状態のアベイラビリティーゾーンが正常な状態に戻ったら、Amazon EC2 Auto ScalingはAuto Scalingグループのすべてのアベイラビリティーゾーンにわたって均等にアプリケーションインスタンスを自動的に再分配します。Amazon EC2 Auto Scaling は、インスタンス数が最も少ないアベイラビリティーゾーンで新しいインスタンスの起動を試みることによって、これを実行します。この試みが失敗すると、Amazon EC2 Auto Scaling は成功するまで他のアベイラビリティーゾーンでの起動を試みます。

Elastic Load Balancing は、ロードバランサーに有効な各アベイラビリティーゾーンにロードバランサー ノードを作成します。ロードバランサーのクロスゾーン ロードバランシングを有効にすると、各ロードバランサー ノードは、有効化されたすべてのアベイラビリティーゾーンのメンバーとされたインスタンスに均等にトラフィックを分配します。クロスゾーン負荷分散が無効の場合は、各ロードバランサーノードは、そのアベイラビリティーゾーンの登録されたインスタンスにのみリクエストを均等に分散します。

Auto Scaling グループを作成しているときは、少なくとも 1 つのアベイラビリティーゾーンを指定する必要があります。その後、Auto Scaling グループにアベイラビリティーゾーンを追加し、そのアベイラビリティーゾーンをロードバランサーに対して有効にすることで (ロードバランサーがサポートしている場合)、アプリケーションの可用性を拡張できます。

**制限事項**  
ロードバランサーで有効になっているアベイラビリティーゾーンを更新するには、次の制限事項に注意する必要があります。
+ ロードバランサー用のアベイラビリティーゾーンを有効にすると、そのアベイラビリティーゾーンからサブネットを 1 つ指定します。ロードバランサーでは、アベイラビリティーゾーンごとに最大で 1 つのサブネットを有効にできることに注意してください。
+ インターネット向けロードバランサーの場合、ロードバランサーに指定するサブネットには最低 八個の利用可能な IP アドレスが必要です。
+ Application Load Balancer の場合、少なくても 二つのアベイラビリティーゾーンを有効にする必要があります。
+ Network Load Balancers の場合、有効になっているアベイラビリティーゾーンを無効にすることはできませんが、追加のアベイラビリティーゾーンを有効にすることはできます。
+ Gateway Load Balancers の場合、有効になっているアベイラビリティーゾーンを無効にすることはできませんが、追加のアベイラビリティーゾーンを有効にすることはできます。

次の手順に従い、追加のアベイラビリティーゾーンのサブネットに Auto Scaling グループとロードバランサーを拡張します。

**アベイラビリティーゾーンを追加するには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで **[Auto Scaling グループ]** を選択します。

1. 既存のグループの横にあるチェックボックスをオンにします。

   **[Auto Scaling グループ** ページの下部にスプリットペインが開きます。

1. **[詳細]** タブで、**[ネットワーク]**、**[編集]** の順に選択します。

1. **[サブネット]** で、Auto Scaling グループに追加したいアベイラビリティーゾーンに対応するサブネットの削除 (X) アイコンを選択します。

1. **[更新]** を選択します。

1. ロードバランサーのアベイラビリティーゾーンを更新して、Auto Scaling グループと同じゾーンを共有するには、以下のステップを完了します:

   1. ナビゲーションペインの **[ロードバランシング]** で **[ロードバランサー]** を選択します。

   1. ロードバランサーを選択します。

   1. 次のいずれかを行います。
      + Application Load Balancer および Network Load Balancer の場合:

        1. **[説明]** タブで、**[アベイラビリティーゾーン]** で、**[サブネットを編集する]** を選択します。

        1. **[サブネットを編集する]** ページの **[アベイラビリティーゾーン]** で、追加するアベイラビリティーゾーンのチェックボックスを選択します。そのゾーンにサブネットが 1 つしかない場合は、そのサブネットが選択されています。そのゾーンに複数のサブネットがある場合は、いずれかのサブネットを選択します。
      + VPC 内の Classic Load Balancer の場合:

        1. **[インスタンス]** タブで、**[アベイラビリティーゾーンの編集]** を選択します。

        1. **[サブネットを追加および削除する]** ページの **[使用可能なサブネット]** で、追加 (\$1) アイコンを使用してサブネットを選択します。サブネットが **[選択済みサブネット]** に移動します。

   1. **[保存]** を選択します。

## 関連リソース
<a name="availability-zone-related-resources"></a>

アベイラビリティーゾーンを変更すると、Amazon EC2 Auto Scaling によってグループが再調整されます。これは、一部のインスタンスを置き換えて再配布することを意味します。詳細については、「[例: 複数のアベイラビリティーゾーン全体にインスタンスを分散させる](auto-scaling-benefits.md#arch-AutoScalingMultiAZ)」を参照してください。

ロードバランサーのために有効になっていないアベイラビリティーゾーンにターゲットを登録している場合、そのロードバランサーはそれらのターゲットにトラフィックをルーティングしません。詳細については、*Elastic Load Balancing ユーザーガイド*の [How Elastic Load Balancing works](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html) を参照してください。

# アベイラビリティーゾーンの削除
<a name="as-remove-az-console"></a>

Auto Scaling グループおよびロードバランサーからアベイラビリティーゾーンを削除するには、以下の手順に従います。

**アベイラビリティーゾーンを削除するには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで **[Auto Scaling グループ]** を選択します。

1. 既存のグループの横にあるチェックボックスをオンにします。

   **[Auto Scaling グループ** ページの下部にスプリットペインが開きます。

1. **[詳細]** タブで、**[ネットワーク]**、**[編集]** の順に選択します。

1. **[サブネット]** で、Auto Scaling グループから削除したいアベイラビリティーゾーンに対応するサブネットの削除 (X) アイコンを選択します。そのゾーンに複数のサブネットがある場合は、それぞれの 削除 (X) アイコンを選択します。

1. **[更新]** を選択します。

1. ロードバランサーのアベイラビリティーゾーンを更新して、Auto Scaling グループと同じゾーンを共有するには、以下のステップを完了します:

   1. ナビゲーションペインの **[ロードバランシング]** で **[ロードバランサー]** を選択します。

   1. ロードバランサーを選択します。

   1. 次のいずれかを行います。
      + Application Load Balancer の場合:

        1. **[説明]** タブで、**[アベイラビリティーゾーン]** で、**[サブネットを編集する]** を選択します。

        1. **[サブネットの編集]** ページの **[アベイラビリティーゾーン]** で、チェックボックスをオフにするとアベイラビリティーゾーンのサブネットが削除されます。
      + VPC 内の Classic Load Balancer の場合:

        1. **[インスタンス]** タブで、**[アベイラビリティーゾーンの編集]** を選択します。

        1. **[サブネットをの追加と削除]** ページの**[利用可能なサブネット]** で、その削除 (-) アイコンを使用してサブネットを削除します。サブネットが **[利用可能なサブネット]** の下に移動します。

   1. **[保存]** を選択します。

# Auto Scaling グループからターゲットグループまたは Classic Load Balancer をデタッチする
<a name="as-remove-load-balancer"></a>

ロードバランサーが不要になった場合、以下の手順に従って、Auto Scaling グループからデタッチします。

**グループからロードバランサーをデタッチするには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. 既存のグループの横にあるチェックボックスをオンにします。

   **[Auto Scaling groups]** (Auto Scaling グループ) ページの下部にスプリットペインが開きます。

1. **[詳細]** タブで、**[ロードバランシング]**、**[編集]** の順に選択します。

1. **[ロードバランシング]** で、次のいずれかの操作を行います。

   1. **[Application, Network または Gateway Load Balancer のターゲットグループ]** で、ターゲットグループの横にある削除 (X) アイコンを選択します。

   1. **[Classic Load Balancer]** で、ロードバランサーの横にある削除 (X) アイコンを選択します。

1. **[更新]** を選択します。

ターゲットグループのデタッチが完了したら、Elastic Load Balancing のヘルスチェックを無効にできます。

**Elastic Load Balancing のヘルスチェックを無効にするには**

1. **[詳細]** タブで、**[ヘルスチェック]**、**[編集]** の順に選択します。

1. **[ヘルスチェック]** の **[追加のヘルスチェックタイプ]** で、**[Elastic Load Balancing のヘルスチェックをオンにする]** の選択を解除します。

1. **[更新]** を選択します。

# を使用した Elastic Load Balancing の使用例 AWS CLI
<a name="examples-elastic-load-balancing-aws-cli"></a>

 AWS Command Line Interface (AWS CLI) を使用して、ロードバランサーとターゲットグループをアタッチ、デタッチ、記述し、Elastic Load Balancing ヘルスチェックを追加および削除し、有効になっているアベイラビリティーゾーンを変更します。

このトピックでは、Amazon EC2 Auto Scaling の一般的なタスクを実行する AWS CLI コマンドの例を示します。

**重要**  
その他のコマンドの例については、「*AWS CLI コマンドリファレンス*」の「[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elbv2/index.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elbv2/index.html)」と「[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/index.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/index.html)」を参照してください。

**Topics**
+ [ターゲットグループまたは Classic Load Balancer をアタッチする](#example-attach-traffic-sources)
+ [ターゲットグループまたは Classic Load Balancer の説明を表示する](#example-describe-traffic-sources)
+ [Elastic Load Balancing のヘルスチェックを追加する](#example-add-elb-healthcheck)
+ [アベイラビリティーゾーンを変更する](#example-specify-availability-zones)
+ [ターゲットグループまたは Classic Load Balancer をデタッチする](#example-detach-traffic-sources)
+ [Elastic Load Balancing のヘルスチェックを削除する](#example-remove-elb-healthcheck)
+ [レガシーコマンド](#legacy-commands)

## ターゲットグループまたは Classic Load Balancer をアタッチする
<a name="example-attach-traffic-sources"></a>

次の [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用して Auto Scaling グループを作成し、同時にその Amazon リソースネーム (ARN) を指定してターゲットグループをアタッチします。ターゲットグループは、Application Load Balancer、Network Load Balancer、または Gateway Load Balancer に関連付けることができます。

`--auto-scaling-group-name`、`--vpc-zone-identifier`、`--min-size`、および `--max-size` のサンプルの値を置き換えます。`--launch-template` オプションの場合、`my-launch-template` と `1` を Auto Scaling グループの起動テンプレートの名前とバージョンに置き換えます。`--traffic-sources` オプションの場合、サンプルの ARN を Application Load Balancer、Network Load Balancer、または Gateway Load Balancer のターゲットグループの ARN に置き換えます。

```
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" \
  --min-size 1 --max-size 5 \
  --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1"
```

Auto Scaling グループを作成したら、[attach-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/attach-traffic-sources.html) コマンドを使用して、追加のターゲットグループを Auto Scaling グループにアタッチします。

次のコマンドは、同じグループに別のターゲットグループを追加します。

```
aws autoscaling attach-traffic-sources --auto-scaling-group-name my-asg \
  --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE2"
```

別の方法として、Classic Load Balancer をグループにアタッチするには、次の例のように、**create-auto-scaling-group** または **attach-traffic-sources** を使用するときに `--traffic-sources` オプションおよび `--type` オプションを指定します。`my-classic-load-balancer` を Classic Load Balancer の名前に置き換えます。`--type` オプションの場合、`elb` の値を指定します。

```
--traffic-sources "Identifier=my-classic-load-balancer" --type elb
```

## ターゲットグループまたは Classic Load Balancer の説明を表示する
<a name="example-describe-traffic-sources"></a>

Auto Scaling グループにアタッチされているロードバランサーまたはターゲットグループの説明を表示するには、次の [describe-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-traffic-sources.html) コマンドを使用します。`my-asg` をグループの名前に置き換えます。

```
aws autoscaling describe-traffic-sources --auto-scaling-group-name my-asg
```

この例では、Auto Scaling グループにアタッチした Elastic Load Balancing ターゲットグループの ARN を返します。

```
{
    "TrafficSources": [
        {
            "Identifier": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1",
            "State": "InService",
            "Type": "elbv2"
        },
        {
            "Identifier": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE2",
            "State": "InService",
            "Type": "elbv2"
        }
    ]
}
```

出力された `State` フィールドの説明については、「[ロードバランサーのアタッチメントステータスを確認する](load-balancer-status.md)」を参照してください。

## Elastic Load Balancing のヘルスチェックを追加する
<a name="example-add-elb-healthcheck"></a>

Auto Scaling グループがインスタンスに対して実行するヘルスチェックに Elastic Load Balancing のヘルスチェックを追加するには、次の [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) コマンドを実行し、`--health-check-type` オプションの値として `ELB` を指定します。`my-asg` をグループの名前に置き換えます。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --health-check-type "ELB"
```

新しいインスタンスは、多くの場合、ヘルスチェックに合格する前に簡単なウォームアップの時間が必要です。猶予期間で十分なウォームアップ時間が提供されない場合、インスタンスはトラフィックを処理する準備ができていないように見えることがあります。Amazon EC2 Auto Scaling は、これらのインスタンスを異常と見なして置き換えることがあります。

ヘルスチェックの猶予期間を更新するには、次の例のように、**update-auto-scaling-group** を使用するときに `--health-check-grace-period` オプションを使用します。*300* は、新しいインスタンスに異常が見つかった場合、終了させるまでに稼働させておく秒数に置き換えてください。

```
--health-check-grace-period 300
```

詳細については、「[Auto Scaling グループでのインスタンスのヘルスチェック](ec2-auto-scaling-health-checks.md)」を参照してください。

## アベイラビリティーゾーンを変更する
<a name="example-specify-availability-zones"></a>

アベイラビリティーゾーンの変更には、注意が必要な制限がいくつかあります。詳細については、「[アベイラビリティーゾーンを追加するアベイラビリティーゾーンの削除](as-add-az-console.md)」を参照してください。

**Application Load Balancer または Network Load Balancer のアベイラビリティーゾーンを変更するには**

1. ロードバランサーのアベイラビリティーゾーンを変更する前に、まず Auto Scaling グループのアベイラビリティーゾーンを更新して、使用しているインスタンスタイプが指定したゾーンで使用できることを確認することをお勧めします。

   Auto Scaling グループのアベイラビリティーゾーンを更新するには、次の [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) コマンドを使用します。サンプルのサブネット ID を、有効にするアベイラビリティーゾーンのサブネットの ID に置き換えます。指定したサブネットは、以前に有効であったサブネットに置き換わります。`my-asg` をグループの名前に置き換えます。

   ```
   aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
     --vpc-zone-identifier "subnet-41767929,subnet-cb663da2,subnet-8360a9e7"
   ```

1. 次の [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) コマンドを使用して、新しいサブネットのインスタンスが起動されたことを確認します。インスタンスが起動した場合は、インスタンスとそのステータスのリストが表示されます。`my-asg` をグループの名前に置き換えます。

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
   ```

1. 次の [set-subnets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elbv2/set-subnets.html) コマンドを使用して、ロードバランサーのサブネットを指定します。サンプルのサブネット ID を、有効にするアベイラビリティーゾーンのサブネットの ID に置き換えます。アベイラビリティーゾーンごとに 1 つだけサブネットを指定できます。指定したサブネットは、以前に有効であったサブネットに置き換わります。`my-lb-arn` を、使用しているロードバランサーの ARN に置き換えます。

   ```
   aws elbv2 set-subnets --load-balancer-arn my-lb-arn \
     --subnets subnet-41767929 subnet-cb663da2 subnet-8360a9e7
   ```

**Classic Load Balancer のアベイラビリティーゾーンを変更するには**

1. ロードバランサーのアベイラビリティーゾーンを変更する前に、まず Auto Scaling グループのアベイラビリティーゾーンを更新して、使用しているインスタンスタイプが指定したゾーンで使用できることを確認することをお勧めします。

   Auto Scaling グループのアベイラビリティーゾーンを更新するには、次の [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) コマンドを使用します。サンプルのサブネット ID を、有効にするアベイラビリティーゾーンのサブネットの ID に置き換えます。指定したサブネットは、以前に有効であったサブネットに置き換わります。`my-asg` をグループの名前に置き換えます。

   ```
   aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
     --vpc-zone-identifier "subnet-41767929,subnet-cb663da2"
   ```

1. 次の [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) コマンドを使用して、新しいサブネットのインスタンスが起動されたことを確認します。インスタンスが起動した場合は、インスタンスとそのステータスのリストが表示されます。`my-asg` をグループの名前に置き換えます。

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
   ```

1. 次の [attach-load-balancer-to-subnets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/attach-load-balancer-to-subnets.html) コマンドを使用して Classic Load Balancer の新しいアベイラビリティーゾーンを有効にします。サンプルのサブネット ID を、有効にするアベイラビリティーゾーンのサブネットの ID に置き換えます。`my-lb` を、使用しているロードバランサーの名前に置き換えます。

   ```
   aws elb attach-load-balancer-to-subnets --load-balancer-name my-lb \
     --subnets subnet-cb663da2
   ```

   アベイラビリティーゾーンを無効にするには、次の [detach-load-balancer-from-subnets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/detach-load-balancer-from-subnets.html) コマンドを使用します。サンプルのサブネット ID を、無効にするアベイラビリティーゾーンのサブネットの ID に置き換えます。`my-lb` を、使用しているロードバランサーの名前に置き換えます。

   ```
   aws elb detach-load-balancer-from-subnets --load-balancer-name my-lb \
     --subnets subnet-8360a9e7
   ```

## ターゲットグループまたは Classic Load Balancer をデタッチする
<a name="example-detach-traffic-sources"></a>

ターゲットグループが不要になった場合、次の [detach-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/detach-traffic-sources.html) コマンドを使用して、Auto Scaling グループからターゲットグループをデタッチします。

`--auto-scaling-group-name` オプションの場合、`my-asg` を使用しているグループの名前に置き換えます。`--traffic-sources` オプションの場合、サンプルの ARN を Application Load Balancer、Network Load Balancer、または Gateway Load Balancer のターゲットグループの ARN に置き換えます。

```
aws autoscaling detach-traffic-sources --auto-scaling-group-name my-asg \
  --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
```

Classic Load Balancer をグループからデタッチするには、次の例のように `--traffic-sources` オプションと `--type` オプションを指定します。`my-classic-load-balancer` を Classic Load Balancer の名前に置き換えます。`--type` オプションの場合、`elb` の値を指定します。

```
--traffic-sources "Identifier=my-classic-load-balancer" --type elb
```

## Elastic Load Balancing のヘルスチェックを削除する
<a name="example-remove-elb-healthcheck"></a>

Elastic Load Balancing のヘルスチェックを Auto Scaling グループから削除するには、次の [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) コマンドを使用し、`--health-check-type` オプションの値として `EC2` を指定します。`my-asg` をグループの名前に置き換えます。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --health-check-type "EC2"
```

詳細については、「[Auto Scaling グループでのインスタンスのヘルスチェック](ec2-auto-scaling-health-checks.md)」を参照してください。

## レガシーコマンド
<a name="legacy-commands"></a>

以下の例は、レガシー CLI コマンドを使用してロードバランサーとターゲットグループをアタッチおよびデタッチする方法と、それらの説明を表示する方法を示しています。これらは、お客様が使用する際の参照用として、このドキュメントに残してあります。レガシー CLI コマンドは引き続きサポートされますが、新しい「トラフィックソース」CLI コマンドは複数のトラフィックソースタイプをアタッチおよびデタッチできるので、こちらの使用をお勧めします。レガシー CLI コマンドと「トラフィックソース」CLI コマンドの両方を同じ Auto Scaling グループで使用できます。

### ターゲットグループまたは Classic Load Balancer (レガシー) をアタッチする
<a name="example-attach-load-balancer-target-group"></a>

**ターゲットグループをアタッチするには**  
次の [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドは、アタッチされたターゲットグループを使用して、Auto Scaling グループを作成します。Application Load Balancer、Network Load Balancer、または Gateway Load Balancer のターゲットグループの Amazon リソースネーム (ARN) を指定します。

```
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:account-id:targetgroup/my-targets/1234567890123456" \
  --min-size 1 --max-size 5
```

以下の [attach-load-balancer-target-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/attach-load-balancer-target-groups.html) コマンドは、既存の Auto Scaling グループにターゲットグループをアタッチします。

```
aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name my-asg \
  --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
```

**Classic Load Balancer をアタッチするには**  
以下の [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドは、Classic Load 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" \
  --min-size 1 --max-size 5
```

以下の [attach-load-balancers](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/attach-load-balancers.html) コマンドは、指定された Classic Load Balancer を既存の Auto Scaling グループにアタッチします。

```
aws autoscaling attach-load-balancers --auto-scaling-group-name my-asg \
  --load-balancer-names my-lb
```

### ターゲットグループまたは Classic Load Balancer (レガシー) の説明を表示する
<a name="example-describe-load-balancer-target-groups"></a>

**ターゲットグループの説明を表示するには**  
Auto Scaling グループに関連付けられているターゲットグループの説明を表示するには、[describe-load-balancer-target-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-load-balancer-target-groups.html) コマンドを使用します。次の例では、*my-asg*のターゲットグループの一覧を表示します。

```
aws autoscaling describe-load-balancer-target-groups --auto-scaling-group-name my-asg
```

**Classic Load Balancer の説明を表示するには**  
Auto Scaling グループに関連付けられている Classic Load Balancer の説明を表示するには、[describe-load-balancers](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-load-balancers.html) コマンドを使用します。次の例では、*my-asg* の Classic Load Balancer を一覧表にしています。

```
aws autoscaling describe-load-balancers --auto-scaling-group-name my-asg
```

### ターゲットグループまたは Classic Load Balancer (レガシー) をデタッチする
<a name="example-detach-load-balancer-target-group"></a>

**ターゲットグループをデタッチするには**  
ターゲットグループが不要になった場合、以下の [detach-load-balancer-target-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/detach-load-balancer-target-groups.html) コマンドを使用して、Auto Scaling グループからターゲットグループをデタッチします。

```
aws autoscaling detach-load-balancer-target-groups --auto-scaling-group-name my-asg \
  --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
```

**Classic Load Balancer をデタッチするには**  
ロードバランサーが不要になったら、以下の [detach-load-balancers](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/detach-load-balancers.html) コマンドが、Auto Scaling グループから Classic Load Balancer をデタッチします。

```
aws autoscaling detach-load-balancers --auto-scaling-group-name my-asg \
  --load-balancer-names my-lb
```

# VPC Lattice ターゲットグループを使用してトラフィックフローを管理する
<a name="ec2-auto-scaling-vpc-lattice"></a>

Amazon VPC Lattice を使用すると、Auto Scaling グループや Lambda 関数など、個別のリソースで実行されるアプリケーションとサービス間のトラフィックおよび API コールのフローを管理できます。VPC Lattice は、複数のアカウントおよび仮想プライベートクラウド (VPC) にわたって、すべてのサービスを接続、保護、およびモニタリングできるアプリケーションネットワーキングサービスです。VPC Lattice の詳細については、「[VPC Lattice とは?](https://docs.aws.amazon.com/vpc-lattice/latest/ug/)」を参照してください。

VPC Lattice の使用を開始するには、まず、サービスネットワークに関連付けられた VPC 内のリソースが互いに接続できるようにするために必要な VPC Lattice リソースを作成します。これらのリソースには、サービス、リスナー、リスナールール、およびターゲットグループが含まれます。

Auto Scaling グループを VPC Lattice サービスに関連付けるには、インスタンス ID で登録したインスタンスへのリクエストをルーティングするサービスのターゲットグループを作成し、リクエストをターゲットグループに送信するリスナーを追加します。次に、ターゲットグループを Auto Scaling グループにアタッチします。Amazon EC2 Auto Scaling は、EC2 インスタンスをターゲットとしてターゲットグループに自動的に登録します。その後、Amazon EC2 Auto Scaling がインスタンスを終了する必要がある場合、終了前にターゲットグループからインスタンスを自動的に登録解除します。

ターゲットグループをアタッチすると、そのグループが Auto Scaling グループへのすべての受信リクエストのエントリポイントになります。続いて、下図の例が示すように、VPC Lattice サービスで指定したリスナールールを使用して、受信リクエストを適切なターゲットグループにルーティングします。

![\[VPC Lattice は、パスベースのルーティングを使用して、2 つの Auto Scaling グループ内の登録済みターゲットにトラフィックをルーティングします。\]](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/images/vpc-lattice-diagram-auto-scaling-groups.png)


トラフィックが VPC Lattice 経由で Auto Scaling グループにルーティングされると、VPC Lattice はラウンドロビン負荷分散を使用してグループ内のインスタンス間でリクエストの負荷を分散させます。また、VPC Lattice は登録済みのインスタンスの正常性をモニタリングし、トラフィックを正常なインスタンスにのみルーティングすることができます。

受信リクエストに対してインスタンスを使用できるようにしておくために、必要に応じて VPC Lattice ヘルスチェックを Auto Scaling グループに追加します。このようにしておくと、いずれかの EC2 インスタンスに障害が発生した場合でも、Auto Scaling グループで新しいインスタンスが起動され、自動的に置き換えられます。VPC Lattice ヘルスチェックの動作は、Elastic Load Balancing ヘルスチェックの動作と似ています。Auto Scaling グループのデフォルトのヘルスチェックは EC2 ヘルスチェックのみです。

VPC Lattice の詳細については、 AWS ブログの[「Simplify Service-to-Service Connectivity, Security, and Monitoring with Amazon VPC Lattice – Now generally Available](https://aws.amazon.com/blogs/aws/simplify-service-to-service-connectivity-security-and-monitoring-with-amazon-vpc-lattice-now-generally-available/)」を参照してください。

**Topics**
+ [ターゲットグループをアタッチする準備を行うには](getting-started-vpc-lattice.md)
+ [VPC Lattice ターゲットグループをアタッチする](attach-vpc-lattice-target-group-asg.md)
+ [アタッチメントステータスを確認する](verify-target-group-attachment-status.md)

# Auto Scaling グループに VPC Lattice ターゲットグループをアタッチする準備を行う
<a name="getting-started-vpc-lattice"></a>

Auto Scaling グループに VPC Lattice ターゲットグループをアタッチする前に、以下の前提条件を満たす必要があります。
+ VPC Lattice サービスネットワーク、サービス、リスナー、およびターゲットグループの作成を既に行っている必要があります。詳細については、「*Amazon VPC Lattice ユーザーガイド*」の次のトピックを参照してください。
  + [サービスネットワーク](https://docs.aws.amazon.com/vpc-lattice/latest/ug/service-networks.html)
  + [サービス](https://docs.aws.amazon.com/vpc-lattice/latest/ug/services.html)
  + [リスナー](https://docs.aws.amazon.com/vpc-lattice/latest/ug/listeners.html)
  + [ターゲットグループ](https://docs.aws.amazon.com/vpc-lattice/latest/ug/target-groups.html)
+ ターゲットグループは AWS アカウント、Auto Scaling グループと同じ、VPC、リージョンに存在する必要があります。
+ ターゲットグループは、`instance` のターゲットタイプを指定する必要があります。Auto Scaling グループを使用する場合、`ip` のターゲットタイプを指定することはできません。
+ ターゲットグループを Auto Scaling グループにアタッチするには、十分な IAM アクセス許可が付与されている必要があります。次のポリシー例は、ターゲットグループをアタッチおよびデタッチするために必要な最小限のアクセス許可を示しています。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "autoscaling:AttachTrafficSources",
                  "autoscaling:DetachTrafficSources",
                  "autoscaling:DescribeTrafficSources",
                  "vpc-lattice:RegisterTargets",
                  "vpc-lattice:DeregisterTargets"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
+ Auto Scaling グループの起動テンプレートに VPC Lattice の正しい設定 (互換性のあるセキュリティグループなど) が含まれていない場合は、起動テンプレートを更新する必要があります。起動テンプレートが変更されても、既存のインスタンスは新しい設定に更新されません。既存のインスタンスを更新するには、インスタンスの更新を開始してインスタンスを置き換えることができます。詳細については、「[インスタンスの更新を使用して Auto Scaling グループのインスタンスを更新する](asg-instance-refresh.md)」を参照してください。
+ Auto Scaling グループで VPC Lattice ヘルスチェックを有効にする前に、アプリケーションベースのヘルスチェックを設定して、アプリケーションが期待どおりに応答していることを確認できます。詳細については、「*Amazon VPC Lattice ユーザーガイド*」の「[Health checks for your target groups](https://docs.aws.amazon.com/vpc-lattice/latest/ug/target-group-health-checks.html)」を参照してください。

## セキュリティグループ: インバウンドルールとアウトバウンドルール
<a name="vpc-lattice-security-groups"></a>

セキュリティグループは、関連付けられた EC2 インスタンスのファイアウォールとして機能し、インバウンドトラフィックとアウトバウンドトラフィックの両方をインスタンスレベルでコントロールします。

**注記**  
ネットワーク設定は非常に複雑であるため、VPC Lattice で使用するセキュリティグループを新たに作成することを強くお勧めします。また、 に連絡する必要がある場合に サポート がサポートしやすくなります。次のセクションは、ユーザーがこの推奨事項に従うことを前提とした内容になっています。  
Auto Scaling グループで使用できる VPC Lattice のセキュリティグループを作成する方法の詳細については、「*Amazon VPC Lattice ユーザーガイド*」の「[Control traffic using security groups](https://docs.aws.amazon.com/vpc-lattice/latest/ug/security-groups.html)」を参照してください。トラフィックフローの問題をトラブルシューティングするには、「*Amazon VPC Lattice ユーザーガイド*」で詳細を確認してください。

セキュリティグループの作成方法の詳細については、「*Amazon EC2 ユーザーガイド*」の「[セキュリティグループの作成](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-security-group.html)」を参照し、次の表を使用して選択するオプションを決定してください。


| オプション | 値 | 
| --- | --- | 
| 名前  | 覚えやすい名前。 | 
| 説明 | セキュリティグループの識別に役立つ説明。 | 
| VPC | Auto Scaling グループと同じ VPC。 | 

### インバウンドルール
<a name="vpc-lattice-inbound-rules"></a>

セキュリティグループを作成するときには、インバウンドルールはありません。インバウンドルールをセキュリティグループに追加するまで、VPC Lattice サービスネットワーク内のクライアントからインスタンスに送信されるインバウンドトラフィックは許可されません。

VPC Lattice サービスネットワーク内のクライアントが Auto Scaling グループ内のインスタンスに接続できるようにするには、Auto Scaling グループのセキュリティグループを正しく設定する必要があります。この場合、特定の IP アドレスではなく、VPC Lattice の AWS マネージドプレフィックスリストの名前からのトラフィックを許可するインバウンドルールを指定します。VPC Lattice のプレフィックスリストは、VPC Lattice が使用する IP アドレスの範囲を CIDR 表記で表したものです。詳細については、*「Amazon VPC* [ユーザーガイド AWS」の「マネージドプレフィックスリストの使用](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html)」を参照してください。

セキュリティグループにルールを追加する方法の詳細については、「*Amazon VPC ユーザーガイド*」の「[セキュリティグループのルールを設定する](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-security-group-rules.html)」を参照し、次の表を使用して、選択するオプションを決定してください。


| オプション | 値 | 
| --- | --- | 
|  HTTP ルール  | Type: HTTP ソース: com.amazonaws.*region*.vpc-lattice  | 
|  HTTPS ルール  | タイプ: HTTPS ソース: com.amazonaws.*region*.vpc-lattice  | 

セキュリティグループはステートフルです。VPC Lattice サービスネットワーク内のクライアントから Auto Scaling グループ内のインスタンスへのトラフィックを許可し、以前に離れたクライアントに応答を返します。

### アウトバウンドルール
<a name="vpc-lattice-outbound-rules"></a>

デフォルトでは、セキュリティグループにはすべてのアウトバウンドトラフィックを許可するアウトバウンドルールが含まれています。必要に応じて、このデフォルトルールを削除し、特定のセキュリティニーズに対応するアウトバウンドルールを追加できます。

## 制限事項
<a name="vpc-lattice-target-group-limitations"></a>
+ [混合インスタンスグループ](ec2-auto-scaling-mixed-instances-groups.md)はサポートされています。混合インスタンスポリシーを持つ Auto Scaling グループに VPC Lattice ターゲットグループをアタッチする場合、ロードバランシングアルゴリズムは使用可能なすべてのリソースに負荷を均等に分散し、インスタンスどうしが同じ負荷を処理できるほどに類似していることを想定します。

# VPC Lattice ターゲットグループを Auto Scaling グループにアタッチする
<a name="attach-vpc-lattice-target-group-asg"></a>

このトピックでは、VPC Lattice ターゲットグループを Auto Scaling グループにアタッチする方法について説明します。また、VPC Lattice ヘルスチェックを有効にして、VPC Lattice から異常として報告されたインスタンスを Amazon EC2 Auto Scaling で置き換える方法についても説明します。

デフォルトでは、Amazon EC2 Auto Scaling は、Amazon EC2 ヘルスチェックに基づいて、異常なインスタンスまたはアクセスできないインスタンスのみを置き換えます。VPC Lattice ヘルスチェックを有効にすると、Auto Scaling グループにアタッチした VPC Lattice ターゲットグループのいずれかから、実行中のインスタンスが異常として報告された場合、Amazon EC2 Auto Scaling は、そのインスタンスを置き換えることができます。詳細については、「[Auto Scaling グループでのインスタンスのヘルスチェック](ec2-auto-scaling-health-checks.md)」を参照してください。

**重要**  
先に進む前に、前のセクションのすべての[前提条件](getting-started-vpc-lattice.md)を満たしてください。

## VPC Lattice ターゲットグループをアタッチする
<a name="attach-vpc-lattice-target-group"></a>

グループを作成または更新するときに、1 つ以上のターゲットグループを Auto Scaling グループにアタッチできます。

------
#### [ Console ]

このセクションの手順に従い、コンソールを使用して次の操作を実行します。
+ VPC Lattice ターゲットグループを Auto Scaling グループにアタッチする
+ VPC Lattice のヘルスチェックを有効にする

**VPC Lattice ターゲットグループを新しい Auto Scaling グループにアタッチするには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで **[Auto Scaling グループ]** を選択します。

1. 画面の上部のナビゲーションバーで、ターゲットグループを作成した AWS リージョン を選択します。

1. **[Auto Scaling グループの作成]** を選択します。

1.  ステップ 1 と 2 で、希望するオプションを選択し、「**ステップ 3: 詳細オプションを設定する**」へ進みます。

1. **[VPC Lattice 統合オプション]** で、**[VPC Lattice サービスへアタッチ]** を選択します。

1. **[VPC Lattice ターゲットグループを選択]** で、ターゲットグループを選択します。

1. (オプション) **[ヘルスチェック]** の **[追加のヘルスチェックタイプ]** で、**[VPC Lattice ヘルスチェックを有効にする]** を選択します。

1. (オプション) **[ヘルスチェックの猶予期間]** に秒単位で時間を入力します。これは、インスタンスが `InService` 状態になった後で、Amazon EC2 Auto Scaling がインスタンスのヘルスステータスのチェックを待つ必要がある時間です。詳細については、「[Auto Scaling グループにヘルスチェックの猶予期間を設定する](health-check-grace-period.md)」を参照してください。

1. Auto Scaling グループの作成に進みます。Auto Scaling グループの作成後、インスタンスは自動的に VPC Lattice ターゲットグループに登録されます。

**VPC Lattice ターゲットグループを既存の Auto Scaling グループにアタッチするには**

次の手順に従って、ターゲットグループを既存の Auto Scaling グループにアタッチします。

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

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

   ページの下部にスプリットペインが開きます。

1. **[詳細]** タブで、**[VPC Lattice 統合オプション]**、**[編集]** を順に選択します。

1. **[VPC Lattice 統合オプション]** で、**[VPC Lattice サービスへアタッチ]** を選択します。

1. **[VPC Lattice ターゲットグループを選択]** で、ターゲットグループを選択します。

1. **[更新]** を選択します。

ターゲットグループのアタッチが完了したら、必要に応じて、そのターゲットグループで使用するヘルスチェックを有効にできます。

**VPC Lattice ヘルスチェックを有効にするには**

1. **[詳細]** タブで、**[ヘルスチェック]**、**[編集]** の順に選択します。

1. **[ヘルスチェック]** の **[追加のヘルスチェックタイプ]** で、**[VPC Lattice ヘルスチェックを有効にする]** を選択します。

1. **[ヘルスチェックの猶予期間]** に、秒単位で時間を入力します。これは、インスタンスが `InService` 状態になった後で、Amazon EC2 Auto Scaling がインスタンスのヘルスステータスのチェックを待つ必要がある時間です。詳細については、「[Auto Scaling グループにヘルスチェックの猶予期間を設定する](health-check-grace-period.md)」を参照してください。

1. **[更新]** を選択します。

------
#### [ AWS CLI ]

このセクションの手順に従って、 を使用して以下 AWS CLI を行います。
+ VPC Lattice ターゲットグループを Auto Scaling グループにアタッチする
+ VPC Lattice のヘルスチェックを有効にする

**VPC Lattice ターゲットグループを Auto Scaling グループにアタッチするには**

次の [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用して Auto Scaling グループを作成し、同時に、そのグループの Amazon リソースネーム (ARN) を指定して VPC Lattice ターゲットグループをアタッチします。

`--auto-scaling-group-name`、`--vpc-zone-identifier`、`--min-size`、および `--max-size` のサンプルの値を置き換えます。`--launch-template` オプションの場合、`my-launch-template` と `1` を、VPC Lattice ターゲットグループに登録したインスタンス用に作成した起動テンプレートの名前とバージョンに置き換えます。`--traffic-sources` オプションの場合、サンプル ARN を VPC Lattice ターゲットグループの ARN に置き換えます。

```
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" \
  --min-size 1 --max-size 5 \
  --traffic-sources "Identifier=arn:aws:vpc-lattice:region:account-id:targetgroup/tg-0e2f2665eEXAMPLE"
```

VPC Lattice ターゲットグループを既に作成していたら、次の [attach-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/attach-traffic-sources.html) コマンドを使用して、そのターゲットグループを Auto Scaling グループにアタッチします。

```
aws autoscaling attach-traffic-sources --auto-scaling-group-name my-asg \
  --traffic-sources "Identifier=arn:aws:vpc-lattice:region:account-id:targetgroup/tg-0e2f2665eEXAMPLE"
```

**VPC Lattice のヘルスチェックを有効にするには**

**VPC Lattice** ターゲットグループにアプリケーションベースのヘルスチェックを設定している場合は、これらのヘルスチェックを有効にできます。`--health-check-type` オプションと `VPC_LATTICE` の値を指定した [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) または [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) コマンドを使用します。Auto Scaling グループで実行するヘルスチェックの猶予期間を指定する場合は、`--health-check-grace-period` オプションを含め、その値を秒単位で指定します。

```
--health-check-type "VPC_LATTICE" --health-check-grace-period 60
```

------

## VPC Lattice ターゲットグループをデタッチする
<a name="detach-vpc-lattice-target-group"></a>

VPC Lattice が不要になった場合、次の手順に従って、Auto Scaling グループからターゲットグループをデタッチします。

------
#### [ Console ]

このセクションの手順に従い、コンソールを使用して次の操作を実行します。
+ Auto Scaling グループから VPC Lattice ターゲットグループをデタッチする
+ VPC Lattice のヘルスチェックを無効にする

**Auto Scaling グループから VPC Lattice ターゲットグループをデタッチするには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで **[Auto Scaling グループ]** を選択します。

1. 既存のグループの横にあるチェックボックスをオンにします。

   ページの下部にスプリットペインが開きます。

1. **[詳細]** タブで、**[VPC Lattice 統合オプション]**、**[編集]** を順に選択します。

1. **[VPC Lattice 統合オプション]** で、ターゲットグループの横にある [削除] アイコン (X) を選択します。

1. **[更新]** を選択します。

ターゲットグループのデタッチが完了したら、VPC Lattice ヘルスチェックを無効にできます。

**VPC Lattice ヘルスチェックを無効にするには**

1. **[詳細]** タブで、**[ヘルスチェック]**、**[編集]** の順に選択します。

1. **[ヘルスチェック]** の **[追加のヘルスチェックタイプ]** で、**[VPC Lattice ヘルスチェックを有効にする]** の選択を解除します。

1. **[更新]** を選択します。

------
#### [ AWS CLI ]

このセクションの手順に従って、 を使用して以下 AWS CLI を行います。
+ Auto Scaling グループから VPC Lattice ターゲットグループをデタッチする
+ VPC Lattice のヘルスチェックを無効にする

ターゲットグループが不要になったら、[detach-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/detach-traffic-sources.html) コマンドを使用して、Auto Scaling グループからそのターゲットグループをデタッチします。

```
aws autoscaling detach-traffic-sources --auto-scaling-group-name my-asg \
  --traffic-sources "Identifier=arn:aws:vpc-lattice:region:account-id:targetgroup/tg-0e2f2665eEXAMPLE"
```

Auto Scaling グループのヘルスチェックを更新して VPC Lattice ヘルスチェックを使用しないようにするには、[update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) コマンドを使用します。`--health-check-type` オプションと `EC2` の値を含めます。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --health-check-type "EC2"
```

------

# VPC Lattice ターゲットグループのアタッチメントステータスを確認する
<a name="verify-target-group-attachment-status"></a>

VPC Lattice ターゲットグループを Auto Scaling グループにアタッチすると、グループ内のインスタンスの登録中、`Adding` 状態になります。グループのすべてのインスタンスが登録済みになると、`Added` 状態になります。最低 1 つの登録されたインスタンスがヘルスチェックを通過した後、`InService` 状態になります。ターゲットグループが `InService` 状態にある場合、Amazon EC2 Auto Scaling は異常として報告されたインスタンスを終了し、置き換えることができます。登録したインスタンスがどれもヘルスチェックを通過しなかった場合 (ヘルスチェックの設定ミスなどによる)、ターゲットグループは `InService` 状態になりません。Amazon EC2 Auto Scaling はインスタンスを終了し置き換えをすることはありません。

サービスのターゲットグループをデタッチすると、グループ内のインスタンスの登録解除中、`Removing` 状態になります。登録解除してもインスタンスは引き続き実行されます。デフォルトでは、Connection Draining (登録解除の遅延) が有効になっています。Connection Draining が有効になっている場合、VPC Lattice は、処理中のリクエストが完了するまで、または最大タイムアウト時間が終了するまで (どちらか早い方) 待機してから、インスタンスの登録を解除します。

 AWS Command Line Interface (AWS CLI) または AWS SDKs を使用して、アタッチメントのステータスを確認できます。アタッチメントステータスはコンソールから確認できません。

**を使用してアタッチメントのステータス AWS CLI を確認するには**  
次の [describe-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-traffic-sources.html) コマンドは、指定した Auto Scaling グループのすべてのトラフィックソースのアタッチメントステータスを返します。

```
aws autoscaling describe-traffic-sources --auto-scaling-group-name my-asg
```

この例では、Auto Scaling グループにアタッチされている VPC Lattice ターゲットグループの ARN と、`State` 要素内のターゲットグループのアタッチメントステータスを返します。

```
{
    "TrafficSources": [
        {
            "Identifier": "arn:aws:vpc-lattice:region:account-id:targetgroup/tg-0e2f2665eEXAMPLE",
            "State": "InService",
            "Type": "vpc-lattice"
        }
    ]
}
```

# Auto Scaling イベントの処理に EventBridge を使用する
<a name="automating-ec2-auto-scaling-with-eventbridge"></a>

以前は CloudWatch Events と呼ばれていた Amazon EventBridge は、リソースをモニタリングし、他の AWS サービスを使用するターゲットアクションを開始するイベント駆動型ルールを設定するのに役立ちます。

Amazon EC2 Auto Scaling からのイベントは、ほぼリアルタイムに EventBridge に提供されます。これらのさまざまなイベントへの対応でプログラム的なアクションや通知を呼び出す EventBridge ルールを設定できます。たとえば、インスタンスの起動中または終了中に、 AWS Lambda 関数を呼び出して事前設定されたタスクを実行できます。

EventBridge ルールのターゲットには、 AWS Lambda 関数、Amazon SNS トピック、API 送信先、その他のイベントバス AWS アカウントなどが含まれます。詳細については、*Amazon EventBridge ユーザーガイド* の [Amazon EventBridge ターゲット](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html) を参照してください 。

Amazon SNS トピックと EventBridge ルールを使用する例を用いて EventBridge ルールを作成することで開始します。その後、ユーザーがインスタンスの更新を開始すると、チェックポイントに到達するたびに Amazon SNS が E メールで通知します。詳細については、「[インスタンスの更新イベント用の EventBridge ルールを作成する](monitor-events-eventbridge-sns.md)」を参照してください。

**Topics**
+ [Amazon EC2 Auto Scaling イベントリファレンス](ec2-auto-scaling-event-reference.md)
+ [インスタンスの更新イベントとパターンの例](instance-refresh-eventbridge-events.md)
+ [ウォームプールのイベントとパターンの例](warm-pools-eventbridge-events.md)
+ [Amazon EventBridge ルールを使用してアクションを自動化する](create-eventbridge-rules.md)

# Amazon EC2 Auto Scaling イベントリファレンス
<a name="ec2-auto-scaling-event-reference"></a>

Amazon EventBridge を使用すると、受信*イベント*を照合し、処理のために*ターゲット*にルーティングする*ルール*を作成できます。

**Topics**
+ [ライフサイクルアクションイベント](#ec2-auto-scaling-lifecycle-action-events)
+ [成功したスケーリングイベント](#ec2-auto-scaling-successful-scaling-events)
+ [失敗したスケーリングイベント](#ec2-auto-scaling-unsuccessful-scaling-events)

## ライフサイクルアクションイベント
<a name="ec2-auto-scaling-lifecycle-action-events"></a>

Auto Scaling グループにライフサイクルフックを追加すると、インスタンスが待機状態に移行するときに、Amazon EC2 Auto Scaling が EventBridge にイベントを送信します。イベントは、ベストエフォートベースで生成されます。

**Topics**
+ [スケールアウトライフサイクルアクション](#launch-lifecycle-action)
+ [スケールインライフサイクルアクション](#terminate-lifecycle-action)

### スケールアウトライフサイクルアクション
<a name="launch-lifecycle-action"></a>

次のイベント例は、起動ライフサイクルフックを理由として、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",
    "Origin": "EC2",
    "Destination": "AutoScalingGroup"
  } 
}
```

### スケールインライフサイクルアクション
<a name="terminate-lifecycle-action"></a>

次のイベント例は、終了ライフサイクルフックを理由として、Amazon EC2 Auto Scaling がインスタンスを `Terminating:Wait` 状態に移行したことを示しています。

**重要**  
Auto Scaling グループがスケールイン時にインスタンスをウォームプールに返す場合、インスタンスをウォームプールに返すことによって `EC2 Instance-terminate Lifecycle Action` イベントが生成される場合もあります。インスタンスがスケールインで待機状態に移行したときに配信されるイベントには、`Destination` の値として `WarmPool` が含まれます。詳細については、「[Instance reuse policy](ec2-auto-scaling-warm-pools.md#instance-reuse-policy)」を参照してください。

```
{
  "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",
    "Origin": "AutoScalingGroup",
    "Destination": "EC2"
  } 
}
```

## 成功したスケーリングイベント
<a name="ec2-auto-scaling-successful-scaling-events"></a>

次の例は、成功したスケーリングイベントのイベントタイプを示しています。イベントは、ベストエフォートベースで生成されます。

**Topics**
+ [成功したスケールアウトイベント](#launch-successful)
+ [成功したスケールインイベント](#terminate-successful)

### 成功したスケールアウトイベント
<a name="launch-successful"></a>

次のイベント例は、Amazon EC2 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-asg",
    "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",
    "Origin": "EC2",
    "Destination": "AutoScalingGroup"
  }
}
```

### 成功したスケールインイベント
<a name="terminate-successful"></a>

次のイベント例は、Amazon EC2 Auto Scaling がインスタンスを正常に終了したことを示しています。

**重要**  
Auto Scaling グループがスケールイン時にインスタンスをウォームプールに返す場合、インスタンスをウォームプールに返すことによって `EC2 Instance Terminate Successful` イベントが生成される場合もあります。インスタンスがウォームプールに正常に戻ったときに配信されるイベントには、`Destination` の値として `WarmPool` が含まれます。詳細については、「[Instance reuse policy](ec2-auto-scaling-warm-pools.md#instance-reuse-policy)」を参照してください。

```
{
  "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-asg",
    "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",
    "Origin": "AutoScalingGroup",
    "Destination": "EC2"
  }
}
```

## 失敗したスケーリングイベント
<a name="ec2-auto-scaling-unsuccessful-scaling-events"></a>

次の例は、失敗したスケーリングイベントのイベントタイプを示しています。イベントは、ベストエフォートベースで生成されます。

**Topics**
+ [失敗したスケールアウトイベント](#launch-unsuccessful)
+ [失敗したスケールインイベント](#terminate-unsuccessful)

### 失敗したスケールアウトイベント
<a name="launch-unsuccessful"></a>

次のイベント例は、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-asg",
    "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",
    "Origin": "EC2",
    "Destination": "AutoScalingGroup"
  }
}
```

### 失敗したスケールインイベント
<a name="terminate-unsuccessful"></a>

次のイベント例は、Amazon EC2 Auto Scaling がインスタンスの終了に失敗したことを示しています。

**重要**  
Auto Scaling グループがスケールイン時にインスタンスをウォームプールに返すときに、インスタンスをウォームプールに返すことに失敗すると、`EC2 Instance Terminate Unsuccessful` イベントが生成される場合もあります。インスタンスがウォームプールに戻るのに失敗した場合に配信されるイベントには、`Destination` の値として `WarmPool` が含まれます。詳細については、「[Instance reuse policy](ec2-auto-scaling-warm-pools.md#instance-reuse-policy)」を参照してください。

```
{
  "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-asg",
    "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",
    "Origin": "AutoScalingGroup",
    "Destination": "EC2"
  }
}
```

# インスタンスの更新イベントとパターンの例
<a name="instance-refresh-eventbridge-events"></a>

Amazon EventBridge を使用すると、受信*イベント*を照合し、処理のために*ターゲット*にルーティングする*ルール*を作成できます。

**Topics**
+ [インスタンス更新イベント](#instance-refresh-events)
+ [ルートボリュームのライフサイクルイベントを置き換えるインスタンスの更新](#instance-refresh-rvr-lifecycle-events)

## インスタンス更新イベント
<a name="instance-refresh-events"></a>

次の例は、インスタンス更新機能のイベントを示しています。イベントは、ベストエフォートベースで生成されます。

**Topics**
+ [チェックポイントに達しました](#instance-refresh-checkpoint-reached)
+ [インスタンスの更新が開始されました](#instance-refresh-started)
+ [インスタンスの更新が成功しました](#instance-refresh-succeeded)
+ [インスタンスの更新に失敗しました](#instance-refresh-failed)
+ [インスタンスの更新がキャンセルされました](#instance-refresh-cancelled)
+ [インスタンス更新のロールバックが開始されました](#instance-refresh-rollback-started)
+ [インスタンスの更新のロールバックが成功しました](#instance-refresh-rollback-succeeded)
+ [インスタンスの更新のロールバックが失敗しました](#instance-refresh-rollback-failed)

### チェックポイントに達しました
<a name="instance-refresh-checkpoint-reached"></a>

置き換えられたインスタンスの数が、チェックポイントに定義された割合のしきい値に達すると、Amazon EC2 Auto Scaling は次のイベントを送信します。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Checkpoint Reached",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "ab00cf8f-9126-4f3c-8010-dbb8cad6fb86",
    "AutoScalingGroupName": "my-asg",
    "CheckpointPercentage": "50",
    "CheckpointDelay": "300"
  }
}
```

### インスタンスの更新が開始されました
<a name="instance-refresh-started"></a>

インスタンスの更新のステータスが `InProgress` に変わると、Amazon EC2 Auto Scaling は次のイベントを送信します。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Started",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade",
    "AutoScalingGroupName": "my-asg"
  }
}
```

### インスタンスの更新が成功しました
<a name="instance-refresh-succeeded"></a>

インスタンスの更新のステータスが `Successful` に変わると、Amazon EC2 Auto Scaling は次のイベントを送信します。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Succeeded",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade",
    "AutoScalingGroupName": "my-asg"
  }
}
```

### インスタンスの更新に失敗しました
<a name="instance-refresh-failed"></a>

インスタンスの更新のステータスが `Failed` に変わると、Amazon EC2 Auto Scaling は次のイベントを送信します。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Failed",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade",
    "AutoScalingGroupName": "my-asg"
  }
}
```

### インスタンスの更新がキャンセルされました
<a name="instance-refresh-cancelled"></a>

インスタンスの更新のステータスが `Cancelled` に変わると、Amazon EC2 Auto Scaling は次のイベントを送信します。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Cancelled",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade",
    "AutoScalingGroupName": "my-asg"
  }
}
```

### インスタンス更新のロールバックが開始されました
<a name="instance-refresh-rollback-started"></a>

インスタンスの更新のステータスが `RollbackInProgress` に変わると、Amazon EC2 Auto Scaling は次のイベントを送信します。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Rollback Started",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade",
    "AutoScalingGroupName": "my-asg"
  }
}
```

### インスタンスの更新のロールバックが成功しました
<a name="instance-refresh-rollback-succeeded"></a>

インスタンスの更新のステータスが `RollbackSuccessful` に変わると、Amazon EC2 Auto Scaling は次のイベントを送信します。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Rollback Succeeded",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade",
    "AutoScalingGroupName": "my-asg"
  }
}
```

### インスタンスの更新のロールバックが失敗しました
<a name="instance-refresh-rollback-failed"></a>

インスタンスの更新のステータスが `Failed` に変わると、Amazon EC2 Auto Scaling は次のイベントを送信します。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Rollback Failed",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade",
    "AutoScalingGroupName": "my-asg"
  }
}
```

## ルートボリュームのライフサイクルイベントを置き換えるインスタンスの更新
<a name="instance-refresh-rvr-lifecycle-events"></a>

Auto Scaling グループにライフサイクルフックを追加すると、インスタンスが待機状態に移行するときに、Amazon EC2 Auto Scaling が EventBridge にイベントを送信します。詳細については、「[ルートボリュームを置き換えるライフサイクルフックを使用する](replace-root-volume.md#replace-root-volume-lifecycle-hooks)」を参照してください。

次の例は、Auto Scaling グループにインスタンスの更新中にルートボリュームの置き換えが行われているインスタンスがある場合のイベントを示しています。イベントは、ベストエフォートベースで出力されます。

**Topics**
+ [ルートボリュームのライフサイクルの置き換えアクションを開始する](#rvr-start-lifecycle-action)
+ [ルートボリュームのライフサイクルの置き換えアクションを終了する](#rvr-end-lifecycle-action)
+ [イベントパターンの例](#rvr-event-patterns)

### ルートボリュームのライフサイクルの置き換えアクションを開始する
<a name="rvr-start-lifecycle-action"></a>

インスタンスの更新中にルートボリュームの置き換えにインスタンスが選択され、その状態が に変わる場合`ReplacingRootVolume:Wait`。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance-terminate Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "2021-01-13T00:12:37.214Z",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "LifecycleActionToken": "71514b9d-6a40-4b26-8523-05e7eEXAMPLE",
    "AutoScalingGroupName": "my-asg",
    "LifecycleHookName": "my-terminate-lifecycle-hook",
    "EC2InstanceId": "i-1234567890abcdef0",
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_TERMINATING",
    "NotificationMetadata": "additional-info",
    "Origin": "AutoScalingGroup",
    "Destination": "AutoScalingGroup",
    "Action": "ReplaceRootVolume"
  }
}
```

### ルートボリュームのライフサイクルの置き換えアクションを終了する
<a name="rvr-end-lifecycle-action"></a>

インスタンスがルートボリュームの置き換えを完了し、その状態が に変わったとき`Pending:Wait`。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance-launch Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "2021-01-13T00:12:37.214Z",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "LifecycleActionToken": "71514b9d-6a40-4b26-8523-05e7eEXAMPLE",
    "AutoScalingGroupName": "my-asg",
    "LifecycleHookName": "my-launch-lifecycle-hook",
    "EC2InstanceId": "i-1234567890abcdef0",
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING",
    "NotificationMetadata": "additional-info",
    "Origin": "AutoScalingGroup",
    "Destination": "AutoScalingGroup",
    "Action": "ReplaceRootVolume"
  }
}
```

### イベントパターンの例
<a name="rvr-event-patterns"></a>

前のセクションでは、ルートボリュームの置き換え戦略によるインスタンスの更新中に Amazon EC2 Auto Scaling によって出力されるイベントの例を示します。EventBridge イベントパターンは、一致するイベントと同じ構造をしています。イベントのパターンでは、照合する対象のフィールドを引用符で囲み、検出したい値を指定します。イベント内の次のフィールドは、ルールで定義され、アクションをトリガーするイベントパターンを形成します。

`"source": "aws.autoscaling"`  
イベントが Amazon EC2 Auto Scaling Group からのものであることを特定します。

`"detail-type": "EC2 Instance-launch Lifecycle Action"`  
イベントタイプを特定します。

`"Action": "ReplaceRootVolume"`  
インスタンスで実行されているアクションを識別します。

次のサンプルイベントパターンを使用して、ルートボリュームを置き換える準備をしているインスタンスに関連付けられているすべてのイベントをキャプチャします。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-terminate Lifecycle Action" ],
  "detail": {
      "Action": [ "ReplaceRootVolume" ]
   }
}
```

次のサンプルイベントパターンを使用して、ルートボリュームの置き換えが完了した後にサービスに戻るインスタンスに関連付けられているすべてのイベントをキャプチャします。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-launch Lifecycle Action" ],
  "detail": {
      "Action": [ "ReplaceRootVolume" ]
   }
}
```

# ウォームプールのイベントとパターンの例
<a name="warm-pools-eventbridge-events"></a>

Amazon EC2 Auto Scaling は、Amazon EventBridge の事前定義されたパターンを複数サポートしています。これは、イベントパターンが作成される方法を簡素化します。フォーム上のフィールド値を選択すると、EventBridge がパターンを生成します。現在、Amazon EC2 Auto Scaling は、ウォームプールがある Auto Scaling グループによって発行されるイベントに対して事前定義されたパターンをサポートしていません。パターンは、JSON オブジェクトとして入力する必要があります。このセクションと「[ウォームプールイベント向けの EventBridge ルールを作成する](warm-pool-events-eventbridge-rules.md)」トピックでは、イベントパターンを使用してイベントを選択し、それらをターゲットに送信する方法を説明します。

Amazon EC2 Auto Scaling が EventBridge に送信するウォームプール関連のイベントをフィルタリングする EventBridge ルールを作成するには、イベントの `detail` セクションの `Origin` および `Destination` フィールドを含めます。

`Origin`および`Destination` の値には以下を指定できます。

`EC2` \$1 `AutoScalingGroup` \$1 `WarmPool`

**Topics**
+ [イベントの例](#warm-pool-events)
+ [イベントパターンの例](#warm-pools-eventbridge-patterns)

## イベントの例
<a name="warm-pool-events"></a>

Auto Scaling グループにライフサイクルフックを追加すると、インスタンスが待機状態に移行するときに、Amazon EC2 Auto Scaling が EventBridge にイベントを送信します。詳細については、「[Auto Scaling グループのウォームプールでライフサイクルフックを使用する](warm-pool-instance-lifecycle.md)」を参照してください。

このセクションには、Auto Scaling グループにウォームプールがある場合のこれらのイベントの例が含まれています。イベントは、ベストエフォートベースで出力されます。

**注記**  
スケーリングが成功したときに Amazon EC2 Auto Scaling が EventBridge に送信するイベントについては、「[成功したスケーリングイベント](ec2-auto-scaling-event-reference.md#ec2-auto-scaling-successful-scaling-events)」を参照してください。スケーリングが失敗した場合のイベントについては、「[失敗したスケーリングイベント](ec2-auto-scaling-event-reference.md#ec2-auto-scaling-unsuccessful-scaling-events)」を参照してください。

**Topics**
+ [スケールアウトライフサイクルアクション](#warm-pool-scale-out-events)
+ [スケールインライフサイクルアクション](#warm-pool-scale-in-events)

### スケールアウトライフサイクルアクション
<a name="warm-pool-scale-out-events"></a>

インスタンスがスケールアウトイベントの待機状態に移行するときに配信されるイベントには、`detail-type` の値として `EC2 Instance-launch Lifecycle Action` が含まれます。`detail` オブジェクト内の `Origin` および `Destination` 属性の値は、インスタンスがどこから来てどこへ行くのかを示します。

このスケールアウトイベントの例では、新しいインスタンスが起動し、ウォームプールに追加されるため、その状態が `Warmed:Pending:Wait` に変わります。詳細については、「[ウォームプール内のインスタンスのライフサイクル状態の移行](warm-pool-instance-lifecycle.md#lifecycle-state-transitions)」を参照してください。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance-launch Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "2021-01-13T00:12:37.214Z",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": { 
    "LifecycleActionToken": "71514b9d-6a40-4b26-8523-05e7eEXAMPLE", 
    "AutoScalingGroupName": "my-asg",
    "LifecycleHookName": "my-launch-lifecycle-hook", 
    "EC2InstanceId": "i-1234567890abcdef0", 
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING",
    "NotificationMetadata": "additional-info",
    "Origin": "EC2",
    "Destination": "WarmPool"
  } 
}
```

このスケールアウトイベントの例では、インスタンスがウォームプールから Auto Scaling グループに追加されるため、インスタンスの状態は `Pending:Wait` に変わります。詳細については、「[ウォームプール内のインスタンスのライフサイクル状態の移行](warm-pool-instance-lifecycle.md#lifecycle-state-transitions)」を参照してください。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance-launch Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "2021-01-19T00:35:52.359Z",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": { 
    "LifecycleActionToken": "19cc4d4a-e450-4d1c-b448-0de67EXAMPLE", 
    "AutoScalingGroupName": "my-asg",
    "LifecycleHookName": "my-launch-lifecycle-hook", 
    "EC2InstanceId": "i-1234567890abcdef0", 
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING",
    "NotificationMetadata": "additional-info",
    "Origin": "WarmPool",
    "Destination": "AutoScalingGroup"
  } 
}
```

### スケールインライフサイクルアクション
<a name="warm-pool-scale-in-events"></a>

インスタンスがスケールインイベントの待機状態に移行するときに配信されるイベントには、`detail-type` の値として `EC2 Instance-terminate Lifecycle Action` が含まれます。`detail` オブジェクト内の `Origin` および `Destination` 属性の値は、インスタンスがどこから来てどこへ行くのかを示します。

このスケールインイベントの例では、インスタンスがウォームプールに戻されるため、インスタンスの状態は `Warmed:Pending:Wait` に変わります。詳細については、「[ウォームプール内のインスタンスのライフサイクル状態の移行](warm-pool-instance-lifecycle.md#lifecycle-state-transitions)」を参照してください。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance-terminate Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "2022-03-28T00:12:37.214Z",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": { 
    "LifecycleActionToken": "42694b3d-4b70-6a62-8523-09a1eEXAMPLE", 
    "AutoScalingGroupName": "my-asg", 
    "LifecycleHookName": "my-termination-lifecycle-hook", 
    "EC2InstanceId": "i-1234567890abcdef0", 
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_TERMINATING",
    "NotificationMetadata": "additional-info",
    "Origin": "AutoScalingGroup",
    "Destination": "WarmPool"
  } 
}
```

## イベントパターンの例
<a name="warm-pools-eventbridge-patterns"></a>

前のセクションでは、Amazon EC2 Auto Scaling によって生成されるイベント例を説明します。

EventBridge イベントパターンは、一致するイベントと同じ構造をしています。イベントのパターンでは、照合する対象のフィールドを引用符で囲み、検出したい値を指定します。

イベント内の次のフィールドは、ルールで定義され、アクションをトリガーするイベントパターンを形成します。

`"source": "aws.autoscaling"`  
イベントが Amazon EC2 Auto Scaling Group からのものであることを特定します。

`"detail-type": "EC2 Instance-launch Lifecycle Action"`  
イベントタイプを特定します。

`"Origin": "EC2"`  
インスタンスがどこから来ているかを識別します。

`"Destination": "WarmPool"`  
インスタンスがどこに行くかを識別します。

次のサンプルイベントパターンを使用して、ウォームプールに入るインスタンスに関連付けられているすべての `EC2 Instance-launch Lifecycle Action` イベントをキャプチャします。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-launch Lifecycle Action" ],
  "detail": {
      "Origin": [ "EC2" ],
      "Destination": [ "WarmPool" ]
   }
}
```

次のサンプルイベントパターンを使用して、スケールアウトイベントのためにウォームプールから取り出されるインスタンスに関連付けられたすべての `EC2 Instance-launch Lifecycle Action` イベントをキャプチャします。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-launch Lifecycle Action" ],
  "detail": {
      "Origin": [ "WarmPool" ],
      "Destination": [ "AutoScalingGroup" ]
   }
}
```

次のサンプルイベントパターンを使用して、Auto Scaling グループに直接起動するインスタンスに関連付けられているすべての `EC2 Instance-launch Lifecycle Action` イベントをキャプチャします。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-launch Lifecycle Action" ],
  "detail": {
      "Origin": [ "EC2" ],
      "Destination": [ "AutoScalingGroup" ]
   }
}
```

次のサンプルイベントパターンを使用して、スケールインでウォームプールに戻されるインスタンスに関連付けられているすべての `EC2 Instance-terminate Lifecycle Action` イベントをキャプチャします。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-terminate Lifecycle Action" ],
  "detail": {
      "Origin": [ "AutoScalingGroup" ],
      "Destination": [ "WarmPool" ]
   }
}
```

次のイベントパターンのサンプルを使用して、送信元や送信先に関わらず、`EC2 Instance-launch Lifecycle Action`に関連付けられているすべてのイベントをキャプチャします。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-launch Lifecycle Action" ]
}
```

# Amazon EventBridge ルールを使用してアクションを自動化する
<a name="create-eventbridge-rules"></a>

Amazon EC2 Auto Scaling がイベントを発行すると、イベント通知が JSON ファイルとして Amazon EventBridge に送信されます。EventBridge ルールを作成し、イベントパターンがルールに一致したときに実行するアクションを自動化できます。EventBridge がルールで定義されているパターンに一致するイベントパターンを検出すると、EventBridge はルールで指定されているターゲットを呼び出します。

このセクションの手順例を開始点として使用できます。

以下のドキュメントも役に立つかもしれません。
+ Lambda 関数を使用して、インスタンスの起動中、またはインスタンスの終了前にそれらでカスタムアクションを実行するには、「[チュートリアル:Lambda 関数を呼び出すライフサイクルフックの設定](tutorial-lifecycle-hook-lambda.md)」を参照してください。
+ CloudTrail でログに記録された API コールで Lambda 関数を呼び出すには、「Amazon EventBridge ユーザーガイド」の[「チュートリアル: EventBridge を使用した AWS API コールのログ](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-log-api-call.html)記録」を参照してください。 * EventBridge *
+ イベントルールの作成方法に関する詳細については、「Amazon EventBridge ユーザーガイド」の「[イベントに反応する Amazon EventBridge ルールの作成](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)」を参照してください。

**Topics**
+ [インスタンスの更新イベント用の EventBridge ルールを作成する](monitor-events-eventbridge-sns.md)
+ [ウォームプールイベント向けの EventBridge ルールを作成する](warm-pool-events-eventbridge-rules.md)

# インスタンスの更新イベント用の EventBridge ルールを作成する
<a name="monitor-events-eventbridge-sns"></a>

以下の例は、E メール通知を送信する EventBridge ルールを作成します。これは、インスタンス更新中、チェックポイントに到達した時に Auto Scaling グループがイベントを発行するたびに実行されます。Amazon SNS を使用して E メール通知を設定する手順も含まれています。Amazon SNS を使用して E メール通知を送信するには、最初に*トピック*を作成してから、そのトピックと共に E メールアドレスを登録する必要があります。

インスタンスの更新機能に関する詳細については、「[インスタンスの更新を使用して Auto Scaling グループのインスタンスを更新する](asg-instance-refresh.md)」を参照してください。

## Amazon SNS トピックを作成します。
<a name="eventbridge-sns-create-topic"></a>

SNS トピックは論理アクセスポイント、つまり Auto Scaling グループ が通知を送信するために使用する通信チャネルです。トピックの名前を指定することにより、トピックを作成します。

トピック名は、以下の要件を満たしている必要があります。
+ 1～256 文字
+ 大文字および小文字の ASCII 文字、数字、アンダースコア、またはハイフンが含まれている 

詳細については、[Amazon Simple 通知サービス デベロッパーガイド](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)の「*Amazon SNS トピックの作成*」を参照してください。

## Amazon SNS トピックを購読します。
<a name="eventbridge-sns-subscribe-topic"></a>

Auto Scaling グループがトピックに送信した通知を受信するには、そのトピックにエンドポイントを登録する必要があります。この手順では、**エンドポイント** に、Amazon EC2 Auto Scaling からの通知を受信する E メールアドレスを指定します。

詳細については、[Amazon Simple 通知サービス デベロッパーガイド](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html)の「*Amazon SNS トピックへのサブスクライブ*」を参照してください。

## Amazon SNS サブスクリプションを確認する
<a name="eventbridge-sns-confirm-subscription"></a>

Amazon SNS は、前のステップで指定した E メールアドレスに確認メールを送信します。

次のステップに進む前に、 AWS 通知から E メールを開き、リンクを選択してサブスクリプションを確認します。

確認メッセージが表示されます AWS。Amazon SNS は、通知を受信し、通知を E メールとして指定された E メールアドレスに送信するように設定されました。

## Amazon SNS トピックにイベントをルートする
<a name="eventbridge-sns-create-rule"></a>

選択したイベントに一致するルールを作成し、それらを Amazon SNS トピックにルーティングして、購読済みの E メールアドレスに通知します。

**Amazon SNS トピックに通知を送信するルールを作成する**

1. Amazon EventBridge コンソール ([https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)) を開きます。

1. ナビゲーションペインで **[ルール]** を選択します。

1. **[‬ルールを作成]‭** を選択します。

1. **[Define rule detail]** (詳細の定義) で、次の操作を行います。

   1. ルールの [**Name (名前)**] を入力し、必要に応じて説明を入力してください。

      ルールには同じリージョン内および同じイベントバス上の別のルールと同じ名前を付けることはできません。

   1. **[イベントバス]** として、**[デフォルト]** を選択してください。アカウントの AWS サービスがイベントを生成すると、常にアカウントのデフォルトのイベントバスに送られます。

   1. **[ルールタイプ]** で、**[イベントパターンを持つルール]** を選択してください。

   1. [**Next**] を選択してください。

1. **[Build event pattern]** (イベントパターンの作成) で、次の操作を行います。

   1. **[Event source]** (イベントソース) で、**[AWS events or EventBridge partner events]** ( イベントまたは EventBridge パートナーイベント) を選択してください。

   1. **[Event pattern]** (イベントパターン) の場合は次のいずれかを実行します。

      1. **イベントソース** で **AWS のサービス** を選択してください。

      1. **[AWS のサービス]** には、**[Auto Scaling]** を選択します。

      1. [**Event type (イベントタイプ)**] で、[**Instance Refresh (インスタンス更新)**] を選択します。

      1. デフォルトでは、ルールは更新イベントのすべてのインスタンスに一致します。インスタンスの更新中、チェックポイントに到達したときに通知するルールを作成するには、**[Specific instance event(s)]** (特定のインスタンスイベント) を選択し、**[EC2 Auto Scaling Instance Refresh Checkpoint Reached]** (EC2 Auto Scaling インスタンス更新チェックポイントに到達) を選択します。

      1. デフォルトでは、このルールはリージョン内のすべての Auto Scaling グループと一致します。ルールを特定の Auto Scaling グループに一致させるには、[**Specific group name (特定のグループ名)**] を選択して 1 つ以上の Auto Scaling グループを選択します。

      1. [**次へ**] を選択します。

1. **[Select target(s)]** (ターゲットを選択) で、以下の操作を行います。

   1. **[Target types]** (ターゲットタイプ) には、**[AWS のサービス]** を選択します。

   1. **[Select a target]** (ターゲットの選択) には、**[SNS topic]** (SNS トピック) を選択します。

   1. **[Topic]** (トピック) には、お使いの Amazon SNS トピックを選択します。

   1. (オプション) **[Additional settings]** (追加設定) で、その他の設定を行うこともできます。EventBridge ルールの作成の詳細については、*Amazon EventBridge ユーザーガイド*の「[イベントに反応する Amazon EventBridge ルールの作成](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-create-rule.html)」を参照してください 。

   1. [**次へ**] を選択します。

1. (オプション) 必要な場合は、**[Tags]** (タグ) で 1 つ以上のタグを作成したルールに割り当て、**[Next]** (次へ) を選択してください。

1. **[Review and create]** (レビューと作成) で、ルールの詳細を確認し、必要に応じて変更します。その後、**[Create rule]** (ルールの作成) を選択します。

# ウォームプールイベント向けの EventBridge ルールを作成する
<a name="warm-pool-events-eventbridge-rules"></a>

以下の例は、プログラム的なアクションを呼び出す EventBridge ルールを作成します。これは、ウォームプールへの新しいインスタンスの追加時に Auto Scaling グループがイベントを発行するたびに実行されます。

ルールを作成する前に、ルールをターゲットとして使用する AWS Lambda 関数を作成します。この関数をルールのターゲットとして指定する必要があります。以下の手順では、ウォームプールへの新しいインスタンスの追加時にアクションを実行する EventBridge ルールの作成手順のみが説明されています。着信イベントがルールに一致するときに呼び出すシンプルな Lambda 関数の作成方法を説明する初歩的なチュートリアルについては、「[チュートリアル:Lambda 関数を呼び出すライフサイクルフックの設定](tutorial-lifecycle-hook-lambda.md)」を参照してください。

ウォームプールの作成と使用に関する詳細については、「[ウォームプールを使用してブート時間が長いアプリケーションのレイテンシーを低減する](ec2-auto-scaling-warm-pools.md)」を参照してください。

**Lambda 関数を呼び出すイベントルールを作成する**

1. Amazon EventBridge コンソール ([https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)) を開きます。

1. ナビゲーションペインで **[ルール]** を選択します。

1. **[‬ルールを作成]‭** を選択します。

1. **[Define rule detail]** (詳細の定義) で、次の操作を行います。

   1. ルールの [**Name (名前)**] を入力し、必要に応じて説明を入力してください。

      ルールには同じリージョン内および同じイベントバス上の別のルールと同じ名前を付けることはできません。

   1. **[イベントバス]** として、**[デフォルト]** を選択してください。 AWS のサービス アカウントの がイベントを生成すると、常にアカウントのデフォルトのイベントバスに送られます。

   1. **[ルールタイプ]** で、**[イベントパターンを持つルール]** を選択してください。

   1. [**Next**] を選択してください。

1. **[Build event pattern]** (イベントパターンの作成) で、次の操作を行います。

   1. **[Event source]** (イベントソース) で、**[AWS events or EventBridge partner events]** ( イベントまたは EventBridge パートナーイベント) を選択してください。

   1. **[Event pattern]** では、**[Custom pattern (JSON editor)]** (カスタムパターン (JSON エディタ)) を選択し、以下のパターンを **[Event pattern]** (イベントパターン) ボックスに貼り付けて、*イタリック体*のテキストを Auto Scaling グループの名前に置き換えます。

      ```
      {
        "source": [ "aws.autoscaling" ],
        "detail-type": [ "EC2 Instance-launch Lifecycle Action" ],
        "detail": {
            "AutoScalingGroupName": [ "my-asg" ],
            "Origin": [ "EC2" ],
            "Destination": [ "WarmPool" ]
         }
      }
      ```

      他のイベントに一致するルールを作成するには、イベントパターンを変更します。詳細については、「[イベントパターンの例](warm-pools-eventbridge-events.md#warm-pools-eventbridge-patterns)」を参照してください。

   1. **[Next]** (次へ) を選択します。

1. **[Select target(s)]** (ターゲットを選択) で、以下の操作を行います。

   1. **[Target types]** (ターゲットタイプ) には、**[AWS のサービス]** を選択します。

   1. **[Select a target]** (ターゲットを選択) では、**[Lambda function]** (Lambda 関数) を選択します。

   1. **[Function]** (機能) には、イベントの送信先となる関数を選択します。

   1. (オプション) **[Configure version/alias]** (バージョン/エイリアスを設定) で、ターゲットの Lambda 関数のバージョンとエイリアスの設定を入力します。

   1. (オプション)**[Additional settings]** (追加設定) で、アプリケーションに適切な追加設定を入力します。EventBridge ルールの作成の詳細については、*Amazon EventBridge ユーザーガイド*の「[イベントに反応する Amazon EventBridge ルールの作成](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-create-rule.html)」を参照してください 。

   1. [**次へ**] を選択します。

1. (オプション) 必要な場合は、**[Tags]** (タグ) で 1 つ以上のタグを作成したルールに割り当て、**[Next]** (次へ) を選択してください。

1. **[Review and create]** (レビューと作成) で、ルールの詳細を確認し、必要に応じて変更します。その後、**[Create rule]** (ルールの作成) を選択します。

# Amazon VPC を使用して Auto Scaling インスタンスにネットワーク接続を提供する
<a name="asg-in-vpc"></a>

Amazon Virtual Private Cloud (Amazon VPC) は、定義した論理的に分離された仮想ネットワークで Auto Scaling グループなどの AWS リソースを起動できるサービスです。

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

サブネット内のインスタンスがインターネットと通信できるようにするには、インターネットゲートウェイを作成して、それを VPC にアタッチする必要があります。インターネットゲートウェイを使用すると、サブネット内のリソースが Amazon EC2 ネットワークエッジを介してインターネットに接続できるようになります。サブネットのトラフィックがインターネットゲートウェイにルーティングされる場合、そのサブネットは*パブリックサブネット*と呼ばれます。サブネットのトラフィックがインターネットゲートウェイにルーティングされない場合、そのサブネットは*プライベート*サブネットと呼ばれます。インターネットに接続する必要があるリソースにはパブリックサブネットを、インターネットに接続する必要がないリソースにはプライベートサブネットを使用してください。VPC 内のインスタンスにインターネットアクセスを許可する方法の詳細については、「*Amazon VPC ユーザーガイド*」の「[インターネットへのアクセス](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html#what-is-connectivity)」を参照してください。

**Topics**
+ [デフォルト VPC](#as-defaultVPC)
+ [デフォルトではない VPC](#as-nondefaultVPC)
+ [VPC サブネットを選択する場合の考慮事項](#as-vpc-considerations)
+ [VPC での IP アドレス指定](#as-vpc-ipaddress)
+ [VPC 内のネットワークインターフェイス](#as-vpc-network-interfaces)
+ [インスタンスのプレイスメントテナンシー](#as-vpc-tenancy)
+ [AWS Outposts](#auto-scaling-outposts)
+ [VPC に関するその他のリソース](#auto-scaling-resources-about-vpcs)

## デフォルト VPC
<a name="as-defaultVPC"></a>

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

VPC は、Amazon VPC コンソールの[お使いの VPC ページ](https://console.aws.amazon.com/vpc/home?/#vpcs)で表示できます。

デフォルト VPC の詳細については、「*Amazon VPC ユーザーガイド*」の「[デフォルト VPC](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html)」を参照してください。

## デフォルトではない VPC
<a name="as-nondefaultVPC"></a>

 AWS マネジメントコンソール の [VPC ダッシュボードページ](https://console.aws.amazon.com/vpc/home?/#vpcs)にアクセスして、**[Create VPC]** (VPC を作成) を選択することで、追加の VPC を作成できます。

詳細については、[Amazon VPC ユーザーガイド](https://docs.aws.amazon.com/vpc/latest/userguide/)を参照してください。

**注記**  
VPC は、その AWS リージョン内のすべてのアベイラビリティーゾーンを対象としています。VPC にサブネットを追加するときは、複数のアベイラビリティーゾーンを選択して、これらのサブネットでホストされているアプリケーションの高可用性を確保します。アベイラビリティーゾーンは、 AWS リージョンの冗長電源、ネットワーク、および接続を備えた 1 つ以上の個別のデータセンターです。アベイラビリティーゾーンは、本番環境アプリケーションの可用性、耐障害性、およびスケーラビリティを向上させるために役立ちます。

## VPC サブネットを選択する場合の考慮事項
<a name="as-vpc-considerations"></a>

Auto Scaling グループの VPC サブネットを選択するときは、以下の点に留意してください。
+ Elastic Load Balancing ロードバランサーを Auto Scaling グループにアタッチする場合、インスタンスはパブリックサブネットまたはプライベートサブネットで起動できます。ただし、DNS 解決をサポートするには、ロードバランサーをパブリックサブネットに作成する必要があります。
+ SSH を介して Auto Scaling インスタンスに直接アクセスする場合、インスタンスはパブリックサブネットでのみ起動できます。
+  AWS Systems Manager Session Manager を使用して no-ingress Auto Scaling インスタンスにアクセスする場合、インスタンスはパブリックサブネットまたはプライベートサブネットのいずれかで起動できます。
+ プライベートサブネットを使用している場合は、パブリック NAT ゲートウェイを使用して Auto Scaling インスタンスがインターネットへのアクセスを許可します。
+ デフォルトでは、デフォルト VPC のデフォルトサブネットはパブリックサブネットです。

## VPC での IP アドレス指定
<a name="as-vpc-ipaddress"></a>

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

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

IPv6 アドレスをインスタンスに自動的に割り当てるように設定されたサブネットでインスタンスを起動すると、インスタンスは IPv4 と IPv6 アドレスの両方を受け取ります。それ以外の場合は、IPv4 アドレスのみを受け取ります。詳細については、Amazon EC2 ユーザーガイドの [IPv6 アドレス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#ipv6-addressing)を参照してください。

VPC またはサブネットの CIDR 範囲の指定の詳細については、「[Amazon VPC ユーザーガイド](https://docs.aws.amazon.com/vpc/latest/userguide/)」を参照してください。

追加のネットワークインターフェイスを指定する起動テンプレートを使用すると、Amazon EC2 Auto Scaling はインスタンスの起動時に追加のプライベート IP アドレスを自動的に割り当てることができます。各ネットワークインターフェイスには、インスタンスが起動されるサブネットの CIDR 範囲から単一のプライベート IP アドレスが割り当てられます。この場合、システムはプライマリネットワークインターフェイスにパブリック IPv4 アドレスを自動的に割り当てることができなくなります。利用可能な Elastic IP アドレスを Auto Scaling インスタンスに関連付ける場合を除き、パブリック IPv4 アドレス経由でインスタンスに接続することはできません。

## VPC 内のネットワークインターフェイス
<a name="as-vpc-network-interfaces"></a>

VPC の各インスタンスには、デフォルトのネットワークインターフェイスがあります (プライマリネットワークインターフェイス)。プライマリネットワークインターフェイスをインスタンスからデタッチすることはできません。追加の ネットワークインスタンスを作成して、ユーザーの VPC 内の任意のインスタンスにアタッチできます。使用できる Elastic Network Interface の最大数はインスタンスタイプによって異なります。

起動テンプレートを使用してインスタンスを起動するときは、追加のネットワークインターフェイスを指定できます。ただし、複数のネットワークインターフェイスを使用して Auto Scaling インスタンスを起動すると、インスタンスと同じサブネットに各インターフェイスが自動的に作成されます。これは、Amazon EC2 Auto Scaling では、起動テンプレートで定義されたサブネットが無視され、Auto Scaling グループに指定されたものが優先されるためです。詳細については、「[Auto Scaling グループの起動テンプレートの作成](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html)」を参照してください。

同じサブネットから複数のネットワークインターフェイスを作成または、インスタンスにアタッチすると、非対称ルーティングなどのネットワーク問題が発生する場合があります。特に Amazon Linux 以外のバリアントを使用しているインスタンスに発生する場合があります。このタイプの設定が必要な場合は、OS 内でセカンダリネットワークインターフェイスを設定する必要があります。例については、「 AWS ナレッジセンター[」の「Ubuntu EC2 インスタンスでセカンダリネットワークインターフェイスを機能させるにはどうすればよいですか?](https://repost.aws/knowledge-center/ec2-ubuntu-secondary-network-interface)」を参照してください。

## インスタンスのプレイスメントテナンシー
<a name="as-vpc-tenancy"></a>

デフォルトでは、VPC のすべてのインスタンスはインスタンス共有テナンシーとして実行されます。Amazon EC2 Auto Scaling では、Dedicated Instances (ハードウェア専有インスタンス) および Dedicated Hosts (ハードウェア専有ホスト) をサポートしています。詳細については、「[詳細設定を使用して起動テンプレートを作成する](advanced-settings-for-your-launch-template.md)」を参照してください。

## AWS Outposts
<a name="auto-scaling-outposts"></a>

AWS Outposts は、Amazon VPC を AWS リージョンから Outpost に拡張します。これには、インターネットゲートウェイ、仮想プライベートゲートウェイ、Amazon VPC Transit Gateway、VPC エンドポイントなど、リージョンでアクセスできる VPC コンポーネントが含まれます。Outpost はリージョン内のアベイラビリティーゾーンに設置されており、そのアベイラビリティーゾーンの耐障害性のために使用できる拡張機能です。

詳細については、「[AWS Outposts ユーザーガイド](https://docs.aws.amazon.com/outposts/latest/userguide/)」を参照してください。

Outpost 内の Application Load Balancer からのトラフィックに対応する Auto Scaling グループをデプロイする方法の例については、「[AWS Outpostsで Application Load Balancer を構成](https://aws.amazon.com/blogs/networking-and-content-delivery/configuring-an-application-load-balancer-on-aws-outposts/)」というブログ記事を参照してください。

## VPC に関するその他のリソース
<a name="auto-scaling-resources-about-vpcs"></a>

以下のトピックでは、VPC およびサブネットの詳細について説明します。
+ VPC のプライベートサブネット
  + [例: プライベートサブネットと NAT にサーバーがある VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-example-private-subnets-nat.html)
  + [NAT ゲートウェイ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)
+ VPC のパブリックサブネット
  + [例: テスト環境の VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-example-dev-test.html)
  + [例: ウェブサーバーとデータベースサーバーの VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-example-web-database-servers.html)
+ Application Load Balancer のサブネット
  + [ロードバランサーのサブネット](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#subnets-load-balancer)
+ 一般的な VPC 情報
  + [Amazon VPC User Guide](https://docs.aws.amazon.com/vpc/latest/userguide/)
  + [VPC ピアリングを使用して VPC を接続する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-peering.html)
  + [Elastic Network Interface](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)
  + [プライベート接続のための VPC エンドポイントを使用する](ec2-auto-scaling-vpc-endpoints.md)