[GCP] Networking

cch_chan·2022년 9월 5일
0

GCP

목록 보기
5/14

VPC network

1. VPC 기본 개념

VPC(Virtual Private Cloud)
클라우드 내 프라이빗 공간을 제공함으로써, 클라우드를 퍼블릭과 프라이빗 영역으로 논리적으로 분리할 수 있게 해주는 가상 네트워크망
VPC를 분리함으로써 확장성을 가질 수 있고, 네트워크에 대한 완전한 통제권을 가질 수 있음.

2. CIDR, Subnet 이란?

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 도 포함가능.

3. Firewall rules 이란?

GCP VPC내에서 TCP, UDP 포트나 지정 프로토콜을 허용 해줄때 이용됨.
source filter에서는 ipv4 범위지정, 소스태그, 서비스 계정을 통해 특정 네트워크에만 접근을 허용 하게끔 할 수 있음.

4. Routes란?

네트워크 트래픽이 가상 머신(VM) 인스턴스에서 다른 대상 위치로 이동하는 경로를 정의
대상위치는 방법에 따라 내부, 외부 둘다 가능.

다른 영역이나 vpc를 통한 트래픽(ping) 연결
외부 IP주소끼리의 경우
Ping연결 가능 (ICMP 방화벽 규칙에 의해서 제어됨)

다른 vpc 내부 IP주소끼리의 경우
Ping연결 불가능 (동일 VPC가 아닌경우 패킷손실 확인)
->해결책으로는 VPC peering (vpc네트워크를 연결하는 기술)

5. VPC peering 이란?

동일한 프로젝트에 속하는지 또는 동일한 조직에 속하는지에 관계없이 두 개의 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 전송


활성화 이후 패킷전송 확인됨.

6. Shared VPC란?

공유 VPC를 사용하는 조직은 여러 프로젝트의 리소스를 공통 VPC 네트워크에 연결할 수 있으므로 해당 네트워크의 내부 IP를 사용하여 서로 안전하고 효율적으로 통신 할 수 있음.

필수 관리 역할이 필요

  • 조직 관리자
  • 공유 VPC 관리자
  • 서비스 프로젝트 관리자

peering vpc와 shared vpc 차이
shared vpc는 동일한 조직 내에 포함되어 있어야만 내부 연결이 가능

Network Service

1. Network services 기본 개념

네트워크 서비스들은 부하방지나 고가용성 VM 내부 연결등 다양한 네트워크 관련

2. GCP의 LB의 종류 및 특징

HTTP(s) LB

  • 글로벌 로드 밸런싱
  • HTTP on port 80 or 8080
  • HTTPS on port 443
  • IPv4 또는 IPv6
  • Auto Scaling
  • HTTPS 사용 하기 위해서는 SSL인증서 필요

SSL LB

  • 암호화된 트래픽을 위한 글로벌 로드 밸랜싱
  • IPv4 또는 IPv6

TCP LB

  • 기본적으로 TCP, SSL은 기본 구조는 동일
  • 비 암호화된 트래픽 글로벌 로드 밸랜싱
  • IPv4 또는 IPv6

Network LB

  • UDP TCP/SSL Port
  • 지역 로드밸랜서

3. LB에서 사용하는 Health check 방식은 모두 어떻게 되는가?

health check는 로드밸런싱 서비스를 이용할때 다수의 서버 상태를 점검하기 위해 사용되는 기술로 서버상태를 주기적으로 확인하여 서비스를 원활하게 제공하기 위한 목적으로 사용됨.

Health check에는 상태 확인과 레거시 상태 확인이라는 두 가지 카테고리 존재
상태확인은 정해진 시간마다 백엔드가 트래픽에 응답하는지 확인하는 작업

4. Cloud DNS란?

DNS(Domain Name Server)
보유중인 도메인이 있다면 도메인을 등록하여 사람이 읽을 수 있는 주소를 주소창에 도메인 검색 했을때 해당 도메인 ip주소로 이동 시켜주는 서비스
ex)naver.com

5. Cloud CDN란?

CDN (Content Delivery Network)은 글로벌 엣지 네트워크를 사용하여 사용자에게 최대한 가깝게 콘텐츠를 제공함으로써 콘텐츠 전송을 가속화 하는 콘텐츠 전송 네트워크를 뜻합니다.

장점

  • 고속 컨텐츠 전송 - CDN 사용시 저장된 캐시에 경우 컨텐츠가 캐쉬에서 직접 제공 처음 요청 될 경우 캐시로 저장됨
  • 다중 사용자 확장 - 웹페이지의 부하가 줄어들어 더 많은 사용자 수용가능

6. Cloud NAT란?

NAT(Network Address Translation)는 사설IP를 공인IP로 변경에 필요한 주소 변환 서비스
외부 ip주소가 없는 특정 리소스들을 아웃바운드 연결을 할 수 있게합니다.

강점

  • VM 보안 강화 : 외부 IP가 있어야 하는 필요성을 줄이는데 도움이 됨.
  • VM 기반 서비스 확장성보장 : Cloud NAT는 NAT IP주소 수를 자동으로 확장하도록 구성이 가능하기 때문에 관리현 인스턴스 그룹에 속한 VM을 지원함
  • 고가용성 : Cloud NAT는 분산형 소프트웨어 정의 관리형 서비스이므로 프로젝트의 VM이나 단일 물리적 게이트웨이에 의존 하지 않음

7. Traffic Director?

개방형 서비스 메시를 제공하는 기업용 트래픽 관리 서비스

장점

  • SLA에 따른 완전 관리형 서비스 99.99% SLA 제공으로 비즈니스에 집중가능
  • Traffic Director를 사용하면 여러 리전의 클러스터와 VM 인스턴스 간에 글로벌 부하 분산과 트래픽 분할등 트래픽 관리를 쉽게 할 수 있음
  • 배포 규모에 맞는 원활한 확장가능. 서비스 수가 증가하여 설치 규모가 늘어도 Traffic Director에서 확장을 통해 서비스 관리

SLA(Service-Level Agreement)는 우리말로 서비스 수준 협약이라고 하며, 고객이 공급업체로부터 기대하는 서비스 수준을 기술한 문서
Service mesh란?
서비스 간의 통신을 제어하고 표시, 관리할 수 있도록 하는데 특화된 마이크로 서비스를 위한 어플리케이션에 구축된 인프라 계층

VPC 참고자료

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

LoadBallancer

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

profile
꾸준히 새로운 기술을 배워나가는중입니다.

0개의 댓글