Serverless App Engine (SAE) にアプリケーションをデプロイした後、デフォルトではパブリックネットワークからアクセスできません。Virtual Private Cloud (VPC) 内ではインスタンスのプライベート IP アドレスを使用してアプリケーションにアクセスできますが、このプライベート IP アドレスはアプリケーションの更新または再起動時に変更されます。これらの問題を解決するために、パブリックまたはプライベートの Classic Load Balancer (CLB) インスタンスをアプリケーションにバインドできます。これにより、アクセス用の固定パブリックまたはプライベート IP アドレスが提供され、アプリケーションインスタンス間の負荷分散が可能になります。
背景情報
操作手順
-
SAE アプリケーション ページでリージョンと名前空間を選択し、対象アプリケーションの [Application ID] をクリックして詳細ページを開きます。
-
[Basic Information] ページの [Application Information] タブで、[Application Access Settings] セクションを見つけ、必要に応じて パブリックエンドポイント または プライベートエンドポイント を設定します。
-
パブリックエンドポイント:パブリック CLB インスタンスをバインドし、クライアントがパブリック IP アドレスを使用してアプリケーションにアクセスできるようにします。
-
プライベートエンドポイント:プライベート CLB インスタンスをバインドし、VPC 内の他のアプリケーションやクライアントがプライベート IP アドレスを使用してアプリケーションにアクセスできるようにします。
説明パブリックとプライベートの両方の IP アドレスを使用してアプリケーションへのアクセスを有効にするには、次のいずれかの方法を使用してください。
-
オプション 1:このトピックの手順に従って、パブリックエンドポイント と プライベートエンドポイント の両方を設定します。
-
オプション 2:このトピックの手順に従ってプライベートエンドポイントを設定し、その後 プライベート CLB インスタンスへの Elastic IP Address (EIP) のバインドを行います。
ページ上部のバナーには次の情報が表示されます:SAE CLB 機能を使用する前に、CLB の設定に関する制約を確認してください。2020 年 4 月 1 日以降、SAE で CLB インスタンスを作成または編集した後に、CLB コンソールでリスナーポート、プロトコル、SSL 証明書などの制限されたリソースを変更すると、SAE は変更された設定を SAE に保存されている設定で強制的に上書きします。このページには 少量トラフィックのウォームアップ オプションも含まれており、これは CLB アクセスを設定した後にのみ利用可能になります。
このセクションでは、パブリックエンドポイント の設定を例として説明します。[Add Internet-facing CLB] をクリックします。
-
-
アプリケーションに CLB インスタンスをバインドする:CLB インスタンスを作成するか、既存の CLB インスタンスを選択できます。
CLB インスタンスの作成
[Add Internet-facing CLB] ダイアログボックスで、[CLB Instance] ドロップダウンリストから [Create CLB Instance] を選択します。
設定を完了すると、SAE は新しい CLB インスタンスを購入し、アプリケーションにバインドします。
[Protocol Configuration] セクションで、プロトコルタブ ([HTTP]、[HTTPS]、[TCP]、または [UDP]) を選択し、[HTTP Port] と [Container Port] を設定します。ポートマッピングを追加するには、[+ Add Listener] をクリックします。
既存の CLB の選択
[Add Internet-facing CLB] ダイアログボックスで、[CLB Instance] ドロップダウンリストから既存の CLB インスタンスを選択します。
CLB インスタンスは、パフォーマンス共有インスタンス、Container Service 専用インスタンス、または他の製品によって購入されたり専用で使用されたりするインスタンスであってはなりません。これにより、リスナー設定の競合を防ぎます。
パブリック CLB インスタンスの場合、SAE アプリケーションと同じリージョンにあることを確認してください。プライベート CLB インスタンスの場合、同じ VPC 内にあることを確認してください。そうでない場合、CLB インスタンスは選択リストに表示されません。
CLB インスタンスを選択した後、[HTTP]、[HTTPS]、[TCP]、または [UDP] タブでネットワークプロトコルを選択し、対応するリスナーとコンテナポートを設定します。[+ Add Listener] をクリックして、複数のリスナールールを追加します。
-
以下の表に従って、少なくとも 1 つのリスナーを設定します。複数のリスナーを追加するには、[Add Listener] をクリックします。4 種類のリスナーとそのユースケースの詳細については、「CLB リスナー」をご参照ください。完了したら、[OK] をクリックします。
パラメーター
説明
例
HTTP
-
HTTP Port:アプリケーションへのアクセスに使用される CLB インスタンスのパブリック向けポートです。有効な値の範囲は 1~65535 です。
-
Container Port:アプリケーションプロセスがリッスンするポートです。
-
HTTP Port:80
-
Container Port:8080 (Web サービスのデフォルトポート)
HTTPS
-
HTTPS Port:アプリケーションへのアクセスに使用される CLB インスタンスのパブリック向けポートです。有効な値の範囲は 1~65535 です。
-
SSL certificate:SSL 暗号化に使用される証明書です。ドロップダウンリストからアップロード済みの証明書を選択します。
-
Container Port:アプリケーションプロセスがリッスンするポートです。
説明HTTPS 経由でカスタムドメイン名を使用する場合、そのドメイン名は Alibaba Cloud で ICP 申請されている必要があります。詳細については、「ICP 申請プロセス」をご参照ください。
-
HTTPS Port:443
-
SSL certificate:SSL 証明書を選択します。証明書がない場合は、「HTTPS リスナーを設定する前に証明書を作成する」をご参照ください。
-
Container Port:8080 (Web サービスのデフォルトポート)
TCP
-
CLB Port:アプリケーションへのアクセスに使用される CLB インスタンスのパブリック向けポートです。有効な値の範囲は 1~65535 です。
-
Container Port:アプリケーションプロセスがリッスンするポートです。
-
CLB Port:21
-
Container Port:8080 (Web サービスのデフォルトポート)
UDP
-
CLB Port:アプリケーションへのアクセスに使用される CLB インスタンスのパブリック向けポートです。有効な値の範囲は 1~65535 です。
-
Container Port:アプリケーションプロセスがリッスンするポートです。
-
CLB Port:49152
-
Container Port:8080 (Web サービスのデフォルトポート)
No available instances for the application. Please scale out and retryというメッセージが表示された場合、アプリケーションが 0 インスタンスにスケールインしたことを意味します。CLB インスタンスをバインドする前に、手動スケーリング を実行する必要があります。SAE で作成されたリスナーは、自動的に CLB に同期されます。Server Load Balancer コンソールで確認できます。これらのリスナー設定は CLB コンソールではなく、SAE で排他的に管理することを推奨します。詳細については、「SAE と CLB 間の設定の競合を回避する」をご参照ください。
設定の競合の回避
-
-
CLB インスタンスがバインドされるのを待ちます。パブリックエンドポイント セクションで、アプリケーションの IP アドレスとポートを確認できます。
SAE アプリケーションにクライアントリクエストを処理する複数のインスタンスがある場合、CLB はデフォルトの ラウンドロビン スケジューリングアルゴリズムを使用して、インスタンス間でトラフィックを分散します。スケジューリングアルゴリズムを変更するには、「TCP リスナーの追加」の「スケジューリングアルゴリズム」をご参照ください。
生成された IP アドレスとポートをブラウザのアドレスバーにコピーし、Enter キーを押してアプリケーションにアクセスできることを確認してください。
アプリケーションにアクセスする際、アプリケーションのビジネスロジックによっては、アクセスパスなどの情報を URL に追加する必要がある場合があります。完全な URL 形式は
<protocol>://<IP address>:<port>/<path>です。例:http://8.154.xx.xx:80/hello。IP アドレスとポートが表示されない場合、CLB のバインドに失敗しています。変更履歴を表示して問題を診断し、修正してください。詳細については、「変更履歴の表示」をご参照ください。
-
(オプション) カスタムドメイン名を使用してクライアントアクセスを許可するには、DNS コンソールで DNS レコードを追加し、ドメイン名を SAE によって生成されたパブリック IP アドレスにポイントする必要があります。
関連操作
CLB アクセスの削除または編集
パブリックまたはプライベート CLB アクセスを削除するか、アプリケーションを削除すると、SAE によって購入された CLB インスタンスは自動的に解放されます。
-
一度削除された CLB インスタンスとその IP アドレスは復元できません。操作には注意してください。
-
削除後、Server Load Balancer コンソール を確認して、CLB インスタンスが解放されたことを確認することを推奨します。まだ課金対象であり、不要な場合は、手動で CLB インスタンスを解放して、さらなる課金を防いでください。
-
[Basic Information] ページの [Application Information] タブで、[Application Access Settings] セクションの パブリックエンドポイント または プライベートエンドポイント を見つけ、必要に応じて編集または削除のリンクをクリックします。
-
表示されたダイアログボックスで、画面の指示に従い、[OK] をクリックします。