<1> VPC간 연결 = 피어링하기
<2> 독일과 싱가포르에 네트워크를 구축하고 내부 연동해보자~
<1> VPC간 연결 = 피어링하기
1
현황
글로벌 서비스하려면 각 나라 간 Network Peering이 필요하다.
2
문제점
인터넷 구간으로 데이터 전송시 비용이나 부하가 발생한다.
3
해결방안
나라(리즌)간 내부연동은 VPC Peering으로 해결한다.
AWS 리전 네트워크간 내부 연동하기
각 나라 VPC간 내부 연결하기
각 나라 VPC간 Peering 하기
4
VPC Peeting 구성도
<2> 독일과 싱가포르에 네트워크를 구축하고 내부 연동해보자~
혼자서도 글로벌 네트워크를 구축할수 있는 시대가 되었다 ^^
유럽에서 인터넷 서비스하려면 독일에 서버를 구축한다.
일반적으로 중국쪽은 싱가포르쪽에 구축하여 운영한다.
여기서는 독일에 서버 구축하고, 싱가포르에 서버 구축하고, 내부연동 해보겠다
1
각 나라에 네트워크(VPC)를 구성한다.
네트워크를 구축하고, 서브네팅하고 ,게이트웨이 설정, 라우팅 설정한다.
ping테스트용으로 서버 1대 생성한다.
방화벽은 ssh,ping(icmp) 허용하는 구성으로 한다.
2
독일과 싱가포르에 네트워크를 구축한다.
독일은 10.100.100.0 /22 (C-class 4개) - Frank1
싱가포르는 192.168.0.0 /22 (C-class 4개)
3
나중에 IP가 부족하지 않게 C-Class 4개 네트워크로 생성한다.
참고로 사설 블럭은 아래와 같다.
10.0.0.0~10.255.255.255.255 (10.0.0.0/8)
172.16.0.0~172.31.255.255 (172.16.0.0/12)
192.168.0.0 ~192.168.255.255)
4
독일 네트워크 서브네팅 한다.
10.100.100.0/24
Frank1-0.100.100.0-24
VPC ID는 알아두자. 연동(피어링) 할때 필요하다.
vpc-6a4c6901
5
인터넷 게이트웨이 설정한다.
Frank1-GW
6
디폴트 라우팅 설정한다.
0.0.0.0/0 Frank1-GW
7
ping테스트옹 서버 1대 생성한다.
Auto-assign Public IP를 Enable해서 생성한다.
키는 frank1으로 한다.
생성 완료
ip확인 10.100.100.115
public ip 18.185.211.152
8
방화벽에서 ping허용한다.(icmp허용)
9
집에서 독일은 300ms
18.185.211.152의 응답: 바이트=32 시간=302ms TTL=42
18.185.211.152의 응답: 바이트=32 시간=315ms TTL=42
18.185.211.152의 응답: 바이트=32 시간=302ms TTL=42
18.185.211.152의 응답: 바이트=32 시간=302ms TTL=42
10
호스팅업체 서버에서 288ms
64 bytes from 18.185.211.152: icmp_seq=1 ttl=36 time=288 ms
64 bytes from 18.185.211.152: icmp_seq=2 ttl=36 time=288 ms
64 bytes from 18.185.211.152: icmp_seq=3 ttl=36 time=288 ms
64 bytes from 18.185.211.152: icmp_seq=4 ttl=36 time=288 ms
64 bytes from 18.185.211.152: icmp_seq=5 ttl=36 time=288 ms
64 bytes from 18.185.211.152: icmp_seq=6 ttl=36 time=288 ms
64 bytes from 18.185.211.152: icmp_seq=7 ttl=36 time=288 ms
64 bytes from 18.185.211.152: icmp_seq=8 ttl=36 time=289 ms
11
싱가포르도 192.168.0.0 /22 (C-class 4개)로 네트워크 구축한다.
태그 : sing1-vpc
싱가포르 VPC ID : vpc-42540a25
VPC ID는 알아두자.
연동(피어링) 할때 필요하다.
12
서브네팅
sing1-sub1
192.168.0.0/24
13
인터넷 게이트웨이 설정한다.
14
디폴트 라우팅 0.0.0.0/0 을 설정한다.
15
서버생성
key pair는 sing1
방화벽 ssh, icmp 허용
16
싱가포르 서버정보 확인
192.168.0.159
52.221.242.231
17
싱가포르까지는 100ms정도 구나~
집에서 싱가포르까지 92ms
52.221.242.231의 응답: 바이트=32 시간=92ms TTL=233
52.221.242.231의 응답: 바이트=32 시간=92ms TTL=233
52.221.242.231의 응답: 바이트=32 시간=92ms TTL=233
52.221.242.231의 응답: 바이트=32 시간=94ms TTL=233
외부 호스팅서버에서는 82 ms
64 bytes from 52.221.242.231: icmp_seq=2 ttl=235 time=82.4 ms
64 bytes from 52.221.242.231: icmp_seq=3 ttl=235 time=82.4 ms
64 bytes from 52.221.242.231: icmp_seq=4 ttl=235 time=82.4 ms
64 bytes from 52.221.242.231: icmp_seq=5 ttl=235 time=82.4 ms
18
독일에서 싱가포르까지는 얼마나 걸리나? 165ms
[ec2-user@ip-10-100-100-115 ~]$ ping 52.221.242.231
PING 52.221.242.231 (52.221.242.231) 56(84) bytes of data.
64 bytes from 52.221.242.231: icmp_seq=1 ttl=231 time=165 ms
64 bytes from 52.221.242.231: icmp_seq=2 ttl=231 time=165 ms
64 bytes from 52.221.242.231: icmp_seq=3 ttl=231 time=165 ms
64 bytes from 52.221.242.231: icmp_seq=4 ttl=231 time=165 ms
64 bytes from 52.221.242.231: icmp_seq=5 ttl=231 time=165 ms
64 bytes from 52.221.242.231: icmp_seq=6 ttl=231 time=165 ms
64 bytes from 52.221.242.231: icmp_seq=7 ttl=231 time=165 ms
내부 통신은 안되는구나. 그렇지.
[ec2-user@ip-10-100-100-115 ~]$ ping 192.168.0.159
PING 192.168.0.159 (192.168.0.159) 56(84) bytes of data.
19
내부통신 어떻게 가나 보자~
유럽에서 다른데로 못가지요~
[root@ip-10-100-100-115 ~]# traceroute 192.168.0.159
traceroute to 192.168.0.159 (192.168.0.159), 30 hops max, 60 byte packets
1 ec2-54-93-0-70.eu-central-1.compute.amazonaws.com (54.93.0.70) 19.226 ms ec2-54-93-0-66.eu-central-1.compute.amazonaws.com (54.93.0.66) 21.809 ms ec2-54-93-0-68.eu-central-1.compute.amazonaws.com (54.93.0.68) 26.063 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
20
두 나라간 내부연동을 한다
순서
1) 독일에서 피어링 요청을 한다.
2) 싱가포르에서 피어링 요청을 승인한다.
3) 독일에서 싱가포르로 라우팅 잡는다.
싱가포로에서 독일로 라우팅을 잡는다.
4) 잘 되는지 ping으로 확인한다.
1) 독일에서 피어링 요청을 한다.
[VPC] - [Peering Connections]
싱가포르 VPC ID : vpc-42540a25
둘간에 피어링 pcx-02xxxx
다른 Accout와도 연결이 가능하다.
VPC ID를 넣는다.
2) 싱가포르에서 피어링 요청을 승인한다.
참고
같은 AWS 계정이라면, Peering Connections >생성한 VPC 피어링 연결을 선택하고 [Actions], [Accept Request]를 선택합니다
3) 싱가포르에서 독일로 라우팅을 잡는다.
VPC > Route Tables > Routes 탭 > Edit해서 목적지인 독일 네트워크에 대해 PCX(피어링게이트웨이)로 잡는다.
10.100.100.0/22 쪽으로 pcx-02xxxxx 추가한다.
독일에서 싱가포르로 라우팅 잡는다.
21
사설IP간에 Ping이 잘 되는지 확인한다.
안되던 ping 잘된다 ^^
[root@ip-10-100-100-115 ~]# ping 192.168.0.159
PING 192.168.0.159 (192.168.0.159) 56(84) bytes of data.
64 bytes from 192.168.0.159: icmp_seq=39 ttl=255 time=162 ms
64 bytes from 192.168.0.159: icmp_seq=40 ttl=255 time=162 ms
64 bytes from 192.168.0.159: icmp_seq=41 ttl=255 time=162 ms
64 bytes from 192.168.0.159: icmp_seq=42 ttl=255 time=162 ms
22
트레이스는 여전히 제공하지 않나보다.
[root@ip-10-100-100-115 ~]# traceroute 192.168.0.159
traceroute to 192.168.0.159 (192.168.0.159), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
23
참고
리전간 VPC Peering은 2018년 1월 부터 지원 됨.
24
비용
VPC 피어링 연결 설정 또는 실행에 대한 비용은 없습니다.
피어링 연결을 통해 전송 된 데이터는 관련된 가용 영역에 관계없이 보내고받는 데
GB 당 $ 0.01로 청구됩니다.
25
트랫짓 게이트웨이로 개선 하세요
2020년 현재 트랫짓 게이트웨이로 좀 더 심플하게 VPC간 연동을 할수 있다.
26
지원되지 않는 피어링 구조
https://docs.aws.amazon.com/ko_kr/vpc/latest/peering/invalid-peering-configurations.html
감사합니다.