CS 내용 요약, 지식/Google Cloud Associate

Google Cloud Associate 강의 요약: Instance Group

걍판자 2024. 11. 24. 22:10
반응형

서문

GCA 자격증 취득을 위해 들은 강의 내용 요약이다. 인스턴스 그룹에 대한 내용을 담고 있다.



인스턴스 그룹과 MIG

  • Instance Group: 말그대로 vm 인스턴스들을 하나의 그룹으로 묶은 것
    • Location 설정 가능 (Regional 하게 하는 것을 추천함)
    • Managed instance Groups (MIG): 동일한 템플릿을 사용한 그룹
    • Unmanged instance Groups (UIG): VM들이 서로 다른 구성을 가짐
    • MIG를 권장하는 이유: MIG에서만 가능한 기능들
      • 인스턴스 숫자 유지 관리
      • Self Healing: health checks로 applicatoin failures 탐지함
      • auto scaling: 인스턴스를 현재 load 된 양에 따라 줄이거나 늘릴 수 있음
      • load balancer 추가
      • multiple zone 에서 만들 수 있음
      • 새로운 버젼이 나왔을때
        • rolling updates로 새 버전을 단계별로 release
        • canary deployment: 일부를 먼저 트래픽을 분산해 오류 여부를 판단하고 배포할 수 있음
          - MIG 인스턴스 그룹의 구성요소:
          - 탬플릿
          - auto-scaling: 인스턴스의 최소대수, 최대대수, 어떤 걸(cpu, http loadbalancer, cloud monitoring metric ) 기준으로 몇프로 되었을때 늘릴지
          - cool-down period: 서비스 수행을 위한 준비시간
          - scale in controls: 오토 스케일링으로 몇초동안 몇개나 줄일수 있는지 설정
          - auto-healing: 몇초마다 확인할지, 몇초 안에 응답이 안오면 실패인지, 몇개의 실패가 있어야 비정상인지


업데이트 하는법과 시나리오

  • 업데이트 하는법
    • Rolling update: 실행버젼 중단 없이 새로운 탬플릿으로 점진적인 업데이트,
      • 새로운 탬플릿을 지정하면 canary test를 할 수도 있다.
      • 업데이트를 바로 할지 아니면 인스턴스 그룹이 resize 되었을때 할지 정할 수 있음
      • maximum surge: 한번에 추가할 수 있는 최대 신규 인스턴스 수
      • maximum unavailable: 업데이트 동안 최대 몇개가 오프라인이어도 괜찮은지
      • rolling restart나 replace에서도 위의 구성을 정할 수 있음
  • 시나리오
    • MIG의 zonal failure이 염려된다면? : multiple zone이나 regional MIG 생성
    • 같은 그룹의 VM들이 다르게 구성되길 원한다면?: UIG 이용
    • MIG에서 VM상태를 보존하길 원한다면?: stateful MIG 생성, 인스턴스 이름과 persistent disk와 metadata, 보존 가능. stateful workload인 db나 data processing app에서 사용이 권장됨
    • 업데이트 가용성이 높은 MIG 생성을 원한다면?: 템플릿의 가용성 정책을 automatic restart, on-host 유지, live migration 등의 설정을 하면 됨
    • unhelathy instance가 자동으로 replace되길 원한다면?: MIG의 healtch check를 확인한다.(self-healing)
    • autoscaling이 자주 일어나는 것을 원치 않는다면?: cooldown period와 initial delay를 늘린다


Gloud(CLI로 생성)

  • gcloud compute instance-groups managed create my-mig --zone us-central1-a --template my-instance-template-with-custom-image --size 1
  • my-mig라는 이름으로 구역과 탬플릿,크기를 정하고 생성한다. 이때 --health-check--initail-delay로 healthcheck 여부, 시작지연 시간을 줄 수 있다.
  • `gcloud compute instance-groups managed set-autoscaling my-mig --max-num-replicas=2 --zone us-central1-a
  • 인스턴스 그룹에서 autoscailing 의 값들을 정할 수 있다. 그리고 --cool-down-period, --scale-based-on-cpu, --min-num-replicas 등을 정할 수 있다.
  • gcloud compute instance-groups managed stop-autoscaling my-mig --zone us-central1-a autoscaling 멈추기
  • gcloud compute instance-groups managed resize my-mig --size=1 --zone=us-central1-a 크기 조절
  • gcloud compute instance-groups managed delete my-managed-instance-group --region=us-central1 삭제
  • gcloud compute instance-groups managed recreate-instances my-mig --instances=my-mig-85fb --zone us-central1-a 재생성(삭제하고 다시 만들기)
  • gcloud compute instance-groups managed update-instances my-mig --instances=my-instance-3, my-instance-4 특정 인스턴스 업데이트 이 과정에서 옵션으로 --minimal-action--most-disruptive-allowed-action으로 업데이트 할때 refresh 할지, restart 할지, replace 할지 최소 조치와 최대 조치를 정할수 있음(refresh를 최소로 놓고 replace를 최대로 놓는다거나 각 위계 refresh<restart<replace 로 존재함)
  • gcloud compute instance-groups managed set-instance-template my-mig --template=v2-template 탬플릿 업데이트


시나리오: downtime 없이 v1에서 v2로 업데이트 하길 원한다면

    1. managed rolling-action restart
    2. managed rolling-action replace
    3. rolling-action start-update (옵션으로 --canary-version 사용 가능)
반응형