# AWS 콘솔에서 VPC와 퍼블릭·프라이빗 서브넷 만들고 구조 읽기

> VPC 생성 마법사로 서브넷 4개, 인터넷 게이트웨이, 라우팅 테이블을 한 번에 만들고, 리소스 맵과 라우팅 테이블에서 퍼블릭과 프라이빗이 갈리는 지점을 확인합니다. NAT 게이트웨이는 만들지 않고 실습 뒤 VPC를 정리합니다.

- 주소: https://copyandrun.com/blog/aws-vpc-public-private-subnets-console/
- 분야: 클라우드
- 발행일: 2026-10-17
- 태그: AWS, VPC, 서브넷, 라우팅 테이블, 인터넷 게이트웨이

AWS 콘솔의 VPC 생성 마법사로 가상 네트워크를 만들고, 서브넷과 라우팅 테이블이 어떻게 연결되는지 화면에서 읽습니다. 퍼블릭 서브넷에 연결된 라우팅 테이블에서 인터넷 게이트웨이로 가는 경로를 확인합니다.

이 글은 같은 VPC 위에 서버를 올리는 [EC2 인스턴스 시작과 정리 글](/blog/aws-ec2-launch-in-vpc-console/)의 앞 단계입니다. 권한과 정책을 읽는 쪽은 [AWS IAM 정책 시뮬레이터 글](/blog/aws-iam-policy-simulator-read/)을 참고합니다.

## 준비물

| 항목 | 내용 |
| --- | --- |
| AWS 계정 | 실습용 IAM 사용자. VPC와 EC2를 만들 수 있는 권한 필요 |
| 리전 | 아시아 태평양(서울) ap-northeast-2 |
| 브라우저 | Chrome, AWS 콘솔 한국어 화면 |
| 이름 규칙 | 이 글의 모든 리소스는 `cr-demo` 접두어. 다른 사람의 리소스와 섞이지 않게 하는 용도 |
| 예상 소요 시간 | 약 15분 |

이 글은 실습용으로 만든 리소스를 마지막에 모두 삭제합니다. 이미 있는 VPC는 건드리지 않았습니다. 화면의 계정 정보는 가렸습니다.

## 1. VPC 생성 마법사에서 입력하는 값

VPC 콘솔에서 `VPC 생성`을 열면 `VPC 설정`의 `생성할 리소스`가 `VPC 등`으로 잡혀 있습니다. 이 선택은 VPC만 만드는 `VPC만`과 달리 서브넷, 게이트웨이, 라우팅 테이블까지 함께 만듭니다. 오른쪽 `미리 보기`에 만들어질 구조가 바로 그려집니다.

| 화면 항목 | 입력값 |
| --- | --- |
| 생성할 리소스 | VPC 등 |
| 이름 태그 자동 생성 | 체크, 값 `cr-demo` |
| IPv4 CIDR 블록 | `10.60.0.0/16` |
| IPv6 CIDR 블록 | IPv6 CIDR 블록 없음 |
| 테넌시 | 기본값 |
| 가용 영역(AZ) 수 | 2 |
| 퍼블릭 서브넷 수 | 2 |
| 프라이빗 서브넷 수 | 2 |

![VPC 설정에 이름 태그 cr-demo와 IPv4 CIDR 10.60.0.0/16을 입력하면 오른쪽 미리 보기의 리소스 이름이 cr-demo로 바뀌는 것을 확인합니다.](https://copyandrun.com/img/aws-vpc-public-private-subnets-console/01-vpc-wizard-name-cidr.png)

이름 태그를 `cr-demo`로 넣으면 VPC, 서브넷, 라우팅 테이블 이름에 같은 접두어가 붙습니다. 나중에 이름으로 한 번에 찾아 지울 수 있어서 실습에서는 이 방식이 편합니다.

## 2. NAT 게이트웨이와 엔드포인트 선택

아래로 내리면 `NAT 게이트웨이`와 `VPC 엔드포인트` 항목이 나옵니다.

| 항목 | 이 글의 선택 | 이유 |
| --- | --- | --- |
| NAT 게이트웨이 ($) | 없음 | 항목 이름에 ($) 표시가 있어 비용이 붙는 리소스입니다. 프라이빗 서브넷의 외부 통신이 필요 없는 실습이라 만들지 않았습니다 |
| VPC 엔드포인트 | S3 게이트웨이 | 기본 선택값을 그대로 둠. 프라이빗 서브넷에서 S3로 가는 경로를 라우팅 테이블에 추가함 |
| DNS 옵션 | DNS 호스트 이름 활성화, DNS 확인 활성화 | 기본 체크값을 그대로 둠 |

![NAT 게이트웨이가 없음으로, VPC 엔드포인트가 S3 게이트웨이로 선택돼 있고 DNS 옵션 두 개가 체크돼 있는 것을 확인합니다.](https://copyandrun.com/img/aws-vpc-public-private-subnets-console/02-nat-endpoint-options.png)

화면에는 리전 NAT 게이트웨이를 소개하는 안내 상자가 함께 보입니다. NAT 게이트웨이는 시간당 요금이 붙는 항목이라 `없음`을 확인한 뒤 `VPC 생성`을 누릅니다.

## 3. 생성 결과 읽기

생성이 끝나면 `VPC 워크플로 생성` 화면에 단계별 성공 목록이 나옵니다.

![워크플로 화면의 성공 표시와 VPC, S3 엔드포인트, 서브넷 4개, 인터넷 게이트웨이, 라우팅 테이블 3개가 순서대로 생성된 목록을 확인합니다.](https://copyandrun.com/img/aws-vpc-public-private-subnets-console/03-create-workflow-result.png)

목록을 순서대로 읽으면 마법사가 만든 것은 다음과 같습니다.

| 순서 | 만들어진 것 | 개수 |
| --- | --- | --- |
| 1 | VPC와 DNS 설정 | 1 |
| 2 | S3 엔드포인트 | 1 |
| 3 | 서브넷 | 4 |
| 4 | 인터넷 게이트웨이와 VPC 연결 | 1 |
| 5 | 라우팅 테이블, 경로, 서브넷 연결 | 3 |

VPC 생성 직후에는 VPC가 자동으로 갖는 기본 라우팅 테이블도 하나 더 있습니다. 그래서 라우팅 테이블은 모두 4개로 보입니다.

## 4. 리소스 맵에서 구조 확인

`VPC 보기`로 VPC 상세 화면을 열면 `리소스 맵` 탭이 기본으로 열립니다. 왼쪽부터 VPC, 서브넷, 라우팅 테이블, 네트워크 연결 순서로 선이 이어집니다.

![리소스 맵에서 cr-demo-vpc 아래 서브넷 4개와 라우팅 테이블 4개가 선으로 이어져 있고 IPv4 CIDR이 10.60.0.0/16인 것을 확인합니다.](https://copyandrun.com/img/aws-vpc-public-private-subnets-console/04-vpc-resource-map.png)

서브넷은 가용 영역 `ap-northeast-2a`와 `ap-northeast-2b`에 퍼블릭과 프라이빗이 하나씩 있습니다. 라우팅 테이블은 퍼블릭용 `cr-demo-rtb-public`이 하나, 프라이빗용 `cr-demo-rtb-private1`과 `private2`가 가용 영역마다 하나씩, 그리고 이름이 없는 기본 테이블입니다.

## 5. 서브넷 CIDR 읽기

`서브넷` 메뉴에서 `cr-demo`로 검색하면 네 개가 보입니다.

| 서브넷 | IPv4 CIDR |
| --- | --- |
| cr-demo-subnet-public1-ap-northeast-2a | 10.60.0.0/20 |
| cr-demo-subnet-public2-ap-northeast-2b | 10.60.16.0/20 |
| cr-demo-subnet-private1-ap-northeast-2a | 10.60.128.0/20 |
| cr-demo-subnet-private2-ap-northeast-2b | 10.60.144.0/20 |

![서브넷 목록에서 이름의 public과 private, 가용 영역, IPv4 CIDR 네 개를 확인합니다.](https://copyandrun.com/img/aws-vpc-public-private-subnets-console/05-subnets-cidr.png)

VPC의 `/16` 안에서 서브넷마다 `/20`(약 4,000개 주소)이 잡혔습니다. 퍼블릭 서브넷은 낮은 주소 쪽, 프라이빗 서브넷은 `10.60.128.0` 이후에 배치돼 있어 나중에 서브넷을 추가할 여유가 남습니다. 서브넷 이름에 붙은 public과 private은 마법사가 붙인 이름일 뿐이고, 실제 성격은 다음 단계의 라우팅 테이블이 정합니다.

## 6. 퍼블릭을 퍼블릭으로 만드는 경로

`라우팅 테이블`에서 `cr-demo-rtb-public`을 열고 `라우팅` 탭을 봅니다.

![라우팅 테이블의 경로 두 개에서 0.0.0.0/0의 대상이 인터넷 게이트웨이이고 10.60.0.0/16의 대상이 local인 것을 확인합니다.](https://copyandrun.com/img/aws-vpc-public-private-subnets-console/06-public-route-table.png)

| 대상 | 대상 리소스 | 의미 |
| --- | --- | --- |
| 10.60.0.0/16 | local | VPC 안의 통신은 라우팅 없이 서로 닿음 |
| 0.0.0.0/0 | igw-... | 그 밖의 모든 주소는 인터넷 게이트웨이로 보냄 |

이 라우팅 테이블에 연결된 서브넷이 퍼블릭 서브넷입니다. 서브넷의 이름이 아니라 연결된 라우팅 테이블에 인터넷 게이트웨이로 가는 줄이 있는지로 판단합니다. 프라이빗 라우팅 테이블의 경로는 이 글에서 열어 보지 않았으니, 직접 열어 `0.0.0.0/0` 줄이 없는지 비교해 보시기 바랍니다.

## 7. 정리: VPC 삭제

실습이 끝나면 만든 VPC를 지웁니다. 이어서 [EC2 글](/blog/aws-ec2-launch-in-vpc-console/)을 따라 하려면 삭제를 EC2 글의 마지막 단계로 미룹니다. VPC 목록에서 `cr-demo-vpc` 하나만 선택하고 `작업`의 `VPC 삭제`를 엽니다.

![삭제 대화상자에서 삭제 대상이 cr-demo-vpc이고 첫 쪽의 인터넷 게이트웨이와 라우팅 테이블 이름이 cr-demo로 시작하는 것을 확인합니다. 이름이 없는 항목은 보안 그룹입니다.](https://copyandrun.com/img/aws-vpc-public-private-subnets-console/07-delete-vpc-dialog.png)

대화상자는 VPC와 함께 삭제되는 리소스 10개를 목록으로 보여 줍니다. 목록에서 모두 `cr-demo`로 시작하는 이름(또는 이 VPC에 속한 보안 그룹)인지 확인한 뒤 확인란에 `삭제`를 입력하고 삭제합니다. 삭제하자 화면에 "VPC 및 10 기타 리소스를 삭제했습니다."가 표시되고, 목록에는 처음부터 있던 VPC만 남았습니다.

![삭제 완료 배너에 cr-demo-vpc와 기타 리소스 10개를 삭제했다는 문구가 표시되고 VPC 목록에는 처음부터 있던 VPC 하나만 남은 것을 확인합니다. 기존 VPC 이름은 가렸습니다.](https://copyandrun.com/img/aws-vpc-public-private-subnets-console/08-after-delete.png)

## 자주 막히는 곳

| 증상 | 확인할 것 |
| --- | --- |
| 라우팅 테이블 목록에서 `cr-demo`로 검색했는데 결과가 없음 | 이름 검색이 맞지 않으면 VPC ID 필터로 바꿉니다. 이 글에서는 같은 VPC ID로 필터했을 때 4개가 보였습니다 |
| 삭제 대화상자에 만든 적 없는 보안 그룹이 들어 있음 | 같은 VPC에서 EC2 인스턴스를 시작하면 `launch-wizard-1` 보안 그룹이 함께 생기고 VPC와 같이 삭제됩니다 |

## 이어서 해 볼 것

- 같은 VPC에 [EC2 인스턴스를 시작](/blog/aws-ec2-launch-in-vpc-console/)하고 서브넷과 보안 그룹 규칙 읽기
- 프라이빗 라우팅 테이블에 NAT 게이트웨이를 붙여야 하는 경우와 비용 비교
- 보안 그룹과 네트워크 ACL의 차이 정리

## 확인 범위

- 확인한 것: 서울 리전 콘솔(한국어 화면)에서 위 입력값으로 VPC를 만들고, 리소스 맵과 서브넷, 라우팅 테이블을 읽고, VPC를 삭제하는 과정을 실제로 수행했습니다.
- 확인하지 못한 것: NAT 게이트웨이와 엔드포인트의 요금 기준은 AWS 요금 페이지에서 확인하지 못했습니다. 화면의 ($) 표시만 근거로 `없음`을 선택했습니다. IPv6 구성과 프라이빗 라우팅 테이블의 경로는 열어 보지 않았습니다.
- 화면 구성과 기본값은 콘솔 업데이트로 달라질 수 있습니다.
