EAS サービスがパブリック API の呼び出し、インターネットからのファイルのダウンロード、RDS データベースへの接続、またはその他の外部サービスへのアクセスを必要とする場合は、Virtual Private Cloud (VPC) を設定してネットワーク接続を確立する必要があります。
仕組み
EAS サービス用に VPC を設定すると、システムは各サービスインスタンスに対して Elastic Network Interface (ENI) を作成し、指定された vSwitch からプライベート IP アドレスを割り当てます。これにより、インスタンスは VPC 内でネットワーク ID を持ち、他の VPC リソースとの通信や、NAT ゲートウェイを介したパブリックインターネットアクセスが可能になります。
課金
EAS サービス用の VPC の設定は無料です。ただし、 NAT ゲートウェイ と Elastic IP Address (EIP) は有料です。課金の詳細については、NAT ゲートウェイの課金およびEIP の課金の概要をご参照ください。
開始する前に:ネットワークの計画と準備
開始する前に、ネットワーク接続を計画し、必要な VPC、vSwitch、セキュリティグループを準備してください。これらのリソースを作成する必要がある場合は、VPC と vSwitch の作成およびセキュリティグループの使用をご参照ください。
-
セキュリティグループのルールは、EAS サービスからのすべてのアウトバウンドトラフィックを制御します。セキュリティグループのアウトバウンドルールが、EAS サービスからターゲットサービスへのアクセスを許可していることを確認してください。
-
プライベートネットワーク通信を有効にする最も簡単な方法は、EAS サービスとターゲットサービスを 同じ VPC にデプロイすることです。ターゲットサービスが別の VPC にある場合は、VPC ピアリング接続やCloud Enterprise Networkなどのサービスを使用してネットワークを接続する必要があります。
操作手順
ステップ 1:VPC の設定
VPC の設定は、EAS サービスでプライベートネットワーク通信またはパブリックインターネットアクセスを有効にするための最初のステップです。EAS は、サービスレベルとリソースグループレベルの両方で VPC 設定をサポートしています:
-
サービスレベル:単一のサービスに対して VPC を指定します。この設定が最も優先されます。
-
リソースグループレベル:専用のリソースグループ内のすべてのサービスに対してデフォルトの VPC を設定し、一括設定を簡素化します。
サービスレベルとリソースグループレベルの両方でネットワーク設定を行った場合、 サービスレベルの設定が優先されます。
サービスレベル
コンソール
サービスを作成または更新する際に、 Network Information セクションで VPC を設定します。ドロップダウンリストから VPC を選択した後、vSwitch とセキュリティグループを設定します。
VPC 設定に加えて、 [Network Information] セクションには、 [Gateway Selection] (オプションには [共有ゲートウェイ] または [専用ゲートウェイ] があります) 、および [Associate Network Load Balancer (NLB)] と [Associate Service Discovery (Nacos)] のオプションが含まれています。
VPC、vSwitch、またはセキュリティグループを作成した後、新しいリソースが PAI コンソールのドロップダウンリストに表示されるまで 1〜2 分かかる場合があります。新しいリソースが表示されない場合は、しばらく待ってからページを更新してください。
eascmd クライアント
-
サービスの JSON 設定ファイルで、
cloud.networkingフィールドを追加または変更し、VPC、vSwitch、およびセキュリティグループの ID を指定します。以下の例は、ネットワーク関連のフィールドを示しています:{ "cloud": { "networking": { "vpc_id": "your-vpc-id", "vswitch_id": "your-switch-id", "security_group_id": "your-security-group-id" } } }必要な ID は、VPC コンソールの VPC および vSwitch のリストページ、およびECS コンソールのセキュリティグループページで確認できます。
-
コマンドリファレンスを参照し、
createまたはmodifyコマンドを使用してサービスを作成するか、新しい設定を適用します。
リソースグループレベル
-
コンソール: Resource Group ページで、リソースグループ全体に対して VPC を設定します。ターゲットのリソースグループを選択し、 Actions 列の Enable VPC Configuration をクリックします。
-
eascmd クライアント:リソースグループの VPC の設定をご参照ください。
ステップ 2:NAT ゲートウェイと SNAT エントリの設定
EAS サービスがパブリックインターネットアクセスを必要とする場合は、EIP を持つ NAT ゲートウェイを設定する必要があります。詳細については、「インターネット NAT ゲートウェイの SNAT 機能を使用したインターネットアクセス」をご参照ください。
-
インターネット NAT ゲートウェイの作成と EIP のバインド:インターネット NAT ゲートウェイ購入ページに移動し、EAS サービスが配置されているリージョンと VPC を選択し、EIP をバインドします。この EIP は、EAS サービスがパブリックインターネットにアクセスするための統一されたエグレス IP アドレスとして機能します。
-
SNAT エントリの設定:作成した NAT ゲートウェイで、SNAT エントリを作成します。SNAT エントリ を VPC 粒度に設定します。これにより、この VPC からパブリックインターネットへのすべてのトラフィックが、この NAT ゲートウェイを経由するようになります。
ステップ 3:許可リストの設定 (任意)
ターゲットサービスが IP またはセキュリティグループの許可リストを使用している場合、EAS サービスの IP アドレス範囲またはセキュリティグループ ID をその許可リストに追加する必要があります。以下のセクションでは、EAS サービスのプライベート IP アドレスとパブリック IP アドレスを確認する方法について説明します。
プライベート IP アドレスの確認
EAS インスタンスは動的にスケジュールされます。インスタンスが再起動または更新されると、EAS は別の物理ノードに新しいインスタンスを作成し、vSwitch のアドレスプールから新しい プライベート IP アドレス を割り当てることがあります。したがって、IP ベースのアクセス制御では、単一インスタンスの IP アドレスをハードコーディングするのではなく、許可リストで vSwitch CIDR ブロック を使用する必要があります。
VPC コンソールにログインし、 vSwitch ページで対応する IPv4 CIDR ブロックを確認します。
パブリック IP アドレスの確認
VPC コンソールにログインし、 ページで、EAS 用に設定したゲートウェイを見つけます。[Elastic IP Address] 列に、バインドされている EIP が表示されます。
本番環境でのベストプラクティス
-
IP アドレス計画:EAS サービス用に、十分な利用可能 IP アドレスを持つ vSwitch を専用に用意してください。必要な IP の最小数は次のように計算します:
実行中のインスタンス数 + ローリングアップデート用の追加インスタンス数 + 予約済みバッファ IP 数。IP アドレスが不足すると、サービスの作成またはスケーリングに失敗する原因となります。 -
セキュリティグループの分離:開発、テスト、本番など、異なるサービスや環境には、それぞれ別のセキュリティグループを使用してください。必要なポートと送信元 IP アドレスのみを開放し、最小権限の原則に従ってください。
-
コストの最適化:リソースを同じリージョン内の OSS にアップロードし、デプロイ時に OSS ボリュームをマウントしてください。これにより、パブリックネットワークのトラフィックコストを回避できます。
よくある質問
Q:なぜ EAS サービスはデフォルトでパブリックインターネットにアクセスできないのですか。
デフォルトでは、EAS サービスはセキュリティと安定性を確保するために、パブリックインターネットにアクセスできない分離環境で実行されます。共有環境でパブリックへの出口を無制限に許可すると、帯域幅の乱用や予測不能なパフォーマンスにつながる可能性があります。パブリックインターネットアクセスを有効にするには、VPC と NAT ゲートウェイを設定する必要があります。
Q:パブリックインターネットへの接続を迅速にテストするにはどうすればよいですか。
サービス設定の Command フィールドに、curl -I -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0" --connect-timeout 5 https://www.aliyun.com のようなネットワークテストコマンドを追加できます。
デプロイ後、インスタンスの [リアルタイムログ] を確認し、200 のようなステータスコードが表示されていれば、パブリックインターネットアクセスが機能していることが確認できます。
Q:VPC 設定後、サービスが他の VPC リソースにアクセスできないのはなぜですか。
以下の手順でトラブルシューティングを行ってください:
-
VPC 設定:EAS サービスとターゲットサービスが同じ VPC 内にあることを確認してください。
-
セキュリティグループのルール:EAS サービスにアタッチされているセキュリティグループのアウトバウンドルールが、ターゲットサービスへのトラフィックを許可していることを確認してください。
-
ターゲットサービスのアクセス制御:ターゲットサービスが IP 許可リストまたはセキュリティグループを使用してアクセスを制限している場合は、EAS サービスの vSwitch CIDR ブロック またはセキュリティグループ ID を許可リストに追加したことを確認してください。
Q:NAT ゲートウェイ設定後、パブリックインターネットにアクセスできないのはなぜですか。
以下の手順でトラブルシューティングを行ってください:
-
SNAT ルール:SNAT エントリで指定された vSwitch が、EAS サービスのデプロイに使用されているものと一致することを確認してください。インターネット NAT ゲートウェイコンソールで、 [SNAT management] タブに移動してください。3 つの条件を確認してください:SNAT エントリリストに送信元 CIDR ブロックが
0.0.0.0/0のエントリが含まれていること、 [ECS/ENI/vSwitch/VPC ID] 列がターゲットインスタンスに関連付けられていること、およびステータスが [Available] であることです。 -
VPC ルートテーブル: VPC コンソールで、ルートテーブルに
0.0.0.0/0へのルートと、NAT ゲートウェイを指すネクストホップが含まれているかを確認します。 -
セキュリティグループの送信ルール: EAS サービスのセキュリティグループの送信ルールが、すべてのパブリックトラフィックを許可することを確認してください。デフォルトのルールでは、
0.0.0.0/0へのトラフィックが許可されます。