Virtual Private Cloud(VPC) 네트워크는 Andromeda를 사용하여 Google의 프로덕션 네트워크 내에서 구현되는 물리적 네트워크의 가상 버전
- VPC 네트워크는 Google Cloud 내에서 가상화된다
- VPC 네트워크는 데이터 센터의 Rigion 별 가상 서브 네트워크(서브넷) 목록으로 구성된 전역 리소스로, 모든 리소스는 전역 광역 통신망을 통해 연결된다
- VPC 네트워크는 Google Cloud에서 논리적으로 서로 격리된다
Network Types
Default
- 미리 설정된 VPC network가 제공된다
Auto Mode
- 리전에 하나의 서브넷이 자동으로 생성된다
- CIDR 값이 /20으로 되어있지만 /16까지 늘릴 수 있다
Custom Mode
- 필요한 리전에만 네트워크를 만들 수 있다
- IP구간을 사용자가 정할 수 있다
A-B 는 같은 네트워크라 Private IP로 통신가능
C-D 는 서로 다른 네트워크라 Public IP로 통신을 해야한다
즉, 리전이 다르다 해도 네트워크가 같다면 Private IP 통신이 가능하다 (타 CSP에 특이한 점)
- subnetworks는 rigion 규모에서 작동한다
- rigion에는 여러 zone이 포함되어 있으므로 subnetwork는 zone을 교차할 수 있다
Internal IP & External IP
Internal IP (내부 IP주소)
내부적으로 DHCP를 통해 할당 모든 VM과 VM에 의존하는 서비스는 Internal IP 주소를 얻는다 내부 DNS 서비스에 등록된다
External IP (외부 IP주소)
할당받지 않을 수 있다 (할당 시 요금 부과) pool에서 할당하여 임시로 만들거나 예약된 주소가 할당되어 고정됨 static External IP는 더 높은 요금이 청구 됨 VM의 OS에서 알 수 없음, ifconfig 명령어로 Internal IP만 확인 가능
- 각 인스턴스에는 Internal IP 주소로 확인할 수 있는 호스트 이름이 있습니다. 호스트 이름은 인스턴스 이름과 동일합니다.
- FQDN이 있으며 DNS 이름은 내부 IP 주소에 관계없이 항상 특정 인스턴스를 가리 킵니다.
- 각 인스턴스에는 해당 인스턴스에 대한 DNS resolver 역할을 하는 메타 데이터 서버가 있습니다. (FQDN [hostname].[zone].c.[project-id].internal 형식을 가집니다.)
- 메타 데이터 서버는 로컬 네트워크 리소스에 대한 모든 DNS 쿼리를 처리하고 public name 확인을 위해 다른 모든 쿼리를 Google의 public DNS 서버로 라우팅 합니다.
- 네트워크는 관련 인스턴스의 Internal IP 주소와 External IP 주소를 일치시키는 조회 테이블을 저장합니다.
DNS resolution for External IP addresses
- External IP 주소가 있는 인스턴스는 프로젝트 외부 호스트의 연결을 허용할 수 있습니다.
- DNS는 Cloud DNS를 사용하여 GCP에서 호스팅 할 수 있습니다.
Alias IP Ranges
- Internal IP 주소 범위를 가상 머신의 네트워크 인터페이스에 별칭(Alias)으로 할당할 수 있다
- 하나의 VM에서 여러 서비스를 실행 중이고 각 서비스에 다른 IP 주소를 할당하려는 경우에 유용하다
Route
- 네트워크가 생성되면 route가 생성되어 어디서나 트래픽을 전달할 수 있다
- 서브넷이 생성될 때 route가 생성되고, 동일한 네트워크의 VM이 통신할 수 있게 한다
- 미리 구성된 Firewall rules이 있다, 수동으로 생성된 네트워크에는 이러한 규칙이 없으므로 생성해야한다
네트워크 과금정책
GCP네트워크로 들어오는 트래픽, 동일한 Zone에 대한 Internal IP 통신, 같은 Google 제품으로의 트래픽은 무료이다.
중지 및 종료된 VM일지라도 연결된 디스크와 예약된 IP주소에 대한 과금은 유지된다.