주의 : Free Tier Plan 에서도 NAT Gateway 사용 시간(1h $0.059) 비용 발생됨 → 실습 후 바로 삭제 확인 필요.
NAT 게이트웨이 설정 후 생성
이름 : CloudNeta-NAT
서브넷 : CloudNeta-Public-SN
탄력 IP 할당 클릭
서브넷 > 가상프라이빗 클라우드 > 라우팅 테이블> 라우팅 테이블 생성 버튼
라우팅테이블 설정 후 생성
서브넷 연결 - 서브넷 연결 편집
라우팅 - 라우팅편집 - 라우팅 추가
AMI 선택
인스턴스 유형 선택
인스턴스 세부 구성
#!/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
스토리지 추가 - 기본값
태그추가
보안그룹 - 기본값
아까 public 서브넷에 만들어놨던 EC2 가 연결되어 있는 상황에서 해야함
SSH root@10.0.1.27
EC2 인스턴스 종료 (EC2 → 인스턴스 → 인스턴스 선택 → 작업 → 인스턴스 상태 → 종료)
NAT 게이트웨이 삭제 (VPC → NAT 게이트웨이 → 작업 → NAT 게이트웨이 삭제)
탄력적 IP 삭제 (VPC → 탄력적 IP → Actions → 탄력적 IP 주소 릴리스)
VPC 삭제 (VPC → VPC → 작업 → VPC 삭제)
① 내부 인스턴스(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)로 도달하게 됩니다.