Amazon Virtual Private Cloud · 격리된 가상 네트워크

AWS 위에 내 IP 대역으로 네트워크를 그리세요

Amazon VPC는 AWS 안에서 논리적으로 격리된 가상 네트워크입니다. CIDR 블록을 정하고, 가용 영역마다 서브넷을 나누고, 라우팅 테이블과 게이트웨이로 트래픽이 갈 길을 정합니다. 다른 모든 AWS 네트워킹 서비스가 이 위에서 동작합니다.

Subnet plan · 3 tiers × 2 AZap-northeast-2
vpc 10.0.0.0/162001:db8:1234:1a00::/56
AZ aAZ c Public 10.0.0.0/240/0 → igw 10.0.1.0/240/0 → igw App 10.0.16.0/200/0 → nat-a 10.0.32.0/200/0 → nat-c Data 10.0.64.0/24local · vpce-s3 10.0.65.0/24local · vpce-s3

서브넷은 한 가용 영역에 속합니다. 같은 역할의 서브넷을 AZ마다 두고, 라우팅 테이블로 계층을 구분합니다.

/16 – /28

IPv4 CIDR 블록 크기 (IPv6는 /44 – /60, 기본 /56)

5

서브넷마다 AWS가 예약하는 IPv4 주소

100 Gbps

NAT 게이트웨이 자동 확장 대역폭

무료

VPC · 서브넷 · 라우팅 테이블 자체 요금

Why Amazon VPC

모든 AWS 네트워크의 출발점

EC2, RDS, EKS, Lambda의 VPC 연결까지 사설 네트워크가 필요한 리소스는 모두 VPC 안의 서브넷에 ENI를 둡니다. 주소 체계, 경로, 접근 통제를 처음 한 번 잘 설계하면 이후의 하이브리드 연결과 멀티 VPC 확장이 쉬워집니다.

Isolate

계정 · 리전 단위로 격리된 네트워크

VPC는 한 리전에 속하고 다른 VPC와 기본적으로 분리됩니다. 온프레미스와 겹치지 않는 사설 대역을 직접 정합니다.

Route

라우팅 테이블이 곧 정책

서브넷마다 연결된 라우팅 테이블이 IGW, NAT, 엔드포인트, 피어링, TGW 중 어디로 보낼지 정합니다.

Control

두 겹의 필터

ENI에는 stateful 보안 그룹, 서브넷 경계에는 stateless 네트워크 ACL을 겁니다. 계정 전체는 Block Public Access로 막습니다.

Route tables

서브넷의 성격은 라우팅 테이블이 정합니다

"퍼블릭 서브넷"이라는 설정값은 따로 없습니다. 기본 경로가 인터넷 게이트웨이를 가리키면 퍼블릭, NAT 게이트웨이를 가리키거나 아예 없으면 프라이빗입니다. 아래는 앱 계층 프라이빗 서브넷의 라우팅 테이블 예시입니다.

rtb-app-a · main 아님longest prefix match
subnet-app-a 10.0.16.0/20
10.0.0.0/16locallocal
0.0.0.0/0nat-0a1b · AZ aNAT
::/0eigw-0c2dEIGW
pl-78a54011 (S3)vpce-0e3f · gatewayVPCE
10.20.0.0/16pcx-0f4a · 피어 VPCPCX
172.16.0.0/12tgw-01b2 · 온프레미스TGW

목적지가 여러 경로에 맞으면 가장 구체적인 프리픽스가 이깁니다. local 경로는 지울 수 없습니다.

local

VPC 안은 항상 통한다

VPC CIDR 전체에 대한 local 경로가 모든 라우팅 테이블에 자동으로 들어갑니다. 서브넷 사이 통신을 막으려면 라우팅이 아니라 보안 그룹이나 NACL을 씁니다.

IGW · NAT

인터넷으로 나가는 두 갈래

IGW는 공인 IP가 있는 리소스의 양방향 통신을, NAT 게이트웨이는 프라이빗 리소스의 아웃바운드 IPv4만 처리합니다. IPv6 아웃바운드 전용은 egress-only IGW입니다.

VPCE · PCX · TGW

사설 경로

게이트웨이 엔드포인트는 prefix list 경로로, 피어링과 Transit Gateway는 CIDR 경로로 붙습니다. 인터페이스 엔드포인트는 경로가 아니라 DNS와 ENI로 연결됩니다.

설계 포인트: 라우팅 테이블은 AZ 단위로 나누는 것이 기본입니다. 각 AZ의 프라이빗 서브넷이 같은 AZ의 NAT 게이트웨이를 가리켜야 한 AZ 장애가 다른 AZ의 인터넷 출구를 끊지 않습니다.

Features

주요 기능

Internet gateway

IGW와 egress-only IGW

IGW는 VPC당 하나씩 붙는 수평 확장형 게이트웨이로, 공인 IPv4에 대해 1:1 NAT를 수행합니다. egress-only IGW는 IPv6 아웃바운드만 허용하고 인바운드 연결 시작은 막습니다.

NAT gateway

관리형 NAT

5 Gbps에서 시작해 100 Gbps까지 자동 확장하고, IPv4 주소를 최대 8개(주소당 목적지별 동시 연결 55,000개) 붙입니다. 퍼블릭 · 프라이빗 유형이 있고 NAT64도 지원합니다. regional 모드는 퍼블릭 서브넷 없이 VPC 단위로 만들고, 워크로드가 있는 AZ로 자동 확장되며 AZ당 IP를 최대 32개까지 씁니다. 프라이빗 NAT는 zonal 모드에서만 됩니다.

VPC peering

VPC 피어링

두 VPC를 사설 IP로 1:1 연결합니다. 계정과 리전을 넘을 수 있지만 전이 라우팅은 안 되고 CIDR이 겹치면 연결할 수 없습니다. 많은 VPC를 엮을 때는 Transit Gateway를 씁니다.

VPC endpoints

게이트웨이 · 인터페이스 엔드포인트

S3와 DynamoDB는 무료 게이트웨이 엔드포인트로, 그 밖의 AWS 서비스와 SaaS는 PrivateLink 기반 인터페이스 엔드포인트로 인터넷을 거치지 않고 접근합니다.

IPAM

VPC IP Address Manager

조직 전체 IP 대역을 풀로 나눠 계정과 리전에 할당하고, 겹침과 사용률을 모니터링합니다. BYOIP, Amazon 제공 연속 IPv6 블록, Public IP Insights를 함께 다룹니다.

Block Public Access

VPC BPA

리전 단위로 IGW · EIGW 경로를 권한 있게 차단합니다. bidirectional 모드는 양방향을, ingress-only 모드는 인바운드만 막고 NAT · EIGW 아웃바운드는 허용합니다. 필요한 VPC나 서브넷만 exclusion으로 뺍니다.

Encryption Controls

VPC Encryption Controls

VPC 안과 VPC 간 트래픽의 전송 중 암호화 상태를 모니터링하고 강제합니다. monitor 모드에서 Flow Logs의 encryption-status로 평문 흐름을 찾고, enforce 모드에서는 암호화를 지원하지 않는 리소스 생성을 막습니다. IGW, NAT 등 정해진 리소스만 exclusion으로 둡니다.

Route Server

VPC Route Server

VPC 안의 방화벽 · 라우터 어플라이언스와 BGP(BFD 선택)로 피어링해, 최적 경로를 서브넷 · IGW 라우팅 테이블에 동적으로 넣습니다. 어플라이언스 장애 시 스크립트 없이 경로가 페일오버됩니다.

VPC sharing

서브넷 공유 · SG 재사용

AWS RAM으로 서브넷을 조직 내 다른 계정과 공유해 한 VPC를 여러 계정이 씁니다. 보안 그룹은 VPC associations로 같은 계정 · 리전의 다른 VPC에 연결하거나 공유 VPC 참여 계정과 공유합니다.

Security groups vs NACLs

보안 그룹과 네트워크 ACL, 어디에 무엇을 쓸까

두 필터는 서로 대체재가 아니라 겹쳐 쓰는 층입니다. 세밀한 허용 정책은 보안 그룹으로, 서브넷 경계의 거친 차단은 네트워크 ACL로 나눕니다.

보안 그룹과 네트워크 ACL 비교
항목Security groupNetwork ACL
적용 위치ENI(인스턴스, 엔드포인트, 로드 밸런서 등)서브넷. 서브넷 안의 모든 리소스에 적용
상태stateful. 허용된 요청의 응답은 규칙과 무관하게 통과stateless. 응답 트래픽(ephemeral 포트)도 규칙으로 명시해야 함
규칙 종류allow만 가능allow와 deny 모두 가능
평가 방식모든 규칙을 함께 평가해 하나라도 맞으면 허용규칙 번호가 낮은 것부터 평가해 처음 맞는 규칙 적용
참조 대상CIDR, prefix list, 다른 보안 그룹CIDR
재사용 범위기본은 만든 VPC 안. VPC associations로 같은 리전의 다른 VPC에도 연결 가능한 VPC 안의 서브넷에만 연결
기본 동작새 보안 그룹은 인바운드 없음, 아웃바운드 전체 허용기본 NACL은 전체 허용, 새로 만든 NACL은 규칙을 넣기 전까지 전체 거부
주 용도워크로드 간 최소 권한 통신. 계층 간 허용을 SG 참조로 표현특정 대역 차단, 서브넷 계층 간 가드레일

설계 포인트: 보안 그룹 참조(예: App SG → DB SG 5432 허용)를 쓰면 IP가 바뀌어도 정책이 유지됩니다. NACL을 좁게 걸 때는 응답용 ephemeral 포트 범위를 빠뜨리지 않도록 주의하세요.

Reference architecture

2개 AZ, 3계층 VPC

계층마다 AZ별 서브넷을 하나씩 두고, 각 AZ의 앱 서브넷은 같은 AZ의 NAT 게이트웨이로 나갑니다. S3는 게이트웨이 엔드포인트로, 다른 AWS 서비스 API는 인터페이스 엔드포인트로 사설 경로를 탑니다.

Amazon VPC 레퍼런스 아키텍처 서울 리전의 VPC 10.0.0.0/16에 인터넷 게이트웨이가 붙어 있습니다. VPC는 가용 영역 a와 c로 나뉘고, 각 AZ에 퍼블릭, 앱, 데이터 서브넷이 있습니다. 퍼블릭 서브넷에는 NAT 게이트웨이와 ALB 노드가 있고 인터넷 게이트웨이와 연결됩니다. 앱 서브넷은 같은 AZ의 NAT 게이트웨이로 아웃바운드 트래픽을 보내고, 인터페이스 엔드포인트로 AWS 서비스 API에 접근합니다. 데이터 서브넷은 게이트웨이 엔드포인트로 S3에 접근합니다. VPC는 피어링이나 Transit Gateway로 다른 VPC와 온프레미스에 연결됩니다. Internet AWS · SEOUL REGION VPC 10.0.0.0/16 AZ a AZ c IGW Public 10.0.0.0/24NAT gateway · ALB node App 10.0.16.0/20EC2 · EKS node · SG app Data 10.0.64.0/24RDS · SG db · NACL data Public 10.0.1.0/24NAT gateway · ALB node App 10.0.32.0/20EC2 · EKS node · SG app Data 10.0.65.0/24RDS · SG db · NACL data 다른 VPC · 온프레미스pcx · tgw 경로 AWS 서비스 APIinterface endpoint Amazon S3gateway endpoint 0/0 → nat-a 0/0 → nat-c
인터넷 경로 (IGW) NAT 아웃바운드 (앱 → NAT, 나가는 방향만) 엔드포인트로 AWS 서비스 호출 (VPC → 서비스) 피어링 · TGW (양방향)

좁은 화면에서는 다이어그램을 좌우로 밀어서 보세요.

Getting started

VPC를 설계하는 순서

  1. STEP 1

    주소 계획

    온프레미스, 다른 VPC와 겹치지 않는 CIDR을 정합니다. 여러 계정 · 리전이면 IPAM 풀에서 할당합니다.

  2. STEP 2

    VPC · 서브넷 생성

    2개 이상 AZ에 계층별 서브넷을 만듭니다. 콘솔의 "VPC and more"로 한 번에 만들 수 있습니다.

  3. STEP 3

    게이트웨이 · 라우팅

    IGW, AZ별 NAT 게이트웨이(또는 regional NAT)를 만들고 서브넷마다 라우팅 테이블을 연결합니다.

  4. STEP 4

    필터 · 엔드포인트

    보안 그룹을 계층별로 나누고, S3 게이트웨이 엔드포인트와 필요한 인터페이스 엔드포인트를 추가합니다.

  5. STEP 5

    가드레일 · 가시성

    Block Public Access로 의도치 않은 인터넷 노출을 막고, Flow Logs와 Reachability Analyzer로 경로를 확인합니다.

Pricing

비용 항목

VPC, 서브넷, 라우팅 테이블, IGW, 보안 그룹, NACL 자체에는 요금이 없습니다. 비용은 NAT 게이트웨이, 공인 IPv4 주소, 엔드포인트, IPAM, Encryption Controls 같은 구성 요소와 데이터 전송에서 생깁니다.

Amazon VPC 관련 과금 항목
과금 항목과금 기준참고
NAT gatewayNAT 게이트웨이 시간 + 처리한 GB (regional 모드는 확장된 AZ마다 시간 과금)부분 시간은 1시간으로 계산합니다. 출발지 · 목적지와 무관하게 처리 요금이 붙고, 표준 데이터 전송 요금은 별도입니다. S3 · DynamoDB 트래픽은 게이트웨이 엔드포인트로 돌리면 처리 요금을 줄일 수 있습니다.
공인 IPv4 주소주소당 시간EC2 자동 할당 공인 IP, Elastic IP(사용 중 · 유휴 모두), 관리형 서비스가 만든 공인 IP가 포함됩니다. 사설 IPv4와 BYOIP 주소는 과금하지 않습니다. EC2 프리 티어에는 공인 IPv4 750시간이 포함됩니다.
IPAMFree tier 무료 · Advanced tier는 관리 대상 활성 IP 수 × 시간Free tier는 단일 리전 · 단일 계정 범위로 BYOIP, Public IP Insights, 사설 IPv6 관리 등을 제공합니다. 사설 IPv4 관리, 계정 간 풀 공유, IP 이력 감사는 Advanced tier에서 씁니다. ENI에 붙지 않은 IP는 과금하지 않습니다.
Encryption Controlsmonitor · enforce 모드인 비어 있지 않은 VPC당 시간Encryption Support를 켠 Transit Gateway에 연결된 VPC는 Encryption Controls를 켜지 않아도 과금됩니다(VPC당 시간 1회).
VPC endpoints게이트웨이 엔드포인트 무료 · 인터페이스 엔드포인트는 AZ별 시간 + 처리 GB인터페이스 엔드포인트 요금은 AWS PrivateLink 요금으로 청구됩니다.
데이터 전송AZ 간, 리전 간, 인터넷 아웃바운드 GB같은 AZ 안의 사설 IP 통신은 무료입니다. VPC 피어링도 같은 AZ 안 전송은 무료이고, AZ 간 · 리전 간 전송에는 요금이 붙습니다.
네트워크 분석Reachability Analyzer 분석 횟수 · Network Access Analyzer 분석한 EC2 인스턴스 ENI 수 · Traffic Mirroring 세션 ENI 시간Flow Logs는 CloudWatch Logs, S3, Data Firehose 쪽 수집 · 저장 요금으로 청구됩니다.

요금 단가는 리전과 사용량에 따라 다릅니다. 최신 단가는 Amazon VPC 요금 페이지에서 확인하세요.

Next step

처음 설계할 때 주소와 경로를 함께 정하세요

사용할 리전과 AZ 수, 온프레미스 대역, 인터넷 노출 범위, 연결할 VPC 목록을 정리해 오시면 CIDR 계획과 서브넷 · 라우팅 구성을 함께 검토합니다.