Closed6

NETWORKING IMMERSION DAY / BEGINNER TOPICS / LAB 1: MULTI-VPC ACCOUNT ARCHITECTURE

kenryokenryo

LAB 1: MULTI-VPC ACCOUNT ARCHITECTURE

IGWを持つVPCを3つ作成する。各VPCは2つのAZを持ちEC2インスタンスを1つ構築。
この状態だとEC2インスタンス同士は通信できないことを確認する。

kenryokenryo

LAB 1.1: CREATE VPCS, SUBNETS, AND EC2 INSTANCES

VPCを3つ作成

各VPCにプライベートサブネットを作成

IGWを作成し、VPCにアタッチ

各VPCのルートテーブルにIGWへのルーティングを追加

2 Deploy EC2 instances in VPC’s.

AmazonSSMManagedInstanceCoreとAmazonS3FullAccessを持つロールを作成。

各VPCの1AZにインスタンスを配置。インスタンスには作成したロールをアタッチ。

SSMで EC2 VPC A-AZ1にログインし、EC2 VPC B-AZ1のプライベートIPにpingを飛ばしてみる。
VPCで隔離されているのでアクセスできない。

sh-4.2$ ping 10.1.0.73
PING 10.1.0.73 (10.1.0.73) 56(84) bytes of data.

続いてEC2 VPC B-AZ1のパブリックIPにpingしてみる。
ICMPパケットはEC2 VPC A-AZ1のVPCのIGWに送られインターネットを経由し、EC2 VPC B-AZ1に届いた。

sh-4.2$ ping 54.95.161.241
PING 54.95.161.241 (54.95.161.241) 56(84) bytes of data.
64 bytes from 54.95.161.241: icmp_seq=1 ttl=254 time=1.87 ms
64 bytes from 54.95.161.241: icmp_seq=2 ttl=254 time=1.91 ms
kenryokenryo

LAB 1.2: VPC PEERING

VPCピアリングを使うとVPC間でプライベートIPで通信することができる。
VPC A - VPC BとVPC A - VPC CにVPCピアリングを設定し、通信できるか試す。
なお、ピアリングするVPCのCIDRは一致、重複してはいけない。

1. Setup VPC Peering

ピアリング接続作成画面で以下のようにVPC A - VPC Bのピアリングを作成する。

ピアリング接続するためには作成後、承諾が必要。

2 Update Route Tables

VPC Aのルートテーブルにルートを追加する。
VPC B宛(10.1.0.0/16)の通信はVPC A - VPC Bのピアリング接続へルーティングさせる。
VPC C宛(10.2.0.0/16)の通信はVPC A - VPC Cのピアリング接続へルーティングさせる。

また、VPC B, VPC CのルートテーブルにもVPC A宛(10.0.0.0/16)の通信を作成したピアリング接続に転送するルーティングを追加する。

2.4 Check EC2 connectivity in VPC A

A -> B

sh-4.2$ ping 10.1.0.73
PING 10.1.0.73 (10.1.0.73) 56(84) bytes of data.
64 bytes from 10.1.0.73: icmp_seq=1 ttl=255 time=0.411 ms
64 bytes from 10.1.0.73: icmp_seq=2 ttl=255 time=0.458 ms

A -> C

sh-4.2$ ping 10.2.0.206
PING 10.2.0.206 (10.2.0.206) 56(84) bytes of data.
64 bytes from 10.2.0.206: icmp_seq=1 ttl=255 time=0.439 ms
64 bytes from 10.2.0.206: icmp_seq=2 ttl=255 time=0.457 ms

B -> C

sh-4.2$ ping 10.0.0.253
PING 10.0.0.253 (10.0.0.253) 56(84) bytes of data.
64 bytes from 10.0.0.253: icmp_seq=1 ttl=255 time=0.442 ms
64 bytes from 10.0.0.253: icmp_seq=2 ttl=255 time=0.497 ms

ちなみにB->CのようなAを経由した推移的な通信はできない。

sh-4.2$ ping 10.2.0.206
PING 10.2.0.206 (10.2.0.206) 56(84) bytes of data.
kenryokenryo

LAB 1.3: TRANSIT GATEWAY

前回作成したピアリング接続は、相互接続するVPCが多くなるとその管理や構築が大きな負担となってしまう。Transit Gatewayでこれを解消することができる。

1 Delete VPC Peering Connections

前回作成したピアリング接続を削除する。関連するルートテーブルも一緒に削除する。

2 Setup Transit Gateway

デフォルト設定でTGWを作成する。

2.1 Create Transit Gateway attachments subnets

TGWをアタッチするサブネットを各VPCに作成する。

先ほど作成したサブネットとTGWを関連付けするため、TGW AttachementをVPCの数作成する。

3 Check Transit Gateway route table

TGWルートテーブルに各VPCへのルートがあることを確認する。

4 Update Route Tables of VPCs

VPCのルートテーブルにTGWへのルートを追加する。
VPC Aには10.0.0.0/8 TGWへのルートを追加。
VPC Bは10.1.0.0/8、VPC Cは10.2.0.0/8を追加。

5 Check EC2 connectivity via TGW

通信できるか確認。

VPC A -> VPC B

sh-4.2$ ping -c 3 10.1.0.73
PING 10.1.0.73 (10.1.0.73) 56(84) bytes of data.
64 bytes from 10.1.0.73: icmp_seq=1 ttl=254 time=3.42 ms
64 bytes from 10.1.0.73: icmp_seq=2 ttl=254 time=3.18 ms
64 bytes from 10.1.0.73: icmp_seq=3 ttl=254 time=0.747 ms

--- 10.1.0.73 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.747/2.451/3.426/1.209 ms
sh-4.2$

VPC A -> VPC C

sh-4.2$ ping -c 3 10.2.0.206
PING 10.2.0.206 (10.2.0.206) 56(84) bytes of data.
64 bytes from 10.2.0.206: icmp_seq=1 ttl=254 time=1.15 ms
64 bytes from 10.2.0.206: icmp_seq=2 ttl=254 time=0.639 ms
64 bytes from 10.2.0.206: icmp_seq=3 ttl=254 time=0.553 ms

--- 10.2.0.206 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2016ms
rtt min/avg/max/mdev = 0.553/0.782/1.154/0.265 ms
sh-4.2$

VPC B -> VPC A

sh-4.2$ ping -c 3 10.0.0.253
PING 10.0.0.253 (10.0.0.253) 56(84) bytes of data.
64 bytes from 10.0.0.253: icmp_seq=1 ttl=254 time=1.00 ms
64 bytes from 10.0.0.253: icmp_seq=2 ttl=254 time=0.679 ms
64 bytes from 10.0.0.253: icmp_seq=3 ttl=254 time=0.647 ms

--- 10.0.0.253 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2009ms
rtt min/avg/max/mdev = 0.647/0.778/1.009/0.165 ms

VPC B -> VPC C

sh-4.2$ ping -c 3 10.2.0.206
PING 10.2.0.206 (10.2.0.206) 56(84) bytes of data.
64 bytes from 10.2.0.206: icmp_seq=1 ttl=254 time=1.51 ms
64 bytes from 10.2.0.206: icmp_seq=2 ttl=254 time=0.590 ms
64 bytes from 10.2.0.206: icmp_seq=3 ttl=254 time=0.699 ms

--- 10.2.0.206 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2010ms
rtt min/avg/max/mdev = 0.590/0.933/1.511/0.411 ms
sh-4.2$

VPC C -> VPC A

sh-4.2$ ping -c 3 10.0.0.253
PING 10.0.0.253 (10.0.0.253) 56(84) bytes of data.
64 bytes from 10.0.0.253: icmp_seq=1 ttl=254 time=1.01 ms
64 bytes from 10.0.0.253: icmp_seq=2 ttl=254 time=0.580 ms
64 bytes from 10.0.0.253: icmp_seq=3 ttl=254 time=0.650 ms

--- 10.0.0.253 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2027ms
rtt min/avg/max/mdev = 0.580/0.748/1.015/0.192 ms

VPC C -> VPC B

sh-4.2$ ping -c 3 10.1.0.73
PING 10.1.0.73 (10.1.0.73) 56(84) bytes of data.
64 bytes from 10.1.0.73: icmp_seq=1 ttl=254 time=1.02 ms
64 bytes from 10.1.0.73: icmp_seq=2 ttl=254 time=0.667 ms
64 bytes from 10.1.0.73: icmp_seq=3 ttl=254 time=0.599 ms

--- 10.1.0.73 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2017ms
rtt min/avg/max/mdev = 0.599/0.764/1.027/0.189 ms
sh-4.2$

以上、全パターン通信ができることを確認した。
TGWを経由させるので、VPCピアリングではできなかったVPC B -> VPC Cのような推移的な通信(この場合、推移的とは言えないが)ができた。

kenryokenryo

TGWは時間料金がかかるので使わなくなったら削除しよう。
Lab2以降を実施する場合、ここの手順を再実施する必要があることに注意。EC2は停止するだけにし、終了はしない、TGWは削除する。

このスクラップは2022/04/23にクローズされました