2025. 3. 30. 18:23ㆍ클라우드
1. 개요
1.1 문서의 목적
최근에 시작한 사이드 프로젝트 A를 AWS에 배포하면서 VPC를 구성해야 했습니다.
CTO님이 VPC, 서브넷, Multi AZ, 라우팅 테이블, 인터넷 게이트웨이, NAT 게이트웨이 등을 설정했다고 하셨는데,
이 용어들이 생소하여 어려움을 겪었습니다.
사실 학부(컴퓨터공학과) 시절에 이러한 용어들을 배우긴 했지만, 머리에서 먼지가 되어 날아간 듯 합니다.
그래서 이번 기회에 제대로 공부하고 정리하여, 추후 신규 팀원에게도 공유할 수 있는 문서를 만들게 되었습니다.
1.2 문서에서 다루는 내용
이 문서에서는 AWS VPC와 관련된 핵심 네트워크 개념들을 설명하고,
실제 사이드 프로젝트 A에서 어떻게 구성했는지 살펴봅니다.
특히 다음 내용에 중점을 둡니다:
- VPC의 기본 개념과 구성 요소
- 서브넷과 CIDR 표기법의 이해
- 가용 영역(AZ)의 개념과 중요성
- 네트워크 게이트웨이와 라우팅 테이블의 역할
- 실제 트래픽이 어떻게 흐르는지에 대한 설명
2. AWS 네트워크의 핵심 개념
2.1 VPC (Virtual Private Cloud)

VPC는 AWS 클라우드 내에서 논리적으로 격리된 가상 네트워크 환경입니다.
사용자가 직접 IP 주소 범위, 서브넷, 라우팅 테이블 및 네트워크 게이트웨이 등을 정의하고
제어할 수 있는 사용자 전용 클라우드입니다.
VPC를 생성할 때는 IP 주소 범위(CIDR 블록)를 지정합니다.
예를 들어, 우리 사이드 프로젝트 A의 VPC 설정에서는 10.0.0.0/16이라는 IP 범위를 할당 받았으며,
이는 총 2^16 = 65,536개의 IP 주소를 사용할 수 있음을 의미합니다.
2.2 서브넷 (Subnet)

서브넷은 VPC의 IP 주소 범위를 더 작은 단위로 나눈 것입니다.
할당 받은 IP 범위를 좀 더 세분화시키는 개념으로, 이는 10.0.1.0/24, 10.0.2.0/24와 같이 표현됩니다.
서브넷은 크게 두 가지 유형으로 나뉩니다:
- 퍼블릭 서브넷: 인터넷에서 직접 접근 가능한 서브넷
- 프라이빗 서브넷: 인터넷에서 직접 접근할 수 없는 서브넷
서브넷은 특정 가용 영역에 속하며, 이를 통해 고가용성 구성을 할 수 있습니다.
2.3 CIDR 표기법
CIDR(Classless Inter-Domain Routing)은 IP 주소를 할당하는 방법입니다.
간단히 말하면 "이 IP 범위에서 얼마나 많은 IP 주소를 사용할 수 있는지" 표현하는 방식입니다.
CIDR 표기법: IP주소/접두사 길이
예를 들어 10.0.1.0/24에서 /24는 "처음 24비트가 네트워크 ID"라는 의미입니다.
이러면 나머지 8비트만 호스트 ID로 사용할 수 있어, 총 256개(2^8)의 IP 주소를 가질 수 있습니다.
예시와 함께 보자면:

실제로는 첫 번째(네트워크 주소)와 마지막(브로드캐스트 주소) IP는 예약되어 있어서 사용 가능한 IP는 254개입니다.
네트워크 주소와 브로드캐스트 주소
네트워크 주소는 서브넷 자체를 식별하는 주소로, 해당 서브넷의 첫 번째 IP(10.0.1.0)입니다.
이 주소는 호스트에 할당할 수 없습니다.
브로드캐스트 주소는 서브넷의 모든 장치에게 동시에 메시지를 보내는 데 사용되는 주소로,
해당 서브넷의 마지막 IP(10.0.1.255)입니다.
이 주소로 패킷을 보내면 서브넷의 모든 장치가 이를 수신합니다.
2.4 가용 영역 (Availability Zone, AZ)
가용 영역(Availability Zone)은 물리적으로 분리된 데이터 센터입니다.
사이드 프로젝트 A는 서울(ap-northeast-2) 리전의 두 가용 영역(a와 c)을 사용하도록 설정되어 있습니다.

여러 가용 영역을 사용하는 이유는 다음과 같습니다:
- 고가용성(High Availability) 확보: 하나의 데이터 센터에 문제가 발생해도
다른 데이터 센터가 정상 작동하여 서비스의 지속성을 보장합니다. - ALB 등의 요구사항: AWS의 ALB 등의 서비스는 최소 두 개 이상의 가용 영역에 서브넷을 구성해야 합니다.
이는 로드 밸런서가 단일 장애점(Single Point of Failure)이 되지 않도록 하기 위함입니다. - AWS 아키텍처 모범 사례: AWS는 프로덕션 환경에서 최소 두 개 이상의 가용 영역을 사용하는 것을 권장합니다.
- 자동 복구 및 장애 조치(Failover): 한 가용 영역의 인스턴스에 문제가 생기면 다른 가용 영역의 인스턴스로 자동 전환되어 서비스 중단을 최소화합니다.
- 재해 복구(Disaster Recovery): 자연재해나 대규모 인프라 장애 시에도 서비스 연속성을 유지할 수 있습니다.
2.5 네트워크 게이트웨이

인터넷 게이트웨이
인터넷 게이트웨이는 VPC와 인터넷 간의 통신을 가능하게 하는 구성 요소입니다.
이를 통해 VPC 내의 리소스가 인터넷과 양방향으로 통신할 수 있습니다.
이 게이트웨이를 사용할 수 있는지에 따라 서브넷이 퍼블릭 서브넷과 프라이빗 서브넷으로 구분됩니다.
NAT 게이트웨이
NAT(Network Address Translation) 게이트웨이는 프라이빗 서브넷의 리소스가 인터넷에 접속할 수 있게 해주지만,
인터넷에서는 프라이빗 서브넷으로 직접 접근할 수 없는 일방향 통신을 제공합니다.
이는 데이터베이스 서버와 같이 외부에서 직접 접근할 필요는 없지만,
소프트웨어 업데이트 등을 위해 인터넷 접속이 필요한 경우에 유용합니다.
2.6 라우팅 테이블

라우팅 테이블은 네트워크 트래픽의 방향을 결정하는 규칙 집합입니다.
사이드 프로젝트 A에는 크게 두 가지 라우팅 테이블이 있습니다:
- 퍼블릭 라우팅 테이블: 내부 트래픽은 내부에서 처리하고, 외부 트래픽(0.0.0.0/0)은 인터넷 게이트웨이로 전달합니다.
- 프라이빗 라우팅 테이블: 내부 트래픽은 내부에서 처리하고, 외부 트래픽(0.0.0.0/0)은 NAT 게이트웨이로 전달합니다.
라우팅 테이블을 서브넷에 연결함으로써, 해당 서브넷의 트래픽이 어디로 향할지를 결정합니다.
3. 사이드 프로젝트 A의 네트워크 구성
3.1 VPC 설계
우리 사이드 프로젝트 A의 VPC는 다음과 같이 설계되었습니다:
- IP 범위: 10.0.0.0/16 (65,536개 IP 주소)
- 리전: 서울 (ap-northeast-2)
- 목적: 확장성을 고려한 충분한 IP 주소 공간 확보
이 VPC 설정은 현재의 사용량보다 훨씬 큰 IP 주소 범위를 가지고 있어,
향후 서비스가 확장되더라도 충분히 대응할 수 있습니다.
3.2 서브넷 구성
VPC를 다음과 같이 4개의 서브넷으로 나누었습니다:

각 서브넷마다 /20이므로 4,096개씩 IP 주소를 가질 수 있습니다.
(실제 사용 가능한 것은 첫 번째와 마지막 IP를 제외한 4,094개).
당장은 이렇게 많은 IP가 필요하지 않을 수 있지만, 확장성을 고려한 설계입니다.
퍼블릭 서브넷에는 ALB 와 같이 외부에서 접근해야 하는 리소스를 배치하고,
프라이빗 서브넷에는 서버(Spring), 데이터베이스와(MySQL) 같이 보안이 중요한 리소스를 배치합니다.
3.3 게이트웨이 및 라우팅 설정
- 인터넷 게이트웨이: 퍼블릭 서브넷과 인터넷을 연결합니다.
- NAT 게이트웨이: 가용 영역 a의 퍼블릭 서브넷에 위치하며, 프라이빗 서브넷에서 인터넷으로의 접근을 지원합니다.
- 라우팅 테이블:
- 퍼블릭 라우팅 테이블: 외부 트래픽(0.0.0.0/0)을 인터넷 게이트웨이로 라우팅
- 프라이빗 라우팅 테이블: 외부 트래픽(0.0.0.0/0)을 NAT 게이트웨이로 라우팅
4. 실제 트래픽 흐름
4.1 사용자 요청 처리 과정
우리 애플리케이션의 실제 동작 흐름은 다음과 같습니다:
- 사용자가 웹에서 사이드 프로젝트 A에 접속합니다.
- 트래픽은 인터넷 게이트웨이를 통해 퍼블릭 서브넷의 웹 서버로 들어옵니다.
- 웹 서버는 프라이빗 서브넷의 데이터베이스에 쿼리를 보내 데이터를 가져옵니다.
- 데이터베이스가 업데이트가 필요하면, NAT 게이트웨이를 통해 인터넷에 접속합니다.
이 과정에서 외부에서는 데이터베이스에 직접 접근할 수 없어 보안이 강화됩니다.
4.2 Multi-AZ 구성의 이점
두 개의 가용 영역을 사용함으로써 다음과 같은 이점을 얻을 수 있습니다:
- 단일 가용 영역에 장애가 발생해도 다른 가용 영역에서 서비스가 계속 실행됩니다.
- 로드 밸런서를 통해 두 가용 영역의 웹 서버로 트래픽을 분산시킬 수 있습니다.
- 데이터베이스의 경우, 생성시 Multi-AZ 옵션을 사용할 수 있지만, 더 많은 요금을 사용하게 됩니다. 사용할 경우, 복제본을 다른 가용 영역에 두어 데이터 손실 위험을 최소화할 수 있습니다.
5. 아키텍처 다이어그램

6. 마무리
이번 글에서는 AWS VPC의 핵심 개념부터 실제 프로젝트에서의 구성까지 상세히 살펴보았습니다.
VPC, 서브넷, CIDR, 가용 영역, 게이트웨이, 라우팅 테이블 등의 개념이 이제 조금 더 명확해졌기를 바랍니다.
궁금한 점이나 추가 정보가 필요하시면 댓글로 남겨주세요.
참고
'클라우드' 카테고리의 다른 글
클라우드의 이점을 최대로, 클라우드 네이티브와 핵심 요소! (0) | 2023.05.05 |
---|---|
[1]클라우드는 선택이 아닌 필수! (0) | 2023.04.26 |