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
에약된 주소 | 예시 |
---|
네트워크 | 10.1.2.0 |
기본 GW | 10.1.2.1 |
끝에서 두번째 | 10.1.2.254 |
브로드캐스트 | 10.1.2.255 |
자동 모드 IP 범위 -> 현재 버전 검증 필요
- 생성 시점에 Zone당 하나의 Subnet으로 구축 됨
- 새 지역에서 자동으로 새 서브넷을 받음
Zone | CIDR | Default GW |
---|
asia-east1 | 10.140.0.0/20 | 10.140.0.1 |
asia-east2 | 10.170.0.0/20 | 10.170.0.1 |
asia-northeast1 | 10.146.0.0/20 | 10.146.0.1 |
asia-south1 | 10.160.0.0/20 | 10.160.0.1 |
asia-southeast1 | 10.148.0.0/20 | 10.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.
우선순위 | 방향 | 작업 | 적용 | 대상 | 소스 | 대상 | 프로토콜/포트 |
---|
1000 | ingress | allow | enabled | 트래픽을 수신하는 인스턴스 | 0.0.0.0/0 | N/A | tcp:80 |
1000 | egress | allow | enabled | 트래픽을 송신하는 인스턴스 | N/A | 0.0.0.0/0 | icmp |
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