본문 바로가기

IT 개발자의 창고

AWS - 가상 네트워크 구성

앞으로 연재할 클라우드 서비스로 Amazon Web Service (AWS)를 기반으로 다뤄보려고 합니다.

 

AWS는 전 세계적으로 분포한 데이터 센터에서 200여개의 서비스를 제공하는 세계적으로 가장 보편적으로 채택되고 있는 클라우드 플랫폼입니다. 따라서, 우리는 서비스하려는 지역과 가장 가까운 지역을 선택해 리소스를 할당하여 고객에게 제공할 수 있습니다. 즉, 한국에서 서비스를 진행하려고 한다면 한국에 위치한 AWS 리소스를 선택해야 고객 입장에서 가장 빠른 서비스를 이용할 수 있게 됩니다.

 

AWS가 전 세게에서 데이터 센터를 클러스터링하는 물리적 위치를 리전이라고 합니다. 이 글을 게시하는 시점을 기준으로 아시아에는 베이징, 닝샤, 싱가포르, 도쿄, 시드니, 서울, 뭄바이, 홍콩, 오사카, 자카르타의 10개의 리전이 존재합니다. 주로 리전은 도시를 중심으로 구분이 됩니다.

 

각각의 리전에는 하나 이상의 개별 데이터 센터로 구성됩니다. 이는 정전, 낙뢰, 토네이도, 지진 등과 같은 문제로부터 안전하게 보호하기 위해 수 Km ~ 100Km 사이의 거리를 두고 (아마존의 데이터 센터 구성 규칙) 물리적으로 분리되어 있습니다.

이와 같이 물리적으로 분리된 데이터 센터 각각을 Availability Zone (AZ)라고 부릅니다. 서울 리전의 경우 현재 4개의 AZ로 구성되어 있죠. 리전 내의 모든 AZ는 광 네트워크로 연결되어 있어 상호간의 높은 처리량, 짧은 지연시간의 네트워킹 환경으로 구성되어 있습니다.

 

AWS의 전세계 리전 제공 현황

 

AWS의 가장 대표적인 Iaas 서비스 컴포넌트는 Amazone EC2(Elastic Compute Cloud) 입니다. 하드웨어 서버를 가상화하여 사용자에게 제공하고, 사용자는 운영체제와 소프트웨어를 설치하여 클라우드 서비스를 이용할 수 있습니다. EC2를 사용함으로써 필요한 만큼 가상 서버를 시작하고, 보안 및 네트워킹을 구성하고, 스토리지를 관리할 수 있습니다.

 

이번 글에서는 EC2를 구성하기에 앞서 네트워크 환경을 먼저 구성해 보도록 합니다.

우선 EC2의 네트워킹 계층인 Amazon VPC (Virtual Private Cloud)는 사용자의 AWS 계정 전용 가상 네트워크입니다. VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있어, 사용자 본인만의 네트워크 환경을 구성할 수 있습니다. VPC는 리전 내의 모든 AZ에 공통으로 적용되며, IP 주소 범위를 CIDR(Classless Inter-Domain Routing) 블록 형태로 설정할 수 있습니다.

CIDR 블록이란?
IP address는 네트워크 그룹을 식별하기 위한 Network Address와 그룹내에 구성가능한 모든 호스트를 식별하기 위한 Host Address로 구분할 수 있습니다. CIDR 블록은 Network Address의 범위를 명기하는 IP 주소 표기법입니다.
예를 들어 10.0.0.0/16 이라는 CIDR 블록 표기를 사용했다면, 총 32비트의 IP주소의 상위 16비트는 Network Address이고, 하위 16비트는 Host Address로 구분됩니다.
즉, Network 그룹에 속하는 Host의 범위는 10.0.0.0 ~ 10.0.255.255 까지 구성할 수 있음을 의미합니다.

 

VPC를 생성하면 기본적으로 라우팅 테이블, 네트워크 ACL, 보안그룹이 생성됩니다.

보안그룹은 EC2 인스턴스 단위의 보안 정책을 구성하는 용도로 사용되고, 네트워크 ACL은 서브넷 단위의 보안 정책을 구성하기 위해 사용됩니다. 라우팅 테이블은 VPC의 네트워크 트래픽을 전달할 위치를 결정하는 규칙 집합 테이블입니다.

 

VPC를 생성한 후에는 각 AZ에 하나 이상의 서브넷을 구성할 수 있습니다. 서브넷은 VPC의 IP 주소 범위로 EC2 인스턴스와 같은 AWS 리소스를 특정 서브넷 단위로 시작할 수 있습니다. 서브넷 생성 시에도 IPv4 CIDR 블록을 지정할 수 있고, 이는 VPC CIDR 블록의 Host Address 영역으로 구성되어야 합니다. 각 서브넷은 하나의 AZ 내에 존재하여 다른 AZ로 확장할 수 없습니다. 

 

그럼, AWS를 통해 다음과 같이 VPC를 생성하고, public 및 private subnet을 구성해 보도록 해보겠습니다.

VPC를 생성하고, public-subnet / private-subnet을 추가한 네트워크 구성도

 

AWS에서 VPC 생성 및 subnet 추가하기 실습