Classic Load Balancer を Application Load Balancer または Network Load Balancer に移行したいです。
解決策
ロードバランサーの特性を比較する
Classic Load Balancer を移行する前に、Application Load Balancer と Network Load Balancer の特徴を比較してください。詳細については、「Elastic Load Balancing の特徴」を参照してください。
Application Load Balancer
Application Load Balancer には、2 つ以上のサブネットが必要です。ロードバランサーにサブネットが 1 つしかない場合は、移行時に 2 つ目のサブネットを指定します。
デフォルトでは、Application Load Balancer ではクロスゾーン負荷分散が有効になっています。この機能は、ロードバランサーレベルでは無効にできますが、ターゲットグループレベルでは無効にできません。
Application Load Balancer は、ロードバランサーのリクエストリダイレクトをサポートします。Classic Load Balancer のバックエンド接続を HTTP リダイレクト用に設定した場合は、移行時にリダイレクトを無効化または削除します。
Network Load Balancer
Network Load Balancer のクロスゾーン負荷分散は、ロードバランサーレベルで無効にできます。
Network Load Balancer の作成時に、セキュリティグループをそのロードバランサーに関連付ける必要があります。セキュリティグループを既存の Network Load Balancer に関連付けることはできません。トラフィックを制限するには、ターゲットに関連付けられたセキュリティグループを使用します。Network Load Balancer レベルでは、サブネットのネットワークアクセス制御リスト (ネットワーク ACL) を使用してトラフィックを制限します。
Classic Load Balancer を Application Load Balancer または Network Load Balancer に移行する
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
Application Load Balancer または Network Load Balancer を作成して設定するには、移行ウィザードを使用します。新しいロードバランサーをテストして、動作することを確認します。次に、トラフィックを Classic Load Balancer から新しいロードバランサーに手動でリダイレクトし、ポリシー、スクリプト、コードを更新します。
トラフィックをリダイレクトした後は、Amazon Elastic Compute Cloud (Amazon EC2) コンソールを使用して古いロードバランサーを削除できます。または、AWS CLI コマンド delete-load-balancer を実行してもかまいません。
ロードバランサーの移行中のダウンタイムをトラブルシューティングする
ロードバランサーの移行中のダウンタイムを最小限に抑えるために、本番環境のトラフィックを移動する前に、新しいロードバランサーに対してテストを実施します。次に、新しいロードバランサーがトラフィックリクエストを管理できることを確認します。
トラフィックを新しいロードバランサーに徐々にルーティングするために、Amazon Route 53 加重ルーティングポリシーを使用します。新しいロードバランサーで問題が発生した場合は、トラフィック加重に 0 (ゼロ) の値を割り当てます。
DNS プロバイダーに Route 53 を使用していない場合は、引き続き古いロードバランサーを実行します。DNS レコードがキャッシュされることを防ぐために、既存のレコードの保持期間 (TTL) 値を 0 に減らします。以前の TTL 値がリセットされるまで待ってから、DNS レコードが新しいロードバランサーの DNS 名を参照するようにします。新しいロードバランサーで問題が発生した場合は、DNS レコードで Classic Load Balancer の DNS 名を参照するようにします。問題の解決後は、TTL 値を元の値に戻します。