본문 바로가기

Cloud Providers/AWS

[AWS]Public, Private subnet과 VAT, internet gateway

AWS.. 너무 어렵다.. 테라폼을 이용하여 인프라 구축을 하기 위해서 AWS를 잘 모르기에 다시 공부하러 왔다.

 

아키텍처를 보자.

보안을 강화하기 위해 보통 웹 서버는 퍼블릭 서브넷에 두고 데이터베이스 서버는 프라이빗 서브넷에 둔다. 근데 직접 VPC를 구성하다 보니 의문이 든다. 뭐가 다를까?

 

차이점

  • 퍼블릭: 인터넷에 바로 아웃바운드 트래픽을 전송할 수 있음
  • 프라이빗: NAT 게이트웨이(퍼블릭 서브넷에 있는)를 통해 인터넷에 액세스 가능

그저 서브넷을 사용하는 사람입장에서는 프라이빗 서브넷이 바로 인터넷에 액세스 불가능하다는 것 정도는 알고 있다. 그런데 인프라를 구성해야 하는 입장에서는 좀 더 알아야 한다. 차이점은 극명하다.

 

서브넷이라는 것은 VPC의 IP 주소 범위로써, 생성된 각 서브넷은 자동으로 VPC의 기본 라우팅 테이블에 연결된다. 즉, 무조건 서브넷 외부로 나가는 아웃바운드 트래픽에 대해 허용된 경로를 지정하는 라우팅 테이블이 연결되어 있어야 한다는 것이다. 여기서 라우팅 테이블은 트래픽을 처리하여 전달해주는 경로의 모음이라 생각하면 된다.

 

프라이빗과 퍼블릭 서브넷의 차이는 라우팅 테이블에서 온다. 라우팅 테이블이 IGW(Internet Gateway)로 연결되어 있으면 퍼블릭, NAT gateway로 연결되어 있으면 프라이빗이다.

이렇게 하는 이유는 다음과 같다.

 

퍼블릭 서브넷에 있는 인스턴스들, 예를 들어 EC2는 각자 고유의 IP를 가지고 인터넷에 액세스한다.액세스 한다. 그러나 프라이빗 서브넷에 있는 인스턴스들, 예를 들어 RDS는 NAT gateway의 IP를 가지고 인터넷에 액세스 한다. 이렇게 하면, 프라이빗 서브넷에 있는 인스턴스들은 인터넷에 원활히 접속할 수 있지만, 인터넷에서 프라이빗 서브넷에 있는 인스턴스들의 IP주소를 알 수 없으므로 보안에 있어 훌륭하다. 이때 NAT IP는 EIP(Elastic IP)라는 탄력적 IP 주소를 발급받아 따로 붙여줘야 한다.

 

이러한 개념들을 확실히 알아야 인프라 구성을 할 수 있고, 그것을 terraform으로 옮길 수 있다.

 

출처

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_Scenario2.html

 

퍼블릭 및 프라이빗 서브넷이 있는 VPC(NAT) - Amazon Virtual Private Cloud

퍼블릭 및 프라이빗 서브넷이 있는 VPC(NAT) 이 시나리오의 구성에는 퍼블릭 서브넷과 프라이빗 서브넷이 있는 Virtual Private Cloud(VPC)가 포함됩니다. 이 시나리오는 백엔드 서버에 대한 공개적인 액

docs.aws.amazon.com

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/configure-subnets.html

 

VPC의 서브넷 - Amazon Virtual Private Cloud

VPC의 서브넷 서브넷은 VPC의 IP 주소 범위입니다. 지정된 서브넷으로 AWS 리소스를 시작할 수 있습니다. 인터넷에 연결되어야 하는 리소스에는 퍼블릭 서브넷을 사용하고, 인터넷에 연결되지 않는

docs.aws.amazon.com