Serverless App Engine (SAE) アプリケーションの各インスタンスに EIP (Elastic IP アドレス) を関連付けると、インスタンスはインターネットからアクセス可能になり、またインターネット経由で他のサービスにアクセスできるようになります。このトピックでは、SAE コンソールで EIP を関連付けおよび関連付け解除する方法、およびアプリケーションイベントを表示する方法について説明します。
前提条件
EIP の制限について理解していること。
EIP をリクエスト済みであること。
同じリージョンで利用可能な EIP の数が、SAE アプリケーションインスタンスの数より多いことを確認済みであること。
背景情報
インターネットアクセスソリューション
VPC 内の SAE 上のアプリケーションへのパブリックアクセスを提供するために、以下の 2 つのソリューションがあります。
ソリューション 1:NAT Gateway + EIP
ソースネットワークアドレス変換 (SNAT) 機能を使用すると、VPC にデプロイされたアプリケーションインスタンスは、パブリック IP アドレスが関連付けられていなくてもインターネットにアクセスできます。VPC 内の複数のアプリケーションがインターネットアクセスを必要とする場合、設定する必要がある EIP は 1 つだけです。詳細については、「SAE アプリケーションのインターネットアクセスを有効にするための NAT Gateway の設定」をご参照ください。このソリューションは、次のシナリオに適しています:
アプリケーションが Auto Scaling ポリシーを使用しており、安定したアウトバウンド IP アドレスが必要な場合。
アプリケーションが固定のアウトバウンドパブリック IP アドレスを必要とする場合。たとえば、WeChat ミニプログラムのホワイトリストにアウトバウンドパブリック IP アドレスを追加する必要がある場合などです。
ソリューション 2:アプリケーションインスタンスへの EIP の関連付け
VPC 内の複数のアプリケーションがインターネットにアクセスする必要がある場合、各アプリケーションの少なくとも 1 つのインスタンスに EIP を関連付ける必要があります。この方法は、VPC 内のインスタンスが 20 以下の場合、NAT Gateway を使用するよりもコスト効率が高くなります。アプリケーションを作成またはデプロイすると、EIP がアプリケーションの各インスタンスに自動的に関連付けられます。このソリューションは、次のシナリオに適しています:
インターネットへのアクセス (アウトバウンドトラフィック):このシナリオは、SAE サービスがインターネット経由で外部サービスにアクセスする必要がある場合に適用されます。EIP は固定されておらず、Auto Scaling ポリシーは必要ありません。
インターネットからのアプリケーションへのアクセス (インバウンドトラフィック):クライアントは、各インスタンスの EIP に接続してアプリケーションにアクセスします。ただし、SAE はデプロイの更新中に新しい EIP を使用するため、この方法は SAE サービスへのアクセスに固定 IP アドレスを必要とする外部サービスには適していません。
EIP を購入した後、ソリューション 2 を使用してアプリケーションを作成またはデプロイする場合、SAE は EIP を必要とするアプリケーションの各インスタンスに EIP を自動的にアタッチします。ただし、EIP がアタッチされた後は、Auto Scaling ポリシーを作成することはできますが、有効化したり使用したりすることはできません。アプリケーションで Auto Scaling 機能とインターネットアクセスが必要な場合は、ソリューション 1 を使用することを推奨します。
課金概要
購入した EIP に対して課金されますが、SAE は追加料金を発生させません。詳細については、「EIP の課金概要」および「SAE の課金概要」をご参照ください。
注意事項
アプリケーションのデプロイ中に EIP をアタッチする場合、SAE はまず新しいインスタンスを作成し、その後元のインスタンスをリリースします。このプロセス中、元の EIP はリリースされないため、同数の追加の EIP が利用可能である必要があります。
EIP をアプリケーションインスタンスに関連付けた後、セキュリティグループをチェックして、ポートのホワイトリストが設定されているかどうかを確認します。詳細については、「セキュリティグループルールの追加」をご参照ください。
アプリケーション作成時の EIP の設定
SAE アプリケーションリストで、ページ上部からターゲットリージョンと名前空間を選択し、[アプリケーションの作成] をクリックします。
設定ウィザードの [アプリケーションの基本情報] ステップで、アプリケーションパラメーターを設定し、[次へ:高度な設定] をクリックします。
[アプリケーションのパブリックネットワーク送受信設定] セクションを展開し、[オプション 2. EIP との関連付け] スイッチをオンにします。
アプリケーションの作成時にこの機能を有効にしない場合、後で手動スケーリングによって追加されたインスタンスには EIP が関連付けられません。この設定は、アプリケーションをデプロイするときに設定する必要があります。

[アプリケーションの作成] をクリックします。
結果の確認
アプリケーションの [基本情報] ページで、[インスタンスリスト] タブをクリックして、ターゲットインスタンスにアタッチされている EIP を表示します。

アプリケーションデプロイ時の EIP の設定
アプリケーションを再デプロイすると、アプリケーションは再起動されます。業務の中断などの予測不能なエラーを防ぐため、オフピーク時にアプリケーションをデプロイすることを推奨します。
アプリケーションを更新するために実行できるプロシージャは、アプリケーション内のインスタンスの数によって異なります。このセクションでは、インスタンス数が 1 以上のアプリケーションに必要な機能を設定する方法の例を示します。インスタンス数が 0 のアプリケーションを更新する方法については、「アプリケーションの更新」をご参照ください。
SAE アプリケーションリストで、ページ上部からターゲットリージョンと名前空間を選択し、ターゲット [アプリケーション] の ID をクリックして詳細ページに移動します。
アプリケーションの [基本情報] ページで、[アプリケーションのデプロイ] をクリックします。
[アプリケーションのデプロイ] ページで、[アプリケーションのパブリックネットワーク送受信設定] セクションを展開し、関連するパラメーターを設定します。

デプロイ方法は、アプリケーションの初期デプロイ方法によって決まります。必要なデプロイ方法に基づいてパラメーターを設定します。
次のシナリオで EIP を設定します:
シナリオ 1:Auto Scaling ポリシーが設定または有効化されていない場合。
EIP の関連付け。
[オプション 2. EIP との関連付け] スイッチをオンにします。
EIP の関連付け解除。
[オプション 2. EIP との関連付け] スイッチをオフにします。
表示される [EIP との関連付け解除] ダイアログボックスで、[OK] をクリックします。
シナリオ 2:Auto Scaling ポリシーが有効化されている場合。
[デプロイ後の Auto Scaling の再開] セクションで、[手動で再開] を選択します。
説明アプリケーションのデプロイ時に [自動的に再開] を選択した場合、アプリケーションに EIP をアタッチすることはできません。
EIP の関連付けまたは関連付け解除。
EIP の関連付け。
[オプション 2. EIP との関連付け] スイッチをオンにします。
EIP の関連付け解除。
[オプション 2. EIP との関連付け] スイッチをオフにします。
表示される [EIP との関連付け解除] ダイアログボックスで、[OK] をクリックします。
説明EIP をアプリケーションにアタッチすると、SAE は有効になっているスケーリングポリシーを無効にし、Auto Scaling 機能を有効にすることはできません。アプリケーションで Auto Scaling 機能とインターネットアクセスが必要な場合は、NAT Gateway と EIP を統合したソリューションを使用することを推奨します。詳細については、「SAE アプリケーションのインターネットアクセスを有効にするための NAT Gateway の設定」をご参照ください。
設定が完了したら、[確認] をクリックします。
結果の確認
アプリケーションの [基本情報] ページで、[インスタンスリスト] タブをクリックして、ターゲットインスタンスにアタッチされている EIP を表示します。

アプリケーションロールバック時の EIP の設定
ロールバックしたいアプリケーションバージョンに EIP が関連付けられており、ロールバック前に Auto Scaling ポリシーが有効になっていた場合は、次の手順を実行します。
SAE アプリケーションリストで、ページ上部からターゲットリージョンと名前空間を選択し、ターゲット [アプリケーション] の ID をクリックして詳細ページに移動します。
[基本情報] ページの右上隅にある [履歴バージョンへのロールバック] をクリックします。
[以前のバージョンへのロールバック] パネルで設定を行い、[OK] をクリックします。
[ロールバックバージョン] セクションで、ターゲットバージョンを選択します。
説明このステップで選択するアプリケーションバージョンには、EIP が関連付けられている必要があります。
任意:[バッチ/カナリアリリースポリシーの選択] をクリックして、リリースポリシーを設定します。
結果の確認
アプリケーションの [基本情報] ページで、[インスタンスリスト] タブをクリックして、ターゲットインスタンスにアタッチされている EIP を表示します。

手動スケーリング時の EIP の設定
SAE アプリケーションリストで、ページ上部からターゲットリージョンと名前空間を選択し、ターゲット [アプリケーション] の ID をクリックして詳細ページに移動します。
[基本情報] ページの右上隅にある [手動スケーリング] をクリックします。
[アプリケーションのスケーリング] ダイアログボックスで、必須パラメーターを設定し、[OK] をクリックします。
次のシナリオでアプリケーションのスケーリングを設定できます。詳細については、「手動スケーリング」をご参照ください。
シナリオ 1:スケーリング前に Auto Scaling ポリシーがデプロイまたは有効化されていない場合。
スライダーを使用して [ターゲットアプリケーションインスタンス数] を設定します。

シナリオ 2:スケーリング前に Auto Scaling ポリシーがデプロイおよび有効化されている場合。
スライダーを使用して [ターゲットアプリケーションインスタンス数] を設定します。
[手動リカバリ] を選択します。
説明アプリケーションのデプロイ時に [自動的に再開] を選択した場合、アプリケーションに EIP をアタッチすることはできません。
EIP の関連付けまたは関連付け解除。
詳細については、「アプリケーションデプロイ時の EIP の設定」をご参照ください。
結果の確認
アプリケーションの [基本情報] ページで、[インスタンスリスト] タブをクリックして、ターゲットインスタンスにアタッチされている EIP を表示します。

アプリケーションイベントの表示
アプリケーションインスタンスのエラーメッセージは、[アプリケーションイベント] ページで表示できます。
SAE アプリケーションリストで、ページ上部からターゲットリージョンと名前空間を選択し、ターゲット [アプリケーション] の ID をクリックして詳細ページに移動します。
左側のナビゲーションウィンドウで、[アプリケーションイベント] をクリックします。[ソースタイプ] ドロップダウンリストから [アプリケーションインスタンス (Pod)] を選択します。[イベントレベル] ドロップダウンリストから [警告] を選択します。その後、ページ下部でアプリケーションインスタンスの詳細なエラー情報を表示できます。
[イベント原因] に基づいて問題をトラブルシューティングします。
EipNotEnough:利用可能な EIP の数が不足しています。EIP を追加でリクエストするか、アプリケーションをスケールインできます。詳細については、「EIP のリクエスト」および「手動スケーリング」をご参照ください。
EipNotReady:EIP のアタッチまたはデタッチに失敗しました。DingTalk グループ (グループ ID:32874633) に参加し、プロダクト技術の専門家にご連絡ください。