이번 블로그에서는 NAT Instance 대신 NAT Gateway를 사용해보겠습니다.
주요 변경 내용
- NAT Instance를 NAT Gateway로 변경
- NAT Instance에서 사용했던 Security Group (NAT-SG)를 사용하지 않음
- PrivateSubnet-2a 에 연결된 Route Table (Private-RT-2a)변경
NAT Gateway 생성
NAT Gateway를 생성하기 위해서는 NAT Gateway가 위치할 Subnet ID 해야 합니다. PublicSubnet-2a에 생성합니다.
PublicSubent-2a Subnet ID : subnet-042c2e1ede75591f6
NAT Gateway 생성 화면에서 Subnet ID를 선택하고, NAT Gateway에서 사용할 Elastic IP를 할당합니다.
생성이 완료되었습니다. NAT Gateway ID는 nat-0c07cf619006e73f5 입니다.
PrivateSubnet-2a 에 연결된 Route Table (Private-RT-2a)변경
PrivateSubnet-2a 에서 0.0.0.0/0을 목적지로 하는 Packet을 NAT Gateway로 전달하기 위해 Route Table의 Routing Rule을 추가해줍니다.
0.0.0.0/0 → nat-0c07cf619006e73f5
Web 서버 생성
Web 서버는 PrivateSubnet-2a 안에 생성하고 Private IP만 할당해줍니다.
Web 서버에서 사용할 Security Group을 선택합니다. Source 10.10.1.0/24 (PublicSubnet-2a) 에서 ssh 접속을 허용하기 위해서 Inbound Rule을 추가해주었습니다.
Bastion 서버 생성
보안을 고려하여 서버에 대한 ssh 접속은 Bastion 서버를 거치도록 설정하기 위해 Bastion 서버를 PublicSubnet-2a에 생성합니다.
외부에서 접속이 가능해야 하므로 Source 0.0.0.0/0에서 ssh 접속이 가능하도록 Inbound Rule을 설정하였습니다. 편의상 0.0.0.0/0으로 했지만, 접속을 허용한 IP를 지정하는 것이 안전합니다.
접속 테스트
아래와 같은 경로 Web 서버에 접속하였습니다. ping 테스트를 한 결과 NAT Gateway를 통해 인터넷 통신이 되는 것을 확인할 수 있습니다.
PC -> Bastion 서버 (Public IP) -> Web 서버 (Private IP)
[ec2-user@ip-10-10-11-189 ~]$[ec2-user@ip-10-10-11-189 ~]$ ping www.google.comPING www.google.com (172.217.31.132) 56(84) bytes of data.64 bytes from nrt20s08-in-f4.1e100.net (172.217.31.132): icmp_seq=1 ttl=44 time=30.9 ms64 bytes from nrt20s08-in-f4.1e100.net (172.217.31.132): icmp_seq=2 ttl=44 time=30.6 ms64 bytes from nrt20s08-in-f4.1e100.net (172.217.31.132): icmp_seq=3 ttl=44 time=30.6 ms64 bytes from nrt20s08-in-f4.1e100.net (172.217.31.132): icmp_seq=4 ttl=44 time=30.5 ms64 bytes from nrt20s08-in-f4.1e100.net (172.217.31.132): icmp_seq=5 ttl=44 time=30.6 ms64 bytes from nrt20s08-in-f4.1e100.net (172.217.31.132): icmp_seq=6 ttl=44 time=30.5 ms^C--- www.google.com ping statistics ---6 packets transmitted, 6 received, 0% packet loss, time 5006msrtt min/avg/max/mdev = 30.563/30.677/30.952/0.130 ms[ec2-user@ip-10-10-11-189 ~]$