Application Load Balancer の作成 - Elastic Load Balancing

Application Load Balancer の作成

ロードバランサーはクライアントからリクエストを受け取り、ターゲットグループのターゲット間でリクエストを分散します。

開始する前に、ターゲットが使用する各ゾーンで少なくとも 1 つのパブリックサブネットを持つ仮想プライベートクラウド (VPC) があることを確認します。詳細については、「ロードバランサーのサブネット」を参照してください。

AWS CLI を使用してロードバランサーを作成する方法については、AWS CLI を使用した Application Load Balancer の開始方法を参照してください。

AWS Management Console を使用してロードバランサーを作成するには、以下のタスクを完了します。

ステップ 1: ターゲットグループの設定

ターゲットグループを設定すると、EC2 インスタンスなどのターゲットを登録できます。このステップで設定するターゲットグループは、ロードバランサーを設定するときに、リスナールールでターゲットグループとして使用されます。詳細については、「Application Load Balancer のターゲットグループ」を参照してください。

コンソールを使用してターゲットグループを設定するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[ターゲットグループ] を選択します。

  3. [ターゲットグループの作成] を選択します。

  4. [基本的な設定] セクションで、以下のパラメータを設定します。

    1. [ターゲットタイプの選択] で、[インスタンス] を選択してインスタンス ID でターゲットを指定するか、[IP アドレス] を選択して IP アドレスのみでターゲットを指定します。ターゲットタイプが [Lambda 関数] の場合は、[ヘルスチェック] セクションの [有効] を選択してヘルスチェックを有効にできます。

    2. [ターゲットグループ名] に、ターゲットグループの名前を入力します。

    3. [ポート] と [プロトコル] を必要に応じて設定します。

    4. ターゲットタイプが [インスタンス] または [IP アドレス] の場合は、[IPv4] または [IPv6][IP アドレスタイプ] として選択します。そうでない場合は、次のステップに進みます。

      このターゲットグループに含めることができるのは、選択した IP アドレスタイプを持つターゲットのみであることに注意してください。ターゲットグループの作成後に IP アドレスタイプを変更することはできません。

    5. [VPC] では、ターゲットグループに含めるターゲットがある Virtual Private Cloud (VPC) を選択します。

    6. [Protocol version] (プロトコルバージョン) で、リクエストプロトコルが HTTP/1.1 または HTTP/2 の場合は [HTTP1] を選択し、リクエストプロトコルが HTTP/2 または gRPC の場合は [HTTP2] を選択し、リクエストプロトコルが gRPC の場合は [gRPC] を選択します。

  5. [ヘルスチェック] セクションで、必要に応じてデフォルト設定を変更します。[ヘルスチェックの詳細設定] で、ヘルスチェックポート、カウント、タイムアウト、インターバルを選択し、成功コードを指定します。ヘルスチェックが [異常なしきい値] のカウントを連続して超えると、ロードバランサーはターゲットを停止中の状態にします。ヘルスチェックが [正常なしきい値] のカウントを連続して超えると、ロードバランサーはターゲットを稼働状態に戻します。詳細については、「Application Load Balancer ターゲットグループのヘルスチェック」を参照してください。

  6. (オプション) 次のように 1 つ以上のタグを追加します。

    1. [Tags (タグ)] セクションを展開します。

    2. [Add tag] を選択します。

    3. タグキーとタグを入力します。使用できる文字は、文字、スペース、数字 (UTF-8)、および特殊文字 (+-=. _:/@) です。ただし、先頭または末尾にはスペースを使用しないでください。タグ値は大文字と小文字が区別されます。

  7. [Next] を選択します。

ステップ 2: ターゲットの登録

EC2 インスタンス、IP アドレス、または Lambda 関数をターゲットグループのターゲットとして登録できます。これは、ロードバランサーを作成するためのオプションのステップです。ただし、ターゲットを登録して、ロードバランサーがトラフィックをターゲットにルーティングするようにする必要があります。

  1. [ターゲットの登録] ページで、次のように 1 つ以上のターゲットを追加します。

    • ターゲットタイプがインスタンスである場合は、1 つ以上のインスタンスを選択し、1 つ以上のポートを入力して、[保留中として以下を含める] を選択します。

    • ターゲットタイプが [IP addresses] (IP アドレス) の場合は、以下を実行してください。

      1. リストからネットワーク [VPC] を選択、または [Other private IP addresses] (その他のプライベート IP アドレス) を選択します。

      2. IP アドレスを手動で入力する、またはインスタンスの詳細を使用して IP アドレスを検索します。IP アドレスは、一度に 5 個まで入力できます。

      3. 指定された IP アドレスにトラフィックをルーティングするためのポートを入力します。

      4. [Include as pending below] (保留中として以下を含める) をクリックします。

    • ターゲットタイプが Lambda なら、Lambda 関数を選択するか、Lambda 関数 ARN を入力して、以下で保留として含めます

  2. [ターゲットグループの作成] を選択します。

ステップ 3: ロードバランサーとリスナーの設定

Application Load Balancer を作成するには、まず、名前、スキーム、IP アドレスのタイプなど、ロードバランサーの基本設定情報を指定する必要があります。次に、ネットワークに関する情報と 1 つ以上のリスナーを指定します。リスナーとは接続リクエストをチェックするプロセスです。これは、クライアントからロードバランサーへの接続用のプロトコルとポートを使用して設定します。サポートされるプロトコルとポートの詳細については、「リスナーの設定」を参照してください。

コンソールを使用してロードバランサーとリスナーを設定するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

  3. [Create Load Balancer] を選択します。

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

  5. 基本的な設定

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

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

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

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

    1. [VPC] では、EC2 インスタンスで使用したのと同じ VPC を選択します。[スキーム] で [インターネット向け] を選択した場合は、インターネットゲートウェイを持つ VPC だけを選択できます。

    2. マッピングでは、次のようにサブネットを選択してロードバランサーのゾーンを有効にします。

      • 2 つ以上のアベイラビリティーゾーンからのサブネット

      • 1 つ以上の Local Zones からのサブネット

      • 1 つの Outpost サブネット

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

      内部ロードバランサーの場合、IPv4 アドレスおよび IPv6 アドレスは、サブネット CIDR から割り当てられます。

      ロードバランサーのデュアルスタックモードを有効にした場合は、IPv4 および IPv6 CIDR ブロックが関連付けられているサブネットを選択します。

  7. [セキュリティグループ] で、既存のセキュリティグループを選択することも、新しいセキュリティグループを作成することもできます。

    ロードバランサーのセキュリティグループは、リスナーポート ポートとヘルスチェックポートの両方で登録済みターゲットとの通信を許可する必要があります。コンソールは、この通信を許可するルールにより、お客様に代わってロードバランサー用のセキュリティグループを作成できます。代わりにセキュリティグループを作成して選択することもできます。詳細については、「推奨ルール」を参照してください。

    (オプション) ロードバランサー用に新しいセキュリティグループを作成するには、[新しいセキュリティグループの作成] を選択します。

  8. [Listeners and routing] のデフォルトは、ポート 80 で HTTP トラフィックを受け付けるリスナーです。デフォルトのプロトコルとポートを維持するか、別のプロトコルとポートを選択できます。[デフォルトアクション] で、先ほど作成したターゲットグループを選択します。[リスナーを追加] を選択して別のリスナー (HTTPS リスナーなど) を追加できます。

  9. (オプション) HTTPS リスナーを使用する場合

    [セキュリティポリシー] では、常に最新の事前定義されたセキュリティポリシーを使用することをお勧めします。

    1. [デフォルトの SSL/TLS 証明書] では、以下のオプションがあります。

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

      • IAM を使用して証明書をすでにインポートしている場合は、[IAM から] を選択し、[証明書の選択] から対象の証明書を選択します。

      • インポートする証明書はあるが、リージョンで ACM を利用できない場合は、[インポート] を選択し、次に [IAM へ] を選択します。[証明書名] フィールドに証明書の名前を入力します。[証明書のプライベートキー] に、PEM エンコードされたプライベートキーファイルの内容をコピーして貼り付けます。[証明書本文] に、PEM エンコードされたパブリックキー証明書ファイルの内容をコピーして貼り付けます。自己署名証明書を使用しておらず、ブラウザが暗黙的に証明書を受け入れることが重要である場合に限り、[Certificate Chain] に、PEM エンコードされた証明書チェーンファイルの内容をコピーして貼り付けます。

    2. (オプション) 相互認証を有効にするには、[クライアント証明書の処理][相互認証 (mTLS)] を有効にします。

      有効になっている場合、デフォルトの相互 TLS モードはパススルーです。

      トラストストアで検証を選択した場合

      • クライアント証明書が期限切れである接続は、デフォルトで拒否されます。この動作を変更するには、[詳細な mTLS 設定] を展開して、[クライアント証明書の有効期限][期限切れのクライアント証明書を許可する] を選択します。

      • [トラストストア] で既存のトラストストアを選択するか、[新しいトラストストア] を選択します。

        • [新しいトラストストア] を選択した場合は、トラストストア名S3 URI 認証局の場所、および任意で S3 URI 証明書失効リストの場所を指定します。

  10. (任意) 作成時に [サービスの統合で最適化] で、他の サービスをロードバランサーと統合することができます。

    • お使いのロードバランサーには、AWS WAF のセキュリティ保護を、既存のウェブ ACL または自動作成したウェブ ACL と共に含めることができます。作成後、ウェブ ACL は AWS WAF コンソールで管理できます。詳細については、「AWS WAFデベロッパーガイド」の「Associating or disassociating a web ACL with an AWS resource」を参照してください。

    • AWS Global Accelerator でアクセラレーターを自動作成して、このアクセラレーターにお使いのロードバランサーを関連付けることができます。アクセラレーター名には、a~z、A~Z、0~9、. (ピリオド)、- (ハイフン) を最大 64 文字まで使用できます。アクセラレーターを作成したら、AWS Global Accelerator コンソールから管理できます。詳細については、「AWS Global Accelerator デベロッパーガイド」の「Add an accelerator when you create a load balancer」を参照してください。

  11. タグ付けして作成

    1. (オプション) タグを追加して、ロードバランサーを分類します。タグキーは、各ロードバランサーで一意である必要があります。使用できる文字は、文字、スペース、数字 (UTF-8)、および特殊文字 (+-=. _:/@) です。ただし、先頭または末尾にはスペースを使用しないでください。タグ値は大文字と小文字が区別されます。

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

ステップ 4: ロードバランサーのテスト

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

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

  2. ナビゲーションペインで、[ターゲットグループ] を選択します。

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

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

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

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

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

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

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

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

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