翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CLI を使用して Elastic Load Balancing を操作する例
AWS Command Line Interface (AWS CLI) を使用して、ロードバランサーとターゲットグループをアタッチおよびデタッチ、それらの説明を表示して、Elastic Load Balancing のヘルスチェックを追加および削除し、有効なアベイラビリティーゾーンを変更します。
このトピックでは、Amazon EC2 Auto Scaling の一般的なタスクを実行する AWS CLI コマンドの例について説明します。
内容
ターゲットグループまたは 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-template
を Auto Scaling グループの起動テンプレートの名前とバージョンに置き換えます。1
--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-size1
--max-size5
\ --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1
"
Auto Scaling グループを作成したら、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
オプションを指定します。
を Classic Load Balancer の名前に置き換えます。my-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 のアベイラビリティーゾーンを変更するには
-
ロードバランサーのアベイラビリティーゾーンを変更する前に、まず 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
" -
次の describe-auto-scaling-groups コマンドを使用して、新しいサブネットのインスタンスが起動されたことを確認します。インスタンスが起動した場合は、インスタンスとそのステータスのリストが表示されます。
をグループの名前に置き換えます。my-asg
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name
my-asg
-
次の set-subnets コマンドを使用して、ロードバランサーのサブネットを指定します。サンプルのサブネット ID を、有効にするアベイラビリティーゾーンのサブネットの ID に置き換えます。アベイラビリティーゾーンごとに 1 つだけサブネットを指定できます。指定したサブネットは、以前に有効であったサブネットに置き換わります。
を、使用しているロードバランサーの ARN に置き換えます。my-lb-arn
aws elbv2 set-subnets --load-balancer-arn
my-lb-arn
\ --subnetssubnet-41767929
subnet-cb663da2
subnet-8360a9e7
Classic Load Balancer のアベイラビリティーゾーンを変更するには
-
ロードバランサーのアベイラビリティーゾーンを変更する前に、まず 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
" -
次の describe-auto-scaling-groups コマンドを使用して、新しいサブネットのインスタンスが起動されたことを確認します。インスタンスが起動した場合は、インスタンスとそのステータスのリストが表示されます。
をグループの名前に置き換えます。my-asg
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name
my-asg
-
次の attach-load-balancer-to-subnets コマンドを使用して Classic Load Balancer の新しいアベイラビリティーゾーンを有効にします。サンプルのサブネット ID を、有効にするアベイラビリティーゾーンのサブネットの ID に置き換えます。
を、使用しているロードバランサーの名前に置き換えます。my-lb
aws elb attach-load-balancer-to-subnets --load-balancer-name
my-lb
\ --subnetssubnet-cb663da2
アベイラビリティーゾーンを無効にするには、次の detach-load-balancer-from-subnets コマンドを使用します。サンプルのサブネット ID を、無効にするアベイラビリティーゾーンのサブネットの ID に置き換えます。
を、使用しているロードバランサーの名前に置き換えます。my-lb
aws elb detach-load-balancer-from-subnets --load-balancer-name
my-lb
\ --subnetssubnet-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
オプションを指定します。
を Classic Load Balancer の名前に置き換えます。my-classic-load-balancer
--type
オプションの場合、
の値を指定します。elb
--traffic-sources "Identifier=
my-classic-load-balancer
" --type elb
Elastic Load Balancing のヘルスチェックを削除する
Elastic Load Balancing のヘルスチェックを Auto Scaling グループから削除するには、次の 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-size1
--max-size5
以下の 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-namemy-launch-config
\ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782
" \ --load-balancer-names "my-load-balancer
" \ --min-size1
--max-size5
以下の attach-load-balancers コマンドは、指定された Classic Load Balancer を既存の Auto Scaling グループにアタッチします。
aws autoscaling attach-load-balancers --auto-scaling-group-name
my-asg
\ --load-balancer-namesmy-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 コマンドが、Auto Scaling グループから Classic Load Balancer をデタッチします。
aws autoscaling detach-load-balancers --auto-scaling-group-name
my-asg
\ --load-balancer-namesmy-lb