본 포스팅은 메모 형식으로 작성된 게시글 입니다. 보시는데 다소 불편하실 수 있습니다. ㅠ

private, public subnet-> vm -> 이것저것 -> lb -> lb firewall (외부IP 대역 허용, 443(https), 80(http) filter 추가) -> public 베스천vm -> private subnet 에 nat 로통신해서 외부 library 접속 가능 
참고로 베스천vm은 ssh로 내부 ip에 접속하는 용도이다.

 

ㅡ. VPC 생성

private-subnet을 생성
public-subnet 생성
생성
서브넷2개가 생성된것을 확인할 수 있다. 

ㅡ. 방화벽 규칙

SSH 접속을 하기 위해서 TCP::20 그외에 Load-Balancing TCP::80(http), 443(https) 설정합니다.

 

I. SSH

SSH로 접속하기 위해서 0.0.0.0/0, TCP 22 열어두었다. 

ll. LB

부하분산기(GFE)에서 백엔드 VM 또는 컨테이너로 이동하는것은 35.191.0.0/16 or 130.211.0.0/22 로 등록해놔야한다. *ref : https://cloud.google.com/load-balancing/docs/https?hl=ko

 

문서에 보면 LB 에서 백엔드 VM으로 이동하는 소스 IP 주소는 저 둘중 하나라고 소개되어 있다. *ref : https://cloud.google.com/load-balancing/docs/https?hl=ko
방화벽 규칙 설정 완료!

ㅡ. vm생성

 

부팅 디스크는 Ubuntu 로 설정

 

네트워크는 만들어뒀던 private-subnet으로 
태그를 추가해두었다. 다른데서 쓸수도 있어서...

#! /bin/bash
apt-get update
apt-get install -y apache2
cat <<EOF > /var/www/html/index.html
<html><body><h1>Hello World--22</h1>
<p>Hello World-22</p>
</body></html>
EOF

[ 관리 ] 탭에서 init-script 로 기본 화면에 대한 쉘 스크립트를 작성해두자. (사진이 없다.)

네트워크 인터페이스 세부사항
외부IP 에 대해서
접속이 허용되지 않는다. 여기에 LB를 달아서 접속을 시도해보자.

이후, 워크 플로우는 다음과 같다. 

VM 인스턴스 -> 스냅샷 -> 디스크 -> 이미지 -> 인스턴스 템플릿 -> 인스턴스 그룹 -> 로드 밸런서 

 

ㅡ. 스냅샷 생성

스냅샷을 생성한다.

디스크를 생성하자.

ㅡ. 디스크 생성

스냅샷으로 디스크를 생성하고

디스크에서 최종적으로 이미지를 만들자.

ㅡ. 이미지 생성

이미지 생성

생성한 이미지로 인스턴스 템플릿을 만들자.

ㅡ. 인스턴스 템플릿

부팅 디스크를 설정하고
인스턴스 템플릿 생성

인스턴스 템플릿으로 인스턴스 그룹을 만들자.

ㅡ. 인스턴스 그룹

인스턴스 템플릿을 추가하면 된다.

인스턴스 그룹을 하나 더 만들자.

ㅡ. 부하분산

백엔드 서비스 생성
우선, 상태확인부터 만들었다.
포트가 80인 백엔드 서비스 2개를 생성했다.
HTTP로 접속할 수 있는 백엔드 서비스 생성

그다음에 HTTPS로 접속할 수 있는 백엔드 서비스를 만들어보자. 

*여기서 이름이 유니크하지 않은 에러가 발생한다. 

[ERROR] 헬스체크 이름이 유니크하지 않다. 이름을 첫번째 백엔드의 헬스체크와 다르게 주어야 한다.

HTTPS로 접속 가능한 백엔드 서비스를 생성합니다.
백엔드 서비스 완성~

HTTPS도 만들려고 했는데 도메인 주소가 없어서 우선 HTTP만 생성했다.

검토하는 과정에서 에러가 발생해서

호스트 및 경로 규칙에서 backend 첫번째꺼만 적용했다.