본문으로 건너뛰기

Virtual Private Cloud

· 약 9분
jay.prog

VPC

  • GCP 리소스를 위한 관리형 네트워킹 기능 제공
    • 네트워크
    • 인터페이스 및 IP 주소
    • VPC 공유 및 피어링
    • 하이브리드 클라우드
    • 부하분산

VPC 네트워크

  • 연결된 라우터와 방화벽 규칙을 포함한 전역 리소스
  • 서브넷은 지역(Zone) 리소스, CIDR을 이용하여 IP 주소범위를 정의
  • 방화벽을 통한 트래픽 제어 가능
  • Google API 서비스를 내부 IP 주소로 접근 가능
  • IAM 을 통한 관리
  • 공유 VPC
  • VPC 네트워크 피어링 (다른 프로젝트, 다른 조직의 VPC 네트워크 연결 가능)
  • Cloud VPN/Cloud interconnect 를 통한 하이브리드 클라우드 환경 지원
  • IPv4 유니캐스트 트래픽만 지원
  • 프로젝트는 predefied default 네트워크로 시작하며, 커스텀을 통한 네트워크 선택 가능

Network and Subnet

  • Region 객체 이므로, 선택한 Region에 따라 사용가능한 서브넷이 결정됨
  • 생성 모드
    • 자동 모드 : Zone 마다 서브넷이 하나씩 자동 생성
    • 커스텀 모드 : 개발자가 직접 서브넷, IP 범위 설정
  • 서브넷 기본 IP 주소 범위 최대 5개 까지 정의 가능 -> 현재 기준 확인 필요
  • 기본 IP 주소 범위
    • RFC 1918 CIDR
    • VM 내부 IP 주소
    • VM 별칭 IP 주소
    • 내부 부하 분산기능의 IP 주소에 사용
  • 보조 IP 주소 범위
    • RFC 1918 CIDR에 근거하여 최대 5개까지 정의 가능
    • 별칭 IP 주소에만 사용됨

예약된 IP

  • Network : 10.1.2.0/24
에약된 주소예시
네트워크10.1.2.0
기본 GW10.1.2.1
끝에서 두번째10.1.2.254
브로드캐스트10.1.2.255

자동 모드 IP 범위 -> 현재 버전 검증 필요

  • 생성 시점에 Zone당 하나의 Subnet으로 구축 됨
  • 새 지역에서 자동으로 새 서브넷을 받음
ZoneCIDRDefault GW
asia-east110.140.0.0/2010.140.0.1
asia-east210.170.0.0/2010.170.0.1
asia-northeast110.146.0.0/2010.146.0.1
asia-south110.160.0.0/2010.160.0.1
asia-southeast110.148.0.0/2010.148.0.1

Firewall

  • VPC Network Level에서 정의됨, 규칙 자체는 네트워크 간에 공유 될 수 없음
  • IPv4 트래픽만 지원, CIDR 표기법 사용
  • Allow or Deny
  • Ingress or Egress 트래픽 모두에 적용되도록 정의
  • 구성 요소
    • 우선순위 : 0 ~ 65535, Integer (default : 1000, 낮을 수록 우선순위가 높음)
    • Traffic Direction : Egress / Ingress
    • Action : Allow / Deny
    • Enable / Disable
    • target : 네트워크의 모든 인스턴스, 대상 태그별 인스턴스, 대상 서비스 계정별 인스턴스
    • source : ingress 에만 적용 (default : 0.0.0.0/0)
    • destination : egress 에만 적용 (default : 0.0.0.0/0)
    • protocol : 특정 프로토콜 / 포트 (e.g. tcp, udp, icmp, tcp:3000 ...)
  • 방화벽 규칙 e.g.
우선순위방향작업적용대상소스대상프로토콜/포트
1000ingressallowenabled트래픽을 수신하는 인스턴스0.0.0.0/0N/Atcp:80
1000egressallowenabled트래픽을 송신하는 인스턴스N/A0.0.0.0/0icmp

Routing

  • 자동생성 경로 : 네트워크 생성 / 서브넷 추가 / 서브넷 보조 IP 수정의 경우, 시스템에서 자동으로 생성되는 경로
  • 커스텀 경로 : 사용자가 직접 또는 Cloud Route를 사용하여 만들고 유지 및 관리하는 경로
  • 유형
    • 시스템 생성
      • 기본 경로
      • 서브넷 경로
    • 커스텀 생성
      • 정적 경로
      • 동적 경로

Routing - 기본 경로

  • VPC 네트워크 생성의 경우, GCP 시스템에서 자동으로 기본 경로를 만들어 줌
  • VPC 네트워크에서 나가는 경로
  • 기본 운선순위 : 1000

Routing - 서브넷 경로

  • VPC 네트워크 서브넷으로 가는 경로
  • 각 서브넷은 대상 위치가 서븐넷 내의 IP를 하나 이상 가지게 됨
  • 서브넷의 보조 IP 범위가 있는 경우, GCP는 각 보조 범위에 대해 해당하는 위치를 사용하여 서브넷 경로를 만듦

Routing - 커스텀 정적 경로

  • 이름
  • 네트워크
  • 대상 범위
  • 우선 순의
  • 다음 홉
  • 태그

Routing - 커스텀 동적 경로

  • 대상 위치는 항상 VPC 네트워크 외부의 IP 범위를 나타내며, 다음 홉은 항상 BGP 피어 주소

Forwarding Rule

  • 부하 분산 / 프로토콜 전달 기능 지원
  • 대상
    • 로드 밸런싱 풀
    • 대상 인스턴스
  • 프로젝트 별, 최대 50개 까지 생성 가능
  • 기본 TCP
  • 포트 범위의 사용은 TCP, UDP, SCTP 프로토콜 에서만 지정할 수 있음

IP 주소

  • 고정 외부 IP 주소
    • 외부 IP 주소를 이용할 경우, 발신자가 동일한 VPC 네트워크에 있더라도, 추가 청구 요금이 발생 가능
    • 고정 외부 IP 주소 : 전역 부하 분산시에는 고정 외부 IP 주소만 사용 가능
    • 임시 외부 IP 주소
  • 임시 외부 IP 주소
    • 리소스의 수명 동안만 지속이 되는 IP
    • 외부 IP 관련하여 별 다른 설정을 하지 않을 경우, 자동으로 임시 외부 IP 주소로 설정 됨
  • 내부 IP 주소
    • 고정 내부 IP 주소
    • 임시 내부 IP 주소 : 리소스가 중지되었다가 재시작될 경우 새로운 임시 IP 주소로 바뀜

별칭 (alias) IP 범위

  • e.g. my-team : 192.168.0.2 ~ 192.168.0.254
  • 하나의 VM 에서 여러 서비스를 실행하고 있어서 각 서비스에 서로 다른 IP 주소를 할당 하고자 할 경우 유용
  • Google Kubernetes Engine Pods 에서도 동작 함

다중 네트워크 인터페이스

  • 여러 네트워크 인터페이스를 통해 네트워크 VM이 다른 VPC 네트워크 간 또는 인터넷 간 트래픽을 보호하는 게이트웨이 역할

공유 VPC

  • 여러 프로젝트의 리소스를 공통 VPC에 연결 가능
  • 네트워크의 내부 IP를 사용하여 서로 안전하고 효율적으로 통신 가능
  • Host Project
    • Host Project의 VPC Network를 공유 VPC Network 라고 하며, 외의 다른 프로젝트들을 Service Project 라고 함
  • 중앙 집중식으로 관리 할 때 유용

VPC 네트워크 피어링

  • 모든 통신이 private RFC 1918 IP 주소를 사용하여 이루어 짐 (외부 IP 주소를 이용하지 않고도 서로 통신 가능)
  • 저 지연
  • 서비스 공개 위험성 저하
  • 네트워크 추가 비용 절약

Cloud VPN

가상의 사설 네트워크를 통해 물리적 온프레미스 네트워크 또는 다른 벤더의 클라우드 서비스와 연결 가능

  • IPSec 이용 (Tunneling)
  • Onpremise <-> VPC Network

Cloud Interconnect (Interconnect)

  • 고속의 물리적 연결
  • Private Network <-> Google Network
  • Private Network <-> ISP <-> Google Network