본문 바로가기

Infrastructure/Cloud Computing

[AWS] Network

Network는 Net(촘촘하겨 연결되어 있는) + Work(일)의 합성어로 연결되어 서로가 가지고 있는 정보를 결합하여 생산적인 가치를 만드는 일을 의미한다.
'네트워킹을 한다 = 서로 통신(Communication)을 한다'고 할 수 있다.
서로 통신하기 위해서 어떠한 방식으로 통신(Communication)을 할 것인지 약속을 해야하는데 이렇게 지켜져야하는 약속들을 프로토콜(Protocol)이라고 한다.


VPN이란?

그림1

VPN(Virtual Private Network)은 큰 규모의 조직이 여러 곳에 분산되어 있는 PC를 연결하는 보안성이 높은 사설 네트워크(Private Network)를 만들거나, 인터넷을 활용하여 원격지 간에 네트워크를 서로 연결하고 암호화 기술을 적용하여 보다 안적적이고 보안성 높은 통신 서비스를 제공하는 서비스다.
On-Premise환경에서 한번에 클라우드 환경으로 이전하는 일은 쉽지 않다. 이러한 경우 일부의 시스템만 클라우드 환경으로 옮기고 On-Premise 환경의 서비스와 클라우드 환경의 서비스가 통신하는 상황이 발생한다. 이러한 경우 VPN을 통해 서비스간 보완성 높은 통신이 가능해진다.
AWS에서는 AWS Client VPN과 AWS Site-toSite VPN을 서비스하고 있다.


VPC란?

그림2

VPC(Virtual Private Cloud)는 AWS 클라우드에서 논리적으로 격리된 네트워크 공간을 할당하여 가상 네트워크에서 AWS 리소스를 이용할 수 있는 서비스다. 쉽게 말해서 인프라 담당자 임의로 네트워크 공간을 분리하여 사용할 수 있다는 뜻이다. 대표적으로 개발 환경에 따라 Develop 전용 VPC, Stage 전용 VPC를 나누어 서비스할 수 있다. 기본적으로 VPC간의 통신은 제한되지만 필요에 따라 VPC Peering 서비스 또는 Transit Gateway 서비스를 사용하여 두 VPC 사이의 통신이 가능하게 할 수도 있다.


VPC 구성 요소

서브넷: 서브넷(Subnet)은 VPC내에서 실행되는 서비스의 목적에 맞게 IP Block으로 나누어 구분하고 싶을 때 사용하는 IP 주소 범위의 파티션이다. 서브넷은 VPC의 부분으로 IP Block의 하위 집합니다. 이때 서브넷별로 할당되는 IP Block의 범위는 10.0.0.0/16과 같은 CIDR 표기법을 따른다. VPC를 생성하는 경우 10.0.0/24로 VPC를 생성하게 되면 256개의 IP 주소를 사용할 수 있다. 이 VPC에 속하는 서브넷은 256개의 IP주소를 여러개의 CIDR 블록으로 구분하여 사용가능하다. CIDR 표기법이 궁금하다면 중요한 개념이므로 링크를 걸어두었다. 여기 (링크)에 정리가 잘 되어 있으므로 확인하도록 한다.

프라이빗 IP(Private IP) 주소: 인터넷을 통해 연결할 수 없으며 VPC 내부에서만 사용할 수 있는 IP주소다. VPC에서 시작된 인스턴스 서브넷의 범위에서 자동으로 할당되며 동일 네트워크에서 인스턴스 간 통신에 사용할 수 있다. 기본 프라이빗 IP 이외에 보조 프라이빗 IP 주소를 추가로 할당할 수 있다.

퍼블릭 IP(Public IP) 주소: 인터넷을 통해 연결할 수 있는 IP 주소로 인스턴스와 인터넷 간의 통신을 위해 사용된다. EC2를 생성할 때 기본적으로 생성되지 않으며 옵션을 선택하여 활성화 할 수 있다. 인스턴스에서 퍼블릭 IP 주소를 수동으로 연결하거나 해제할 수 없으며 인스턴스가 재실행되는 경우 퍼블릭 IP주소가 새로 발급된다.

탄력적 IP(Elastic IP) 주소: 인스턴스와 무관한 고정IP로 동적 컴퓨팅을 위해 고안된 고정 퍼블릭 IP주소다. VPC의 모든 인스턴스와 네트워크 인터페이스에 탄력적 IP를 할당할 수 있다. 문제가 발생하였을 때 신속하게 다른 인스턴스에 탄력적 IP를 할당하여 문제가 발생한 인스턴스의 장애 조치를 수행할 수도 있다. 탄력적 IP는 한 번에 하나의 인스턴스에만 할당 가능하고 VPC에 5개로 제한됩니다.

라우팅 테이블(Routing Table): 서브넷 또는 게이트웨이의 네트워크 트래픽이 전송되는 위치를 결정하는 데 사용되는 규칙을 라우팅이라하며 이러한 규칙을 모은 집합을 라우팅 테이블이라 한다. 각 서브넷은 서브넷 외부로 나가는 아웃바운드(Outbound) 트래픽에 대해 허용된 경로를 지정하는 라우팅 테이블이 연결되어 있어야한다. VPC는 Local로 향하는 기본 라우팅 테이블이 존재하며 서브넷은 자동으로 VPC의 기본 라우팅 테이블과 연결된다. 기본 라우팅 테이블은 다른 라우팅 테이블과 연결되지 않은 서브넷의 라우팅을 제어한다. 0.0.0.0/0과 같이 모든 IP로 향하는 라우팅이 포함된 라우팅 테이블을 퍼블릭 라우팅 테이블이라 하며 반대의 경우 프라이빗 라우팅 테이블이라 한다.

인터넷 게이트웨이(Internet Gateway, IGW): VPC의 인스턴스와 인터넷 간에 통신을 가능하게 하는 게이트웨이 역할을 한다. IGW는 인터넷으로 라우팅 가능한 트래픽에 대해서 라우팅 테이블에 대상을 제공한다. IGW는 퍼블릭 IP 주소가 할당된 인스턴스에 NAT를 수행한다.

NAT Gateway(Network Address Translation Gateway): 외부 네트워크에 알려진 것과 다른 IP 주소를 사용하는 내부 네트워크에서 내부 IP 주소를 외부 IP 주소로 변환하는 작업을 수행하는 역할을 한다. 프라이빗 서브넷에 속한 인스턴스가 인터넷으로 아웃바운드 트래픽을 활성화할 수 있게 하며 인터넷으로부터의 인바운드 트래픽은 차단한다. 한마디로 "인터넷을 통해 나가는 트래픽은 허용, 들어오는 트래픽은 차단"하는 서비스다. NAT 게이트웨이를 구성하기 위해서는 세 가지 조건을 만족해야 한다.

1. NAT 게이트웨이는 퍼블릭 서브넷 상에 위치해야한다.
2. NAT 게이트웨이에게 연결될 탄력적 IP 주소가 필요하다.
3. 인터넷 트래픽이 NAT 게이트웨이로 통신이 가능하도록 프라이빗 서브넷과 연결된 라우팅 테이블을 업데이트 해야한다.

퍼블릭 서브넷(Public Subnet) & 프라이빗 서브넷(Private Subnet): 서브넷의 네트워크 트래픽이 인터넷 게이트웨이(Internet Gateway, IGW)를 통해 라우팅되는 서브넷을 퍼블릭 서브넷이라 하며 IGW를 통해 라우팅 되지 않는 서브넷을 프라이빗 서브넷이라 한다.

VPC Endpoint: 프라이빗 서브넷에 위치한 인스턴스는 인터넷을 통해 사용해야하는 AWS의 서비스들(S3와 같은)을 이용할 수 없다. 만약 이러한 서비스를 이용해야 한다면 NAT 게이트웨이나 NAT 인스턴스가 필요하다. 하지만 VPC Endpoint를 사용하면 NAT 게이트웨이 없이도 AWS의 인터넷을 사용한 서비스를 사용가능하게 할 수 있다.

그림3 VPC Endpoint 사용 전

그림4 VPC Endpoint 사용 후

이 글은 아마존 웹 서비스 AWS Discovery Book 도서와 AWS 공식문서를 참고하여 작성하였다.

이미지 출처:

  • 그림1, 2, 3, 4: AWS 공식 홈페이지

'Infrastructure > Cloud Computing' 카테고리의 다른 글

[AWS] Route53  (0) 2022.02.16
[AWS] RDS  (0) 2022.02.16
[AWS] S3  (0) 2022.02.14
[AWS] EC2  (0) 2022.02.13
[AWS] 클라우드 컴퓨팅이란?  (0) 2022.02.10