GCP - Associate Cloud Engineer 준비기

GCP Certification 취득을 위해 공부합니다. GCP 전반에 대한 내용을 다룹니다.

정리된 내용은 “Udemy-GCP Associate Cloud Engineer - Google Cloud Certification” 강의를 기반으로 합니다.

Instance Groups

여러개의 VM을 하나의 엔티티처럼 관리하기 위한 인스턴스 묶음

  • 종료

    1. Managed(MIG)

      • Instance Template를 이용해 동일한 VM을 여러개 만들어 관리
      • Auto scaling, Auto healing 지원
    2. Unmanaged

      • 서로 다른 configurations로 다른 VM을 만들어 관리
      • Auto scaling, Auto healing 미지원

MIG

특징

  • Instance Template 가 반드시 필요함
  • 실행되는 인스턴스 수를 보장 : 인스턴스가 죽으면 새로운 인스턴스 생성하여 할당
  • Self Healing(Health Check)
  • Auto Scaling

    • 최대/최소 인스턴스 수 설정
    • Cooldown Period, Scale In Control 설정
  • Load Balancing
  • Regional MIGs : 여러 Zone에 분산하여 HA 보장
  • Downtime 없이 새로운 인스턴스 배포/업데이트 가능

    • Rolling Update : 인스턴스를 하나 씩 단계적으로 업데이트
    • Canary Deployment : 인스턴스 중 일부 그룹을 먼저 업데이트하여 테스트한 뒤 전체 업데이트

Update / Restart / Replace

  1. 새로운 Instance Template 작성
  2. 업데이트 시기 결정

    • Proactive : 즉각 업데이트
    • Opportunistic : resize로 인한 인스턴스 중단 상태 등을 기다렸다가 업데이트
  3. 업데이트 속성 결정

    • Maximum Surge : 한 번에 몇 개의 인스턴스를 변경/추가할 지
    • Maximum Unavailable : 한 번의 업데이트가 진행될 때 인스턴스를 몇 개까지 멈추게할 수 있을지

시나리오

  1. Zonal Failure를 복구하기 위한 MIG를 운영하려면 어떻게 해야할까?

    • Multiple zone MiG (Regional MIG)
  2. 같은 그룹 내 서로 다른 설정값을 가진 VM을 생성할 수 있을까?

    • Unmanaged Instance Group
  3. MIG의 VM 상태(state)를 보존하고 싶다면?

    • Stateful MIG
    • Instance 이름, 영구 디스크/메타데이터 저장하므로 DB, Data processing app에 적합
  4. HW/SW 업데이트 상황에서도 High Availablity를 보장하기 위한 방법은?

    • 가용성 정책과 함께 Instance Template 사용
    • Automatic Restart : enabled / On-Host Maintenance : migrate
  5. Unhealthy Instance를 자동으로 replace하려면?

    • Health Check, Self Healing
  6. 빈번한 scale up/sacle down을 방지하고 싶다면?

    • Cool Down Period 설정
    • Initial Delay 설정

Gcloud로 Instance Groups 관리하기

  • Instance Group 생성 : gcloud compute instance-groups managed create my-mig --zone us-central1-a --template my-instance-template --size 1
  • Auto Scaling 설정 : gcloud compute instance-gorups managed set-autoscaling my-mig --max-num-replicas=10

    • --cool-down-period , --scale-based-on-cpu
  • Instance Group Update : gcloud compute instance-gorups managed update my-mig

    • --initial-delay , --health-check
  • 리사이즈 : gcloud compute instance-gorups managed resize my-mig --size=10
  • Instance Template 업데이트 : gcloud compute instance-gorups managed set-instance-template my-mig --template=v2-template

    • Instance Template 업데이트 시 downtime 없이 template 설정하는 방법

      1. Instance 재생성 : gcloud compute instance-gorups managed recreate-instances my-mig --instances=my-instance-1,my-instance-2
      2. Instance 업데이트 : gcloud compute instance-gorups managed update-instances my-mig --instances=my-instance-1,my-instance-2
      3. Rolling Action
  • Rolling Action 업데이트

    1. restart (Stop & Start) : gcloud compute instance-gorups managed rolling-action restart my-mig
    2. recreate (Delete & Recreate) : gcloud compute instance-gorups managed rolling-action replace my-mig
    3. --max-surge, --max-unavilable, --replace-method=recreate/substitute (인스턴스명 재사용/새로 생성)