VPC(Virtual Private Cloud) – 가상 네트워크는 AWS 클라우드 내에 사용자를 위한 격리된 가상 네트워크 환경을 제공하는 핵심 네트워킹 서비스이다. 실제 물리적인 네트워크 장비(공유기)와 랜선이 연결되는 상황에 비유하여 VPC와 관련된 개념은 알아본다
VPC – 클라우드 속 가상 네트워크
VPC는 AWS 클라우드 내에 사용자가 정의하고 완벽하게 제어할 수 있는 가상 네트워크를 프로비저닝(생성 및 구성)할 수 있게 해준다. 이는 마치 커다란 네트워크 장비(공유기)를 AWS에서 빌려 사용하는 것과 같다. 이 가상 네트워크 장비는 특정 IP 주소 대역(예: 10.0.0.0/16)을 가지며, 이 대역 내에서 클라우드 리소스들이 통신할 수 있다
- IP 주소 범위(CIDR 블록): VPC를 생성할 때 10.0.0.0/16과 같은 CIDR(Classless Inter-Domain Routing) 블록을 할당한다. 이는 해당 VPC가 사용할 수 있는 IP 주소의 전체 범위를 정의한다. 10.0.0.0/16은 10.0.0.0부터 10.0.255.255까지의 IP 주소 범위를 의미하며, /16은 앞에 16비트(10.0)가 고정되고 뒤의 16비트(0.0부터 255.255)를 사용하여 IP 주소를 할당할 수 있다는 뜻이다 (IP 주소는 일반적으로 4개의 옥텟(점 4개로 구분되는 부분)으로 구성되며, 각 옥텟은 8비트(0~255)이다. 따라서 /16은 첫 두 옥텟이 고정됨을 의미한다)
서브넷(Subnet) – 논리적 네트워크, 지역적 분할
VPC라는 큰 네트워크는 사용 목적이나 지역적인 특성에 따라 더 작은 단위로 쪼개어 관리할 수 있다. 이 쪼개진 구역을 서브넷(Subnet)이라고 부른다. 서브넷은 VPC 내에서 IP 주소 범위를 세분화한 부분이자 지역적인 의미를 가진다
- IP 주소 범위 분할: 예를 들어 10.0.0.0/16 VPC 내에서 첫 번째 서브넷에 10.0.1.0/24 CIDR 블록을 할당할 수 있다. 이는 해당 서브넷이 10.0.1.0부터 10.0.1.255까지의 IP 주소를 사용할 수 있음을 의미한다. /24는 앞에 24비트(10.0.1)가 고정되고 뒤의 8비트(0부터 255)를 사용하여 IP 주소를 할당할 수 있다는 뜻이다. 두 번째 서브넷은 10.0.2.0/24와 같이 다른 IP 대역을 가질 수 있다
- 서브넷에서 실제로는 AWS가 처음 4개 IP주소(네트워크 주소, VPC 라우터, DNS 서버, 미래 사용 예약)와 마지막 1개 IP 주소(브로드캐스트)를 예약하므로 실제 사용 가능한 IP는 이론적 개수보다 5개 적다.
- 가용 영역(Availability Zone, AZ) 단위 분할: 서브넷은 단순히 IP 대역만 나누는 것이 아니라 AWS의 가용 영역(Availability Zone, AZ)과 밀접하게 연결된다. AWS는 전 세계 여러 리전(Region, 예: 서울 리전)에서 서비스를 제공하며, 각 리전은 지리적으로 격리된 여러 데이터 센터 클러스터인 가용 영역으로 구성된다
- 서울 리전에는 여러 개의 가용 영역(예: ap-northeast-2a, ap-northeast-2b 등)이 있으며, 각 가용 영역은 물리적으로 떨어져 있어 한 AZ에 장애가 발생해도 다른 AZ에는 영향을 미치지 않는다.
- 일반적으로 하나의 서브넷은 하나의 사용 영역에 할당된다. 따라서 VPC를 가용 영역별로 서브넷을 나누어 구성하면, 특정 AZ에 장애가 발생해도 다른 AZ의 서브넷에 있는 리소스는 영향을 받지 않아 서비스의 고가용성을 확보할 수 있다
- 리소스 배치: EC2 인스턴스와 같은 AWS 리로스는 VPC 내의 특정 서브넷에 생성되며, 해당 서브넷의 IP 범위 내에서 하나의 IP 주소를 할당받는다. 이는 마치 서브넷에서 선을 뽑아 컴퓨터에 꽂으면 IP가 할당되는 상황과 유사하다
VPC의 활용과 기본 설정
- 네트워크 제어: 사용자는 VPC를 통해 IP 주소 범위, 서브넷, 라우팅 테이블(트래픽 경로 지정), 네트워크 게이트웨이(외부 네트워크 연결) 등을 세밀하게 제어할 수 있다
- 기본 VPC: AWS 계정 생성 시 각 리전마다 기본 VPC가 자동으로 할당된다. 이 기본 VPC 내에는 각 가용 영역에 하나씩 기본 서브넷이 생성되어 있으며, 인스턴스 생성 시 자동으로 IP 주소가 할당된다
- 사용자 정의 VPC: 필요에 따라 숑아자는 직접 새로운 VPC를 생성하고 원하는 CIDR 블록을 지정하여 서브넷을 구성하고 라우팅 규칙을 설정할 수 있다. 이는 특히 복잡한 네트워크 아키텍처나 특정 보안 요구사항이 있을 때 유용하다