Serverless App Engine (SAE) にアプリケーションをデプロイした後、Network Load Balancer (NLB) インスタンスをアプリケーションにバインドして、固定アクセスエンドポイントを提供できます。このトピックでは、NLB インスタンスを SAE アプリケーションにバインドする方法について説明します。
背景情報
デフォルトでは、SAE アプリケーションはパブリックネットワークからアクセスできません。Virtual Private Cloud (VPC) 内のアプリケーションにはインスタンスのプライベート IP アドレスを使用してアクセスできますが、この IP アドレスはアプリケーションの更新や再起動時に変更される可能性があるため、この方法は信頼性が高くありません。これらの問題に対処するために、パブリックまたはプライベート NLB インスタンスをアプリケーションにバインドできます。NLB インスタンスをバインドすることで、固定ドメイン名を使用してアプリケーションにアクセスできるだけでなく、異なるゾーンや SAE インスタンス間でトラフィックを効率的に負荷分散することもできます。
-
NLB インスタンスをアプリケーションにバインドする前に、Network Load Balancer (NLB) の仕組みとそのパフォーマンスと使用制限について理解してください。
-
SAE で NLB サービスを使用すると、NLB インスタンスに追加の料金が発生します。
重要SAE コンソールで NLB インスタンスを削除しても、Server Load Balancer (SLB) コンソールから削除しない場合、料金は発生し続けます。SLB コンソールから NLB インスタンスを削除する手順については、NLB インスタンスの削除をご参照ください。
概要
SAE アプリケーションは、パブリックまたはプライベート NLB インスタンスへのバインドをサポートしています。ビジネスニーズに基づいて、異なるネットワークタイプの NLB インスタンスを SAE アプリケーションに関連付けることができます。
-
プライベート NLB インスタンスのバインド:主な目的は、SAE アプリケーションに固定アクセスアドレス (DNS 名) を提供し、ラウンドロビンなどの負荷分散アルゴリズムを使用して SAE アプリケーションのインスタンスにトラフィックを分散することです。一般的なユースケースには、内部マイクロサービス通信、データベースアクセス、企業イントラネットアクセスなどがあります。
-
パブリック NLB インスタンスのバインド:デフォルトでは、SAE はパブリックネットワークからの直接アクセスをサポートしていません。パブリック NLB インスタンスをアプリケーションにバインドすることで、固定のパブリックエンドポイントを提供し、パブリックネットワークからのトラフィックを処理できます。パブリックアクセスのワークフローを次の図に示します。
ステップ 1:NLB インスタンスの追加
-
[アプリケーション] ページで、上部のナビゲーションバーでリージョンと名前空間を選択し、対象アプリケーションの [アプリケーション ID] をクリックしてアプリケーション詳細ページを開きます。
-
[基本情報] ページで、[アプリケーションアクセス設定] セクションを見つけます。[NLB アクセス] タブで、[NLB アクセスの追加] をクリックします。
-
[NLB アクセスの追加] パネルで、次のようにパラメーターを設定し、[OK] をクリックします。
説明SAE では、NLB インスタンスを新規作成するか、既存のインスタンスをバインドすることができます。ニーズに応じてオプションを選択してください。
-
新しい NLB インスタンスの作成:SAE は自動的に NLB インスタンスを購入します。NLB インスタンスの詳細は、SLB コンソールで確認できます。
-
既存の NLB インスタンスのバインド:事前に SLB コンソールの [インスタンス] ページで NLB インスタンスを作成しておく必要があります。NLB インスタンスと SAE アプリケーションで異なる VPC を使用する場合、それらの間の通信を有効にするためにネットワークを設定する必要があります。たとえば、Alibaba Cloud の Cloud Enterprise Network (CEN) や他のネットワーク接続プロダクトを使用して、VPC 間の通信を有効にすることができます。
新しい NLB インスタンスの作成
-
[インスタンスソース] で、[インスタンスの作成] を選択します。
-
[ネットワークタイプ] で、ニーズに応じて [パブリック] または [プライベート] を選択します。
-
パブリックを選択すると、システムはパブリック NLB インスタンスを作成し、各ゾーンに EIP (Elastic IP Address) と VIP を割り当てます。
-
プライベートを選択すると、システムはプライベート NLB インスタンスを作成し、各ゾーンに VIP を割り当てます。
-
-
ビジネス要件に基づいて、vSwitch が配置されているゾーンを選択します。高可用性を確保するために、少なくとも 2 つのゾーンを選択してください。
対象アプリケーションの VPC がデフォルトで使用されるため、Virtual Private Cloud (VPC) を選択することはできません。
-
サポートされているプロトコルタイプは TCP、UDP、TCPSSL です。
プロトコルタイプ
パラメーター
例
TCP
-
リスナーポート:リクエストを受信し、バックエンドサーバーに転送するポート。
-
コンテナポート:アプリケーションのプロセスがリッスンするポート。
-
リスナーポート:80
-
コンテナポート:8080 (Web サービスのデフォルトポート)
UDP
TCPSSL
-
リスナーポート:リクエストを受信し、バックエンドサーバーに転送するポート。
-
コンテナポート:アプリケーションのプロセスがリッスンするポート。
-
SSL 証明書の選択:SSL プロトコル証明書。アップロードされた SSL 証明書をドロップダウンリストから選択します。
説明HTTPS 経由でカスタムドメイン名にアクセスするには、そのドメイン名が Alibaba Cloud で ICP 登録されている必要があります。詳細については、ICP 登録プロセスをご参照ください。
-
リスナーポート:80
-
コンテナポート:8080 (Web サービスのデフォルトポート)
-
SSL 証明書の選択:購入した SSL 証明書をドロップダウンリストから選択します。SSL 証明書を購入していない場合は、証明書の購入をご参照ください。
-
既存の NLB インスタンスのバインド
-
[インスタンスソース] で、[既存のインスタンスを使用] を選択します。
-
[NLB インスタンス] ドロップダウンリストから、作成した NLB インスタンスを選択します。
NLB インスタンスを作成していない場合は、[NLB インスタンスの作成] をクリックします。その後、SLB コンソールの [インスタンス] ページで NLB インスタンスを作成
-
サポートされているプロトコルタイプは TCP、UDP、TCPSSL です。
プロトコルタイプ
パラメーター
例
TCP
-
リスナーポート:リクエストを受信し、バックエンドサーバーに転送するポート。
-
コンテナポート:アプリケーションのプロセスがリッスンするポート。
-
リスナーポート:80
-
コンテナポート:8080 (Web サービスのデフォルトポート)
UDP
TCPSSL
-
リスナーポート:リクエストを受信し、バックエンドサーバーに転送するポート。
-
コンテナポート:アプリケーションのプロセスがリッスンするポート。
-
SSL 証明書の選択:SSL プロトコル証明書。アップロードされた SSL 証明書をドロップダウンリストから選択します。
説明HTTPS 経由でカスタムドメイン名にアクセスするには、そのドメイン名が Alibaba Cloud で ICP 登録されている必要があります。詳細については、ICP 登録プロセスをご参照ください。
-
リスナーポート:80
-
コンテナポート:8080 (Web サービスのデフォルトポート)
-
SSL 証明書の選択:購入した SSL 証明書をドロップダウンリストから選択します。SSL 証明書を購入していない場合は、証明書の購入をご参照ください。
-
-
-
NLB インスタンスが作成されると、[アプリケーションアクセス設定] セクションの [NLB アクセス] タブでそのステータスを確認できます。
複数の NLB インスタンスを追加したい場合は、[NLB アクセスの追加] をクリックし、上記の手順に従ってインスタンスを追加します。
重要同じ NLB インスタンスに対して SAE コンソールと SLB コンソールの両方でリスナールールを設定すると、一方のコンソールでの設定がもう一方の設定を上書きする可能性があるため、競合が発生する可能性があります。設定の競合を避けるために、NLB インスタンスのリスナールールは SAE コンソールでのみ設定することを推奨します。
NLB インスタンスに対して、次の操作を実行できます:
-
リスナーの追加:[リスナーの追加] をクリックします。[リスナーの追加] ダイアログボックスで、[プロトコルタイプ] を選択し、パラメーターを設定します。
-
コンテナポートの変更:NLB インスタンスの [操作] 列で、[編集] をクリックします。[NLB アクセスの編集] パネルで、[コンテナポート] を変更できます。
-
リスナーまたは NLB インスタンスの削除:NLB インスタンスの [操作] 列で、[削除] をクリックします。[削除の確認] ダイアログボックスで、[OK] をクリックして、対応するリスナールールまたは NLB インスタンスを削除します。
同じ NLB インスタンスに複数のリスナールールを追加した場合、削除操作では対応するリスナールールのみが削除されます。最後のリスナールールを削除すると、NLB インスタンスにはリスナールールが残らないため、自動的に削除されます。
-
NLB インスタンスの表示:NLB インスタンス名をクリックして、SLB コンソールの NLB インスタンスの [インスタンス詳細] ページに移動します。各ゾーンに割り当てられた EIP や VIP、NLB インスタンス用に自動生成された DNS 名など、NLB インスタンスの詳細を表示できます。
NLB インスタンスが提供する DNS 名またはゾーンに提供される EIP を使用して、アクセスをテストできます。
-
ステップ 2:ドメイン名前解決の設定
NLB インスタンスによって提供される DNS 名は、アクセステストに使用できます。ただし、本番環境では、カスタムドメイン名を使用し、CNAME レコードを追加して NLB インスタンスの DNS 名にマッピングすることを推奨します。
-
[アプリケーションアクセス設定] セクションで、作成した NLB インスタンスの名前をクリックして、SLB コンソールでその詳細ページを開きます。
-
SLB コンソールの NLB インスタンスの [インスタンス詳細] ページで、[DNS 名] をコピーします。
NLB インスタンスによって提供される DNS 名は、ドメイン名前解決を設定する際のレコード値として使用されます。
-
Alibaba Cloud DNS コンソールにログインし、CNAME レコードを追加します。
説明ご利用のドメイン名が Alibaba Cloud に登録されていない場合は、ドメイン名前解決を設定する前に、Alibaba Cloud DNS コンソールに追加する必要があります。ドメイン名が Alibaba Cloud に登録されている場合は、次の手順に進んでください。
-
[権威ドメイン] ページで、対象のドメインを見つけ、[操作] 列の [設定] をクリックします。
-
[設定] ページで、[レコードの追加] をクリックします。
-
[レコードの追加] パネルで、次のパラメーターを設定して CNAME 設定を完了し、[OK] をクリックします。
パラメーター
例
説明
タイプ
CNAME
ドロップダウンリストから [CNAME] を選択します。
CNAME レコードは、カスタムドメイン名を NLB インスタンスが提供する DNS 名にマッピングします。
ホスト
www
作成するサブドメインのプレフィックスを入力します。
ホストレコードの詳細な説明については、コンソールの説明をご参照ください。
解決要求元
デフォルト
[デフォルト] を選択します。
Alibaba Cloud DNS は、DNS リクエストのソース IP アドレス (通常はキャリアのローカル DNS の IP アドレス) のリージョンとキャリアを識別できます。レコードを追加する際に、異なるリージョンやキャリアネットワークからのリクエストに対して異なるレコード値を返すことができます。
値
nlb-****.com
NLB インスタンスが提供する DNS 名を入力します。
レコード値は、CNAME レコードが指すドメイン名です。
TTL
10 分
コンソールが提供するデフォルト値を使用します。
TTL (Time to Live) は、DNS レコードが DNS サーバーにキャッシュされる期間です。
-
ステップ 3:アクセスのテスト
ブラウザにカスタムドメイン名を入力してアクセスをテストします。例:http://your_domain_name
Hello, World!
リソースのクリーンアップ (任意)
NLB インスタンスの削除
-
SAE コンソールの対象アプリケーションの [基本情報] ページで、[アプリケーションアクセス設定] セクションの NLB インスタンス名をクリックして、SLB コンソールでインスタンス詳細ページを開きます。
-
NLB インスタンス詳細ページで、右上の を選択します。[インスタンスのリリース] ダイアログボックスで、[確認] をクリックします。
-
SAE コンソールの対象アプリケーションの [基本情報] ページに戻ります。[アプリケーションアクセス設定] セクションで、NLB インスタンスの [操作] 列にある [削除] をクリックします。[削除の確認] ダイアログボックスで、[OK] をクリックして NLB インスタンスを削除します。
-
同じ NLB インスタンスに複数のリスナールールを追加した場合、SAE コンソールで NLB インスタンスを削除する前に、すべてのリスナールールを削除する必要があります。
-
SAE コンソールでのみ NLB インスタンスを削除した場合、料金は発生し続けます。
ドメイン解決レコードの削除
Alibaba Cloud DNS コンソールで、追加したドメイン名前解決レコードを削除します。