を使用した Elastic Load Balancing の使用例 AWS CLI - Amazon EC2 Auto Scaling

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

を使用した Elastic Load Balancing の使用例 AWS CLI

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

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

重要

その他の例については、「AWS CLI コマンドリファレンス」の「aws elbv2」と「aws elb」を参照してください。

ターゲットグループまたは Classic Load Balancer をアタッチする

次のcreate-auto-scaling-groupコマンドを使用して 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-template1 を 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"

attach-traffic-sources コマンドを使用して、作成後に追加のターゲットグループを 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 の説明を表示する

Auto Scaling グループにアタッチされたロードバランサーまたはターゲットグループを記述するには、次のdescribe-traffic-sourcesコマンドを使用します。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 フィールドの説明については、「ロードバランサーのアタッチメントステータスを確認する」を参照してください。

Elastic Load Balancing のヘルスチェックを追加する

Auto Scaling グループがインスタンスで実行するヘルスチェックに Elastic Load Balancing ヘルスチェックを追加するには、次のupdate-auto-scaling-groupコマンドを使用して、 --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 グループ内のインスタンスのヘルスチェック」を参照してください。

アベイラビリティーゾーンを変更する

アベイラビリティーゾーンの変更には、注意が必要な制限がいくつかあります。詳細については、「制限事項」を参照してください。

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

    Auto Scaling グループのアベイラビリティーゾーンを更新するには、次のupdate-auto-scaling-groupコマンドを使用します。サンプルのサブネット 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"
  2. 次のdescribe-auto-scaling-groupsコマンドを使用して、新しいサブネットのインスタンスが起動したことを確認します。インスタンスが起動した場合は、インスタンスとそのステータスのリストが表示されます。my-asg をグループの名前に置き換えます。

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. 次の set-subnets コマンドを使用して、ロードバランサーのサブネットを指定します。サンプルのサブネット 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コマンドを使用します。サンプルのサブネット ID を、有効にするアベイラビリティーゾーンのサブネットの ID に置き換えます。指定したサブネットは、以前に有効であったサブネットに置き換わります。my-asg をグループの名前に置き換えます。

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --vpc-zone-identifier "subnet-41767929,subnet-cb663da2"
  2. 次のdescribe-auto-scaling-groupsコマンドを使用して、新しいサブネットのインスタンスが起動したことを確認します。インスタンスが起動した場合は、インスタンスとそのステータスのリストが表示されます。my-asg をグループの名前に置き換えます。

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. 次の attach-load-balancer-to-subnets コマンドを使用して、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 コマンドを使用します。サンプルのサブネット ID を、無効にするアベイラビリティーゾーンのサブネットの ID に置き換えます。my-lb を、使用しているロードバランサーの名前に置き換えます。

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

ターゲットグループまたは Classic Load Balancer をデタッチする

次のdetach-traffic-sourcesコマンドは、不要になったターゲットグループを 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 のヘルスチェックを削除する

Auto Scaling グループから Elastic Load Balancing ヘルスチェックを削除するには、次のupdate-auto-scaling-groupコマンドを使用して、 --health-check-type オプションの値EC2として を指定します。my-asg をグループの名前に置き換えます。

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

詳細については、「Auto Scaling グループ内のインスタンスのヘルスチェック」を参照してください。

レガシーコマンド

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

ターゲットグループをアタッチするには

次のcreate-auto-scaling-groupコマンドは、ターゲットグループがアタッチされた 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 コマンドは、ターゲットグループを既存の 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コマンドは、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コマンドは、指定された Classic Load Balancer を既存の Auto Scaling グループにアタッチします。

aws autoscaling attach-load-balancers --auto-scaling-group-name my-asg \ --load-balancer-names my-lb
ターゲットグループの説明を表示するには

Auto Scaling グループに関連付けられたターゲットグループを記述するには、describe-load-balancer-target-groups コマンドを使用します。次の例では、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 コマンドを使用します。次の例では、my-asg の Classic Load Balancer を一覧表にしています。

aws autoscaling describe-load-balancers --auto-scaling-group-name my-asg
ターゲットグループをデタッチするには

次の detach-load-balancer-target-groups コマンドは、不要になったターゲットグループを 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コマンドは、不要になった Classic Load Balancer を Auto Scaling グループからデタッチします。

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