[ELB] マイグレーションウィザードでCLBをALBに移行して設定差分を確認する
こんにちは、菊池です。
先月のアップデートにて、CLBから、ALBまたはNLBへワンステップで移行可能な、マネージメントコンソールの移行ウィザードが公開されました。
従来のELB(Elastic Load Balancing v1)であるClassic Load Balancer(CLB)を、新しいELB(Elastic Load Balancing v2)であるALB(Application Load Balancer)またはNLB(Network Load Balancer)に簡単に移行することができます。
今回はHTTP/HTTPSリスナーをもつCLBを、ALBに移行して、元のCLBとの設定差分を確認してみました。
マイグレーションウィザード
先に紹介した通り、マイグレーションウィザードを使えば数クリックでCLBをALB/CLBに移行できます。ただし、CLBとALB/NLBの設定項目は完全に一致しているわけではないなため、作成されるALB/CLBの設定内容に一部注意が必要です。
マイグレーションウィザードの仕様は公式ドキュメントに記載があります。
- VPC内にあるCLBが対象
- CLBにHTTP/HTTPSリスナーがある場合にはALBが、TCPリスナーがある場合にはNLBを作成できる
- CLBの名前が既存のALB/NLBの名前と一致する場合は、新しいLBには別の名前を指定する必要がある
- CLBに設定されたサブネットが1つの場合、ALBの作成時に2番目のサブネットを指定する必要がある
- CLBがEC2-Classicのインスタンスを登録している場合、新しいLBのTargt Groupには登録されない
- CLBが次のタイプのインスタンスを登録している場合は、NLBのターゲット・グループに登録ない C1/CC1/CC2/CG1/CG2/CR1/CS1/G1/G2/HI1/HS1/M1/M2/M3/T1
- CLBにHTTP / HTTPSリスナーがあり、TCPヘルスチェックを使用する場合、ALB作成時にパス「/」へのHTTPヘルスチェックに変更される
- NLBに移行すると、NLBの要件を満たすようにヘルスチェック設定が変更される
- CLBに複数のHTTPSリスナーがある場合、
- その中の1つから証明書とポリシーが使用される
- Port443にHTTPSリスナーがある場合にはこのリスナーが選択される
- 選択したリスナーがカスタムポリシーまたはALBでサポートされていないポリシーを使用してる場合、デフォルトのセキュリティポリシーに変更される
- CLBにセキュリティ保護されたTCPリスナーがある場合、NLBはTCPリスナーが設定されるが、証明書・セキュリティポリシーは使用しない
- CLBに複数のリスナーがある場合、
- ウィザードはターゲットポートとして最も小さい値を持つリスナーポートを使用する
- これらのリスナーに登録されている各インスタンスは、すべてのリスナーのリスナーポートのTarget Groupに登録される
- タグ名にaws接頭辞を持つタグがある場合、そのタグは新しいLBに追加されない
やってみる
それでは、CLBをALBに移行してみます。
マネジメントコンソールでCLBを選択すると、[移行]のタブが追加されています。
[ALB移行ウィザードを起動]が選択可能になっています。移行元のCLBに、HTTP/HTTPSリスナーがある場合には、ALB移行ウィザードが、TCPリスナーがある場合にはNLB移行ウィザードが選択可能です。
移行ウィザードに移ります(いきなり、ステップ6になります)。移行前後で変化する箇所はグレー(移行前)と緑(移行後)にハイライトされます。
各項目の[編集]を選択することで、新規に作成されるALBのパラメータを変更することも可能です。その場合、通常のALB作成画面に移ります。
問題なければ、[作成]します。
ALBが作成されています。 (名前もそのまま継承されるので、classic-elbという名のALBが作成されてしまいましたw)
ALBに紐づくTarget Groupも作成されています。
継承されない設定項目
移行ウィザード完了時の画面にもありますが、元のCLBに適用していた以下の項目は、作成されたALBには反映されていませんでした。これらが必要な場合には、移行後のALBに個別に設定する必要があります。
- アイドルタイムアウト:デフォルト60秒
- 登録解除の遅延:デフォルト300秒
- アクセスログ:デフォルトで無効
- 接続の維持設定(スティッキーセッション):デフォルトで無効
アイドルタイムアウト/登録解除の遅延
元のCLBの設定に関わらず、デフォルト値に設定されます。変更が必要な場合には、それぞれ個別に設定をしましょう。アイドルタイムアウトはALB、登録解除の遅延はTarget Group側の設定になります。
アクセスログ
必要に応じて新しいALB用に設定しましょう。CLBとALBではログフォーマットに差異がありますので、既存のCLBとは別のS3バケットまたはプレフィックスを指定して、混在させないようにするのがよいでしょう。
接続の維持(スティッキーセッション)
こちらも、CLBから引き続きしようする場合には、再度設定する必要があります。この項目は、ALBの場合にはTarget Group側の設定になることに注意します。
Target Groupの[属性の編集]を選ぶと設定が可能です。
最後に
いかがでしたでしょうか。
ツールを使ったマイグレーションでは、元の設定との差分など、問題なくそのまま移行できるか?といった点が不安になることも多いと思い、検証してみました。