brunch

117. cloud lb 설정하기- cli

by Master Seo

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


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

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

<3> Lb 만들자

<4> 접속 확인

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



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

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


1. cloud config list

오른쪽위 Cloud Shell 실행

gcloud config list

10 cloud config list.png


2. 기본 영역 설정

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

gcloud config set compute/zone us-central1-a

gcloud config list

20 zone.png


3. 기본 리전 설정.

gcloud config set compute/region us-central1

gcloud config list

30 region.png



4. project id 설정하기

gcloud config set project PROJECT_ID

gcloud config set project seo-pj-277509


gcloud config list project

40 project id.png




<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

50 templates.png


4. 대상 풀 만들기

gcloud compute target-pools create nginx-pool

gcloud compute target-pools create nginx-pool1

60 pool.png


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

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

70 group.png

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



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

gcloud compute instances list

80 instance list.png



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

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

90 firewall.png

추가 필요시

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



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

100 vm2.png




<3> Lb 만들자


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

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

500 b.png


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

gcloud compute forwarding-rules list

510 forward rule.png


3. LB IP로 접속 가능

400.png

4. health check 생성한다.

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

520 healthcheck.png



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

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

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

530 80 map.png



6. 백엔드 만든다,

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

540 backend.png


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

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

550 backend.png



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

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

560 url map.png

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


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

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

570 map.png



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

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

580 forward rule create.png



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

gcloud compute forwarding-rules list

590 포워드룰 확인.png



http-content-rule의 IP_ADDRESS 확인




<4> 접속 확인

5분후 공인IP 로 접속확인

400.png


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


VM인스턴스

700 vm.png


인스턴스 그룹

710 instance group.png


인스턴스 템플릿

720 instance template.png


방화벽 규칙

730 firewall.png




LB 확인


부하 분산기

900 lb.png



백엔드

910 backend.png


프론트 엔드

920 front.png

감사합니다.

keyword
매거진의 이전글116.  gcp 웹서버 만들기 - cli