본문으로 건너뛰기

VPC 개요

카카오클라우드 VPC(Virtual Private Cloud)는 논리적으로 격리된 가상의 네트워크 공간을 제공합니다. 가상 네트워크 환경에서 카카오클라우드의 리소스를 유연하게 운영할 수 있습니다. 사용자는 자체적으로 VPC를 구성하고 서브넷을 생성하여 리소스를 그룹화하면서, 필요에 따라 IP 주소를 세분화하여 네트워크를 유연하게 구성할 수 있습니다. 또한, 보안 그룹을 활용하여 네트워크 트래픽을 제어하고 추가적인 보안 기능을 활용할 수 있습니다.

사용 목적 및 사례

온프레미스의 물리 네트워크 환경을 대체

VPC는 온프레미스(On-premise: 기업 자체 전산실 또는 서버실 환경)의 네트워크를 대체합니다. 온프레미스 환경의 네트워크 구성 시 라우터 및 스위치 등의 네트워크 장비와 서버를 직접 구성 및 설치해야 합니다. 이는 장비 발주부터 상면, 회선 임대 등 많은 시간을 소요하게 합니다. 또한, 최초 구성한 네트워크를 변경하는데 많은 인력과 시간이 투입됩니다. VPC는 이러한 불편함을 해결합니다.

VPC를 사용하면 네트워크 가상화 기술을 기반으로 손쉽게 네트워크를 생성하고 제어할 수 있습니다. 콘솔에서 몇 번의 마우스와 키보드 조작만으로 수 초 이내에 온프레미스 환경에서 직접 네트워크 장비를 구성하는 것과 동일한 환경을 구성할 수 있습니다.

퍼블릭 서브넷과 프라이빗 서브넷의 활용

용도와 목적에 따라 네트워크를 여러 개의 서브넷으로 분리하여 사용할 수 있습니다. 대표적으로 웹 서버와 같이 외부에 공개되어야 하는 서버가 배포되는 퍼블릭 서브넷, 데이터베이스와 같이 외부와의 연결이 최소화되어야 하는 서버가 배포되는 프라이빗 서브넷으로 나누어 구성할 수 있으며, 이는 온프레미스 환경에서 Demilitarized Zone(DMZ)와 Private Zone을 구성하는 것과 유사합니다.

멀티/하이브리드 클라우드 구성

사용자의 네트워크와 외부의 네트워크를 마치 하나의 네트워크처럼 연결해 사용할 수 있습니다. VPN 또는 전용선을 통한 온프레미스 환경과의 하이브리드 구성, 온프레미스 환경을 IDC(Internet Data Center)로 이전하는 코로케이션(Collocation) 기반 하이브리드 구성, 타 클라우드와의 멀티 클라우드 구성이 용이합니다.

특징

논리적으로 완벽하게 격리된 환경

  • VPC로 구현되는 가상 네트워크는 논리적으로 격리된 환경을 제공
  • 자체 IDC(Internet Data Center)를 소유한 것처럼 외부의 간섭 없이 네트워크를 자유롭게 구성
  • 네트워크에 배포된 서버는 퍼블릭 IP를 연결해 명시적으로 공개하거나 전용선, VPN 등으로 연결된 경우를 제외하면 완전히 분리된 환경 제공

가상 서버 배포 환경

  • Virtual Machine의 인스턴스, Kubernetes Engine의 워커 노드와 같은 가상 서버가 배포되는 환경으로 사용
  • 네트워크에 배포된 서버는 네트워크 내에서 고유한 값인 프라이빗 IP를 할당받아 네트워크 내 다른 서버 또는 네트워크 컴포넌트와 통신하는 데 사용

라우팅 설정을 통한 트래픽 제어

  • 라우팅 설정을 통해 각 서브넷에 배포된 서버의 트래픽 설정 가능
  • 네트워크 내부 통신, 공인망으로 전송, VPN 및 전용선을 경유한 온프레미스 환경으로의 전송 등 사용자의 네트워크 내 트래픽을 제어

보안 그룹 기반 네트워크 보안 설정

  • 보안 그룹을 사용해 네트워크에 배포된 서버의 보안을 강화
  • 입력된 정책에 대해서만 트래픽을 허용하는 화이트 리스트(Whitelist) 방식으로 작동
  • 허용된 정책에 대해서는 별다른 설정 없이 응답을 허용하는 상태 관리 방식(Stateful)으로 제공

외부 인터넷망을 통한 접근

  • 고유한 IP 주소를 가진 퍼블릭 IP를 제공
  • 외부 인터넷망에서 퍼블릭 IP를 통해 사용 중인 리소스로 직접 접근

글로벌 표준에 기반한 IaC(Infrastructure as a Code) 도구 활용

  • 카카오클라우드의 네트워킹 서비스는 사용자가 API로 직접 모든 리소스를 컨트롤할 수 있는 글로벌 표준을 지향
  • 사용자는 테라폼 등의 IaC(Infrastructure as Code) 도구를 활용해 VPC의 네트워크 리소스를 코드로 정의

VPC IP CIDR 블록

카카오클라우드 VPC는 IPv4 주소를 지원합니다. VPC를 생성할 때 VPC의 IPv4 주소 범위를 Classless Inter-Domain Routing(CIDR) 블록 형태로 지정해야 합니다. 허용된 블록 크기는 /16 넷마스크부터 /24 넷마스크입니다. VPC를 생성하는 경우, 다음과 같이 RFC 1918 규격에 따라 프라이빗 IP 주소 범위에 속하는 CIDR 블록을 지정해야 합니다. IP 주소에 대한 자세한 설명은 IP 주소 범위 문서를 참고하시기 바랍니다.

정보
  • 생성된 VPC 내에 실제로 할당될 수 있는 IP 주소의 수는 서브넷의 수 및 각 서브넷의 CIDR 블록 크기에 따라 달라집니다.

VPC에 CIDR 블록을 설정할 경우 다음 규칙이 적용됩니다.

  • 허용된 블록 크기는 /16 ~ /24 넷마스크입니다.
  • VPC에 CIDR 블록은 1개 설정할 수 있습니다.
  • 이미 생성된 VPC의 CIDR 정보는 수정할 수 없습니다.
RFC 1918 범위CIDR 블록의 예
10.0.0.0 - 10.255.255.255 (10.0.0.0/8)10.0.0.0/16
172.16.0.0 - 172.31.255.255 (172.16.0.0/12)172.31.0.0/16
192.168.0.0 - 192.168.255.255 (192.168.0.0/16)192.168.0.0/24
정보
  • VPC를 생성할 경우, 위의 RFC 1918 규격에 따라 프라이빗 IP 주소 범위에 속하는 CIDR 블록을 지정하는 것을 권장합니다.

다음 라우팅 테이블은 VPC의 로컬 경로를 보여줍니다.

도착지대상
10.0.0.0/16local

VPC

카카오클라우드에서 생성되는 모든 VPC는 생성 시 기본 서브넷, 연결된 인터넷 게이트웨이, 모든 트래픽을 인터넷 게이트웨이로 보내는 기본 라우팅 테이블의 라우팅까지 함께 생성되는 구조로 제공합니다. 가용 영역에 생성된 기본 서브넷에 BCS 인스턴스를 생성하고 퍼블릭 IP까지 연결하면 바로 인터넷에 액세스할 수 있습니다.

  • VPC: VPC를 온프레미스 환경이나 다른 VPC 등에 연결하려면 VPC CIDR 블록이 중복되지 않아야 합니다. 중복된 VPC CIDR 블록 간의 통신은 어려우므로 IPv4 CIDR 블록을 신중하게 설정합니다.

  • 가용 영역(Availability Zone): 서브넷을 생성할 가용 영역을 선택합니다. 가용 영역은 물리적으로 격리된 하나 이상의 데이터 센터로 단일 데이터 센터에서 가능한 것보다 더 높은 가용성, 내결함성 및 확장성을 갖춘 프로덕션 애플리케이션 및 데이터베이스를 운영할 수 있는 기능을 제공합니다. 애플리케이션을 각기 다른 AZ에 분할하여 운영하면 정전, 낙뢰, 토네이도, 지진 등의 문제가 발생하더라도 서비스 연속성을 유지할 수 있습니다.

  • 퍼블릭 서브넷: 연결된 라우팅 테이블에 인터넷 게이트웨이를 가리키는 라우팅이 설정된 서브넷을 의미합니다. 이렇게 하면 서브넷에서 실행되는 BCS 인스턴스가 인터넷을 통해 공개적으로 액세스할 수 있습니다.

  • 프라이빗 서브넷: 연결된 라우팅 테이블에 인터넷 게이트웨이를 가리키는 라우팅이 없는 서브넷을 의미합니다. 프라이빗 서브넷을 사용하여 인터넷을 통해 공개적으로 액세스할 필요가 없는 백엔드 리소스를 보호합니다.

  • 서브넷 CIDR 블록: 퍼블릭 및 프라이빗 서브넷에 대한 CIDR 블록을 설정합니다.

IAM 기반 역할 관리

VPC의 역할 관리는 IAM 역할 기반 액세스 제어(RBAC)를 따릅니다.

  • VPC, 서브넷, 라우팅 테이블은 프로젝트 관리자만 생성/관리할 수 있습니다.
  • 각 사용자 권한마다 만들기/조회/설정/삭제 기능을 제공 또는 미제공합니다. 해당 기능에 권한이 없으면 관련 버튼이나 화면은 제공되지 않습니다.

VPC

프로젝트 관리자(Admin)는 VPC 생성 및 관리가 가능하고, 프로젝트 멤버(Member)와 프로젝트 리더(Reader)는 라우팅 테이블 조회만 가능합니다.

구분프로젝트 관리자(Admin)프로젝트 멤버(Member)프로젝트 리더(Reader)
VPC 생성✓                        
VPC 조회✓          
VPC 설정
VPC 삭제

서브넷

프로젝트 관리자(Admin)는 서브넷 생성 및 관리가 가능하고, 프로젝트 멤버(Member)와 프로젝트 리더(Reader)는 서브넷 조회만 가능합니다.

구분프로젝트 관리자(Admin)프로젝트 멤버(Member)프로젝트 리더(Reader)
서브넷 생성✓                      
서브넷 조회✓          
서브넷 설정
서브넷 삭제
서브넷 공유

라우팅 테이블

프로젝트 관리자(Admin)는 라우팅 테이블 생성 및 관리가 가능하고, 프로젝트 멤버(Member)와 프로젝트 리더(Reader)는 라우팅 테이블 조회만 가능합니다.

구분프로젝트 관리자(Admin)프로젝트 멤버(Member)프로젝트 리더(Reader)
라우팅 테이블 생성✓                     
라우팅 테이블 조회✓          
라우팅 테이블 설정
라우팅 테이블 삭제

보안 그룹

프로젝트 관리자(Admin)와 프로젝트 멤버(Member)는 보안 그룹 생성 및 관리가 가능합니다.

구분프로젝트 관리자(Admin)프로젝트 멤버(Member)프로젝트 리더(Reader)
보안 그룹 생성✓           ✓           
보안 그룹 조회✓             
보안 그룹 정책 변경
보안 그룹 복사
보안 그룹 삭제

퍼블릭 IP

프로젝트 멤버(Member)와 프로젝트 리더(Reader)는 퍼블릭 IP 목록에 접근할 수 없으며, 퍼블릭 IP에 연결된 리소스에 접근 권한이 있는 경우, 해당 리소스의 상세 페이지에서 연결된 퍼블릭 IP를 확인할 수 있습니다. 프로젝트 관리자(Admin)만 접근 및 제어가 가능합니다.

구분프로젝트 관리자(Admin)프로젝트 멤버(Member)프로젝트 리더(Reader)
퍼블릭 IP 생성✓                                
퍼블릭 IP 조회
퍼블릭 IP 연결
퍼블릭 IP 연결 해제
퍼블릭 IP 삭제

네트워크 인터페이스

프로젝트 관리자(Admin)와 프로젝트 멤버(Member)는 네트워크 인터페이스 생성 및 관리가 가능합니다.

구분프로젝트 관리자(Admin)프로젝트 멤버(Member)프로젝트 리더(Reader)
네트워크 인터페이스 생성✓           ✓           
네트워크 인터페이스 조회✓             
네트워크 인터페이스 삭제
네트워크 인터페이스 수정
프로젝트 멤버 관리

프로젝트에 프로젝트 멤버 또는 관리자를 추가 및 제외하여 프로젝트 내 네트워크 및 리소스에 대한 접근 권한을 관리할 수 있습니다. 프로젝트 멤버 관리에 대한 자세한 설명은 프로젝트 역할 관리를 참고하시기 바랍니다.


DNS 리졸버 쿼리 로깅

프로젝트 관리자(Admin)와 프로젝트 멤버(Member)는 DNS 리졸버 쿼리 로깅 설정 및 관리가 가능합니다.

구분프로젝트 관리자(Admin)프로젝트 멤버(Member)프로젝트 리더(Reader)
DNS 리졸버 쿼리 로깅 설정✓                      
DNS 리졸버 쿼리 로깅 조회✓             
DNS 리졸버 쿼리 로깅 삭제
DNS 리졸버 쿼리 로깅 수정
정보
  • DNS 리졸버 쿼리 로깅 설정을 위한 역할 관리와, 설정 시 쿼리 로그 파일의 저장 대상이 되는 Object Storage 버킷에 대한 역할 관리는 분리되어 관리됩니다. 자세한 설명은 Object Storage 서비스의 역할 및 권한을 참고하시기 바랍니다.

시작하기

VPC에 대한 자세한 사용 가이드는 How-to Guides에서 설명합니다.
카카오클라우드를 처음 시작하신다면 카카오클라우드 시작하기를 참고하시기 바랍니다.