이전 포스팅에서 Public Subnet, IGW, 라우팅 테이블을 생성까지 마쳤습니다. 이번에는 Private Subnet 과 외부 통신을 위한 NAT gateway을 생성해보겠습니다.
📌 가상 네트워크 구축 (Private Subnet)
Private Subnet은 외부에서 접근이 불가능한 대역으로, 퍼블릭 액세스가 필요 없는 DB 와 같은 리소스를 보호하기 위해 사용됩니다. 이 때, NAT 게이트웨이를 이용하여 내부에서 외부로 접근할 수 있도록 만들어줄 수 있습니다.
✔ Private subnet 생성
1. 서브넷 생성
AWS 콘솔 창 - VPC 검색 - 왼쪽 카테고리 서브넷 선택 - 서브넷 생성 버튼 클릭
2. VPC 선택
대역을 나눌 VPC 선택
3. 서브넷 설정
- 서브넷 이름 설정
- 가용 영역 설정 (기존과 동일하게 하는 것이 좋음)
- ★ 리전별로 사용할 수 있는 EC2 인스턴스가 다르니 주의
- IPv4 CIDR 블록(또는 IP 주소 범위) 설정
- 태그 추가
- 서브넷 생성 버튼 클릭
✔ NAT Gateway 생성
NAT Gateway 은 는 외부 인터넷과 연결해주는 역할이기 때문에 Public Subnet 안에 만들어야 합니다.
1. NAT gateway 생성
AWS 콘솔 창 - VPC 검색 - 왼쪽 카테고리 서브넷 선택 - 서브넷 생성 버튼 클릭
2. NAT gateway 설정
- NAT 게이트웨이 이름 입력
- 주의 : 서브넷은 Public Subnet을 선택하여야 합니다.
- 탄력적 IP (EIP)를 할당해줍니다.
- 주의 : NAT gateway는 EIP가 연결되어 동작하고 비용이 큰 서비스이기 때문에 학습 이후 지우는 것을 권장합니다.
태그를 추가하고 NAT gateway 생성 버튼을 클릭합니다.
✔ NAT Gateway - 라우팅 테이블 - IGW와 연결
NAT Gateway 를 라우팅 테이블과 IGW 에 연결하여 외부 네트워크에 접속할 수 있도록 합니다.
1. Private 용 라우팅 테이블 생성
AWS 콘솔 창 - VPC 검색 - 왼쪽 카테고리 라우팅 테이블 선택 - 라우팅 테이블 생성 버튼 클릭
이름을 지정 하고 VPC를 선택 후 라우팅 테이블 생성 버튼을 클릭합니다.
다음과 같이 두개의 라우팅 테이블이 구성됩니다. (Public 용, Private 용)
2. 라우팅 테이블에 Private 서브넷 연결
라우팅 테이블 선택 - 서브넷 연결 탭 - 서브넷 연결 편집 버튼 클릭
Private Subnet 선택 후 연결 저장 버튼 클릭
3. 라우팅 편집
라우팅 테이블 선택 - 라우팅 탭 - 라우팅 편집 버튼 클릭
본 라우팅 테이블은 Private Subnet에서 NAT gateway를 통해 외부 네트워크와 통신하기 위해 생성된 테이블입니다. 따라서 모든 대역 0.0.0.0/0 에서 NAT 게이트웨이를 통해 외부와 통신할 수 있도록 해줍니다.
대상을 0.0.0.0/0 으로 지정하고 NAT 게이트웨이를 선택합니다.
앞서 생성했던 NAT Gateway를 선택하여 변경 사항을 저장합니다.
✔ 연결 테스트
EC2 인스턴스를 새로 생성하여 Private Subnet에 접속할 수 있는지 확인하겠습니다.
EC2를 한번도 생성해보지 않으신 분이라면 이전 포스팅을 참고해주세요
1. VPC 선택
Private Subnet 을 생성했던 VPC를 선택합니다.
2. 서브넷 선택
Private Subnet 선택
3. 퍼블릭 IP 자동 할당 비활성화
퍼블릭 IP 자동 할당을 비활성화 해줍니다.
4. 보안 그룹 수정
Public Subnet 대역에 있는 EC2 에서 Private subnet 대역으로 ping을 날려서 연결을 확인할 것이기 때문에 모든 대역에 대한 ICMP 유형 규칙을 추가해줍니다.
다른 설정 값들은 기본으로 설정하고 EC2 인스턴스를 새로 생성합니다. (AMI는 Ubuntu로 하였습니다.)
EC2를 생성하면 다음과 같이 프라이빗 주소가 할당됩니다. 이 프라이빗 주소를 복사합니다.
💡 Private Subnet은 기본적으로 외부와의 통신이 자유롭지 않습니다.
따라서, Private Subnet 안의 EC2 인스턴스에 대한 초기 환경 설정을 위해 먼저, Public Subnet으로 설정 및 탄력적 IP를 할당받아 EC2 설정을 완료하고, 이후 Private Subnet으로 변경하는 방법도 사용합니다. (보안상 좋지는 않음)
5. Public Subnet 대역의 EC2 인스턴스로 Ping 날리기
Public Subnet 대역에 있는 EC2에 접속하여 Private Subnet 대역의 EC2 프라이빗 주소로 ping을 보냅니다.
ping '프라이빗 IP 주소'
다음과 같이 Private Subnet 대역으로 ping이 정상적으로 날아가는 것을 확인합니다.