# 클라우드 보안의 핵심, VPC(가상 사설 클라우드) 이해하기
클라우드 서비스를 도입할 때 가장 먼저 마주하는 개념이 바로 VPC입니다. 물리적인 서버와 네트워크 장비를 직접 구매하지 않아도 소프트웨어 방식을 통해 완벽하게 독립된 네트워크 환경을 구축할 수 있습니다.
기업의 데이터 유출을 막고 외부 위협으로부터 시스템을 보호하기 위한 필수 인프라로 자리 잡았습니다. 단순히 가상 공간을 할당받는 것을 넘어, 전체 인프라의 트래픽 흐름을 통제하는 관제탑 역할을 수행합니다.
VPC(Virtual Private Cloud)는 퍼블릭 클라우드 내부에서 사용자만이 독립적으로 사용할 수 있도록 격리된 가상 네트워크 공간을 뜻합니다. IP 주소 대역 설정, 서브넷 분리, 라우팅 테이블 및 방화벽 규칙을 직접 정의하여 사내 데이터센터처럼 안전하게 클라우드 자원을 운영할 수 있게 돕습니다.
VPC의 핵심 구성 요소와 네트워크 설계
성공적인 클라우드 구축은 VPC 내부를 어떻게 쪼개고 연결하느냐에 따라 갈립니다. 가장 먼저 인바운드와 아웃바운드 트래픽을 제어하는 인터넷 게이트웨이가 필요합니다.
이를 통해 외부 사용자가 서비스에 접속할 수 있는 길이 열립니다. 다음으로는 네트워크 트래픽의 목적지를 지정하는 라우팅 테이블과 IP 주소 범위를 세분화하는 서브넷이 존재합니다.
서브넷은 외부 노출 여부에 따라 퍼블릭 서브넷과 프라이빗 서브넷으로 나뉩니다. 데이터베이스처럼 보안이 절대적으로 필요한 자원은 프라이빗 서브넷에 배치하여 외부 접근을 원천 차단하는 것이 정석입니다.
퍼블릭 서브넷과 프라이빗 서브넷의 역할 비교
클라우드 네트워크를 설계할 때는 웹 서버와 데이터베이스 서버의 위치를 명확히 구분해야 합니다. 퍼블릭 서브넷은 인터넷 게이트웨이와 직접 연결되어 사용자 요청을 가장 먼저 받는 웹 서버나 로드밸런서가 위치합니다.
반면 프라이빗 서브넷은 외부 인터넷과 직접 통신할 수 없으며, 오직 퍼블릭 서브넷을 거치거나 내부망을 통해서만 접근이 가능합니다. 아래 표는 두 서브넷의 구체적인 특징을 비교한 것입니다.
| 구분 | 퍼블릭 서브넷 (Public Subnet) | 프라이빗 서브넷 (Private Subnet) |
|---|---|---|
| 인터넷 직접 연결 | 가능 (인터넷 게이트웨이 경유) | 불가능 (외부 직접 접근 차단) |
| 주요 배치 리소스 | 웹 서버, NAT 게이트웨이, 로드밸런서 | 데이터베이스(DB), 내부 애플리케이션 서버 |
| 보안 수준 | 상대적으로 낮음 (트래픽 유입 허용) | 매우 높음 (격리된 내부망) |
| 주된 용도 | 사용자 대상 서비스 제공 및 트래픽 분산 | 기밀 데이터 저장 및 핵심 비즈니스 로직 처리 |
트래픽 제어의 양대 산맥, 보안 그룹과 NACL
네트워크를 나누었다면 세부적인 접근 제어 설정이 뒤따라야 합니다. AWS 등의 클라우드 환경에서는 보안 그룹(Security Group)과 네트워크 접근 제어 목록(NACL)이라는 두 가지 방화벽 기능을 제공합니다.
보안 그룹은 인스턴스 레벨에서 작동하며 허용 규칙만 지정할 수 있는 스테이트풀(Stateful) 특성을 가집니다. 즉, 들어오는 요청을 허용하면 나가는 응답은 별도 규칙 없이 자동으로 허용됩니다.
반면 NACL은 서브넷 레벨에서 작동하며 허용과 거부 규칙을 모두 설정할 수 있는 스테이트리스(Stateless) 방식으로 운영됩니다. 두 방화벽을 중첩하여 적용해야 빈틈없는 다중 방어 체계가 완성됩니다.
초보자가 흔히 저지르는 네트워크 설정 실수
VPC를 처음 구성할 때 CIDR 블록 산정에서 오류를 범하는 경우가 많습니다. 향후 서버 증설 규모를 고려하지 않고 너무 작은 IP 대역을 할당하면 나중에 네트워크를 재설계해야 하는 상황이 발생합니다.
또한, 모든 인스턴스를 퍼블릭 서브넷에 몰아넣고 보안 그룹으로만 막으려다 해킹 사고에 노출되는 사례도 빈번합니다. 테스트 서버와 운영 서버의 VPC를 분리하지 않아 보안 정책이 꼬이는 문제도 주의해야 합니다.
프라이빗 서브넷에 있는 서버가 소프트웨어 업데이트를 위해 외부와 통신해야 할 때는 반드시 NAT 게이트웨이를 별도로 구축하는 설계를 적용하는 편이 안전합니다.