
VPC(Virtual Private Cloud) 서비스
네트워크 통신을 수행하는 프로세스(실행 중인 프로그램)에 부여되는 번호
0 ~ 65535번 사용(2 byte)
0 ~ 1023번 예약 번호
· 22번 포트 - SSH(Secure SHell)
· 80번 포트 - HTTP( Web )
· 443번 포트 - HTTPs( secure Web )
Server에서 동작하는 프로세스에 대한 포트 번호가 결정되어 있어야 서비스 제공 가능
네트워크에 연결된 computer(host)에 부여되는 번호
IP Address는 네트워크에서 유일하게 부여
IPv4(32 bit)와 IPv6(128 bit) 방식
GCP에서 IP address 표현 방식은 IPv4를 기본으로 사용
주로 IPv4 방식 사용 - 10진수 3자리(2진수 8자리, 8 bit, 옥텟)를 .(dot)으로 구분하여 4개로 표현
· 192.168.0.0 -> IPv4 방식 IP Address
호스트가 연결되어 있는 구성
클래스로 표현
· A 클래스: 가장 처음 1 bit - 0, 0.0.0.0 ~ 127.255.255.255, 최대 host 수 : 16,777,216
· B 클래스: 가장 처음부터 2 bit - 01, 128.0.0.0 ~ 191.255.255.255, 최대 host 수 : 65,536
· C 클래스: 가장 처음부터 3 bit - 001, 192.0.0.0 ~ 223.255.255.255, 최대 host 수 : 256
현재 네트워크 외부로 나가고 들어오는 통로
외부 인터넷(인터넷)과 통신을 수행하기 위한 연결점 - 인터넷 게이트웨이
통상 IPv4의 마지막 옥텟이 1번을 Gateway로 사용
네트워크에 연결된 host의 경로를 탐색하는 역할 수행
Routing table(라우팅 테이블) 에 연결된 host의 경로 정보를 가지고 있다.
네트워크 구성은 할 때 방화벽 구성이 중요하다.
VPC 방화벽을 통해 외부에서 내부 네트워크로 진입하는 것을 막는다.
라우터, 게이트웨이 등 VPC 서비스 구성 시 기본적으로 설정이 되며,
네트워크는 필요 시 VPC 네트워크로 생성하면 된다.
한 프로젝트 당 VPC는 총 5개씩 구성이 가능하며,
매번 새로 생성하지 않고 사전에 구성해둔 VPC를 사용해도 된다.
디폴트 VPC도 있기 때문에, 상황에 맞게 원하는 VPC 사용이 가능하다.
· application에서 socket을 이용하여 활용
프로그램간 통신을 위한 프로토콜
SSH, HTTP, FTP, mail …
프로그램에 연결된 포트 번호 결정 및 통신 방법
TCP(1 vs 1), UDP(1 vs 1, 1 vs n, n vs m)
Host에 대한 IP address 결정
IP, ICMP, ARP
VPC로 가상 토폴로지를 자동으로 설정해 서브넷 및 네트워크 정책의 프리픽스 범위를 구성하거나 직접 구성할 수 있습니다.
다운타임 없이 CIDR 범위를 확장할 수 있습니다.
흐름 로그는 Compute Engine의 네트워크 인터페이스에서 송수신되는 IP 트래픽 정보를 기록
VPC 흐름 로그를 네트워크 모니터링, 포렌식, 실시간 보안 분석, 비용 최적화에 활용할 수 있다.
Google Cloud 흐름 로그는 5초마다 업데이트되어 즉각적인 가시성을 제공
조직의 여러 프로젝트에서 공유되도록 VPC 네트워크를 구성하세요.
관련된 연결 경로 및 방화벽은 중앙에서 관리됩니다.
개발자가 청구 및 할당량이 별도로 적용되는 자체 프로젝트를 운영하는 동시에, 서로 소통할 수 있는 공유된 비공개 네트워크에 접속할 수 있습니다.
모든 리전에 걸친 Google 네트워크로 자체 IP 주소를 가져와 마이그레이션 중 다운타임을 최소화하고 네트워킹 인프라 비용을 절감할 수 있다.
자체 IP를 가져오면 Google Cloud에서 전 세계 모든 피어에 이를 공지
프리픽스를 최소 16개의 주소 블록(/28)으로 나눌 수 있으므로 리소스의 유연성이 높아집니다.
VPC Network -> VPC 네트워크 -> Create VPC network


Name : 사용될 VPC 성격에 맞게 설정
VPC network ULA internal IPv6 range : Disable
Subnets : Custom
· Automatic으로 설정하며 GCP 에서 default로 제공되는 Subnet에 할당되기 때문에 원하는 Subnet 설정을 위해서는 custom 설정

external(public), internal(private) 각 2개씩 subnet 생성
Private Google Access : On
· 공인IP가 없이 프로젝트의 VPC대역 외 GCP의 API와 서비스에 접근하기 위해서는 해당 옵션을 "On" 시켜야 접근이 가능하다.

해당 옵션의 mode에 따라서 Dynamic routing(BGP)의 범위가 달라진다.
Region mode의 경우, 동일 리전의 인스턴스에만 적용
Global mode의 경우, 리전과 상관 없이 모든 인스턴스에 적용
Name : subnet-demo-ext-01 / subnet-demo-ext-02
Region : asia-northeast3(seoul)
IP stack type : IPv4
IPv4 range : 172.22.36.0/26 / 172.22.36.64/26
Name : subnet-demo-int-01 / subnet-demo-int-02
Region : asia-northeast3(seoul)
IP stack type : IPv4
IPv4 range : 172.22.36.128/26 / 172.22.36.192/26

Firewall rule은 GCP에서 기본으로 제공하는 정책들은 적용해서 구성
vpc-demo-allow-custom : enable
· vpc-demo(172.22.36.0/24) 대역에서는 모든 Protocols와 Ports들을 allow
· 이 정책을 enable하는 이유는 앞으로 demo 테스트를 하는데 있어서 방화벽에 대한 제약을 최소화하기 위해서 반영
· 실제 운영망에서는 서비스 영향도에 따라서 방화벽 룰을 설정하면 된다.
vcp-demo-allow-icmp : enable
· 서버 ping check를 위해서 방화벽 룰 적용



나머지 설정값들은 default로 설정하고 CREATE 선택
VPC 생성은 복잡하거나 어렵지 않다.
네트워크 내용을 정리하여 정리된 내용을 기반으로 VPC 생성이 가능하다.
VPC 생성 시 이름을 정하고 네트워크 안에 서브넷을 어떻게 구성할 것인지 정한다.
자동 방식을 이용하여 하거나 리전 별로 서브넷을 구성할 수도 있다.
수동으로 선택하자면, 전체 리전 별이 아닌 한 리전에다 리전의 존 별로 할당이 가능하다.
사이더에 의해 각 서브넷의 네트워크 범위 설정이 가능하다.
기본적으로 네트워크가 구성이 되면 사설 네트워크가 생성되고,
게이트웨이를 통해 외부랑 통신할 수 있는 통로를 만들고 방화벽을 통해 보안 관리를 한다.
방화벽은 VPC 안에 있고 VM을 생성하여 서비스 구현하고 서비스를 운영한다.
방화벽을 통해서 외부로 나가고 방화벽을 통해서 외부에서 진입한다.
아웃바운드(송신)는 나가는 거라 크게 신경쓸 필요가 없지만, 인바운드(수신) 방화벽은 들어오는 것이기 때문에 방화벽이 중요하다.
만약, 방화벽으로 외부에서 못 들어오게 다 막는다면, 서비스 제공이 어렵다.
서비스 제공은 상대방에게 일방적으로 제공하는 게 아니기 때문에 인바운드 규칙을 정해줘야 한다.
(예시) VPC의 인바운드 규칙을 설정할 때, 서비스의 성격에 따라 아래와 같은 포트 및 프로토콜을 허용
22번 포트 (SSH): 원격 서버 접속을 위해 사용
80번 포트 (HTTP): 웹 서비스 제공을 위해 사용
ICMP: 네트워크 상태 확인(핑)을 위해 사용.