VPC (Virtual Private Cloud)
AWS에서 격리된 가상 네트워크 공간을 구성하고 제어하는 핵심 서비스
개념 설명:
A VPC is a virtual network that closely resembles a traditional network that you’d operate in your own data center. After you create a VPC, you can add subnets.
공식문서 VPC는 자체 데이터 센터에서 운영하는 기존 네트워크와 아주 유사한 가상 네트워크.
- 비슷한 개념과 비교:
- vs Traditional On-premise Network: AWS에서 제공하는 완전한 가상 네트워크
- vs Docker Network: 컨테이너 수준의 네트워킹 vs 클라우드 인프라 수준
- 사용이 적합한 환경:
- 퍼블릭/프라이빗 서브넷 분리가 필요한 MSA 구조
- 보안 제어가 중요한 환경 (e.g., 금융/의료)
- 온프레미스-클라우드 간 하이브리드 연동 환경
- 사용 방법:
VPC 생성 기본 절차
- 리전 선택 및 VPC의 CIDR 블록 설정 (예:
172.31.0.0/16
) - IGW(Internet Gateway) 생성 및 VPC에 연결
- Subnet 설정 (AZ 기준으로 퍼블릭/프라이빗 서브넷 구성)
- Route Table 생성 및 서브넷에 연결
- 보안 제어 설정: NACL + Security Group
- 필요시 NAT Gateway 설정 (Private Subnet 인터넷 액세스용)
핵심 컴포넌트 설명
- CIDR 블록:
- RFC 1918의 사설 IP 대역 사용 권장
- 예:
10.0.0.0/16
,172.31.0.0/16
- 생성 후 변경 불가 → 향후 확장/연동 고려 필요
- 인터넷 연결 조건:
- EC2 인스턴스에 공인 IP 할당 (자동 또는 Elastic IP)
- IGW와 VPC 연결
- IGW로의 라우팅 설정 (
0.0.0.0/0
) - NACL 허용 규칙
- SG 허용 규칙
- Elastic IP (EIP):
- 고정 공인 IP 주소, 리전당 기본 5개
- Amazon EIP Pool 또는 BYOIP 가능
- CLI 또는 SDK로 관리 (콘솔에서 일부 제약)
- NAT Gateway:
- 프라이빗 서브넷 인스턴스가 인터넷에 접근하도록 중개
- 퍼블릭 서브넷에 위치하고 IGW와 연결됨
- 보안 제어 요소:
- NACL: Stateless, Subnet 수준 방화벽, Allow/Deny, 순서 있음
- SG: Stateful, 리소스 수준 방화벽, Allow만, 순서 없음
예시 커맨드
1
2
3
aws ec2 create-vpc --cidr-block 172.31.0.0/16 --region ap-northeast-2
aws ec2 create-internet-gateway
aws ec2 attach-internet-gateway --vpc-id vpc-xxxxx --internet-gateway-id igw-xxxxx
실무 예시: VPC 구조
- VPC CIDR:
10.20.0.0/16
- Public Subnet:
10.20.1.0/24
, NAT G/W + IGW 구성 - Private Subnet:
10.20.2.0/24
, EC2 운영 - NAT G/W 및 EIP 할당:
aws ec2 allocate-address
- 도메인 설정:
api.enginrect.com → LB → EC2
VPC Peering
- 서로 다른 VPC 간 안전한 통신 가능
- CIDR 충돌 없어야 함
- Peering 연결 후 Route Table 업데이트 필요
공식문서 링크:
This post is licensed under CC BY 4.0 by the author.