AWS 구성에서 위의 사진과 같이 Public Zone과 Private Zone으로 나누어서 인프라를 구축한다면 Public Zone에는 Internet Gateway가 있어 외부와 통신이 가능하지만, Private Zone은 사설존이기 때문에 Private 존에 있는 서버들은 외부와 통신이 불가능 합니다.
Private Zone에 있는 서버가 외부와 통신하기 위한 방법
- NAT Gateway를 이용하여 Private Zone있는 서버가 외부와 통신 가능하도록 설정
- NAT Instance를 이용하여 Private Zone에 있는 서버가 외부와 통신 가능하도록 설정
1번 방법과 2번의 방법은 장단점
1번 방법의 경우 AWS에서 관리를 하기 때문에 NAT 인스턴스보다 신경을 덜 써도 되며, 고가용성으로 구성이 되기 때문에 장애 발생 확률이 줄어들고, 대역폭의 경우에도 NAT 인스턴스의 경우에는 인스턴스 타입에 따라 달라지지만 NAT Gateway는 최대 100Gbps까지 지원합니다. 하지만 최대의 단점은 NAT 인스턴스에 비해 비용이 비싸다는 것입니다. NAT Gateway는 서울 리전 기준 시간당 $0.059로 한달을 사용한다면 약 $43 정도로 5만원 이상의 비용이 나오게 됩니다.
NAT 인스턴스 구축
- VPC 대역 : 10.0.0.0/16
- 서브넷 : 10.0.1.0 ~ 10.0.6.0
VPC 생성
10.0.0.0/16 대역의 VPC를 생성합니다.
서브넷 설정
위와 같이 서브넷을 10.0.1.0/24 ~ 10.0.6.0/24 대역을 반복하여 생성합니다.
- 10.0.1.0/24 -> Public Zone A
- 10.0.2.0/24 -> Public Zone B
- 10.0.3.0/24 -> Private Zone A
- 10.0.4.0/24 -> Private Zone B
- 10.0.5.0/24 -> Data Private Zone A
- 10.0.6.0/24 -> Data Private Zone B
인터넷 게이트웨이 설정
새로 생성한 VPC에는 인터넷 게이트웨이가 없기 때문에 Public Zone에 연결할 인터넷 게이트웨이를 생성합니다.
생성한 인터넷 게이트웨이를 라우팅 테이블에 등록합니다.
- 작업 -> VPC에 연결
(VPC를 만들때 생성된 기본 라우팅 테이블에 추가를 하거나, Public Zone에 사용할 라우팅 테이블을 생성하여 연결합니다.)
라우팅 편집 클릭
생성한 IGW(인터넷 게이트웨이) 연결
- 대상 : 0.0.0.0/0 , IGW
라우팅 테이블 생성
위에서 기본으로 생성 된 라우팅 테이블은 Public Zone에서 사용했기 때문에 Private Zone에서 사용할 라우팅 테이블을 생성하여 줍니다.
서브넷 연결
Public Zone의 라우팅 테이블
Private Zone의 라우팅 테이블에는 아래 4개의 서브넷을 추가하여 줍니다.
Private Zone을 각각 나누어 더 세밀하게 라우팅을 나눌수도 있지만 여기서는 Public / Private Zone으로만 나누어서 설정을 진행하겠습니다.
- 10.0.3.0/24 -> Private Zone A
- 10.0.4.0/24 -> Private Zone B
- 10.0.5.0/24 -> Data Private Zone A
- 10.0.6.0/24 -> Data Private Zone B
NAT 인스턴스 생성
커뮤니티 AMI 이용
NAT 인스턴스는 간단하게 구성을 하려면 커뮤니티에 제공되어 있는 AMI를 사용하여 설치를 하는 방법이 있습니다.
네트워크 설정 NAT 인스턴스는 외부와 통신을 해야하기 때문에 Public 서브넷에 위치합니다.
NAT 인스턴스 직접 구성
커뮤니티 AMI를 사용하지 않고 직접 구성을 하는 방법은 Linux를 기준으로 OS를 설치 후 아래와 같이 세팅을 해주시면 됩니다.
## /etc/sysctl.conf에 아래 추가
net.ipv4.ip_forward=1
## Iptables 이용 시 MASQUERADE 추가
-A POSTROUTING -s 10.0.0.0/16 -o ens5 -j MASQUERADE
통신 확인
NAT 인스턴스에서 Private Zone 서버 ICMP 통신 확인 (정상)
Private Zone에서 외부와 통신 여부 확인 (통신 불가능)
소스/대상 확인 중지
인스턴스에서는 기본적으로 출발지와 도착지를 비교하여 변경이 이루어질 경우 DROP 시키는 소스/대상 확인 옵션이 켜져있는데 해당 옵션을 중지해야 NAT 인스턴스로써의 역할이 가능합니다.
- NAT 인스턴스 클릭 -> 작업 -> 네트워킹 -> 소스/대상 확인 변경
- 소스 / 대상 확인 변경 중지
NAT 인스턴스 방화벽 설정
소스/대상 확인 옵션을 중지하였으면 NAT 인스턴스가 다른 서브넷의 서버의 통신을 받을 수 있도록 10.0.0.0/16 대역을 방화벽에서 Open해 줍니다.
통신 확인2
위의 설정 이후 정상적으로 네이버와 통신이 되는 것을 확인할 수 있습니다.
참고문서
'Newb > AWS' 카테고리의 다른 글
AWS 콘솔 로그인 시 Slack으로 알림 받기 (2) | 2023.09.07 |
---|---|
S3 미리 서명된 URL(Pre-signed url) 사용하기 (0) | 2023.08.28 |
RDS 파라미터 그룹 설정 변경 시 재부팅이 필요한 항목 (0) | 2022.11.04 |
AWS 계정 MFA 분실 시 대처방법 그리고 공증.. (1) | 2022.04.25 |
EC2 인스턴스 유형 이름 네이밍 (0) | 2022.04.20 |