VPC(Virtual Private Cloud)
클라우드 내 프라이빗 공간을 제공함으로써, 클라우드를 퍼블릭과 프라이빗 영역으로 논리적으로 분리할 수 있게 해주는 가상 네트워크망
VPC를 분리함으로써 확장성을 가질 수 있고, 네트워크에 대한 완전한 통제권을 가질 수 있음.
Subnet이란?
하나의 IP 네트워크 주소를 지역적으로 쪼개서 여러 개의 지역 네트워크로 사용할 수 있도록 하는 기술
-> GCP에서는 VPC(메인네트워크)를 쪼개서 여러개의 서브넷으로 나눌 수 있음.
사용자(기업)마다 얼마만큼에 네트워크가 필요한지 다르기 때문에 사용되는것이 subnet mask, cidr
Subnet Mask
IP주소에 대한 네트워크 아이디와 호스트 아이디를 구분하기 위해 사용됌
IP주소는 network addrss와 host address를 합친 주소의 조합
(0.0.0.0 은 모든 네트워크를 의미)
CIDR(Classless Inter-Domain Routing)
1993년 이전에는 IP 주소를 할당하는 방식으로 클래스 기반 방식을 사용했지만, 사용되는 호스트의 수가 늘어남에 따라 할당 가능한 IP 주소의 수가 고갈되는 것과 라우팅 테이블의 크기가 커지는 문제를 해결하기 위해, 1993년부터 도입한 표준 IP 주소 할당 방식
기존의 사용하던 서브넷 마스크는 8자리 단위로만 끊기게 되어 낭비되는 주소가 많았기 때문에 조금더 세밀한 조정이 가능한 CIDR 표기법이 생기게됨.
CIDR 표기법
A.B.C.D/E
A부터 D까지는 IPv4 주소와 동일하게 8비트씩 끊어 0부터 255까지 10진수 숫자. /뒤에 오는 0~32까지의 숫자로 구성된 E를 추가하는것이 사이더 표기법입니다. CIDR값에 따라 호스트값이 달라지며 값이 적어질수록 호스트 값이 커짐
Subnet mask와 차이
255.255.255.255 = 32
255.255.255.0 = 24
255.255.0.0 = 16
255.0.0.0 = 8
0.0.0.0 = 0
추가로 기존 클래스로만 구분하자면 8, 16, 24 정도겠지만 CIDR는 17, 25 도 포함가능.
GCP VPC내에서 TCP, UDP 포트나 지정 프로토콜을 허용 해줄때 이용됨.
source filter에서는 ipv4 범위지정, 소스태그, 서비스 계정을 통해 특정 네트워크에만 접근을 허용 하게끔 할 수 있음.
네트워크 트래픽이 가상 머신(VM) 인스턴스에서 다른 대상 위치로 이동하는 경로를 정의
대상위치는 방법에 따라 내부, 외부 둘다 가능.
다른 영역이나 vpc를 통한 트래픽(ping) 연결
외부 IP주소끼리의 경우
Ping연결 가능 (ICMP 방화벽 규칙에 의해서 제어됨)
다른 vpc 내부 IP주소끼리의 경우
Ping연결 불가능 (동일 VPC가 아닌경우 패킷손실 확인)
->해결책으로는 VPC peering (vpc네트워크를 연결하는 기술)
동일한 프로젝트에 속하는지 또는 동일한 조직에 속하는지에 관계없이 두 개의 VPC의 네트워크 내부 IP 연결을 허용시켜주기 위해 사용
VPC Peering 장점
주의 사항
다른 프로젝트 vm을 연결할 때는 서브넷 ip가 겹치면 안됨.
VPC peering 실습
1) vpc 2개 각 subnet 하나씩 생성
2) vm 생성 후 처음 ping -c 3 내부 ip로 패킷 전송 했을때 100% 실패 확인
3) vpc peering 공개 서브넷 경로를 통해 내보내기로 1->2, 2->1로 peering 전송
활성화 이후 패킷전송 확인됨.
공유 VPC를 사용하는 조직은 여러 프로젝트의 리소스를 공통 VPC 네트워크에 연결할 수 있으므로 해당 네트워크의 내부 IP를 사용하여 서로 안전하고 효율적으로 통신 할 수 있음.
필수 관리 역할이 필요
peering vpc와 shared vpc 차이
shared vpc는 동일한 조직 내에 포함되어 있어야만 내부 연결이 가능
네트워크 서비스들은 부하방지나 고가용성 VM 내부 연결등 다양한 네트워크 관련
HTTP(s) LB
SSL LB
TCP LB
Network LB
health check는 로드밸런싱 서비스를 이용할때 다수의 서버 상태를 점검하기 위해 사용되는 기술로 서버상태를 주기적으로 확인하여 서비스를 원활하게 제공하기 위한 목적으로 사용됨.
Health check에는 상태 확인과 레거시 상태 확인이라는 두 가지 카테고리 존재
상태확인은 정해진 시간마다 백엔드가 트래픽에 응답하는지 확인하는 작업
DNS(Domain Name Server)
보유중인 도메인이 있다면 도메인을 등록하여 사람이 읽을 수 있는 주소를 주소창에 도메인 검색 했을때 해당 도메인 ip주소로 이동 시켜주는 서비스
ex)naver.com
CDN (Content Delivery Network)은 글로벌 엣지 네트워크를 사용하여 사용자에게 최대한 가깝게 콘텐츠를 제공함으로써 콘텐츠 전송을 가속화 하는 콘텐츠 전송 네트워크를 뜻합니다.
장점
NAT(Network Address Translation)는 사설IP를 공인IP로 변경에 필요한 주소 변환 서비스
외부 ip주소가 없는 특정 리소스들을 아웃바운드 연결을 할 수 있게합니다.
강점
개방형 서비스 메시를 제공하는 기업용 트래픽 관리 서비스
장점
SLA(Service-Level Agreement)는 우리말로 서비스 수준 협약이라고 하며, 고객이 공급업체로부터 기대하는 서비스 수준을 기술한 문서
Service mesh란?
서비스 간의 통신을 제어하고 표시, 관리할 수 있도록 하는데 특화된 마이크로 서비스를 위한 어플리케이션에 구축된 인프라 계층
Choosing a Network Connectivity product - has links to all products in the document https://cloud.google.com/network-connectivity/docs/how-to/choose-product
High Availability VPN - suggested lab:
https://partner.cloudskillsboost.google/focuses/11624?catalog_rank=%7B%22rank%22%3A1%2C%22num_filters%22%3A0%2C%22has_search%22%3Atrue%7D&parent=catalog&search_id=16899703
Cloud Router overview:
https://cloud.google.com/network-connectivity/docs/router/concepts/overview
Using VPC Network Peering:
https://cloud.google.com/vpc/docs/vpc-peering
https://cloud.google.com/vpc/docs/using-vpc-peering
VPC Peering - Good overview of the use case:
https://medium.com/google-cloud/simplify-routing-with-vpc-peering-fa1a527b4cfc
Suggested Lab:
VPC Network Peering: https://www.cloudskillsboost.google/focuses/964?parent=catalog
Shared VPC overview https://cloud.google.com/vpc/docs/shared-vpc
Instance groups
https://cloud.google.com/compute/docs/instance-groups
Instance templates:
https://cloud.google.com/compute/docs/instance-templates
Autoscaling groups of instances:
https://cloud.google.com/compute/docs/autoscaler
Setting up health checking and autohealing:
https://cloud.google.com/compute/docs/instance-groups/autohealing-instances-in-migs
Stateful MIGs:
https://cloud.google.com/compute/docs/instance-groups/stateful-migs
Load Balancing Video:
https://www.youtube.com/watch?v=0fQr7TRhnnU&list=PLTWE_lmu2InBzuPmOcgAYP7U80a87cpJd
Corresponding blog
https://cloud.google.com/blog/topics/developers-practitioners/what-cloud-load-balancing
Network Service Tiers
https://cloud.google.com/network-tiers
Google Cloud networking in depth: Understanding Network Service Tiers (May 15, 2019) https://cloud.google.com/blog/products/networking/google-cloud-networking-in-depth-understanding-network-service-tiers
Cloud CDN:
https://cloud.google.com/cdn
Google Cloud networking in depth: Cloud CDN: https://cloud.google.com/blog/products/networking/google-cloud-networking-in-depth-cloud-cdn
Load balancer decision tree (and more)
https://cloud.google.com/load-balancing/docs/choosing-load-balancer
Load balancer lab suggestions:
Create an Internal Load Balancer
https://partner.cloudskillsboost.google/focuses/11632?catalog_rank=%7B%22rank%22%3A2%2C%22num_filters%22%3A0%2C%22has_search%22%3Atrue%7D&parent=catalog&search_id=16809788
HTTP Load Balancer with Cloud Armor
https://partner.cloudskillsboost.google/focuses/11633?catalog_rank=%7B%22rank%22%3A1%2C%22num_filters%22%3A0%2C%22has_search%22%3Atrue%7D&parent=catalog
Network Tiers - Optimizing Network Spend https://partner.cloudskills
클라우드 아키텍처 센터 : https://cloud.google.com/architecture/
Cloud Architecture Center: https://cloud.google.com/architecture/data-lifecycle-cloud-platform