brunch

You can make anything
by writing

C.S.Lewis

by Master Seo May 18. 2020

117. cloud lb 설정하기- cli

퀵렙  에센셜을 공부하고 정리한 글입니다.


<1>  cli로 현재 계정 현황 확인

<2>  웹 서버 2대 인스턴스 만들자

<3> Lb 만들자

<4> 접속 확인

<5>  consol에서 설정이 제대로 되었는지 확인해 보



<1>  cli로 현재 계정 현황 확인

https://cloud.google.com/   로그인 


1. cloud config list 

오른쪽위 Cloud Shell 실행

gcloud config list


2. 기본 영역 설정

Cloud Shell 기본 영역을 설정합니다.

gcloud config set compute/zone us-central1-a 

gcloud config list


3. 기본 리전 설정.

gcloud config set compute/region us-central1 

gcloud config list



4. project id 설정하기

gcloud config set project PROJECT_ID

gcloud config set project seo-pj-277509 


gcloud config list project




<2>  웹 서버 2대 인스턴스 만들자


1.  웹 서버 만드는 순서
인스턴스 생성시 사용하는 시작 스크립트

시작 스크립트를 사용하기 위한 인스턴스 템플릿

대상 풀 만들기

템플릿으로 관리형 인스턴스 그룹 만들기



2.. 인스턴스 생성시 사용하는 시작 스크립트
vi  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 



3. 시작 스크립트를 사용하는 인스턴스 템플릿을 만들기.

gcloud compute instance-templates create nginx-template --metadata-from-file startup-script=startup.sh 


4. 대상 풀  만들기

gcloud compute target-pools create nginx-pool

gcloud compute target-pools create nginx-pool1


5. 템플릿으로 관리형 인스턴스 그룹 만들기

gcloud compute instance-groups managed create nginx-group   --base-instance-name nginx   --size 2   --template nginx-template    --target-pool nginx-pool

// nginx- 로 시작되는 2개의 가상 머신 인스턴스가 생성됨



6. Compute Engine 인스턴스 목록 보기

gcloud compute instances list



7. 포트 80으로 머신과 연결할 수 있도록 방화벽 허용

gcloud compute firewall-rules create www-firewall --allow tcp:80

추가 필요시

gcloud compute firewall-rules create www-firewall1 --allow tcp:80



8. 외부 IP 주소로 사이트 접속 가능.




<3> Lb 만들자


1. 인스턴스 그룹을 대상으로 하는 L3 네트워크 부하 분산기를 만든다.

gcloud compute forwarding-rules create nginx-lb --region us-central1  --ports=80  --target-pool nginx-pool


2. 프로젝트의 모든 Google Compute Engine 전달 규칙의 목록을 출력 한다.

gcloud compute forwarding-rules list 


3. LB IP로  접속 가능 

4.  health check  생성한다.

gcloud compute http-health-checks create http-basic-check



5. 인스턴스 그룹에 관한 HTTP 서비스를 정의하고 관련 포트에 포트 이름을 매핑한다.

부하 분산 서비스가  지정된 포트로 트래픽을 전달합니다.

gcloud compute instance-groups managed set-named-ports nginx-group --named-ports http:80 



6.  백엔드 만든다,

gcloud compute backend-services create nginx-backend --protocol HTTP --http-health-checks http-basic-check --global


7. 백엔드에 인스턴스 그룹 추가

gcloud compute backend-services add-backend nginx-backend --instance-group nginx-group --instance-group-zone us-central1-a  --global 



8.  모든 요청을 내 인스턴스로 전달하는 기본 URL 맵을 만든다.

gcloud compute url-maps create web-map --default-service nginx-backend 

참고 : 요청된 URL에 따라 트래픽을 여러 인스턴스로 보내려면 콘텐츠 기반 라우팅을 참조.


9.  HTTP 프록시 만들어 URL 맵을  참고한다.

gcloud compute target-http-proxies create http-lb-proxy  --url-map web-map 



10.  포워딩 룰을 만든다. 들어오는 트래픽 처리.

gcloud compute forwarding-rules create http-content-rule --global --target-http-proxy http-lb-proxy --ports 80 



11. 구성이 적용 확인,  적용 되는데  5분 걸림

gcloud compute forwarding-rules list 



http-content-rule의 IP_ADDRESS 확인




<4>  접속 확인

5분후  공인IP 로  접속확인


<5>  consol에서 설정이 제대로 되었는지 확인해 보자


VM인스턴스


인스턴스 그룹


인스턴스 템플릿


방화벽 규칙




LB 확인 


부하 분산기



백엔드


프론트 엔드

감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari