[GCP] academy Challenge Lab

cch_chan·2022년 9월 16일
0

GCP

목록 보기
8/13

https://partner.cloudskillsboost.google/focuses/11604?parent=catalog

도전 시나리오 (Create and Manage Cloud Resources)

Jooli, Inc.에서 주니어 클라우드 엔지니어로 새로운 역할을 시작하셨습니다. Jooli에서 인프라 관리를 도우셔야 합니다. 일반적인 작업에는 프로젝트에 대한 리소스 프로비저닝이 포함됩니다.

이러한 작업에 대한 기술과 지식이 있어야 하므로 단계별 가이드는 제공되지 않습니다.

준수해야 하는 몇 가지 Jooli, Inc. 표준:

달리 지시하지 않는 한 기본 리전 또는 영역에 모든 리소스를 만듭니다.

이름 지정은 일반적으로 team-resource 형식을 사용합니다 . 예를 들어, 인스턴스의 이름은 nucleus-webserver1 로 지정할 수 있습니다 .

비용 효율적인 리소스 크기를 할당합니다. 프로젝트가 모니터링되고 과도한 리소스 사용으로 인해 포함하는 프로젝트(및 귀하의 프로젝트)가 종료되므로 신중하게 계획하십시오. 이것은 모니터링 팀이 공유하고자 하는 지침입니다. 지시가 없는 한 소규모 Linux VM에는 f1-micro 를 사용 하고 Windows 또는 Kubernetes 노드와 같은 기타 애플리케이션에는 n1-standard-1 을 사용합니다.

작업1


VM 생성
gcloud compute instances create nucleus-jumphost-606 \ --zone="us-east1-b" \ --machine-type=f1-micro \ --boot-disk-size=10GB

작업2

클러스터 생성
gcloud container clusters create --machine-type=n1-standard-1 --zone=us-east1-b nucleus-cluster

디플로이먼트 생성
kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:2.0

서비스 노출
kubectl expose deployment hello-server --type=LoadBalancer --port 8083

작업3

요구 사항

  • <defult region,zone>
    gcloud config set compute/region us-east1
    gcloud config set compute/zone us-east1-b

  • Create an instance template.

    • startup.sh 생성
      cat << EOF > startup.sh #! /bin/bash apt-get update apt-get install -y nginx service nginx start sed -i -- 's/nginx/Google Cloud Platform - '"\$HOSTNAME"'/' /var/www/html/index.nginx-debian.html EOF
    • nginx-template 생성
      gcloud compute instance-templates create nginx-template \ --metadata-from-file startup-script=startup.sh
  • Create a target pool.

    • target pool 생성 (TCP/UDP) 로드밸랜서
      gcloud compute target-pools create nginx-pool
  • Create a managed instance group.

    • 관리형 인스턴스 그룹 생성
      gcloud compute instance-groups managed create nginx-group \ --base-instance-name nginx \ --size 2 \ --template nginx-template \ --target-pool nginx-pool
  • Create a firewall rule named as Firewall rule to allow traffic (80/tcp).

    • 방화벽 규칙 생성
      gcloud compute firewall-rules create grant-tcp-rule-216 --allow tcp:80
  • Create a health check.

    • health check 생성
      gcloud compute http-health-checks create http-check
  • Create a backend service, and attach the managed instance group with named port (http:80).

    • 백엔드 서비스 생성
      gcloud compute backend-services create nginx-backend \ --protocol HTTP --http-health-checks http-check --global
    • 인스턴스 그룹 http:80 포트로 연결
      gcloud compute instance-groups managed set-named-ports nginx-group --named-ports http:80
  • Create a URL map, and target the HTTP proxy to route requests to your URL map.

    • URL map 생성
      gcloud compute url-maps create web-map \ --default-service nginx-backend
    • target http proxy 생성
      gcloud compute target-http-proxies create http-lb-proxy --url-map web-map
  • Create a forwarding rule.

    • 글로벌 Forwarding Rule 생성
      gcloud compute forwarding-rules create http-content-rule --global --target-http-proxy http-lb-proxy --ports 80
    • gcloud compute forwarding-rules create nginx-lb --region us-east1 --ports=80 --target-pool nginx-pool

gcloud compute backend-services add-backend nginx-backend \ --instance-group nginx-group \ --instance-group-zone us-east1-b \ --global


추가 설명

target pool 이란?
target pool 리소스는 forwarding rule에서 들어오는 트래픽을 수신하는 인스턴스 그룹을 정의함.

주의 사항

  • 대상 풀은 TCP 및 UDP 트래픽을 처리하는 forwarding rule에만 사용 가능
  • 모든 인스턴스는 동일한 지역에 있어야함
  • 최대 50개까지 생성가능하고 각 target pool에는 하나의 health check만 있을 수 있음.

forwarding rule?
인터넷에서 들어오는 요청을 target http proxy로 전달

URL map 이란?

HTTP Proxy?

내결함성과 고가용성 차이
내결함성은 (FT)Fault tolerance로 고가용 성과 마찬가지로 내결함성은 다운 타임을 최소화하도록 설계되었지만

참고 자료
https://puzzle-puzzle.tistory.com/entry/%EA%B5%AC%EA%B8%80-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%94%8C%EB%9E%AB%ED%8F%BC-GCP-load-balancing-and-autoscailing

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

0개의 댓글