Application Load Balancer の作成
ロードバランサーはクライアントからリクエストを受け取り、ターゲットグループのターゲット間でリクエストを分散します。
開始する前に、ターゲットが使用する各アベイラビリティーゾーンで少なくとも 1 つのパブリックサブネットを持つ Virtual Private Cloud (VPC) があることを確認します。
AWS CLI を使用してロードバランサーを作成する方法については、チュートリアル: AWS CLI を使用した Application Load Balancer の作成を参照してください。
AWS Management Console を使用してロードバランサーを作成するには、以下のタスクを完了します。
ステップ 1: ターゲットグループの設定
ターゲットグループを設定すると、EC2 インスタンスなどのターゲットを登録できます。このステップで設定するターゲットグループは、ロードバランサーを設定するときに、リスナールールでターゲットグループとして使用されます。詳細については、「Application Load Balancer のターゲットグループ」を参照してください。
ターゲットグループを設定するには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[Target Groups] を選択します。
-
[Create target group] を選択します。
-
[基本的な設定] セクションで、以下のパラメータを設定します。
-
[ターゲットタイプの選択] で、[インスタンス] を選択してインスタンス ID でターゲットを指定するか、[IP アドレス] を選択して IP アドレスでターゲットを指定します。ターゲットタイプが [Lambda 関数] の場合は、[ヘルスチェック] セクションの [有効] を選択してヘルスチェックを有効にできます。
-
[ターゲットグループ名] に、ターゲットグループの名前を入力します。
-
[ポート] と [プロトコル] を必要に応じて設定します。
-
ターゲットタイプが [IP addresses] (IP アドレス) の場合は、[IP address type] (IP アドレスタイプ) として [IPv4] または [IPv6] を選択します。そうでない場合は、次のステップに進みます。
このターゲットグループに含めることができるのは、選択した IP アドレスタイプを持つターゲットのみであることに注意してください。ターゲットグループの作成後に IP アドレスタイプを変更することはできません。
-
[VPC] では、ターゲットグループに含めるターゲットがある Virtual Private Cloud (VPC) を選択します。
-
[Protocol version] (プロトコルバージョン) で、リクエストプロトコルが HTTP/1.1 または HTTP/2 の場合は [HTTP1] を選択し、リクエストプロトコルが HTTP/2 または gRPC の場合は [HTTP2] を選択し、リクエストプロトコルが gRPC の場合は [gRPC] を選択します。
-
-
[ヘルスチェック] セクションで、必要に応じてデフォルト設定を変更します。[ヘルスチェックの詳細設定] で、ヘルスチェックポート、カウント、タイムアウト、インターバルを選択し、成功コードを指定します。ヘルスチェックが [異常なしきい値] のカウントを連続して超えると、ロードバランサーはターゲットを停止中の状態にします。ヘルスチェックが [正常なしきい値] のカウントを連続して超えると、ロードバランサーはターゲットを稼働状態に戻します。詳細については、「ターゲットグループのヘルスチェック」を参照してください。
-
(オプション) 次のように 1 つ以上のタグを追加します。
-
[Tags (タグ)] セクションを展開します。
-
[Add tag] を選択します。
-
タグキーとタグ値を入力します。使用できる文字は、文字、スペース、数字 (UTF-8)、および特殊文字 (+-=. _:/@) です。ただし、先頭または末尾にはスペースを使用しないでください。タグ値は大文字と小文字が区別されます。
-
-
[Next] を選択します。
ステップ 2: ターゲットの登録
EC2 インスタンス、IP アドレス、または Lambda 関数をターゲットグループのターゲットとして登録できます。これは、ロードバランサーを作成するためのオプションのステップです。ただし、ターゲットを登録して、ロードバランサーがトラフィックをターゲットにルーティングするようにする必要があります。
-
[ターゲットの登録] ページで、次のように 1 つ以上のターゲットを追加します。
-
ターゲットタイプがインスタンスである場合は、1 つ以上のインスタンスを選択し、1 つ以上のポートを入力して、[保留中として以下を含める] を選択します。
-
ターゲットタイプが [IP addresses] (IP アドレス) の場合は、以下を実行してください。
-
リストからネットワーク [VPC] を選択、または [Other private IP addresses] (その他のプライベート IP アドレス) を選択します。
-
IP アドレスを手動で入力する、またはインスタンスの詳細を使用して IP アドレスを検索します。IP アドレスは、一度に 5 個まで入力できます。
-
指定された IP アドレスにトラフィックをルーティングするためのポートを入力します。
-
[Include as pending below] (保留中として以下を含める) をクリックします。
-
-
ターゲットタイプが Lambda なら、Lambda 関数を選択するか、Lambda 関数 ARN を入力して、以下で保留として含めます。
-
-
[Create target group] を選択します。
ステップ 3: ロードバランサーとリスナーの設定
Application Load Balancer を作成するには、まず、名前、スキーム、IP アドレスのタイプなど、ロードバランサーの基本設定情報を指定する必要があります。次に、ネットワークに関する情報と 1 つ以上のリスナーを指定します。リスナーとは接続リクエストをチェックするプロセスです。これは、クライアントからロードバランサーへの接続用のプロトコルとポートを使用して設定します。サポートされるプロトコルとポートの詳細については、「リスナーの設定」を参照してください。
ロードバランサーとリスナーを設定するには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[Load Balancers] (ロードバランサー) を選択します。
-
[Create Load Balancer] を選択します。
-
[Application Load Balancer] で [作成] を選択します。
-
基本的な設定
-
[ロードバランサー名] に、ロードバランサーの名前を入力します。例えば、
my-alb
です。Application Load Balancer の名前は、リージョンの Application Load Balancer と Network Load Balancer のセット内で一意である必要があります。名前は最大 32 文字で、英数字とハイフンのみを使用できます。先頭および末尾にハイフンまたはinternal-
を使用することはできません。 -
[スキーム] で、[インターネット向け] または [内部] を選択します。インターネット向けロードバランサーは、クライアントからインターネット経由でリクエストをターゲットにルーティングします。内部ロードバランサーは、プライベート IP アドレスを使用してターゲットにリクエストをルーティングします。
-
[IP アドレスタイプ] で、IPv4 またはデュアルスタックを選択します。クライアントが IPv4 アドレスを使用してロードバランサーと通信する場合、IPv4 を使用します。クライアントが IPv4 および IPv6 アドレスの両方を使用してロードバランサーと通信する場合、デュアルスタック を使用します。
-
-
ネットワークマッピング
-
[VPC] では、EC2 インスタンスで使用したのと同じ VPC を選択します。[スキーム] で [インターネット向け] を選択した場合は、インターネットゲートウェイを持つ VPC だけを選択できます。
-
[マッピング] で、2 つ以上のアベイラビリティーゾーンと対応するサブネットを選択します。複数のアベイラビリティーゾーンを有効にすると、アプリケーションの耐障害性が向上します。複数のアベイラビリティーゾーンを有効にすると、アプリケーションの耐障害性が向上します。
内部ロードバランサーの場合、プライベート IP アドレスを AWS で割り当てるのではなく、各サブネットの IPv4 または IPv6 の範囲から割り当てることができます。
有効にするサブネットをゾーンごとに 1 つ選択します。ロードバランサーのデュアルスタックモードを有効にした場合は、IPv6 CIDR ブロックが関連付けられているサブネットを選択します。以下のいずれかを指定できます。
-
2 つ以上のアベイラビリティーゾーンからのサブネット
-
1 つ以上の Local Zones からのサブネット
-
1 つの Outpost サブネット
-
-
-
[セキュリティグループ] で、既存のセキュリティグループを選択することも、新しいセキュリティグループを作成することもできます。
ロードバランサーのセキュリティグループは、リスナーポート ポートとヘルスチェックポートの両方で登録済みターゲットとの通信を許可する必要があります。コンソールは、この通信を許可するルールにより、お客様に代わってロードバランサー用のセキュリティグループを作成できます。代わりにセキュリティグループを作成して選択することもできます。詳細については、「推奨ルール」を参照してください。
(オプション) ロードバランサー用に新しいセキュリティグループを作成するには、[新しいセキュリティグループの作成] を選択します。
-
[Listeners and routing] のデフォルトは、ポート 80 で HTTP トラフィックを受け付けるリスナーです。デフォルトのプロトコルとポートを維持するか、別のプロトコルとポートを選択できます。[デフォルトアクション] で、先ほど作成したターゲットグループを選択します。[リスナーを追加] を選択して別のリスナー (HTTPS リスナーなど) を追加できます。
HTTPS リスナーを作成した場合は、必要なセキュリティリスナー設定を指定します。それ以外の場合は、次のステップに進みます。
ロードバランサーに HTTPS を使用するときは、ロードバランサーに SSL 証明書をデプロイする必要があります。ターゲットにリクエストを送信する前に、ロードバランサーはこの証明書を使用して接続を終了し、クライアントからのリクエストを復号します。詳細については、「SSL 証明書」を参照してください。さらに、クライアントとの SSL 接続のネゴシエーションのためにロードバランサーが使用するセキュリティポリシーも指定します。詳細については、「セキュリティポリシー」を参照してください。
[Default SSL certificate (デフォルトの SSL 証明書)] で、次のいずれかを実行します。
-
AWS Certificate Manager を使用して証明書を作成またはインポートした場合は、[From ACM ] を選択して、証明書を選択します。
-
IAM を使用して証明書をアップロードした場合は、[From IAM] を選択し、証明書を選択します。
-
証明書を ACM または IAM にインポートする場合は、証明書名を入力します。次に、PEM エンコードされた秘密キーと本文を貼り付けます。
-
-
(オプション) AWS Global Accelerator などのアドオンサービスを使用して、アクセラレーターを作成し、ロードバランサーをアクセラレーターに関連付けることができます。アクセラレーター名の最大長は 64 文字です。使用できる文字は、a ~ z、A ~ Z、0 ~ 9、.、および- (ハイフン) です。作成したアクセラレーターは、AWS Global Accelerator コンソールを使用して管理できます。
-
タグ付けして作成
-
(オプション) タグを追加して、ロードバランサーを分類します。タグキーは、各ロードバランサーで一意である必要があります。使用できる文字は、文字、スペース、数字 (UTF-8)、および特殊文字 (+-=. _:/@) です。ただし、先頭または末尾にはスペースを使用しないでください。タグ値は大文字と小文字が区別されます。
-
設定を確認し、[ロードバランサーの作成] を選択します。作成時に、ロードバランサーにいくつかのデフォルト属性が適用されます。ロードバランサーの作成後に、それらを表示および編集できます。詳細については、「ロードバランサーの属性」を参照してください。
-
ステップ 4: ロードバランサーのテスト
ロードバランサーを作成したら、EC2 インスタンスが最初のヘルスチェックに合格することを検証できます。ロードバランサーが EC2 インスタンスにトラフィックを送信するかどうかを検証できます。ロードバランサーを削除するには、Application Load Balancer の削除 を参照してください。
ロードバランサーをテストするには
-
ロードバランサーが作成されたら、[Close] を選択します。
-
ナビゲーションペインで、[Target Groups] を選択します。
-
新しく作成したターゲットグループを選択します。
-
[Targets] を選択して、インスタンスの準備ができていることを確認します。インスタンスのステータスが
initial
である場合、通常、インスタンスがまだ登録の進行中であることが原因です。このステータスは、インスタンスが正常と見なされるのに必要なヘルスチェックの最小数に合格しなかったことを示すこともできます。少なくとも 1 つのインスタンスのステータスが正常であれば、ロードバランサーをテストできます。詳細については、「ターゲットヘルスステータス」を参照してください。 -
ナビゲーションペインで、[Load Balancers] (ロードバランサー) を選択します。
-
新しく作成したロードバランサーを選択します。
-
[Description] (説明) を選択し、ロードバランサーの DNS 名 (my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com など) をコピーします。インターネットに接続したウェブブラウザのアドレスフィールドに DNS 名を貼り付けます。すべて適切な場合は、ブラウザにサーバーのデフォルトページが表示されます。