4.2 Multiregion VPC 연결 구성 2

Update : 2020-02-29

"4.1 MultiRegion VPC 연결구성 2"에서는 서로 다 계정의 환경에서 서로 다른 Region의 Transit Gateway Peering을 알아봅니다.

아래 [그림 4.2.1]은 "4.2 MultiRegion TGW 구성"에서 구성할 랩 구성입니다.

다른 계정/ 다른 리전에서 VPC 생성하기

[그림 4.2.1] 에서 처럼 Account (계정)이 다르고 US-WEST-2 리전 환경을 사용하는 O OCTANK VPC 를 Cloudformation Stack으로 생성합니다. 해당 Cloudformation Stack을 통해서 TGW, EC2, Subnet, Route Table, VPC Endpoint , SSM IAM Role, IGW, NAT G.W, EIP , Security Group 등이 자동으로 생됩니다.

1.US-WEST-2 Region을 선택하고 , Cloudformation을 통해서 Stack을 생성합니다.

[Cloudformation] - [Stacks] - [Create Stack]

2.Cloudformation을 통해 생성된 VPC 자원을 확인합니다.

[VPC] - [Subnet]

3.Cloudformation을 통해 생성된 Transit Gateway자원을 확인합니다.

[VPC] - [Transit Gateway]

Region Transit Gateway 구성 및 EC2 확인

1.US-WEST-2 의 O OCTANK Transit Gateway Attachment를 구성합니다.

[US-WEST-2] - [VPC] - [Transit Gateway] - [ Transit Gateway Attachment]

2.US-WEST-2 의 O OCTANK Transit Gateway Attachment를 Association합니다.

[VPC] - [Transit Gateway] - [Transit Gateway Attachments]

3.US-WEST-2에서 정상적으로 Transit Gateway Route Table이 동작하는 지 확인합니다.

[VPC] -[ Transit Gateway] - [ Transit Gateway Route Table]

4. US-WEST-2 리전에 VPC EC2 인스턴스에서 네트워크 연결을 확인합니다.

more ~/.aws/config
[default]
region = us-west-2
output = json
[profile whchoi01]
output = json
region = us-east-1
[profile whchoi02]
output = json
region = eu-central-1
## 현재 aws cli에 설정되어 있는 프로파일과 리전을 표기합니다.

export AWS_DEFAULT_PROFILE="profile name"
# aws profile switching 합니다.

aws ec2 describe-instances --query 'Reservations[].Instances[].[Tags[?Key==`Name`] | [0].Value, Placement.AvailabilityZone,InstanceId, InstanceType, ImageId,State.Name, PrivateIpAddress, PublicIpAddress ]' --output table
# instance id를 조회합니다.
------------------------------------------------------------------------------------------------------------------------------------
|                                                         DescribeInstances                                                        |
+------------------+-------------+----------------------+-----------+------------------------+----------+-----------------+--------+
|  OOCTANK-Server-A|  us-west-2a |  i-0389637dd7e8b0e02 |  t3.small |  ami-0e8c04af2729ff1bb |  running |  10.100.14.100  |  None  |
|  OOCTANK-Server-B|  us-west-2b |  i-0b9f2c5eeac2698c3 |  t3.small |  ami-0e8c04af2729ff1bb |  running |  10.100.22.100  |  None  |
+------------------+-------------+----------------------+-----------+------------------------+----------+-----------------+--------+

aws ssm start-session --target "EC2 instanace id"
# Running 중인 인스턴스에 AWS SSM을 통해 접속합니다.


[ec2-user@ip-10-100-14-100 TGW_CF]$ chmod 755 ./pingshell.sh
chmod: changing permissions of ‘./pingshell.sh’: Operation not permitted
[ec2-user@ip-10-100-14-100 TGW_CF]$ sudo chmod 755 ./pingshell.sh
[ec2-user@ip-10-100-14-100 TGW_CF]$ ./pingshell.sh
Tue Mar  3 15:48:35 UTC 2020
SERVER www.aws.com is up
SERVER ITSVR-A is down
SERVER ITSVR-B is down
SERVER ASVR-A is down
SERVER ASVR-B is down
SERVER BSVR-A is down
SERVER BSVR-B is down
SERVER CSVR-A is down
SERVER CSVR-B is down
SERVER DSVR-A is down
SERVER DSVR-B is down
SERVER FSVR-A is down
SERVER FSVR-B is down
SERVER ISVR-A is down
SERVER ISVR-B is down
SERVER OSVR-A is up
SERVER OSVR-B is up
SERVER ZSVR-A is down
SERVER ZSVR-B is down

US-WEST-2 VPC EC2 인스턴스는 자신의 VPC가 소유한 IGW, NAT G.W를 통해서 외부망 네트워크에 연결이 되지만, 다른 Region으로는 연결이 불가능합니다.

서로 다른 Account 환경에서 다른 Region Transit Gateway Peering 구성

"4.1.1 Multi Region VPC 연결구성1"과 다르게 4.1.2에서는 Account가 다르고, Region도 다른 경우의 TGW를 Peering 하는 구성입니다. Region이 다른 경우 TGW를 공유할 수 없으며, TGW는 Peering이 되어야합니다. 또한 Account가 다르기 때문에 , 다른 Account에 Peering요청을 하여 수락하는 단계를 거쳐야 합니다.

1.IT OCTANK VPC가 존재하는 US-EAST-1 Region에서 , 다른 어카운트 US-WEST-2 리전의 VPC에 대한 Peering을 위해 Attachments를 생성합니다.

[US-EAST-1 리전] - [VPC] - [Transit Gateway] - [ Transit Gateway Attachment]

2.구성을 완료하면 [그림 4.2.12]에서 처럼 "initiating request"상태로 변경되며, 다른 Account의 다른 Region(US-WEST-2)에서 수락할 때까지 대기합니다.

[US-EAST-1] - [ VPC ] - [ Transit Gateway] - [Transit Gateway Attachment]

3. 다른 어카운트의 US-WEST-2 리전에서는 US-EAST-1 이 요청한 정보가 Pending Acceptance 상태로 대기하며, Region을 관리하는 User가 Accept할 때까지 대기합니다.

[US-WEST-2 리전] - [VPC] - [Transit Gateway] - [Transit Gateway Attachment]

4.[그림 4.2.13] "Action" 메뉴에서 "Accept" 하게 되면 아래와 같이 정상적으로 모든 리전에서 Peering 됩니다.

5.US-EAST-1에서 US-WEST-2에 대한 Attachment가 정상적으로 이뤄졌으므로 , US-WEST-2 OOCTANK를 Association 추가합니다.

[US-EAST-1 Region] - [VPC] - [Transit Gateway] - [Transit Gateway Route Table] - [Green Route Table] -[Create association]

6. US-EAST-1에서 US-WEST-2에 대한 Attachment가 정상적으로 이뤄졌으므로 , US-WEST-2 OOCTANK Association이 정상적으로 수행되었는지 확인합니다.

[US-EAST-1 Region] - [VPC] - [Transit Gateway] - [Transit Gateway Route Table] - [Green Route Table] -[Aassociation]

7. US-EAST-1 리전에서 Transit Gateway Route Table - Green Route Table에 US-WEST-2 O OCTANK CIDR 주소로 라우팅 될 수 있도록 Static 라우팅 테이블을 추가합니다. (EU-CENTRAL-1 CIDR 주소는 10.100.0.0/16 입니다.)

[US-EAST-1 Region] - [VPC] - [Transit Gateway] - [Transit Gateway Route Table] - [Green Route Table] - [Create Route]

8. US-EAST-1 리전에서 Transit Gateway Route Table - Green Route Table에 Static Route가 정상적으로 등록되었는지 확인합니다.

9.US-WEST-2에서 US-EAST-1에 대한 Attachment를 Association 추가합니다. 자신의 Region안에 있는 VPC Attachment도 추가합니다. (랩의 예제에서는 자신의 VPC Attachment는 OOCTANKAttach, US-EAST-1에 대한 Attachment는 MainAttach 입니다.)

[US-WEST-2 Region] - [VPC] - [Transit Gateway] - [Transit Gateway Route Table] - [Route Table] -[Create association]

10.US-WEST-2에서 US-EAST-1에 대한 Attachment가 정상적으로 이뤄졌는지 확인합니다.

[US-WEST-2 Region] - [VPC] - [Transit Gateway] - [Transit Gateway Route Table] - [Route Table] -[association]

11. US-WEST-2 리전에서 Transit Gateway Route Table - Route Table에 다른 VPC CIDR 주소로 라우팅 될 수 있도록 Static 라우팅 테이블을 추가합니다. (랩에서 다른 VPC CIDR 주소는 10.0.0.0/8 입니다.)

[US-WEST-2 Region] - [VPC] - [Transit Gateway] - [Transit Gateway Route Table] - [Route Table] - [Create Route]

12. US-WEST-2 리전에서 Transit Gateway Route Table - Route Table에 Static 라우팅 테이블을 확인합니.

[US-WEST-2 Region] - [VPC] - [Transit Gateway] - [Transit Gateway Route Table] - [Route Table] - [Route]

13. US-WEST-2 리전에서 TGW Route구성은 마무리되었지만, 내부의 VPC에서 EC2들이 다른 TGW로 가기 위한 경로는 알지 못합니다. Private Route Table에서 다른 VPC로 라우팅 되도록 구성합니다. 10.0.0.0/8 로 가기 위한 목적지를 Transit Gateway로 지정합니다.

[US-WEST-2 Region] - [VPC] - [Route Table] - [Edit Routes]

13. US-WEST-2 리전에서 Private Route Table이 정상적으로 추가되었는지 확인힙니다.

14. 이제 US-WEST-2 EC2 인스턴스에서 다른 VPC 와의 네트워크 연결을 다시 확인합니다.

[ec2-user@ip-10-100-14-100 TGW_CF]$ ./pingshell.sh
Tue Mar  3 19:16:48 UTC 2020
SERVER www.aws.com is up
SERVER ITSVR-A is up
SERVER ITSVR-B is up
SERVER ASVR-A is down
SERVER ASVR-B is down
SERVER BSVR-A is down
SERVER BSVR-B is down
SERVER CSVR-A is down
SERVER CSVR-B is down
SERVER DSVR-A is up
SERVER DSVR-B is up
SERVER FSVR-A is up
SERVER FSVR-B is up
SERVER ISVR-A is up
SERVER ISVR-B is up
SERVER OSVR-A is up
SERVER OSVR-B is up
SERVER ZSVR-A is up
SERVER ZSVR-B is up

O OCTANK VPC에 속한 EC2, I OCTANK VPC에 속한 EC2가 A,B OCTANK EC2, C OCTANK EC2등과 네트워크 통신이 되려면 어떻게 해야 할까요?

US-EAST-1 Transit Gateway Route Table의 Red, Blue Route Table에서 10.100.0.0/16의 Static Route Table을 추가하게 되면 모두 정상적으로 통신이 이뤄집니다.

이제 Transit Gateway를 통해서 9개 이상의 VPC를 모두 연결을 하고, 원하는 정책으로 트래픽을 모두 제어했습니다. 아래는 지금까지 구성한 트래픽 제어를 표로 정리한 것입니다.

VPC Name

Account

Region

IGW & NAT G.W

CGW

IT OCTANK

A

US-EAST-1

O

X

A OCTANK

A

US-EAST-1

X

X

B OCTANK

A

US-EAST-1

X

X

C OCTANK

A

US-EAST-1

X

X

D OCTANK

O

Z OCTANK

B

US-EAST-1

O

X

F OCTANK

A

EU-CENTRAL-1

O

X

I OCTANK

A

EU-WEST-2

O

X

O OCTANK

C

US-WEST-2

O

X

D OCTANK는 실제 Account A, Region - US-EAST-1 에 할당되어 있고, IGW,NAT GW등이 배포되어 있지만 Cisco CSR1KV기반의 CGW를 통해서 TGW에 연결됩니다. 따라서 On Prem 환경과 동일합니다.

인터넷 NAT GW

IT VPC

EC2

A VPC

EC2

B VPC

EC2

C VPC

EC2

D VPC

EC2

Z VPC

EC2

F VPC

EC2

I VPC

EC2

O VPC

EC2

인터넷 NAT GW

Permit

Permit

Permit

Permit

자체 IGW

자체 IGW

자체 IGW

자체 IGW

자체 IGW

IT

EC2

Permit

Permit

Permit

Permit

Permit

Permit

Permit

Permit

Permit

A

EC2

Permit

Permit

Permit

Deny

Deny

Deny

Deny

Deny

Deny

B

EC2

Permit

Permit

Permit

Deny

Deny

Deny

Deny

Deny

Deny

C

EC2

Permit

Permit

Deny

Deny

Deny

Permit

Deny

Deny

Deny

D VPC

EC2

자체 IGW

Permit

Deny

Deny

Deny

Permit

Permit

Permit

Permit

Z VPC

EC2

자체 IGW

Permit

Deny

Deny

Deny

Permit

Permit

Permit

Permit

F VPC

EC2

자체 IGW

Permit

Deny

Deny

Deny

Permit

Permit

Permit

Permit

I VPC

EC2

자체 IGW

Permit

Deny

Deny

Deny

Permit

Permit

Permit

Permit

O VPC

EC2

자체 IGW

Permit

Deny

Deny

Deny

Permit

Permit

Permit

Permit

"4.3 TGW 트래픽 제어" 에서는 TGW기반 Routing, Blackhole 등을 세밀하고, 손쉽게 제어하는 몇가지 예제를 추가로 다뤄봅니다.

Last updated