Tech Blog of Pinomaker

VPC가 가지고 있는 Resource에 대해 정리를 해보자

 

1. Subnet(서브넷)

 

서브넷의 일반적이 개념은 네트워크 영역을 부분적으로 나눈 망으로 정의할 수 있으며, 클라우드 환경의 VPC에서도 서브넷을 이용하여 네트워크를 분리하여 나눌 수 있다.

 

서브넷의 IP 대역은 VPC의 IP 대역에 속해 있어야하며, 서브넷은 1개의 가용 영역에 종속되어야한다. AWS에서는 서브넷에 할당할 수 있는 IP 대역에서 미리 예약 되어있는 주소가 잇기에, 이런 예약된 주소들은 AWS Resource에 할당 할 수 없다.

 

 

Private Subnet과 Public Subnet

서브넷은 Publici Subnet과 Private Subnet으로 나눌 수 있는 데, Public Subnet은 공인 네트워크의 개념이기에 외부 인터넷 구간과 직접적으로 통신을 할 수 잇는 공공 네트워크이지만, Private Subnet은 사설 네트워크 개념으로 외부 인터넷 구간과 직접적인 통신을 할 수 없는 폐쇄적인 네트워크다.

 

Public Subnet과 Private Subnet 도식화

 

 

2. 가상 라우터와 라우팅 테이블

 VPC를 생성하게 되면 자동으로 가상 라우터가 생성이 된다. 이 가상 라우터는 라우터 테이블을 가지고 있어서 목적지 네트워크로 라우팅하여 통신을 하게 된다.

라우터 도식화

 위의 이미지를 참고하면, 10.0.0.0/16 대역의 VPC를 생성하게 되면 자동으로 가상 라우터가 생성이 된다. 가상 라우터는 최초에 기본 라우팅 테이블을 가지고 있으며, 로컬 네트워크에 대한 라우팅 경로만 잡혀있다. 여기서 로컬 네트워크는 VPC의 자체 대역으로 VPC 내에 생성된 서브넷은 라우팅 테이블의 로컬 네트워크에 의해 통신이 가능해진다.

 

또한 서브넷 별로 라우팅 테이블을 매핑을 시켜줄 수도 있으며, 기본 테이블을 사용할 수도 있지만 새로운 라우팅 테이블을 생성하고 매핑하여 서브넷 당 개별적인 라우팅 테이블을 가질 수도 있다.

 

 

3. 인터넷 게이트웨이

 

인터넷 게이트웨이는 VPC와 인터넷 간의 논리적인 연결이다. VPC에서 인터넷 구간으로 나가는 관문으로 생각하면 되며, 이러한 인터넷 게이트웨이는 VPC 당 1개만 연결이 가능하다. 

 

인터넷 게이트웨이를 통하여 외부 인터넷 구간으로 통신할 수 있는 대상은 Public IP를 사용하는 Public Subnet 내의 자원이다. 이러한 Public Subnet은 자신의 라우팅 테이블에 외부 인터넷 구간으로 나가는 타깃을 인터넷 게이트웨이로 지정을 해줘야한다.

 

아래의 그림을 보면 Public Subnet 내의 인스턴스가 외부 인터넷 구간과 통신하기 위하여 인터넷 게이트웨이가 관문이 되고 이를 통하여 통신이 되고 있다. 인터넷 게이트웨이는 양방향으로 연결을 지원하기에 외부 인터넷 구간에서 Public Subnet의 Public IP로도 정상적인 통신이 가능하다.

 

4. NAT 게이트웨이

NAT 게이트웨이도 인터넷 게이트웨이처럼 외부 인터넷 구간과 연결하는 관문 역할을 하고 있지만 NAT은 Network Address Translation의 약자로 네트워크 주소인 IP 주소르 변환해주는 기술이다. 

 

인터넷 공간은 Public Network 구간으로 Public IP를 통해 통신이 이루어지는 데, Private IP는 인터넷 구간으로 넘어올 수 없는 데 이것을 NAT 게이트웨이가 Private IP를 Public IP로 변환하여 통신을 돕는다.

 

즉 인터넷 게이트웨이는 Public Subnet의 인터넷 구간을 연결고 양쪽 방향으로 작동하는 것과 달리 NAT 게이트웨이는 Private Subnet 인스턴스의 Private IP를 Public IP로 변환해 인터넷 구간과 연결해주며, Private Subnet에서 외부로 통신이 가능하고 외부에선 접근할 수 없는 한 방향으로만 동작한다.

 

5. 보안그룹과 ACL(Access Control List)

VPC는 인스턴스 레벨과 서브넷 레벨 상에서 대상을 필터링 할 수 있는 보안 기술을 사용할 수 있는 데, 인스턴스 레벨에서의 보안 기술을 보안그룹, 서브넷 레벨에서의 보안 기술은 ACL이라고 한다.

 

이런 보안 기술들은 인바운드 및 아웃바운드 되는 데이터에 대해 허용 규칙과 거부 규칙을 수립하여 원하는 데이터만 수용할 수 있도록 필터링 할 수도 있다.

profile

Tech Blog of Pinomaker

@pinomaker

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!