Application Load Balancer を Network Load Balancer の背後に登録するにはどうすればよいですか?

所要時間3分
0

Application Load Balancer には静的 IP アドレスが必要です。Application Load Balancer を Network Load Balancer の背後に登録したいと考えています。

簡単な説明

Application Load Balancer に静的 IP アドレスを割り当てることはできません。Application Load Balancer が静的 IP アドレスを必要とする場合は、Network Load Balancer の背後に登録するのがベストプラクティスです。Network Load Balancer に割り当てられる静的 IP アドレスは変更されず、Application Load Balancer の固定エントリポイントとなります。

注: 以下の解決策は、Amazon Elastic Compute Cloud (Amazon EC2) コンソールでの新しい起動エクスペリエンスを使用します。手順を完了するには、Amazon EC2 コンソールでこの機能をオンに切り替えます。

解決策

Amazon EC2 コンソール

Amazon EC2 コンソールを使用して新しいターゲットグループを作成し、Application Load Balancer をターゲットとして登録します。トラフィックを Application Load Balancer に転送するために、Network Load Balancer を作成して設定します。

TCP 80 と TCP 443 トラフィックの新しいターゲットグループを作成し、Application Load Balancer をターゲットとして登録する

新しいターゲットグループを作成して、Amazon EC2 インスタンスのターゲットを登録するには、次の手順を実行します。

  1. Amazon EC2 コンソールを開きます。
  2. ナビゲーションペインで、[ロードバランシング] を展開し、[ターゲットグループ] を選択します。
  3. [ターゲットグループを作成する] を選択します。
  4. [ターゲットタイプの選択] で、[Application Load Balancer] を選択します。
  5. [ターゲットグループ名] で、ターゲットグループの名前を入力します。
  6. [プロトコル][TCP] を選択してから、[ポート][80] を HTTP トラフィック用として選択します。
  7. [VPC] で、Application Load Balancer の仮想プライベートクラウド (VPC) を選択します。
  8. [ヘルスチェックプロトコル] で、HTTP 200 - 399 ステータスを返す Application Load Balancer の [HTTP] または [HTTPS] を選択します。
  9. [次へ] を選択します。
  10. [Application Load Balancer] で、該当する Application Load Balancer を選択します。
  11. [ターゲットグループを作成する] を選択します。
  12. 手順 3 ~ 11 を繰り返して、追加のターゲットグループを作成します。ステップ 6 を繰り返す場合は、TCP プロトコルとポート 443 を選択して HTTPS トラフィック用の別のターゲットグループを作成します。

HTTP トラフィックおよび HTTPS トラフィックを Application Load Balancer に転送するために、Network Load Balancer を作成して設定する

HTTP トラフィックおよび HTTPS トラフィックを Application Load Balancer に転送するために、Network Load Balancer を作成して設定するには、次の手順を実行します。

  1. Amazon EC2 コンソールを開きます。
  2. ナビゲーションペインで、[ロードバランシング] を展開し、[ロードバランサー] を選択します。
  3. [ロードバランサーの作成] を選択します。
  4. [ロードバランサータイプ] で、[Network Load Balancer][作成] の順に選択します。
  5. [ロードバランサー名] に、Network Load Balancer の名前を入力します。
  6. [スキーム] で、[インターネット向け] または [内部] のいずれかを選択します。内部 Application Load Balancer は、インターネットに接続された Network Load Balancer と一緒に使用できます。
  7. [IP アドレスタイプ] で、[IPv4] を選択します。
  8. [VPC] で、[VPC] を選択します。
  9. [マッピング] で、1 つ以上のアベイラビリティーゾーンとサブネットを選択します。内部ロードバランサーにはプライベートサブネットを、インターネット向けロードバランサーにはパブリックサブネットを選択します。
  10. [IPv4 アドレス] で、[AWS による割り当て] または [Elastic IP アドレスの使用] を選択します。
  11. [プロトコル] で [TCP] を選択してから、[ポート][80] を HTTP トラフィック用として選択します。
  12. [デフォルトアクション] で、Application Load Balancer を登録済みターゲットとして含むターゲットグループを選択します。
  13. [リスナーを追加] を選択し、手順 11 ~ 12 を繰り返します。Application Load Balancer の TCP 443 ターゲットグループにトラフィックを転送するデフォルトアクションを使用して、プロトコル [TCP] とポート [443] を選択します。
  14. [ロードバランサーの作成] を選択します。
  15. ロードバランサーをテストします
    **注:**この設定で、Application Load Balancer で HTTP から HTTPS にリダイレクトするには、2 つのターゲットグループを作成する必要があります。TCP 80 用と TCP 443 用の Application Load Balancer ターゲットグループを 1 つ作成します。
    Application Load Balancer のセキュリティグループとネットワークアクセスコントロールリスト (ネットワーク ACL) を設定して、Network Load Balancer のプライベート IP アドレスからのヘルスチェックを許可します。

AWS CLI

**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用しているようにしてください。

AWS CLI を使用して Application Load Balancer を Network Load Balancer の背後に登録するには、次の手順を実行します。

  1. 新しいターゲットグループを作成し、alb ターゲットタイプを使用します。
    aws elbv2 create-target-group \
    --name <name> \
    --protocol TCP \
    --port <port> \
    --target-type alb \
    --vpc-id <vpc_id>
    注: name をターゲットグループの名前に、port をポート番号に、vpc_id を VPC ID にそれぞれ置き換えてください。
  2. Application Load Balancer をターゲットグループに登録します。
    aws elbv2 register-targets \
    --target-group-arn <tg_arn from previous command> \
    --targets Id=<alb_arn>
    注: tg_arn from previous command をターゲットグループの ARN に置き換え、alb_arn を Application Load Balancer の ARN に置き換えてください。
  3. Network Load Balancer を作成します。
    aws elbv2 create-load-balancer \
    --name <nlb name> \
    --type network \
    --scheme internal \
    --subnets <subnet_ids>
    注: nlb_name をお使いの Network Load Balancer の名前に置き換え、subnet_ids をサブネットの ID に置き換えてください。
  4. リスナーを作成します。
    aws elbv2 create-listener --load-balancer-arn ${nlb1_arn} \
    --protocol TCP --port <port> \
    --default-actions Type=forward,TargetGroupArn=<target group>

関連情報

AWS Lambda を使用して Application Load Balancer の静的 IP アドレスを有効にする

Application Load Balancer の Network Load Balancer との直接統合により、AWS PrivateLink と静的 IP アドレスを有効にする

コメントはありません