본문 바로가기
Server&Infra/Network

AWS VPC NAT Instance 구성하기

by Deoking 2023. 4. 20.
반응형

Overview

AWS에서 VPC를 설계할 때 NAT의 사용은 필수적입니다. 일반적으로는 NAT Gateway 서비스를 활용하여 비교적 간단하게 외부 통신망과 연결하지만 비용이 적지 않게 발생될 수 있습니다.
반면, NAT 인스턴스는 EC2 인스턴스를 NAT용으로 설정해 사용하는 방식으로 비용을 크게 줄일 수 있는 장점이 있습니다. 하지만 장점이 있으면 단점도 있기마련이기 때문에 적절히 상황에 맞게 활용하면 좋을 것 같습니다.

이제부터 EC2 인스턴스를 활용한 NAT를 구성해 보겠습니다.

 


1. NAT Instance vs NAT Gateway

상세한 비교는 AWS 사용설명서를 참고하고,

 

NAT 게이트웨이 및 NAT 인스턴스 비교 - Amazon Virtual Private Cloud

NAT 게이트웨이 및 NAT 인스턴스 비교 NAT 인스턴스와 NAT 게이트웨이의 차이점을 세부적으로 요약하면 다음과 같습니다. NAT 게이트웨이는 더 나은 가용성과 대역폭을 제공하고 관리에 소요되는 작

docs.aws.amazon.com

큰 특징들은 아래와 같습니다.

NAT Instance NAT Gateway
EC2 인스턴스 AWS 제공 서비스
장애 직접 조치 고가용성 보장(안정성)
인스턴스 성능에 영향 받음 NAT 트래픽에 최적화
보안그룹 영향 받음 보안그룹 영향 받지않음
Bastion Host 겸용 가능 Bastion Host 겸용 불가능

 

2.  NAT 인스턴스 구축

public/private 서브넷 및 인터넷 케이트웨이 등을 포함한 VPC 인프라가 구축된 상태를 기준으로 설명합니다.
VPC에 대한 인프라 구축이 필요하신 분은 아래 글 참고.

 

AWS VPC 인프라 구축(Subnet, Routing, Internet Gateway)

Overview 본 글에서는 VPC 네트워크를 AWS 리소스로 구성하는 방법에 대해 기술합니다. 1. VPC(Virtual Private Cloud) VPC는 사용자가 정의하는 aws 계정 사용자 전용 가상의 네트워크입니다. 사용자는 자기가

deoking.tistory.com

 

 

가장먼저,
NAT 인스턴스는 EC2 인스턴스를 활용하기 때문에 새 인스턴스를 만들어줍니다.

 

'더 많은 AMI 찾아보기'  클릭 후 'NAT'라고 검색하면 NAT 전용 이미지들이 검색됩니다. 가장 위에 있는 이미지를 선택합니다.

 

알맞은 인스턴스 유형과 사용할 키페어를 선택합니다.
그리고 중요한 네트워크 설정, 포함될 VPC를 선택하고 서브넷은 인터넷 게이트웨이가 연결되어 있는 퍼블릭 서브넷을 선택해 줍니다. 추가로 보안그룹을 설정할 수 있는데, 저 같은 경우 외부에서 SSH 22번 포트를 허용하는 인바운 규칙을 넣었습니다.

 

다음으로,
NAT 인스턴스는 소스 또는 대상이 그 자체가 아닐 때에도 트래픽을 송수신할 수 있어야 하기 때문에 소스/대상 확인을 중지한다.

 

이제  NAT 인스턴스에 탄력적 IP 주소 할당합니다. 탄력적 IP 주소는 인터넷에서 연결 가능한 퍼블릭 IPv4주소로 해당 인스턴스의 IP주소를 고정 IP주소로 만들어줍니다. 간혹 인스턴스를 재부팅하거나 교체하는 경우 IP 주소가 바뀌기 때문에 이를 방지하기 위해 탄력적 IP를 사용합니다.

'VPC > 탄력적 IP > 작업'을 클릭하고 '탄력적 IP 주소 연결'을 클릭합니다.

 

리소스 유형으로 인스턴스를 선택하고, 인스턴스는 위에서 생성한 NAT 인스턴스를 선택합니다. 그리고 연결!

 

이제 마지막으로 라우팅 테이블 설정이 남았습니다. 
private 서브넷에서 발생되는 모든 트랙픽(0.0.0.0/0)에 대해 NAT 인스턴스를 향하도록 합니다.

 

 


Conclusion

요금만을 고려하면 NAT 인스턴스가 좋은 선택일 수도 있지만 성능 및 유지관리 있어 NAT 게이트웨이가 훨씬 뛰어나기 때문에 속단하기에는 무리가 있습니다.

NAT 인스턴스의 경우, 인스턴스 자체를 관리하는데 드는 비용(Auto scaling, multiple AZ 등)이 발생하고, 갑작스럽게 인스턴스에 장애가 발생할 수도 있으며 이때 해당 서브넷의 인터넷 접근 자체가 마비될 수 있습니다. 반면 NAT Gateway는 고가용성을 보장하며 유지관리 측면에서도 훨씬 유리합니다.

결론적으로 정답은 없기 때문에 두 방법 모두 잘 인지하고 있다가 적절한 시점 혹은 환경에 활용할 수 있는 게 중요할 것 같습니다.



본 글은 개인적 기록을 목적으로 작성하였습니다.
작게나마 도움 되셨기를 바라며, 더 좋은 의견이나 잘못된 부분이 있다면 댓글을 남겨주세요~

 

반응형

댓글