

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

# を使用した 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}}
```