EAS サービスでパブリック API を呼び出す、インターネットからファイルをダウンロードする、RDS データベースに接続する、またはその他の外部サービスにアクセスする必要がある場合は、ネットワーク接続を確立するために Virtual Private Cloud (VPC) を設定する必要があります。
仕組み
EAS サービスに VPC を設定すると、システムはサービスインスタンスごとに Elastic Network Interface (ENI) を作成し、指定した vSwitch からプライベート IP アドレスを割り当てます。これにより、インスタンスは VPC 内でネットワーク上のアイデンティティを持つことで、他の VPC リソースとの通信や、NAT Gateway を経由したパブリックインターネットアクセスが可能になります。
課金
EAS サービスに VPC を設定すること自体は無料です。ただし、NAT Gateway と Elastic IP Address (EIP) は有料製品です。課金の詳細については、「NAT Gateway billing」と「EIP billing overview」をご参照ください。
開始前の準備:ネットワークの計画
開始前に、ネットワーク接続を計画し、必要な VPC、vSwitch、セキュリティグループを準備してください。これらのリソースを作成する必要がある場合は、VPC と vSwitch の作成およびセキュリティグループの使用をご参照ください。
-
セキュリティグループルールは、EAS サービスからのすべてのアウトバウンドトラフィックを制御します。セキュリティグループのアウトバウンドルールが、EAS サービスからターゲットサービスへのアクセスを許可していることを確認してください。
-
プライベートネットワーク通信を有効にする最も簡単な方法は、EAS サービスとターゲットサービスを同じ VPC にデプロイすることです。ターゲットサービスが別の VPC にある場合は、VPC Peering Connection や Cloud Enterprise Network などのサービスを使用してネットワークを接続する必要があります。
手順
ステップ 1:VPC の設定
VPC の設定は、EAS サービスのプライベートネットワーク通信またはパブリックインターネットアクセスを有効にするための最初のステップです。EAS は、サービスレベルとリソースグループレベルの両方で VPC 設定をサポートします。
-
サービスレベル:単一サービスに対して VPC を指定します。この設定が最も高い優先度となります。
-
リソースグループレベル: 専用リソースグループ内のすべてのサービスに対してデフォルトの VPC を設定し、一括設定を簡素化します。
サービスレベルとリソースグループレベルの両方でネットワーク設定を行った場合は、サービスレベルの設定が優先されます。
サービスレベル
コンソール
サービスを作成または更新する際に、ネットワーク情報 セクションで VPC を設定します。ドロップダウンリストから VPC を選択した後、vSwitch とセキュリティグループを設定します。
VPC 設定に加えて、[Network Information] セクションには [Gateway Selection] (オプション:[shared gateway] または [dedicated gateway]) や、[Associate Network Load Balancer (NLB)]、[Associate Service Discovery (Nacos)] のオプションも含まれます。
VPC、vSwitch、またはセキュリティグループを作成した後、PAI コンソールのドロップダウンリストに新しいリソースが表示されるまでに 1~2 分かかる場合があります。新しいリソースが表示されない場合は、しばらく待ってからページを更新してください。
eascmd クライアント
-
サービスの JSON 設定ファイルで、
cloud.networkingフィールドを追加または変更し、VPC、vSwitch、セキュリティグループの ID を指定します。networkingフィールドの例は次のとおりです。{ "cloud": { "networking": { "vpc_id": "your-vpc-id", "vswitch_id": "your-switch-id", "security_group_id": "your-security-group-id" } } }必要な ID は、VPC コンソールの VPC および vSwitch の一覧ページ、ならびにECS コンソールの [Security Groups] ページで確認できます。
-
コマンドリファレンスを参照し、
createまたはmodifyコマンドを使用して、サービスを作成するか、新しい設定を適用します。
リソースグループレベル
-
コンソール:リソースグループ ページで、リソースグループ全体の VPC を設定します。対象のリソースグループを選択し、操作 列で VPC ダイレクト接続の有効化 をクリックします。
-
eascmd クライアント:「リソースグループの VPC を設定」をご参照ください。
ステップ 2:NAT Gateway と SNAT エントリの設定
EAS サービスにパブリックインターネットアクセスが必要な場合は、EIP を持つ NAT Gateway を設定する必要があります。詳細については、「インターネット NAT Gateway の SNAT 機能を使用したインターネットアクセス」をご参照ください。
-
インターネット NAT Gateway を作成して EIP をバインド:インターネット NAT Gateway の購入ページに移動し、EAS サービスがあるリージョンと VPC を選択して、EIP をバインドします。この EIP は、EAS サービスがパブリックインターネットにアクセスする際の共通のエグレス IP アドレスとして機能します。
-
SNAT エントリの設定:作成した NAT Gateway で SNAT エントリを作成します。SNAT エントリ を [VPC Granularity] に設定します。これにより、この VPC からパブリックインターネットへのすべてのトラフィックが、この NAT Gateway を経由してルーティングされます。
ステップ 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 の最小数は、次のように算出します:
Number of running instances + Number of extra instances for rolling updates + Reserved buffer IPs。IP アドレスが不足すると、サービスの作成やスケーリングで失敗します。 -
セキュリティグループの分離:開発、テスト、本番など、サービスまたは環境ごとに別々のセキュリティグループを使用してください。最小権限の原則に従い、必要なポートと送信元 IP アドレスのみを開放してください。
-
コスト最適化:同一リージョンの OSS にリソースをアップロードし、デプロイ時に OSS ボリュームをマウントしてください。これにより、パブリックネットワークトラフィックのコストを回避できます。
よくある質問
Q:EAS サービスがデフォルトでパブリックインターネットにアクセスできないのはなぜですか。
デフォルトでは、EAS サービスはセキュリティと安定性を確保するために、パブリックインターネットアクセスのない分離環境で実行されます。共有環境でパブリックネットワークへのアウトバウンド通信を無制限に許可すると、帯域幅の不正利用や予測不能なパフォーマンスにつながる可能性があります。パブリックインターネットアクセスを有効にするには、VPC と NAT Gateway を設定します。
Q:パブリックインターネット接続をすばやくテストするにはどうすればよいですか。
サービス設定で、コマンドの実行 フィールドに次のようなネットワークテストコマンドを追加できます。curl -I -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0" --connect-timeout 5 https://www.aliyun.com。
デプロイ後、インスタンスの[real-time log] を確認してください。200 のようなステータスコードが表示される場合、パブリックインターネットアクセスが動作していることを確認できます。
Q:VPC 設定後にサービスが他の VPC リソースにアクセスできないのはなぜですか。
次の手順で切り分けます。
-
VPC 設定:EAS サービスとターゲットサービスが同じ VPC にあることを確認してください。
-
セキュリティグループルール:EAS サービスにアタッチされたセキュリティグループのアウトバウンドルールが、ターゲットサービスへのトラフィックを許可していることを確認してください。
-
ターゲットサービスのアクセス制御:ターゲットサービスが IP の許可リストまたはセキュリティグループを使用してアクセスを制限している場合は、EAS サービスのvSwitch の CIDR ブロックまたはセキュリティグループ ID を許可リストに追加していることを確認してください。
Q:NAT Gateway 設定後もパブリックインターネットにアクセスできないのはなぜですか。
次の手順で切り分けます。
-
SNAT ルール:SNAT エントリで指定した vSwitch が、EAS サービスのデプロイに使用している vSwitch と一致していることを確認してください。Internet NAT Gateway コンソールで[SNAT management] タブに移動し、次の 3 点を確認してください。確認すべき 3 点とは、SNAT エントリの一覧に送信元 CIDR ブロックが
0.0.0.0/0のエントリがあること、[ECS/ENI/vSwitch/VPC ID] 列がターゲットインスタンスに関連付けられていること、ステータスが[Available] であることです。 -
VPC ルートテーブル:VPC コンソールでルートテーブルを確認し、
0.0.0.0/0宛てのルートが含まれており、ネクストホップが NAT Gateway を指していることを確認してください。 -
セキュリティグループのアウトバウンドルール:EAS サービスのセキュリティグループのアウトバウンドルールが、すべてのパブリックトラフィックを許可していることを確認してください。デフォルトルールでは
0.0.0.0/0へのトラフィックが許可されます。