1年くらい前の話ですが、AWSでAuto Scalingグループに対するELBのアタッチとデタッチをサポートしました。
https://aws.amazon.com/jp/about-aws/whats-new/2015/06/attach-or-detach-load-balancers-in-your-auto-scaling-group/?nc1=h_ls
http://docs.aws.amazon.com/ja_jp/autoscaling/latest/userguide/attach-load-balancer-asg.html
最近、業務で恩恵にあずかったのでやり方をメモしておきます。
以前までは、Auto Scalingグループに関連付けられているELBは変更することができず、Blue-Green Deploymentの切替を行おうと思ったときには、DNSベース(Route53)の切替しかできませんでした。
しかし、このアップデートELBの切り替えが可能になりました。
図で解説
①最初の状態(Blue-Green Deploy後)
②Green環境にELB-Aを接続
CLI
aws autoscaling attach-load-balancers --region us-west-2 --auto-scaling-group-name "Auto Scaling group-B" --load-balancer-names "ELB-A"
③Green環境に本番切り替え(ELB-AをBlue環境から切り離し、ELB-BをGreen環境から切り離し)
CLI
ELB-AをBlue環境から切り離し
aws autoscaling detach-load-balancers --auto-scaling-group-name "AutoScalingGroup-A" --load-balancer-names "ELB-A"
ELB-BをGreen環境から切り離し
aws autoscaling detach-load-balancers --auto-scaling-group-name 'AutoScalingGroup-B' --load-balancer-names 'ELB-B'
シェルで自動化
上記作業をデプロイ毎に実施しないといけない場合、自動化する必要があります。その際に気をつけることはELB-AがAuto Scaling group-Bに確実に接続されたかを確認後、Auto Scaling group-Aから切り離すことでダウンタイムが無いようにすることです。