2024. 11. 19. 08:07ㆍ클라우드/GCP
Task 1. Set the default region and zone for all resources
gcloud config set compute/zone us-central1-a |
gcloud config set compute/region us-central1 |
Task 2. Create multiple web server instances
gcloud compute instance-templates create nginx-template \ --metadata-from-file startup-script=startup.sh |
gcloud compute target-pools create nginx-pool |
gcloud compute instance-groups managed create nginx-group \ --base-instance-name nginx \ --size 2 \ --template nginx-template \ --target-pool nginx-pool |
인스턴스 그룹 생성: "nginx-group"이라는 이름의 관리형 인스턴스 그룹이 생성
인스턴스 생성: --size 2로 설정했기 때문에, 이 그룹 내에 두 개의 인스턴스가 생성. 인스턴스의 이름은 --base-instance-name nginx로 설정된 기본 이름에 숫자가 추가된 형식(예: nginx-0, nginx-1)으로 지정
인스턴스 템플릿 적용: --template nginx-template에 지정된 인스턴스 템플릿을 사용하여 각 인스턴스가 생성. 이 템플릿에는 머신 유형, 운영 체제 이미지, 부팅 디스크 및 네트워크 설정 등이 포함되어 있음.
타겟 풀 연결: --target-pool nginx-pool로 설정된 타겟 풀에 인스턴스가 자동으로 추가되어 로드 밸런싱이 가능.
생성된 인스턴스 확인
gcloud compute instances list |
gcloud compute firewall-rules create www-firewall --allow tcp:80 |
방화벽에서 tcp 80 허용
해당 ip로 다른 창에서 들어가면 접속되는 모습 둘 다 확인
Task 3. Create a network load balancer
gcloud compute forwarding-rules create nginx-lb \ --region us-central1 \ --ports=80 \ --target-pool nginx-pool |
gcloud compute forwarding-rules list |
Task 4. Create a HTTP(s) load balancer
gcloud compute http-health-checks create http-basic-check |
gcloud compute instance-groups managed \ set-named-ports nginx-group \ --named-ports http:80 |
"nginx-group" 인스턴스 그룹의 인스턴스에서 HTTP 트래픽을 수신하기 위한 80번 포트를 설정하여, 이후 로드 밸런서와 통합할 때 유용하게 사용
gcloud compute backend-services create nginx-backend \ --protocol HTTP --http-health-checks http-basic-check --global |
HTTP 프로토콜을 사용하는 백엔드 서비스를 생성하고, 헬스 체크를 통해 인스턴스의 상태를 모니터링하여 신뢰성 높은 서비스 제공이 가능
gcloud compute backend-services add-backend nginx-backend \ --instance-group nginx-group \ --instance-group-zone us-central1-a \ --global |
"nginx-backend" 백엔드 서비스에 "nginx-group" 인스턴스 그룹이 추가됩니다. 이를 통해 이 백엔드 서비스가 클라이언트 요청을 처리하는 인스턴스 그룹을 포함하게 되어, 로드 밸런서가 요청을 이 그룹의 인스턴스에 분산
gcloud compute url-maps create web-map \ --default-service nginx-backend |
"web-map"이라는 이름의 URL 맵이 생성되고, 클라이언트의 요청이 기본적으로 "nginx-backend" 백엔드 서비스로 라우팅됨. 이를 통해 요청 처리 방식이 정의되며, 필요에 따라 추가적인 경로 규칙을 설정하여 다양한 요청을 처리할 수 있음
gcloud compute target-http-proxies create http-lb-proxy \ --url-map web-map |
"http-lb-proxy"라는 HTTP 타겟 프록시가 생성되고, 이 프록시는 "web-map" URL 맵을 사용하여 클라이언트의 HTTP 요청을 라우팅함. 이를 통해 로드 밸런싱을 구현하고, 요청이 올바른 백엔드 서비스로 전달되도록 설정할 수 있음
gcloud compute forwarding-rules create http-content-rule \ --global \ --target-http-proxy http-lb-proxy \ --ports 80 |
"http-content-rule"이라는 포워딩 규칙이 생성되며, 이 규칙은 클라이언트의 HTTP 요청을 80번 포트에서 수신하고, 이를 "http-lb-proxy" 타겟 HTTP 프록시로 전달함. 이를 통해 로드 밸런서가 HTTP 요청을 적절한 백엔드 서비스로 라우팅할 수 있도록 함
gcloud compute forwarding-rules list |
포워딩 규칙 조회: 현재 프로젝트에 설정된 모든 포워딩 규칙의 정보를 반환함. 포워딩 규칙은 클라이언트의 요청을 적절한 타겟 프록시 또는 백엔드 서비스로 전달하는 역할.
세부 정보: 각 포워딩 규칙에 대한 정보를 포함하여, 이름, 위치(글로벌 또는 지역), 연결된 타겟 프록시, 사용 중인 포트 등 다양한 정보를 확인할 수 있음.
이 명령어는 GCP에서 설정된 포워딩 규칙을 리스트로 출력하여, 현재 설정된 트래픽 라우팅 규칙을 쉽게 확인할 수 있도록 함.
참고:
https://partner.cloudskillsboost.google/focuses/12746?parent=catalog
파트너계정만 가능
https://www.youtube.com/watch?v=-6wu8PR0dyc
'클라우드 > GCP' 카테고리의 다른 글
그림으로 배우는 구글 클라우드 101 (2) | 2024.11.20 |
---|---|
12. BigQuery Soccer Data Analytical Insight (0) | 2024.11.20 |
10. Analyzing Billing Data with BigQuery (1) | 2024.11.18 |
09. Service Directory (0) | 2024.11.17 |
08. Service Accounts and Roles: Fundamentals (0) | 2024.11.16 |