본문 바로가기
Infra, Cloud/AWS

[AWS] Private Subnet과 NAT Gateway 사용하기

by J4J 2022. 10. 31.
300x250
반응형

안녕하세요. J4J입니다.

 

이번 포스팅은 Private Subnet과 NAT Gateway 사용하는 방법에 대해 적어보는 시간을 가져보려고 합니다.

 

 

 

Private Subnet 사용 이유

 

Private Subnet은 외부에서 해당 Subnet영역에 속한 호스트들에 접근하지 못하도록 도와주는 네트워크 영역입니다.

 

즉, 동일 VPC 내부에 있는 호스트들끼리만 서로 접근이 가능합니다.

 

그렇기 때문에 Private Subnet을 사용하게 되면 작업하는 PC에서 서버의 SSH 접속조차 허용되지 않습니다.

 

 

 

이처럼 Private Subnet을 사용하면 발생되는 여러 불편한 점들이 있겠지만 그래도 Private Subnet을 사용하는 가장 큰 이유는 보안 때문입니다.

 

VPC 외부에 있는 모든 네트워크 영역에서 Private Subnet안에 배치되어 있는 호스트들에 절대적으로 접근할 수 없기 때문에 서비스를 위해 만들어진 리소스들이 안전하게 보관될 수 있습니다.

 

 

 

NAT Gateway 사용 이유

 

NAT Gateway는 네트워크 주소 변환을 위해 사용됩니다.

 

그리고 Private Subnet을 사용하게 될 경우 NAT Gateway 사용이 필요하게 됩니다.

 

Private Subnet 영역을 사용하게 될 경우 외부 인터넷 네트워크와 방화벽에 막혀있어 서로 통신이 불가하게 됩니다.

 

즉, 서버에서 인터넷이 필요한 경우 (파일 설치 등)가 분명히 존재하는데 이런 상황을 해결할 수 있도록 도와주는 것이 NAT Gateway입니다.

 

 

 

해결을 하는 방법은 다음과 같습니다.

 

  • NAT Gateway를 생성하여 인터넷 네트워크로 전달되도록 라우팅 테이블 설정
  • Private Subnet에서 NAT Gateway를 바라보도록 라우팅 테이블 설정

 

 

 

위와 같이 설정을 하게 되면 Private Subnet 영역 안에 있는 서버들의 인터넷 접속 요청 IP들은 모두 NAT Gateway로 전달될 것이고, NAT Gateway에서는 이 모든 요청들이 인터넷 네트워크로 전달되며 Private Subnet → 인터넷으로의 단방향 처리가 가능하게 됩니다.

 

 

반응형

 

 

Private Subnet / NAT Gateway 생성 방법

 

[ 1. VPC 접속 ]

 

VPC 접속

 

 

 

[ 2. 서브넷 생성 ]

 

좌측 메뉴에서 서브넷을 선택한 뒤 우측에 서브넷 생성 버튼을 클릭해줍니다.

 

서브넷 생성

 

 

 

[ 3. 서브넷 생성 정보 입력 ]

 

먼저 사용할 VPC를 선택해줍니다.

 

그리고 서브넷 이름, 가용 영역, CIDR 블록을 순서대로 자유롭게 작성하여 채워주시면 됩니다.

 

모든 정보를 입력했다면 서브넷 생성 버튼을 클릭해주시면 됩니다.

 

서브넷 생성 정보 입력

 

 

 

[ 4. NAT Gateway Elastic IP 주소 할당 ]

 

좌측 메뉴에서 탄력적 IP를 선택한 뒤 우측에 있는 탄력적 IP 주소 할당 버튼을 클릭해줍니다.

 

탄력적 IP 주소 할당

 

 

 

따로 부가적인 정보 입력 없이 바로 아래에 있는 할당 버튼을 클릭해주시면 됩니다.

 

탄력적 IP 주소 생성

 

 

 

만들어진 EIP에는 구분하기 쉽게 이름 옆에 수정 버튼을 클릭한 뒤 이름을 변경하도록 하겠습니다.

 

탄력적 IP 주소 이름 변경

 

 

 

[ 5. NAT Gateway 생성 ]

 

좌측 메뉴에 NAT 게이트웨이를 선택한 뒤 우측에 있는 NAT 게이트웨이 생성 버튼을 클릭해줍니다.

 

NAT Gateway 생성

 

 

728x90

 

 

[ 6. NAT Gateway 정보 입력 ]

 

이름은 자유롭게 입력해줍니다.

 

서브넷은 인터넷이 연결되어 있는 Public Subnet 아무거나 선택해주면 됩니다.

 

저는 기본적으로 제공해주는 서브넷을 선택했지만 Private Subnet처럼 새롭게 구성해서 등록해줘도 무방합니다.

 

그리고 연결 유형은 퍼블릭, IP 할당은 위에서 만든 EIP를 선택해줍니다.

 

모든 정보 입력이 끝났으면 아래에 있는 NAT 게이트웨이 생성 버튼을 클릭해줍니다.

 

NAT Gateway 정보 입력

 

 

 

[ 7. 라우팅 테이블 생성 ]

 

좌측 메뉴에 있는 라우팅 테이블을 선택한 뒤 우측에 있는 라우팅 테이블 생성 버튼을 클릭해줍니다.

 

라우팅 테이블 생성

 

 

 

[ 8. 라우팅 테이블 정보 입력 ]

 

이름은 자유롭게 입력, VPC는 Private Subnet을 생성한 VPC로 선택해주시면 됩니다.

 

정보 입력이 다 되었다면 라우팅 테이블 생성 버튼을 클릭하여 생성해주시면 됩니다.

 

라우팅 테이블 정보 입력

 

 

 

[ 9. 라우팅 편집 ]

 

라우팅 테이블을 생성한 뒤 아래처럼 라우팅 편집 탭에서 라우팅 편집 버튼을 클릭해줍니다.

 

라우팅 편집

 

 

 

그리고 라우팅 추가 버튼을 클릭하여 대상 정보에서 CIDR을 입력하고 NAT 게이트웨이를 선택하여 위에서 만든 NAT 게이트웨이를 리스트에 골라주시면 됩니다.

 

정보를 모두 입력했다면 변경 사항 저장 버튼을 클릭해줍니다.

 

라우팅 추가

 

 

 

※ 만약 Public Subnet도 같이 생성하시는 분이라면 public용 routing table도 생성해줘야 하는데 이때는 라우팅 편집에서 인터넷 게이트웨이를 선택해주시면 됩니다.

 

 

 

[ 10. 서브넷 연결 ]

 

이번엔 서브넷 연결 탭을 클릭한 뒤 서브넷 연결 편집 버튼을 클릭해줍니다.

 

서브넷 연결 편집

 

 

 

위에서 만든 Private Subnet을 선택한 뒤 연결 저장을 클릭해줍니다.

 

연결 저장

 

 

 

[ 11. Private Subnet 라우팅 테이블 확인 ]

 

위의 모든 과정이 완료되었다면 만들어둔 Private Subnet의 라우팅 테이블을 확인했을 때 다음과 같이 local을 제외하고는 NAT Gateway로 연결되도록 설정되어 있어야 합니다.

 

적용 확인

 

 

 

NAT Gateway 연결 여부도 확인 완료되었다면 필요한 인스턴스를 생성할 때 서브넷 영역을 Private Subnet으로 선택해서 생성해주시면 됩니다.

728x90
반응형

댓글