VPC란 무엇인가?
VPC(Virtual Private Cloud)는 AWS 상에서 나만의 가상 네트워크를 만드는 서비스입니다. 쉽게 말해, 클라우드 위에 내 전용 데이터센터를 논리적으로 구성하는 것이며, 서버, 데이터베이스, 스토리지 등을 안전하게 배치하고 네트워크 흐름을 통제할 수 있습니다.
왜 VPC가 필요한가?
- 보안: 외부와 완전히 격리된 환경에서 서버 운영이 가능
- 설계 자유도: 퍼블릭/프라이빗 서브넷 구성, 인터넷 연결 방식 직접 설정
- 확장성: 여러 가용영역(AZ)에 걸쳐 고가용성 네트워크 구축 가능
- 온프레미스 연동: 기업 내부망과 VPN 등으로 연결해 하이브리드 클라우드 구성 가능
VPC 구성 요소
| 구성 요소 | 설명 |
|---|---|
| 서브넷(Subnet) | VPC를 더 작은 네트워크 단위로 나눈 구역. 퍼블릭/프라이빗으로 구분 |
| 인터넷 게이트웨이(IGW) | VPC와 외부 인터넷 간의 연결을 담당하는 장치 |
| 라우팅 테이블 | 네트워크 트래픽의 흐름을 제어하는 경로 설정 표 |
| 보안 그룹 | EC2 인스턴스에 적용되는 방화벽, 인바운드/아웃바운드 트래픽 제어 |
| NACL | 서브넷 단위의 네트워크 ACL. 보안 그룹보다 더 넓은 범위 적용 |
| NAT 게이트웨이 | 프라이빗 서브넷의 인스턴스가 인터넷에 나갈 수 있도록 중계 |
Public 서브넷 vs Private 서브넷
| 구분 | Public 서브넷 | Private 서브넷 |
|---|---|---|
| 인터넷 연결 | 가능 (IGW 경로 포함) | 기본적으로 불가능 |
| 사용 예 | 웹 서버, Bastion Host | DB 서버, 내부 API 서버 |
| 라우팅 테이블 | 0.0.0.0/0 → IGW |
0.0.0.0/0 → NAT (선택) |
서브넷과 서버(EC2)의 관계
서브넷은 IP 주소 풀을 제공하고, EC2 인스턴스는 해당 서브넷에 속하면서 하나의 IP를 할당받습니다.
즉, 서브넷은 서버를 담는 네트워크 영역이며, 서버는 거기서 IP 주소를 부여받아 통신할 수 있게 됩니다.
VPC는 클라우드 구조에서 어떤 역할을 하나?
VPC는 클라우드 컴퓨팅 구조에서 가상화된 네트워크 계층입니다.
가상머신(EC2), 운영체제, 애플리케이션들이 안정적으로 통신하고 동작할 수 있도록 하는 기반 인프라입니다.
[ 애플리케이션 ]
↑
[ 운영체제 (OS) ]
↑
[ 가상 머신 (EC2) ]
↑
[ VPC: 가상 네트워크 ]
↑
[ 하드웨어 서버 (AWS 데이터센터) ]
요약
- VPC는 AWS 내에서 논리적으로 분리된 내 전용 네트워크 공간
- 서브넷, 라우팅, 보안 설정을 통해 네트워크를 직접 설계하고 통제 가능
- IGW, NAT를 통해 인터넷 연결을 설정하며, 서브넷의 라우팅 테이블에 따라 통신 가능 여부가 결정됨
- 클라우드 구조에서 네트워크 가상화 계층으로 중요한 역할 수행
기본 VPC 구성 요소
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/default-vpc-components.html
기존에 생성되어 있던 기본 VPC를 삭제한 후 기본 VPC 생성





기본 라우팅 테이블 확인

기본 네트워크 ACL 확인


VPC 네트워크 구조
[인터넷]
│
▼
[IGW] ← 라우팅 테이블 (0.0.0.0/0 대상)
│
▼
───────────── VPC 내부 ─────────────
│
├─ 퍼블릭 서브넷 (라우팅: 0.0.0.0/0 → IGW)
│ ├─ NACL (서브넷 단위로 적용)
│ │ ├─ 인바운드: 80, 443 허용
│ │ └─ 아웃바운드: 전체 허용
│ │
│ └─ EC2 (웹 서버)
│ ├─ ENI (네트워크 인터페이스)
│ ├─ 퍼블릭 IP 할당
│ └─ 보안 그룹
│ ├─ 인바운드: 80, 443 허용
│ └─ 아웃바운드: 전체 허용
│
│ └─ NAT Gateway
│ ├─ 퍼블릭 IP 보유
│ └─ 프라이빗 서브넷의 외부 요청을 대행
│
└─ 프라이빗 서브넷 (라우팅: 0.0.0.0/0 → NAT)
├─ NACL (서브넷 단위로 적용)
│ ├─ 인바운드: 3306 허용
│ └─ 아웃바운드: 전체 허용
│
└─ EC2 (DB 서버)
├─ ENI (프라이빗 IP만 보유)
└─ 보안 그룹
├─ 인바운드: 3306 허용 (웹 서버에서만)
└─ 아웃바운드: 전체 허용
구성 요소 설명
- IGW (Internet Gateway): 퍼블릭 서브넷과 인터넷을 연결하는 출입문 역할을 하며, 퍼블릭 IP가 있는 EC2 인스턴스가 인터넷과 직접 통신할 수 있도록 해줍니다.
- NAT Gateway: 프라이빗 서브넷의 EC2 인스턴스가 인터넷으로 요청은 보낼 수 있게 하지만, 외부에서 직접 접근은 불가능하게 해주는 중계 서버. 퍼블릭 서브넷에 위치하고 퍼블릭 IP를 가집니다.
- ENI (Elastic Network Interface): EC2 인스턴스가 VPC 네트워크에 접속할 수 있게 해주는 가상 네트워크 카드. 하나 이상의 IP, MAC 주소, 보안 그룹과 연결됩니다.
- 보안 그룹: EC2 단위의 방화벽. 상태 저장 방식으로, 들어오는 트래픽(인바운드)과 나가는 트래픽(아웃바운드)을 제어합니다. EC2에 직접 적용됩니다. Stateful상태(deny를 설정하지 않아도 자동으로 인바운드(allow)에 대해 아웃바운드 설정)
- NACL (Network ACL): 서브넷 단위의 방화벽. 비상태성으로, 들어오는 트래픽과 나가는 트래픽을 각각 설정해야 합니다. 서브넷 전체에 적용됩니다. Stateless상태(인바운드(allow)에 대한 요청 deny를 따로 설정해줘야함)
- 인바운드: 외부에서 내부(EC2 등)로 들어오는 네트워크 요청 (예: 웹 접속)
- 아웃바운드: 내부(EC2 등)에서 외부로 나가는 네트워크 요청 (예: 외부 API, 소프트웨어 설치)
- 라우팅 테이블: 각 서브넷이 목적지 IP 대역에 따라 트래픽을 어디로 보낼지를 결정하는 지도 같은 역할. 예: 0.0.0.0/0 → IGW 또는 NAT
즉, 퍼블릭/프라이빗 서브넷의 EC2 인스턴스가 외부와 통신할 수 있을지 여부는 퍼블릭 IP 보유 여부와 라우팅 테이블, 보안 그룹, NACL 설정에 따라 달라집니다.
VPC 생성


나머지 설정을 그대로 유지한 상태로 [VPC 생성] 버튼을 클릭

인터넷 게이트웨이 생성


인터넷 게이트웨이를 VPC에 연결



(첫번째 가용영역에) 서브넷 생성



라우팅 테이블 생성



라우팅 테이블에 인터넷 게이트웨이로의 라우팅을 추가



라우팅 테이블을 서브넷에 연결



퍼블릭 서브넷에 EC2 인스턴스를 추가 (웹 서버 설치)







인스턴스의 퍼블릭 IP 주소를 확인

브라우저를 이용해서 인스턴스의 80 포트로 접근

'AWS' 카테고리의 다른 글
| AWS - 웹서비스 환경 구성#1 (0) | 2025.06.02 |
|---|---|
| AWS - EC2 인프라 구조(AMI, EBS, 스냅샷, EIP, Load Balancer, Auto Scaling) (1) | 2025.06.02 |
| AWS - 보안그룹, NACL의 인바운드, 아웃바운드 규칙 편집 (1) | 2025.06.02 |
| AWS - CLI설치, Access Key를 이용한 AWS 서비스 이용 (0) | 2025.05.30 |
| AWS - 리전, 가용영역(AZ), 로컬영역 (0) | 2025.05.30 |
| IAM 기초(권한, 역할, 정책, 사용자) (0) | 2025.05.29 |