본문 바로가기

Programming/Cloud

[AWS]VPC 생성하기(2) - NAT Gateway

안녕하세요. 잇킹 시도르입니다.

저번 글에 이어서 VPC 생성을 계속 진행해 보겠습니다.

 

1번 글까지의 진행 상태입니다. VPC와 퍼블릭 서브넷, 프라이빗 서브넷의 IP 대역과 가용 영역 및 이름을 지정했습니다.

다음 옵션에는 NAT gateway와 Endpoints가 있습니다. Endpoints는 Wizard에서 생성하지 않고 추후 생성하면서 내용 추가를 하겠습니다.

 

4. NAT Gateway

▲VPC Wizard에서 NAT gateway 생성 항목

NAT Gateway 생성 항목입니다. Elastic IP라고 해서 탄력적 IP를 생성 후에 연결하도록 되어 있습니다. 그런데 요금 내용을 보니 이건 프리티어에서도 요금이 발생하는 것 같습니다. 그럼 우측 끝에 있는 Use a NAT instance instead를 클릭해서 NAT gateway에서 전환해줍니다. rates apply를 확인해보니 instance는 프리티어에서 사용 가능한 것으로 보여서입니다. 즉 프리티어 기간에는 무료라는 것 같은데 맞으려나...

 

<NAT Gateway와 NAT Instance의 비교입니다.>

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/vpc-nat-comparison.html

 

▲Use a NAT Instance instead 선택 시 변경된 내용

NAT instance로 변경하게 되면 인스턴스의 스펙을 정하게 됩니다. 저는 가장 기본 옵션으로 t2.nano를 선택했습니다. 참고로 EC2 인스턴스도 동일한 유형으로 인스턴스는 동일합니다.

t2.nano가 어느 정도 성능인지는 해당 링크를 참조해주세요. https://aws.amazon.com/ko/ec2/instance-types/

Key pair name은 콤보박스에서 선택했습니다.

 

NAT Gateway의 역할

이제 NAT Instance도 지정했는데, VPC에서 어떤 역할을 하고 있는지는 알아야겠죠?

먼저 퍼블릭 서브넷과 프라이빗 서브넷의 차이점부터 알아야 합니다. 이 둘의 차이점은 외부 인터넷과 접근이 가능한지 여부입니다. 퍼블릭 서브넷은 외부 인터넷과 인그레스(Ingress) 및 이그레스(Egress)가 가능합니다. 반면에 프라이빗 서브넷은 외부 인터넷과 인그레스 및 이그레스가 불가능하죠.

그럼 프라이빗 서브넷은 그냥 단절된 채로만 사용해야 하는 걸까요?

물론 보안상 그런 곳도 있을 수 있습니다.(제가 속한 프로젝트입니다....) 프라이빗 서브넷에 애플리케이션 서버를 위치시킨다고 할 때 펌웨어나 파이썬 등의 개발언어 라이브러리 업그레이드가 필요할 수 있습니다. 그럴 때는 어떻게 해야 할까요? 외부 인터넷과 단절이라면 직접 파일 찾아서 자기 로컬에 다운로드하고 그 파일을 다시 서버에 올리고 설치하고를 반복해야 합니다. 사실 제 쪽에서는 이 상황도 꽤 이슈이긴 합니다....

이런저런 이유로 프라이빗 서브넷에서 이그레스가 필요할 상황은 많을 겁니다. 인그레스는 안 되는 용도로 프라이빗을 만들었을 테니깐요. 이렇게 외부 인터넷으로 이그레스가 필요할 때 어떻게 해야 할까요?

 

이런 배경 상황이 바로 NAT gateway의 용도입니다. NAT는 퍼블릭 서브넷에 위치시키고 프라이빗 서브넷은 NAT만 바라보게 설정하는 거죠. 그리고 NAT는 퍼블릭 서브넷을 통해 외부 인터넷과 연결할 수 있습니다.

▲NAT Gateway의 역할

그림에서 보는 것처럼 프라이빗 서브넷은 외부 인터넷뿐만 아니라, AWS 자체 서비스와 접속 시에도 NAT Gateway를 통하게 됩니다. 

 

오늘은 NAT Gateway의 용도에 대해서 알아보았습니다. 다음 글에서 나머지 설정을 진행하도록 하겠습니다.

 

이상입니다!!!