6. 프라이빗 서브넷 VPC 구성
목표 구성도
프라이빗 서브넷 생성
퍼블릭 서브넷에서 외부 인터넷 구간과 통신을 할때는 인터넷 게이트웨이를 통해 통신
프라이빗 서브넷은 NAT게이트웨이를 통해 통신
NAT 게이트웨이 생성
NAT 게이트웨이는 퍼블릭 서브넷에 생성
프라이빗 라우팅 테이블 생성 및 서브넷 연결
프라이빗 라우팅 테이블 경로 추가
EC2 인스턴스 생성 후 접근 및 통신 확인
- 사용자 데이터 입력
- root 계정으로 qwe123 비밀번호를 사용하겠다는 의미
#!/bin/bash
(
echo "qwe123"
echo "qwe123"
) | passwd --stdin root
sed -i "s/^PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
sed -i "s/^#PermitRootLogin yes/PermitRootLogin yes/g" /etc/ssh/sshd_config
service sshd restart
IP 정보 확인 (프라이빗 IP , 퍼블릭 IP)
[root@ip-10-0-1-62 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
link/ether 0a:71:ee:e9:4d:28 brd ff:ff:ff:ff:ff:ff
inet 10.0.1.62/24 brd 10.0.1.255 scope global dynamic eth0
valid_lft 2002sec preferred_lft 2002sec
inet6 fe80::871:eeff:fee9:4d28/64 scope link
valid_lft forever preferred_lft forever
[root@ip-10-0-1-62 ~]# ip route show
default via 10.0.1.1 dev eth0
10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.62
169.254.169.254 dev eth0
[root@ip-10-0-1-62 ~]# ip neigh show
10.0.1.1 dev eth0 lladdr 0a:c3:63:38:46:8e REACHABLE
[root@ip-10-0-1-62 ~]# cat /etc/resolv.conf
; generated by /usr/sbin/dhclient-script
search ap-northeast-2.compute.internal
options timeout:2 attempts:5
nameserver 10.0.0.2
[root@ip-10-0-1-62 ~]# curl ipinfo.io
{
"ip": "13.124.114.80",
"hostname": "ec2-13-124-114-80.ap-northeast-2.compute.amazonaws.com",
"city": "Seoul",
"region": "Seoul",
"country": "KR",
"loc": "37.5660,126.9784",
"org": "AS16509 Amazon.com, Inc.",
"postal": "03186",
"timezone": "Asia/Seoul",
"readme": "https://ipinfo.io/missingauth"
프라이빗 서브넷 통신 흐름
① 프라이빗 서브넷의 프라이빗 EC2 인스턴스가 외부 인터넷 구간과 통신하기 위해 데이터를 가상 라우터로 전달
② 가상 라우터는 프라이빗 라우팅 테이블을 참고하여 NAT 게이트웨이로 향하는 라우팅 경로 확인
③ 가상 라우터는 NAT게이트웨이로 데이터를 전달하고, NAT 게이트웨이에서 프라이빗 IP를 퍼블릭 IP로 전달
④ NAT 게이트웨이에서 인터넷 구간을 넘어가기 위해 인터넷 게이트웨이를 거쳐 사용자에게 전달. 이때 사용자는 NAT게이트웨이에서 변환한 퍼블릭 IP로 전달받음
NAT 인스턴스(NAT 게이트웨이와 유사)를 통한 외부 접속 시 트래픽 흐름에 따른 동작 설명
① 내부 인스턴스(10.40.2.101)에서 외부 웹서버(60.1.1.1)로 HTTP 접속을 시도. ‘프라이빗 서브넷 라우팅 테이블’에 따라서 NAT 인스턴스로 트래픽 전송
② NAT 인스턴스는 IP masquerading 기능을 통해서 출발지 IP(10.40.2.101 → 10.40.1.100)와 포트 번호를 변환하고 정보를 기록. 이후 ‘퍼블릭 서브넷 라우팅 테이블’에 따라서 인터넷 게이트웨이로 트래픽 전송
③ 인터넷 게이트웨이는 프라이빗 IP와 탄력적 IP간의 IP 변환(NAT) 수행. 출발지 IP를 10.40.1.100에서 a.b.c.d로 변환하고 외부 인터넷으로 트래픽 전송
④ 외부 웹서버(60.1.1.1)에서 요청을 처리하고 응답 트래픽 전송
⑤ 인터넷 게이트웨이에 인입된 트래픽은 목적지 IP를 a.b.c.d에서 10.40.1.100으로 IP 변환(NAT)하여 VPC 내부로 전송
⑥ NAT 인스턴스는 ‘변환 정보’에 따라서 출발지 IP(10.40.1.100 → 10.40.2.101)와 포트 번호를 변환하여 프라이빗 서브넷으로 전송
⑦ 최종적으로 응답 트래픽이 내부 인스턴스(10.40.2.101)로 도달
'Infra > cloud' 카테고리의 다른 글
[AFOS] 4주차 스토리지 서비스 - 실습 : EBS (2) | 2021.07.13 |
---|---|
[AFOS] 4주차 스토리지 서비스 (0) | 2021.07.12 |
[AFOS] 3주차 네트워킹 서비스 - 실습 : VPC 구성(퍼블릭 서브넷) (0) | 2021.07.09 |
[AFOS] 3주차 네트워킹 서비스 (0) | 2021.07.09 |
[AFOS] 2주차 컴퓨팅 서비스 - 실습 : EC2 웹 서버 설치 (0) | 2021.07.09 |