Classic Load BalancerからApplication Load Balancerへ移行したのでその時の手順を記録しておきます。
移行のメリット
移行には基本的にメリットしかないと思うのですが以下の点に魅力を感じて移行しました
ホストベース・パスベースのルーティングのサポート
これまで1サービス1ロードバランサの構成だったのですが、ALBに移行することで、一つのロードバランサで済みます。
あまり多くのサービスとつなぐと設定が複雑になるので避けるべきかもしれませんが、費用が削減できます。
ヘルスチェックの高機能化
これまでは単一のヘルスチェックしか動かせなかったのですが、複数のターゲットグループが存在する場合、それぞれにヘルスチェックを設定することが可能となります。
WAFの設定が可能
ALBであればWAFが設定可能です。
リダイレクト設定
これまでEC2インスタンスで設定していたものがロードバランサでの設定で対応可能となります。
いくつか上げましたが、こちらを参照すると詳細なメリットがわかります。
移行手順
- 移行ウィザードを使って新ALBを作成
- Route53でELBのDNS設定の重み付けを95にする
- Route53で新規ALBのDNS設定を重み付け5で作成する
- 動作確認、新規ALBのアクセスが問題ないことを確認して、ELBのDNS設定の重み付けを0にする
- 問題なければELBのDNS設定の削除、ELBの削除
それぞれ簡単に解説すると…
移行ウィザードを使って新ALBを作成
クラシックロードバランサを選択すると移行ウィザードが表示されるのでそこから新しいALBを作成します。
この時ロードバランサの名称やターゲットグループの名称も決定します。デフォルトでは同じ名称となっていますが、変更する場合はここで変更します。後からでは名称の変更ができない(はず)です。
Route53でELBのDNS設定の重み付けを95にする
Route53でこれまで設定していたELBのAレコードの設定を変更する。
上記画像のように重み付けを加えて95としておく。
このとき95というのは適当な数字で自分がわかりやすいものとした。一旦は5%をALBに飛ばすつもりにしたので次にALB側で重みを5とすると95%と5%とわかりやすく分かれる。
任意ではあるが、重みは0~255の間で設定できるのでその点だけ注意。
セットIDは一意であれば任意のものでOK
Route53で新規ALBのDNS設定を重み付け5で作成する
2番と同じ様に重み付けを変更します。
動作確認、新規ALBのアクセスが問題ないことを確認して、ELBのDNS設定の重み付けを0にする
動作確認します。ALBを通してEC2インスタンスにアクセスしていることを確認するために、ALB・EC2共にモニタリングします。
動作・モニタリング結果共に良好であれば、CLBの重み付けを0とします。
問題なければELBのDNS設定の削除、ELBの削除
すべてALB経由でアクセスすることを確認したのち、CLBを削除します。Route53にした重み付けはそのままでもOKです。
以上で移行が完了しました。移行ウィザードとRoute53の重み付けの設定をいじるだけで簡単に移行ができました。
高機能かつ費用が抑えられるので早めの移行をおすすめします。