AWS - VPC ( 서브넷, IGW, Route Table, VPC 라우터 )

TopOfTheHead·2026년 1월 31일

클라우드 / AWS

목록 보기
21/38

VPC를 사용하는 이유?

  • 클라우드에서 네트워크를 분리함으로써 Private Network / Public Network로 구성하기위한 솔루션
    。기존 AWS 서비스를 사용 시 Public IP에 의해 외부에 노출되므로 보안 상 취약한 단점이 존재
    VPC를 통해 외부로 노출되면 안될 AWS 서비스( ex. RDS )들을 Private로 설정하여 외부에서 접근 못하도록 설정

    ex ) VPCEC2 인스턴스AWS 서비스를 사용 시 AWS 내부에서 접근하는게 아닌 인터넷을 거쳐서 AWS로 접근

AWS VPC( Virtual Private Cloud )

사용자 전용의 가상 데이터센터 개념의 독립된 가상 Private Network
▶ 일종의 Private IP 대역으로서, 네트워크 범위를 의미

AWS에서 다른 가상 네트워크와 논리적으로 분리 및 원하는 만큼 격리된 가상 Private Network프로비저닝

。각 AWS인스턴스( IP주소 범위, 서브넷, 라우팅 테이블, Gateway 등 )들이 VPC들에 구성되도록 설정함으로써 네트워크 단위로 구분할 수 있음.

。각 VPC는 독립적이므로, 서로 통신이 불가능
▶ 각 VPC 간 통신이 필요한 경우 VPC 피어링 서비스를 사용

  • VPCPrivate IP 대역 범위 내에서 IPv4 CIDR 영역을 설정
    Private IP대역

    AWS/16 ~ /28 비트서브넷 마스크를 허용
    VPC / 서브넷을 생성할 수 있는 가장 큰 IP대역 : /16 이며, 가장 작은 IP대역 : /28으로 CIDR을 설정해야함.

    VPC에서 설정된 IP 대역은 한번 설정 시 수정이 불가능

  • VPC는 각 리전( Region )에 종속
    VPC리전 단위로 오직 하나의 리전에만 소속이 가능하며, 다른 리전까지 확장이 불가능
    VPC서브넷동일 리전 내 오직 하나의 AZ에 소속 가능

    。주로 VPC 내부에서 EC2, RDS, Lambda 등의 AWS 자원외부에 노출되지 않도록 분리하여 실행하는 용도로 사용

    AWS 계정 생성 시 외부 인터넷과 자동 연결된 기본 VPC기본 서브넷이 생성

VPC 구성
사용자는 원하는 방식대로 IP주소 범위 선택 및 서브넷 생성 / 라우팅 테이블 / 네트워크 게이트웨이 구성 등 가상 네트워크 환경을 구성해서 VPC를 생성

서브넷, 인터넷 게이트웨이, NACL / 보안그룹, 라우팅 테이블, NAT Instance / NAT Gateway, Bastion Host, VPC Endpoint으로 구성

  • VPC 종류

    기본 VPC
    AWS 계정 생성 시 자동으로 생성되며 IGW가 자동 정의되어 인터넷과 연결된 VPC
    ▶ 초기 계정 생성 후 EC2 인스턴스 생성 시 별도의 설정을 하지않아도 인터넷에서 접근 가능한 이유.

    。 기본적으로 각 AZ마다 Public Subnet을 생성이 가능


    커스텀 VPC
    。직접 생성하는 VPC
    IGW를 자동 설정하지 않으므로 기본적으로 인터넷과 차단

    IGW라우팅 설정 없이 Public Subnet 생성이 불가능
    ▶ 해당 설정이 없는 경우 커스텀 VPC 내부에 인터넷과 연결 가능한 EC2 인스턴스의 생성이 불가능

서브넷 : 서브네트워크 서브넷
VPC에 할당된 IP주소 대역을 더 작은 단위로 분할하는 VPC하위단위 네트워크
서브넷IP 대역VPC IP 대역 내 속해야함

서브넷 CIDR : 10.0.1.0/24인 경우, 10.0.1.0 ~ 255까지의 IP주소를 사용

VPC서브넷동일 리전 내 오직 하나의 AZ종속
서브넷은 일반적으로 가용 영역 단위 ( AZ )로 분할하여 사용

EC2 인스턴스와 같은 자원AWS VPC 내 특정 Subnet에 생성되고, SubnetIP 범위IP를 할당

특정 AZ서브넷은 다른 AZ으로 확장이 불가능

  • CIDR Block으로 IPv4 또는 IPv6 주소IP 영역을 지정
    AWS/16 ~ /28 비트서브넷 마스크를 허용

    서브넷 지정 시 IPv4의 경우 최소 /28 ~ 최대 /16 범위의 CIDR을 지정
    서브넷은 최소한 32-28 = 424=162^4=16으로 16 - 5 = 11개의 IPv4 주소를 가진다.

    IPv6의 경우 최소 /44 ~ 최대 /64 범위의 CIDR을 지정

  • 서브넷에서 사용가능한 IP주소 수예약된 IP를 제외한 (IP주소 수 - 5)개 만큼만 사용가능
    10.0.0.0/24으로 서브넷 설정 시

    10.0.0.0 : 네트워크 주소
    10.0.0.1 : VPC Router
    10.0.0.2 : DNS Server
    10.0.0.3 : 예비 IP
    10.0.0.255 ( 마지막 숫자 ) : 네트워크의 Broadcast 주소
    ▶ 다음처럼 5개의 IP는 예약되어 자동으로 점유하므로 사용자가 사용이 불가능하며 285=2565=2512^8-5=256-5=251개 만큼의 IP주소만 사용가능

  • 서브넷인스턴스 생성 시 해당 Subnet IP 주소대역IP주소를 할당받아서 생성

VPC 내 에서 구성되는 Subnet의 종류

  • Public Subnet
    인터넷을 통해 외부에서 접근할 수 있는 서브넷
    ▶ 내부 인스턴스Public IP를 부여가능

    IGW ( = 인터넷 게이트웨이 )를 통해 VPC Router를 경유하여 인터넷과 연결

    。주로 사용자에게 노출되어야하는 인프라EC2 ( = 어플리케이션 서버 ) 등으로 구성
    외부에서 접근하는 SW ( Nginx Proxy Manager, Front End 등 )은 Public SubnetEC2 인스턴스에 구성

  • Private Subnet
    외부와 차단되어 인터넷으로부터 접근할 수 없는 서브넷
    오직 해당 Private Subnet로컬 또는 동일 VPC서브넷에만 접근이 가능

    。원칙적으로 외부에서의 접근은 차단하고, 운영 / 개발자에 의한 접근을 Bastion Host 등의 설정으로 접근을 허용

    VPC 라우터Route Table에서 인터넷으로 경로가 설정되지 않아 외부와 차단되어 Private Subnet에서 직접 IGW로 접근이 불가능하며, Public IP의 부여 불가능

    。주로 외부에 노출될 필요가 없는 인프라RDS( = 데이터베이스 서버 ) 등 을 설정
    외부에서 접근을 차단해야하는 SW ( DB , Backend App' )은 Private SubnetEC2 인스턴스으로서 구성하도록 설정하여 외부로부터의 접근을 차단

VPC Router

VPC서브넷 간 전달되는 트래픽( = IP 패킷 )을 hop( = VPC Router, IGW 등 )으로 라우팅하는 용도의 가상의 라우터
▶ 모든 서브넷트래픽VPC 라우터를 통해 목적지로 전달

VPC RouterRoute Table을 가지고 해당 테이블을 기반으로 트래픽의 전송방향을 결정

VPC 생성 시 자동으로 생성 및 관리됨
사용자는 오직 Route Table만 관리 가능

Route Table 라우팅 테이블
VPC Router에서 트래픽 수신 시 목적지에 대해 트래픽을 전달할 경로상의 다음 hop을 결정하여 경로를 형성하는 테이블
VPC 생성 시 기본적으로 하나를 제공하며 추가 정의 가능

VPC RouterRoute Table에서 특정 hopTarget으로 지정되어 경로가 형성되어야 트래픽을 전달이 가능

IP주소 수신 시 DestinationCIDR Block에 해당하지 않는 경우 전달하지않음.

서브넷 당 개별적인 라우트 테이블을 생성하여 가질 수 있다.


라우트 테이블 구성요소


  • Destination :
    VPC router에서 트래픽을 수신 시 설정된 Target으로 전송하는 CIDR Block을 정의
    ▶ 해당 CIDR Block에 해당하는 목적 IP 주소로 전송되는 트래픽을 수신 시 매핑Target에 정의된 라우터 또는 게이트웨이로 전송

    。각 DestinationCIDR Block 범위가 겹치는 경우 CIDR Notation/E가 가장 크기에 네트워크 주소가 구체화된 DestinationTarget으로 전송

    Destination : ( 10.0.0.0/16 )10.0.0.0 ~ 10.0.255.255 까지의 트래픽Target : ( local )로 전송
    Destination : ( 172.31.0.0/16 )172.31.0.0 ~ 172.31.255.255 까지의 트래픽Target : ( pcx )로 전송
    。그 외 모든 IP 대역으로 전송된 트래픽0.0.0.0/0매핑IGW로 전송
    172.31.2.125/16으로 전송 시 0.0.0.0/0 은 모든 IP주소를 가지므로 후순위이며 172.31.0.0/16매핑Target으로 전송

  • Target :
    VPC Router에서 수신한 트래픽을 실제로 전송할 대상이 되는 hop (로컬, VPC 라우터, 인터넷 게이트웨이)
    논리적 자원 ID로 설정
    ex ) Internet Gateway의 경우 IGW-xxxxxx

    DestinationCIDR Block에 해당하는 트래픽을 수신 시 매핑Target으로 전송

    Local : Local Network : VPC 자체 IP 대역
    VPC 내 정의된 서브넷은 해당 Local에 의해 통신이 가능

인터넷 게이트웨이 ( IGW : Internet Gateway )
VPC인터넷논리적 연결로서, VPC에서 인터넷으로 나가는 관문

VPC내부 자원과 외부 인터넷이 통신할 수 있도록 경로를 생성하는 역할을 수행
VPC 라우터만으로 외부 인터넷에 접근할 수 없으므로, 추가적으로 IGW에 대한 정의를 설정해야 외부 인터넷과의 통신이 가능.

。기본적으로 무료이며 확장성고가용성이 확보
VPC에 추가 IGW를 정의할 필요는 없음.

IPv4, IPv6 지원
IPv4의 경우 [NAT](https:


  • IGWVPC 당 1개만 연결이 가능

  • VPC Router를 통해 Route Table에서 TargetIGW으로 설정 후 Public Subnet에서 인터넷으로 접근이 가능
    Public SubnetRoute Table외부 인터넷으로 나가는 TargetIGW로 설정해야한다.

    SubnetRoute Table10.0.0.0/16IP 대역트래픽은 내부 서브넷으로 전송하고, 나머지 IP 대역트래픽IGW로 전송하여 인터넷과 통신을 수행

    Private Subnet인터넷과 차단되어있으므로 Route Table경로가 정의되있지 않아 IGW직접 연결이 불가능
    NAT Instance를 통해 외부 인터넷과 연결을 수행

NAT Gateway / NAT Instance NAT
VPCPrivate Subnet인스턴스에서 외부 인터넷에 연결할 수 있도록 지원하는 서비스

NAT Gateway / NAT Instance는 모두 서브넷 단위이며 외부 인터넷Private Subnet을 중계하는 역할을 수행하므로 Public Subnet에 존재해야한다.

유료서비스


  • Private Subnet 내부 인스턴스 → 외부인터넷으로 단방향으로만 통신이 가능
    Private Subnet 내부 EC2 인스턴스Public Subnet 내부의 NAT Gateway / Instance를 통해 외부 인터넷트래픽을 전송
    NAT GatewayPrivate IPPublic IP변환하여 통신을 수행

    。그러나, NAT을 통해 외부 인터넷에서 Private Network로 통신은 불가능
    외부 인터넷Private Subnet인스턴스으로 접근 시 Bastion Host를 사용

  • NAT Instance :
    。단일 EC2 인스턴스로서 가용성이 떨어지는 단점이 존재

    。저렴한 비용의 특징으로 주로 테스트용도로 사용

  • NAT Gateway :
    AWS에서 제공하는 가용성 높은 관리형 서비스

    고가용성의 특징으로 대규모 서비스 또는 운영 레벨에서는 NAT Gateway를 사용하는 것을 권고
    ▶ 단, 고가용성 확보를 위해서는 2개 이상의 AZ에 각각 정의된 서브넷이 필요

  • 통신흐름
  1. Private Subnet인스턴스외부 인터넷과 통신하기 위해 Private IP가상 라우터트래픽을 전송
  2. 가상 라우터Private Route Table을 참고 후 NAT Gateway로 가는 라우트 경로를 확인 후 트래픽을 전송
  3. NAT Gateway인스턴스Private IPPublic IP로 전환 후 IGW를 경유하여 클라이언트에게 전달
    클라이언트NAT Gateway에서 변환IP 주소로서 수신받음

Bastion Host
외부 인터넷에서 Private Subnet인스턴스트래픽을 전송할 수 있도록 Public Subnet내에 위치하여 경로를 확보하는 용도의 EC2 인스턴스
외부인터넷 → Private Subnet 내부 인스턴스트래픽으로 전송하는 역할을 수행

NAT Gateway / Instance과 방향이 반대.

외부 인터넷Public Subnet 내부의 Bastion Host를 통해 Private Subnet 내부 EC2 인스턴스트래픽을 전송

NACL ( Network Access Control List )

  
profile
공부기록 블로그

0개의 댓글