1편. 전체 설계도 & VPC 만들기 — 우리가 만들 것 먼저 보기

시리즈: AWS로 웹 서버 + DB 직접 구축하기 (VPC 완전 정복) | 1편 / 15편

안녕하세요! 😊

이번 시리즈에서는 AWS VPC를 처음부터 직접 만들면서 웹 서버와 데이터베이스를 연결하는 인프라를 구축해볼 거예요.

“VPC가 뭔지는 들어봤는데 솔직히 잘 모르겠어요” “AWS 설정할 때 기본값만 눌렀어요”

저도 처음엔 그랬어요. 그래서 이번 시리즈는 모르는 채로 시작해서 직접 만들어보면서 이해하는 방식 으로 진행할게요.

콘솔 화면에서 어떤 버튼을 누르고, 뭘 입력하고, 어떤 화면이 나오는지 최대한 자세하게 설명할게요. 따라하기만 해도 완성되도록요!


15편 동안 만들 최종 아키텍처

시작하기 전에, 우리가 15편에 걸쳐 완성할 모습을 먼저 봐요.

사용자 브라우저
      ↓  https://example.com
  [Route 53]    ← 도메인을 ALB 주소로 연결
      ↓
  [ACM]         ← HTTPS 인증서 (자물쇠 🔒)
      ↓
  [ALB]          ← 로드밸런서: 트래픽을 여러 서버로 분산
   ↙     ↘
[EC2-A] [EC2-B]  ← 웹 서버 (Auto Scaling으로 자동 증감)
    ↓
  [RDS]         ← MySQL DB (외부에서 직접 접근 불가)

별도 구성:
  [NAT GW]    ← 프라이빗 서버가 인터넷으로 나가는 출구
  [Bastion]      ← 개발자가 프라이빗 서버에 접속하는 관문
  [CloudWatch]← 모니터링 & 이상 시 알람

지금은 이게 다 뭔지 몰라도 괜찮아요. 1편부터 하나씩 만들다 보면 퍼즐 조각이 맞춰지듯 이해가 돼요.


시리즈 전체 구성

주제만드는 것
1편전체 설계도 & VPC 만들기 ← 지금 여기my-vpc
2편서브넷 설계퍼블릭/프라이빗 서브넷 4개
3편인터넷 게이트웨이 & 라우팅 테이블IGW, 라우팅 테이블
4편보안 그룹 설계web-sg, rds-sg
5편EC2 웹 서버 배포web-server-1
6편Nginx로 웹 서버 구성웹 페이지
7편RDS 생성my-database
8편EC2 → RDS 연결DB 연결 확인
9편NAT 게이트웨이my-nat-gateway
10편Bastion Hostbastion-host
11편ALB 로드밸런서my-alb
12편Auto Scalingmy-asg
13편ACM + HTTPSSSL 인증서
14편CloudWatch 모니터링알람, 대시보드
15편완성 아키텍처 & 비용 최적화전체 정리

시작 전 준비사항

AWS 계정

AWS 계정이 없다면 aws.amazon.com 에서 무료로 가입할 수 있어요. 가입 시 신용카드가 필요하지만,
프리 티어 범위 내에서는 요금이 거의 발생하지 않아요.

💡 프리 티어란? AWS 신규 가입 후 12개월(1년) 동안 일부 서비스를 무료로 사용할 수 있어요.
이번 시리즈에서 주로 쓰는 EC2 t2.micro, RDS db.t3.micro가 여기 포함돼요.

⚠️ 가입 후 1년이 지나면 프리 티어가 종료돼요. 
EC2, RDS 등 모든 서비스에 요금이 부과되기 시작하니, 실습 후에는 꼭 리소스를 삭제하세요.

단, NAT 게이트웨이와 ALB는 프리 티어 자체가 없어요. (기간 무관) 실습 후 삭제하면 전체 실습 기준 몇 천 원 이내예요.

리전 설정

AWS 콘솔에 로그인하면 오른쪽 상단에 현재 리전이 표시돼요.
이번 시리즈는 서울 리전(ap-northeast-2) 을 기준으로 진행해요.

리전이 다르면 나중에 만든 리소스가 보이지 않을 수 있으니 꼭 확인하세요!

오른쪽 상단 클릭 → 아시아 태평양(서울) ap-northeast-2 선택

VPC란 무엇인가요?

이제 본격적으로 시작해볼게요.

VPC(Virtual Private Cloud) 는 AWS 안에 만드는 나만의 가상 네트워크 예요.

조금 더 풀어서 설명하면, AWS 데이터센터 안에 다른 사람들과 공유하는 공간이 있는데,
그 안에서 “여기서부터 여기까지는 내 영역이야” 라고 울타리를 치는 거예요.

현실 세계로 비유하면 이렇게 생각해볼 수 있어요.

AWS 전체 = 거대한 아파트 단지 (수백 개 동이 있는) VPC = 내가 분양받은 아파트 한 동 EC2, RDS 등 = 그 동 안의 각 호실

단지 안에 수많은 동이 있고, 각 동은 서로 독립적이에요. 101동 주민이 102동 내부를 들여다볼 수 없는 것처럼, 다른 사람의 VPC에서 내 VPC 안을 볼 수 없어요.

이게 VPC의 핵심이에요 — 격리된 나만의 네트워크 공간.

기본 VPC가 이미 있는데요?

AWS 계정을 처음 만들면 기본 VPC(Default VPC) 가 이미 만들어져 있어요.
그냥 이걸 써도 되지 않냐고 생각할 수 있는데, 실무에서는 직접 만들어 쓰는 경우가 훨씬 많아요.

이유는:

  • 기본 VPC는 보안 설정이 느슨해요 (모든 서브넷이 퍼블릭)
  • 프로젝트/팀마다 VPC를 분리해서 관리하는 게 깔끔해요
  • 네트워크 구조를 내가 원하는 대로 설계할 수 있어요

이번 시리즈에서는 기본 VPC를 건드리지 않고 새로 만들 거예요.


CIDR — IP 주소 범위 정하기

VPC를 만들 때 딱 하나 결정해야 할 게 있어요. 
“이 네트워크 안에서 쓸 IP 주소 범위를 얼마나 크게 만들 것인가” 예요.

이걸 CIDR(사이더, Classless Inter-Domain Routing) 표기법으로 표현해요.

10.0.0.0/16

처음 보면 낯설지만 구조는 간단해요.

  • 10.0.0.0 — 시작 IP 주소
  • /16 — 앞에서부터 16비트는 고정, 나머지는 자유롭게 사용

슬래시 뒤의 숫자가 작을수록 사용 가능한 IP 수가 많아져요.

CIDR 표기사용 가능한 IP 수용도
10.0.0.0/8약 16,000,000개너무 큰 경우
10.0.0.0/16약 65,536개VPC 권장 크기
10.0.0.0/24약 256개서브넷에 사용
10.0.0.0/28약 16개너무 작은 경우

이번 시리즈에서는 VPC를 10.0.0.0/16 으로 만들고, 그 안을 /24 크기로 쪼개서 서브넷으로 사용할 거예요.

💡 왜 10.0.0.0 을 쓰나요? 10.x.x.x, 172.16.x.x, 192.168.x.x 는
인터넷에서 사용하지 않는 사설 IP 대역 이에요. VPC처럼 내부 네트워크에서 자유롭게 써도 돼요.
충돌 걱정 없이 가장 넓은 범위인 10.0.0.0/16 을 많이 사용해요.


직접 만들어볼까요? — VPC 생성

설명은 이 정도면 충분해요. 이제 직접 만들어볼게요!

1단계 — VPC 서비스로 이동

AWS 콘솔 상단 검색창에 VPC 를 입력하면 서비스 목록에 VPC 가 나와요. 클릭!

화면 왼쪽에 여러 메뉴가 있는 사이드바가 보이면 제대로 들어온 거예요.

2단계 — VPC 목록 확인

왼쪽 사이드바에서 Your VPCs 를 클릭하세요.

지금 이미 default 라고 적힌 VPC가 하나 있을 거예요. 이게 AWS가 자동으로 만들어준 기본 VPC예요. 건드리지 말고 새로 만들게요.

오른쪽 상단 주황색 Create VPC 버튼 클릭!

3단계 — 생성 옵션 선택

화면 상단에 선택지가 나와요.

○ VPC only         ← 이걸 선택
○ VPC and more

VPC only 를 선택하세요.

💡 VPC and more 는요? 서브넷, 인터넷 게이트웨이 등을 한 번에 자동으로 만들어주는 옵션이에요. 편리하지만, 이번 시리즈에서는 하나씩 직접 만들면서 이해하는 게 목적이라 VPC only 로 진행할게요.

4단계 — 세부 설정 입력

각 항목을 아래와 같이 입력하세요.

Name tag   : my-vpc

이름은 나중에 여러 VPC가 생겼을 때 구분하기 위한 거예요. my-vpc 로 입력해주세요.

IPv4 CIDR  : 10.0.0.0/16

직접 입력하거나, 드롭다운에서 선택할 수 있어요. 10.0.0.0/16 을 입력하세요.

IPv6 CIDR  : No IPv6 CIDR block

IPv6는 이번 실습에서 사용하지 않아요. 기본값 그대로 두세요.

Tenancy    : Default

테넌시(Tenancy)는 물리 서버 공유 방식을 결정해요.

  • Default — 다른 AWS 고객과 물리 서버를 공유 (일반적)
  • Dedicated — 나만의 물리 서버 사용 (매우 비쌈)

특별한 이유가 없으면 Default 로 두세요.

5단계 — 생성 완료

아래로 스크롤하면 우측에 미리보기 다이어그램 이 보일 거예요. my-vpc가 표시되고 있으면 설정이 잘 된 거예요.

오른쪽 하단 주황색 Create VPC 버튼 클릭!

6단계 — 생성 결과 확인

성공하면 이런 화면이 나와요.

✅ The following VPC was created:
   vpc-xxxxxxxxxxxxxxxxx | my-vpc

초록색 체크 표시와 함께 VPC ID가 표시되면 성공이에요!

View VPC 버튼을 클릭해서 방금 만든 VPC의 상세 정보를 볼 수 있어요.


생성된 VPC 살펴보기

Your VPCs 목록으로 돌아오면 이제 두 개의 VPC가 보여요.

NameVPC IDIPv4 CIDRState
vpc-xxx…172.31.0.0/16Available
my-vpcvpc-yyy…10.0.0.0/16Available

위가 기본 VPC, 아래가 방금 만든 my-vpc 예요.

my-vpc 를 클릭하면 상세 정보가 펼쳐지는데, 지금은 대부분 비어있어요. DNS resolution과 DNS hostnames가 Enabled 인지 확인하세요.

💡 DNS hostnames가 비활성화돼 있다면? Actions → Edit VPC settings 클릭 Enable DNS hostnames 체크 → Save

이 설정이 켜져 있어야 나중에 EC2에 도메인 이름이 자동 부여돼요.


지금 만든 것과 앞으로 할 것

VPC를 만들었지만 지금은 텅 빈 네트워크 공간이에요.
EC2를 올릴 수도, 인터넷에 연결할 수도 없는 상태예요.

앞으로 이 공간 안에 하나씩 채워나갈 거예요.

현재 상태:
  my-vpc (10.0.0.0/16) ✅ 생성 완료
    └ (비어있음)

앞으로 채울 것:
  ├ 서브넷 (2편) — 구역 나누기
  ├ 인터넷 게이트웨이 (3편) — 인터넷 연결
  ├ 보안 그룹 (4편) — 방화벽
  ├ EC2 (5~6편) — 웹 서버
  ├ RDS (7~8편) — DB 서버
  └ ... (9~15편)

혹시 잘못 만들었다면? — VPC 삭제하는 법

이름을 틀리게 입력하거나 다시 만들고 싶다면:

Your VPCs → 삭제할 VPC 체크 → Actions → Delete VPC

⚠️ VPC 안에 서브넷 등 다른 리소스가 있으면 삭제가 안 돼요.
지금 단계에서는 아무것도 없으니 바로 삭제할 수 있어요.


이번 편 정리

개념설명
VPCAWS 안에 만드는 나만의 가상 네트워크
CIDRVPC에서 사용할 IP 주소 범위 (10.0.0.0/16)
/16약 65,536개의 IP 주소를 사용 가능
Tenancy물리 서버 공유 방식, 보통 Default
DNS hostnamesEC2에 도메인 이름을 자동 부여하는 설정

이번 편에서 만든 것:

  • ✅ my-vpc (10.0.0.0/16, 서울 리전)

다음 편 👉 2편. 서브넷 설계 — 퍼블릭과 프라이빗 구역 나누기