AWS Command Line Interface (AWS CLI) を使って Elastic Load Balancing を操作する例
AWS CLI を使用して、ロードバランサーの添付とデタッチ、Elastic Load Balancing のヘルスチェックの追加、およびアベイラビリティーゾーンの更新を行います。
目次
ロードバランサーターゲットグループをアタッチする
次の [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
:123456789012
:targetgroup/my-targets/1234567890123456
" \ --max-size5
--min-size1
--desired-capacity2
以下の[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
:123456789012
:targetgroup/my-targets/1234567890123456
"
ロードバランサーターゲットグループを記述する
Auto Scaling グループに関連付けられているターゲットグループを表示するには、[describe-load-balancer-target-groups] (ロードバランサーターゲットグループを記述する) コマンドを使用します。次の例では、my-asg
のターゲットグループの一覧を表示します。
aws autoscaling describe-load-balancer-target-groups --auto-scaling-group-name
my-asg
出力された State
フィールドの説明については、以前のトピックの ロードバランサーのアタッチメントステータスについて セクションを参照してください。
ロードバランサーゲットグループをデタッチする
ターゲットグループが不要になった場合、以下の[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
:123456789012
:targetgroup/my-targets/1234567890123456
"
Classic Load Balancer をアタッチする
以下の[create-auto-scaling-group] (Auto Scaling グループを作成する) コマンドは、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
" \ --max-size5
--min-size1
--desired-capacity2
以下の[attach-load-balancers] (ロードバランサーをアタッチする) コマンドは、指定された Classic Load Balancer を既存の Auto Scaling グループにアタッチします。
aws autoscaling attach-load-balancers --auto-scaling-group-name
my-asg
\ --load-balancer-namesmy-lb
Classic Load Balancer を記述する
Auto Scaling グループに関連付けられている Classic Load Balancer を表示するには、[describe-load-balancers] (Load Balancer を記述する) コマンドを使用します。次の例では、my-asg
の Classic Load Balancer を一覧表にしています。
aws autoscaling describe-load-balancers --auto-scaling-group-name
my-asg
出力された State
フィールドの説明については、「ロードバランサーのアタッチメントステータスについて」を参照してください。
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
Elastic Load Balancing のヘルスチェックを追加する
Elastic Load Balancing ヘルスチェックを Auto Scaling グループに追加するには、以下の [update-auto-scaling-group] (オートスケーリンググループを更新) を実行し、--health-check-type
オプションの値として ELB
を指定します。
aws autoscaling update-auto-scaling-group --auto-scaling-group-name
my-lb-asg
\ --health-check-type ELB
ヘルスチェックの猶予期間を更新するには、--health-check-grace-period
オプションを使用します。新しいインスタンスは、多くの場合、ヘルスチェックに合格する前に簡単なウォームアップの時間が必要です。猶予期間で十分なウォームアップ時間が提供されない場合、インスタンスはトラフィックを処理する準備ができていないように見えることがあります。Amazon EC2 Auto Scaling は、これらのインスタンスを異常と見なして置き換えることがあります。詳しくは、「Auto Scaling グループにヘルスチェックの猶予期間を設定する」を参照してください。
以下の [update-auto-scaling-group] (オートスケーリンググループを更新する) コマンドは Elastic Load Balancing のヘルスチェックを追加し、猶予期間を 300 秒に指定します。
aws autoscaling update-auto-scaling-group --auto-scaling-group-name
my-lb-asg
\ --health-check-type ELB --health-check-grace-period300
アベイラビリティーゾーンの更新
使用するコマンドは、使用するロードバランサー (Application Load Balancer、Network Load Balancer、または Classic Load Balancer) に応じて異なります。ロードバランサーのサブネットとアベイラビリティーゾーンは、ロードバランサーがサポートしている場合にのみ更新できます。詳しくは、「制約事項」を参照してください。
Application Load Balancer または Network Load Balancer を使用する Auto Scaling グループの場合
-
次の [update-auto-scaling-group] (オートスケーリンググループを更新する) コマンドを使用して、Auto Scaling グループに使用されるサブネットを指定します。
aws autoscaling update-auto-scaling-group --auto-scaling-group-name
my-asg
\ --vpc-zone-identifiersubnet-41767929
subnet-cb663da2
subnet-8360a9e7
-
以下の [describe-auto-scaling-groups] (オートスケーリンググループを記述する) コマンドを使用して、新しいサブネットのインスタンスがロードバランサーからのトラフィックを受け入れる準備が完了していることを確認します。
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name
my-asg
-
[set-subnets] (サブネットを設定する) コマンドを使用して、Application Load Balancer または Network Load Balancer で使用するサブネットを指定します。
aws elbv2 set-subnets --load-balancer-arn
my-lb-arn
\ --subnetssubnet-41767929
subnet-cb663da2
subnet-8360a9e7
VPC に Classic Load Balancer を使用した Auto Scaling グループの場合
-
次の [update-auto-scaling-group] (オートスケーリンググループを更新する) コマンドを使用して、Auto Scaling グループに使用されるサブネットを指定します。
aws autoscaling update-auto-scaling-group --auto-scaling-group-name
my-asg
\ --vpc-zone-identifiersubnet-41767929
subnet-cb663da2
-
以下の [describe-auto-scaling-groups] (オートスケーリンググループを記述する) コマンドを使用して、新しいサブネットのインスタンスがロードバランサーからのトラフィックを受け入れる準備が完了していることを確認します。
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name
my-asg
-
次の [attach-load-balancer-to-subnets] (ロードバランサーをサブネットにアタッチ) コマンド を使用して Classic Load Balancer の新しいサブネットを有効にします。
aws elb attach-load-balancer-to-subnets --load-balancer-name
my-lb
\ --subnetssubnet-cb663da2
サブネットを無効にするには、次の [detach-load-balancer-from-subnets] (サブネットからロードバランサーをデタッチ) コマンドを実行します。
aws elb detach-load-balancer-from-subnets --load-balancer-name
my-lb
\ --subnetssubnet-8360a9e7