Application Load Balancer の作成 - Elastic Load Balancing

Application Load Balancer の作成

Application Load Balancer はクライアントからリクエストを受け取り、EC2 インスタンスなどのターゲットグループのターゲット間でリクエストを割り当てます。詳細については、「Elastic Load Balancing ユーザーガイド」の「Elastic Load Balancing の仕組み」を参照してください。

前提条件

  • アプリケーションがサポートするアベイラビリティーゾーンと IP アドレスタイプを決定します。これらの各アベイラビリティーゾーンにサブネットを持つロードバランサー VPC を設定します。アプリケーションが IPv4 と IPv6 の両方のトラフィックをサポートする場合は、サブネットに IPv4 と IPv6 の両方の CIDR があることを確認します。各アベイラビリティーゾーンに少なくとも 1 つのターゲットをデプロイします。詳細については、「ロードバランサーのサブネット」を参照してください。

  • ターゲットインスタンスに関連付けられているセキュリティグループでは、リスナーポートからクライアント IP アドレス (ターゲットがインスタンス ID で指定されている場合) またはロードバランサーノード (ターゲットが IP アドレスで指定されている場合) へのトラフィックを許可するようにします。詳細については、「推奨ルール」を参照してください。

  • ターゲットインスタンスのセキュリティグループでは、ヘルスチェックプロトコルを使用してヘルスチェックポートのロードバランサーからのトラフィックを許可するようにします。

ロードバランサーを作成する

Application Load Balancer の作成の一環として、ロードバランサー、少なくとも 1 つのリスナー、および少なくとも 1 つのターゲットグループを作成します。有効な各アベイラビリティーゾーンに少なくとも 1 つの正常な登録済みターゲットがある場合、ロードバランサーはクライアントリクエストを処理する準備ができています。

Console
Application Load Balancer を作成するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[Load Balancers] を選択します。

  3. [ロードバランサーを作成] を選択します。

  4. [Application Load Balancer] で [作成] を選択します。

  5. 基本的な設定

    1. [ロードバランサー名] に、ロードバランサーの名前を入力します。この名前は、リージョンのロードバランサーのセット内で一意である必要があります。名前は最大 32 文字で、英数字とハイフンのみを使用できます。先頭および末尾にハイフンまたは internal- を使用することはできません。Application Load Balancer の名前は、作成後に変更することはできません。

    2. [スキーム] で、[インターネット向け] または [内部] を選択します。インターネット向けロードバランサーは、クライアントからインターネット経由でリクエストをターゲットにルーティングします。内部ロードバランサーは、プライベート IP アドレスを使用してターゲットにリクエストをルーティングします。

    3. [ロードバランサーIP アドレスタイプ] については、クライアントがロードバランサーとの通信に IPv4 アドレスを使用する場合は [IPv4] を、クライアントがロードバランサーとの通信に IPv4 アドレスと IPv6 アドレスの両方を使用する場合は [デュアルスタック] を選択します。クライアントが IPv6 アドレスのみを使用してロードバランサーと通信する場合はパブリック IPv4 なしのデュアルスタックを選択します。

  6. ネットワークマッピング

    1. VPC の場合は、ロードバランサー用に準備した VPC を選択します。インターネット向けロードバランサーでは、インターネットゲートウェイを持つ VPCs のみが選択できます。

    2. (オプション) [IP プール] には、[パブリック IPv4 アドレスに IPAM プールを使用する] を選択できます。詳細については、「IPAM IP アドレスプール」を参照してください。

    3. [アベイラビリティーゾーンとサブネット] では、次のようにロードバランサーのゾーンを有効にします。

      • 少なくとも 2 つのアベイラビリティーゾーンからのサブネットを選択する

      • 少なくとも 1 つのローカルゾーンからサブネットを選択する

      • Outpost サブネットを 1 つ選択する

      詳細については、「ロードバランサーのサブネット」を参照してください。

      ロードバランサーの [デュアルスタック] では、IPv4 および IPv6 CIDR ブロックが関連付けられているサブネットを選択する必要があります。

  7. [セキュリティグループ]。

    ロードバランサー VPC のデフォルトのセキュリティグループを事前に選択します。必要に応じて、追加のセキュリティグループを選択できます。ニーズに合ったセキュリティグループがない場合は、[新しいセキュリティグループを作成する]を選択して作成します。詳細については、「Amazon VPC ユーザーガイド」の「セキュリティグループの作成」を参照してください。

  8. リスナーとルーティング

    1. デフォルトは、ポート 80 で HTTP トラフィックを受け付けるリスナーです。必要に応じて、デフォルトのリスナー設定を保持する、または [プロトコル] または [ポート] を変更することができます。

    2. [デフォルトアクション] で、トラフィックを転送するターゲットグループを選択します。ニーズに合ったターゲットグループがない場合は、[ターゲットグループの作成] を選択して今すぐ作成します。詳細については、「ターゲットグループの作成」を参照してください。

    3. (オプション) [リスナータグの追加] を選択し、タグキーとタグ値を入力します。

    4. (オプション) [リスナーを追加] を選択して別のリスナー (HTTPS リスナーなど) を追加します。

  9. セキュアリスナー設定

    このセクションは、HTTPS リスナーを追加する場合にのみ表示されます。

    1. [セキュリティポリシー] で、要件を満たすセキュリティポリシーを選択します。詳細については、「セキュリティポリシー」を参照してください。

    2. [デフォルトの SSL/TLS 証明書] では、次のオプションが利用可能です。

      • AWS Certificate Manager を使用して証明書を作成またはインポートした場合は、[ACM から] を選択して、証明書を選択します。

      • IAM を使用して証明書をインポートした場合は、[IAM から] を選択し、証明書を選択します。

      • ACM で使用可能な証明書がないが、ロードバランサーで使用する証明書がある場合は、[証明書のインポート] を選択し、必要な情報を入力します。それ以外の場合は、[新しい ACM 証明書リクエスト] を選択します。詳細については、「AWS Certificate Manager ユーザーガイド」の「AWS Certificate Manager 証明書」を参照してください。

    3. (オプション) [相互認証 (mTLS)] を選択し、ALPN を有効にするポリシーを選択します。

      詳細については、「相互 TLS 認証」を参照してください。

  10. [サービス統合で最適化する]

    (オプション) 他の AWS をロードバランサーと統合できます。詳細については、「ロードバランサーの統合」を参照してください。

  11. [ロードバランサーのタグ]

    (オプション) [ロードバランサーのタグ] を展開します。[新しいタグの追加] をクリックし、タグキーとタグ値を入力してください。詳細については、「タグ」を参照してください。

  12. まとめ

    設定を確認し、[ロードバランサーの作成] を選択します。作成時に、Network Load Balancer にいくつかのデフォルト属性が適用されます。Network Load Balancer の作成後に、それらを表示および編集できます。詳細については、「ロードバランサーの属性」を参照してください。

AWS CLI
Application Load Balancer を作成するには

create-load-balancer コマンドを使用します。

次の例では、2 つの有効なアベイラビリティーゾーンとセキュリティグループを持つインターネット向けロードバランサーを作成します。

aws elbv2 create-load-balancer \ --name my-load-balancer \ --type application \ --subnets subnet-1234567890abcdef0 subnet-0abcdef1234567890 \ --security-groups sg-1111222233334444
内部 Application Load Balancer を作成するには

次の例のように、--scheme オプションを含めます。

aws elbv2 create-load-balancer \ --name my-load-balancer \ --type application \ --scheme internal \ --subnets subnet-1234567890abcdef0 subnet-0abcdef1234567890 \ --security-groups sg-1111222233334444
デュアルスタックの Application Load Balancer を作成するには

次の例のように、--ip-address-type オプションを含めます。

aws elbv2 create-load-balancer \ --name my-load-balancer \ --type application \ --ip-address-type dualstack \ --subnets subnet-1234567890abcdef0 subnet-0abcdef1234567890 \ --security-groups sg-1111222233334444
リスナーを追加するには

create-listener コマンドを使用します。例については、「HTTP リスナーを作成する」および「HTTPS リスナーを作成する」を参照してください。

CloudFormation
Application Load Balancer を作成するには

AWS::ElasticLoadBalancingV2::LoadBalancer リソースタイプを定義します。

Resources: myLoadBalancer: Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer' Properties: Name: my-alb Type: application Scheme: internal IpAddressType: dualstack Subnets: - !Ref subnet-AZ1 - !Ref subnet-AZ2 SecurityGroups: - !Ref mySecurityGroup Tags: - Key: "department" Value: "123"
リスナーを追加するには

AWS::ElasticLoadBalancingV2::Listener タイプのリソースを定義します。例については、「HTTP リスナーを作成する」および「HTTPS リスナーを作成する」を参照してください。

ロードバランサーをテストする

ロードバランサーを作成したら、EC2 インスタンスが最初のヘルスチェックに合格することを検証できます。ロードバランサーが EC2 インスタンスにトラフィックを送信するかどうかを検証できます。ロードバランサーを削除するには、Application Load Balancer の削除 を参照してください。

ロードバランサーをテストするには
  1. ロードバランサーが作成されたら、[Close] を選択します。

  2. ナビゲーションペインで、[Target Groups] を選択します。

  3. 新しく作成したターゲットグループを選択します。

  4. [Targets] を選択して、インスタンスの準備ができていることを確認します。インスタンスのステータスが initial である場合、通常、インスタンスがまだ登録の進行中であることが原因です。このステータスは、インスタンスが正常と見なされるのに必要なヘルスチェックの最小数に合格しなかったことを示すこともできます。少なくとも 1 つのインスタンスのステータスが正常であれば、ロードバランサーをテストできます。詳細については、「ターゲットヘルスステータス」を参照してください。

  5. ナビゲーションペインで、[ロードバランサー] を選択します。

  6. 新しく作成したロードバランサーを選択します。

  7. [説明] を選択し、インターネット向けまたは内部ロードバランサーの DNS 名 (my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com など) をコピーします。

    • インターネット向けのロードバランサーの場合、インターネットに接続されたウェブブラウザのアドレスフィールドに DNS 名を貼り付けます。

    • 内部ロードバランサーの場合、VPC へのプライベート接続を持つウェブブラウザのアドレスフィールドに DNS 名を貼り付けます。

    すべてが正しく設定されている場合は、ブラウザにサーバーのデフォルトページが表示されます。

  8. ウェブページが表示されない場合は、追加の設定ヘルプとトラブルシューティングステップについて、次のドキュメントを参照してください。

次のステップ

ロードバランサーを作成したら、次の操作を行います。