[ELB] マイグレーションウィザードでCLBをALBに移行して設定差分を確認する

2017.12.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、菊池です。

先月のアップデートにて、CLBから、ALBまたはNLBへワンステップで移行可能な、マネージメントコンソールの移行ウィザードが公開されました。

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の[属性の編集]を選ぶと設定が可能です。

最後に

いかがでしたでしょうか。

ツールを使ったマイグレーションでは、元の設定との差分など、問題なくそのまま移行できるか?といった点が不安になることも多いと思い、検証してみました。