AWS 환경 구성 : VPC, Subnet, Internet Gateway, NAT Gateway, Bastion, Routing Table
🔒 VPC
- 개발 환경과 운영 환경용 VPC를 따로 생성한다.
- 각 VPC 안에 필요한 subnet을 생성하게 된다.
👥 Subnet
- 각 VPC 내부에 public subnet 2개, private subnet 2개씩 생성한다.
- 각 subnet은 다른 가용영역에 생성하여 안정성을 확보한다.
- 필요 시 용도에 따라 subnet을 여러 개 생성하여 관리를 보다 용이하게 할 수 있다.
- 예) 데이터베이스를 위한 private subnet 따로 생성
🚪 Internet Gateway
- 클라이언트의 접속 경로가 된다.
- 인터넷 게이트웨이는 public subnet에만 연결이 된다.
🕳️ NAT Gateway
- private subnet 내 리소스에서 외부로부터 필요한 파일 및 데이터를 가져오기 위해 Nat Gateway를 설치
- private subnet의 라우팅 테이블에 NAT gateway를 연결한다.
✔️ NAT 사용 목적
- IP 주소 절약
- NAT를 이용하면 하나의 공인 IP 주소를 사용하여 여러 대의 호스트가 인터넷에 접속할 수 있다.
- 부족한 공인 IP 절약
- 예) 인터넷 공유기에 NAT 탑재 → 인터넷 공유기에 여러 PC 연결하여 사용
- 보안
- IP를 숨길 수 있는 기능이 있다.
- 라우터 외부로 트래픽이 나갈 때는 사설 IP가 공인 IP 주소로 바뀐다.
- 공격자가 라우터 안쪽의 사설 IP를 모름 → 공격이 어려워져 내부 네트워크 및 호스트 보호 가능
✔️ NAT 동작 원리
🕯️ Bastion
- 인터넷 망에서 프라이빗 리소스에 접근하기 위해 거쳐가는 프록시 서버의 역할을 한다.
- 개발 과정에서 개발자가 프라이빗 서브넷에 속한 리소스에 접근할 수 있게 해주는 통로라고 볼 수 있다.
- EC2에서 Bastion Host 생성
- public subnet에 배치하며, 특정 IP 대역에서만 접근 가능하도록 보안그룹의 인바운드 규칙을 설정한다.
🏓 Routing Table
- public subnet을 위한 routing table, private subnet을 위한 routing table 두 가지를 생성한다.
- VPC 내 IP를 제외한 나머지 ip들은 인터넷 게이트웨이로 보내도록 편집한다. 즉, public subnet의 라우팅 테이블에만 internet gateway를 추가하였다.
- private subnet에는 NAT Gateway와 Bastion을 연결한다.
rt-public |
---|
대상: Internet Gateway |
연결: public subnet |
rt-private |
---|
대상: NAT, Bastion |
연결: private subnet |