6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PrivateLinkとResource Gatewayで既存IPv4環境を変更せずにIPv6環境へ接続する

6
Posted at

概要

既存VPCのIPv4環境を変更せずに、IPv6環境のVPCと通信したい場合の構成パターンを検証します。AWS PrivateLinkのResource GatewayおよびVPCエンドポイントを利用することで、NLB不要かつクライアント側のIPv4環境はそのままにIPv6通信が可能です。

アーキテクチャ

s01.png

  • 既存VPCの設定変更が不要:IPv4のみのまま利用可能。VPCエンドポイントを配置するのみ
  • NLB不要:Resource Gatewayを使用することでNLBが不要
  • マネージドサービスで完結:PrivateLink + Resource Gateway + VPCエンドポイントで構成

環境

リソース CIDR / IPアドレス
test-vpc1 10.0.0.0/16
test-vpc1-subnet 10.0.0.0/24
test-vpc1-ec2 10.0.0.21
test-vpc3 10.2.0.0/16, fd81:0:0:200::/56
test-vpc3-subnet2 10.2.1.0/24
test-vpc3-ec2 10.2.1.235, fd81::244:f59b:7da9:a60d:6a2e

通信フロー

  1. test-vpc1-ec2(IPv4)からVPCエンドポイントへIPv4でアクセス
  2. VPCエンドポイントがPrivateLink経由でtest-vpc3のResource Gatewayへ転送
  3. Resource Gatewayがターゲット(test-vpc3-ec2のプライベートIPv6アドレス)にアクセス
  4. test-vpc3-ec2にIPv6で到達

初期設定

  • test-vpc1:IPv6無効(IPv4通信のみ。既存環境を変更しない想定)
  • test-vpc3:IPv6有効(プライベートIPv6 Unique Local Address)

プライベートIPv6の使用

プライベートIPv6アドレスはインターネットに広告されないアドレスで、IPv4のプライベートアドレスに相当します。AWSでプライベートIPv6を使用するには、VPC IPAM(IP Address Manager)が必要です。Resource ConfigurationでIPアドレスをターゲットに指定する場合、パブリックIPv6(Amazon提供のGUA)は指定できないため、今回IPAMを使用してプライベートIPv6の払い出しを行います。

Step 1:IPAMの作成とプライベートIPv6プールの設定

test-vpc3にプライベートIPv6 ULA CIDRを割り当てるため、IPAMを作成してIPv6 ULAプールを設定します。

1-1. IPAMの作成

  1. VPCコンソール → IPアドレスマネージャー → IPAM → 「IPAMを作成」
  2. 以下の設定で作成
設定項目
名前 test-ipam
オペレーティングリージョン ap-northeast-1

s02.png

1-2. プライベートスコープにIPv6 ULAプールの作成

  1. IPAMコンソール → プール → プライベートスコープを選択
  2. 「プールを作成」で以下を設定
設定項目
名前 test-ipv6-ula-pool
アドレスファミリー IPv6
スコープ プライベートスコープ
ロケール ap-northeast-1(VPCと同じリージョン)

s03.png

1-3. プールにCIDRをプロビジョニング

プールにIPv6 ULA CIDRをプロビジョニングします。

設定項目
CIDR fd81::/48

s04.png

Step 2:test-vpc3にプライベートIPv6 CIDRを追加

IPAMプールからtest-vpc3にプライベートIPv6 CIDRを割り当てます。

2-1. VPCにIPv6 CIDRを追加

  1. VPCコンソール → VPC → test-vpc3 → 「CIDRの編集」
  2. 「新しいIPv6 CIDRを追加」を選択
  3. 以下を設定
設定項目
IPv6 CIDRブロックソース IPAMで割り当てられたIPv6 CIDRブロック
IPAMプール test-ipv6-ula-pool
CIDR fd81:0:0:200::/56

s05.png

2-2. サブネットにIPv6 CIDRを割り当て

  1. VPCコンソール → サブネット → test-vpc3-subnet2 → 「IPv6 CIDRの編集」
  2. プライベートIPv6 CIDRを割り当て(fd81:0:0:200::/56)

s06.png

2-3. test-vpc3-ec2のENIにプライベートIPv6アドレスを割り当て

  1. EC2コンソール → ネットワークインターフェイス → test-vpc3-ec2のENIを選択
  2. 「IPアドレスの管理」→ IPv6アドレスを追加
  3. プライベートIPv6 ULAのサブネット範囲からアドレスを割り当て

割り当て後、test-vpc3-ec2にログイン後、プライベートIPv6 ULAが割り当てられていることを確認します。

[root@ip-10-2-1-235 ~]# ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 state UP qlen 1000
    inet6 fd81::244:f59b:7da9:a60d:6a2e/128 scope global dynamic noprefixroute
       valid_lft 447sec preferred_lft 137sec

Step 3:Resource Gatewayの作成

Resource Gatewayをtest-vpc3に作成します。Resource Gatewayはtest-vpc3内のリソース(test-vpc3-ec2)への入口となります。

手順

  1. VPCコンソール → PrivateLinkとLattice → リソースゲートウェイ → 「リソースゲートウェイを作成」
  2. 以下の設定で作成
設定項目
名前 test-resource-gateway
IPアドレスタイプ Dualstack
VPC test-vpc3
サブネット test-vpc3-subnet2
セキュリティグループ test-vpc3-resource-gateway-sg

s10.png

※ IPアドレスタイプ「IPv6」はIPv6 onlyサブネットの場合のみ使用可能です。dualstack(IPv4+IPv6)サブネットの場合は「Dualstack」を選択します。

セキュリティグループの設定

Resource Gatewayに適用するセキュリティグループのアウトバウンドルールは検証のため、IPv6通信をフルオープンで設定します。

方向 タイプ プロトコル ポート 送信先
アウトバウンド すべてのトラフィック すべて すべて ::/0

Step 4:Resource Configurationの作成

Resource Configurationで、アクセス先リソース(test-vpc3-ec2)の情報を定義します。ここでtest-vpc3-ec2のプライベートIPv6アドレスを指定します。

手順

  1. VPCコンソール → PrivateLinkとLattice → リソース設定 → 「リソース設定を作成」
  2. 以下の設定で作成
設定項目
名前 test-resource-config
タイプ Single
リソースゲートウェイ test-resource-gateway(Step 3で作成)
リソース定義タイプ IPアドレス
IPアドレス fd81::244:f59b:7da9:a60d:6a2e(test-vpc3-ec2のプライベートIPv6)
プロトコル TCP
ポート範囲 1-65535

s11.png

s12.png

Step 5:VPCエンドポイントの作成

test-vpc1にVPCエンドポイントを作成します。test-vpc1-ec2はこのVPCエンドポイント経由でtest-vpc3-ec2にアクセスします。

VPCエンドポイントの作成時にタイプとして「リソース」を選択することで、Resource Endpointとして作成されます。

手順

  1. VPCコンソール → エンドポイント → 「エンドポイントを作成」
  2. 以下の設定で作成
設定項目
名前 test-resource-endpoint
タイプ リソース
リソース設定 test-resource-config(Step 4で作成)
VPC test-vpc1
サブネット test-vpc1-subnet
IPアドレスタイプ IPv4
セキュリティグループ test-vpc1-endpoint-sg

s13.png

test-vpc1はIPv4のみの環境のため、IPアドレスタイプは「IPv4」を選択します。これにより、test-vpc1-ec2はIPv4アドレスでVPCエンドポイントにアクセスできます。PrivateLink内部でIPv6に変換され、Resource Gateway経由でtest-vpc3-ec2に到達します。

セキュリティグループの設定

VPCエンドポイントに適用するセキュリティグループで、test-vpc1-ec2からのインバウンドを許可します。検証のためすべてのトラフィックを許可しています。

方向 タイプ プロトコル ポート 送信元
インバウンド すべてのトラフィック すべて すべて 10.0.0.0/24(test-vpc1-subnet)

Step 6:セキュリティグループの設定

test-vpc3-ec2のセキュリティグループで、IPv4アドレスは許可せず、Resource GatewayからのIPv6インバウンドを許可します。Resource GatewayのENIからのアクセスとなるため、test-vpc3-subnet2のIPv6 CIDR範囲を許可します。検証のためすべてのトラフィックを許可しています。

方向 タイプ プロトコル ポート 送信元
インバウンド すべてのトラフィック すべて すべて fd81:0:0:200::/56(test-vpc3のプライベートIPv6 CIDR)

Step 7:疎通確認

test-vpc3-ec2にNginxをインストール

Resource Endpointを経由する通信はTCPのみサポートのため、疎通確認用にtest-vpc3-ec2にNginxをインストールします。

[root@ip-10-2-1-235 ~]# dnf install nginx
[root@ip-10-2-1-235 ~]# systemctl start nginx

test-vpc1-ec2からのアクセス確認

VPCエンドポイントを作成後、エンドポイントの「リソース設定の関連付け」タブでDNS名を確認します。

s14.png

DNS名を使用してtest-vpc1-ec2からアクセスします。

[root@ip-10-0-0-21 ~]# curl vpce-xxxxxxxxxxxxxxxxx.rcfg-xxxxxxxxxxxxxxxxx.xxxxxxx.vpc-lattice-rsc.ap-northeast-1.on.aws
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, nginx is successfully installed and working.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>

test-vpc1-ec2(IPv4のみ)からPrivateLink経由でtest-vpc3-ec2(IPv6)のNginxにアクセスできることを確認しました。

IPv6通信の確認

test-vpc3-ec2のNginxアクセスログを確認し、Resource Gateway経由でIPv6通信が行われていることを確認します。

[root@ip-10-2-1-235 ~]# tail /var/log/nginx/access.log
fd81::228:3626:c:6926:5745 - - [21/Jun/2026:05:46:18 +0000] "GET / HTTP/1.1" 200 896 "-" "curl/8.17.0" "-"

アクセス元IPが fd81::228:3626:c:6926:5745(Resource GatewayのENIに割り当てられたプライベートIPv6アドレス)で記録されており、IPv6で通信していることが確認できました。

まとめ

本構成により、以下の確認を実施しました。

  • 既存VPCの設定変更が不要:IPv4のみのまま利用可能。VPCエンドポイントを配置するのみ
  • NLB不要:Resource Gatewayを使用することでNLBが不要
  • マネージドサービスで完結:PrivateLink + Resource Gateway + VPCエンドポイントで構成
6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?