์ด ๊ฐ์ด๋์์๋ ๋ค์๊ณผ ๊ฐ์ Google Cloud HTTPS ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
- ์์ฒญ URL ๊ฒฝ๋ก๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ ํํฉ๋๋ค.
- ์์ฒญ์ ํด๋ผ์ด์ธํธ์ ๊ฐ๊น์ด ๋ฐฑ์๋๋ก ๋ผ์ฐํ ํฉ๋๋ค(๋ฉํฐ ๋ฆฌ์ ๋ถํ ๋ถ์ฐ).
์์ํ๊ธฐ ์ ์ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ๊ฐ๋ ์ ์์งํด์ผ ํฉ๋๋ค.
๊ฐ๋จํ ์์๋ Compute Engine ๋ฐฑ์๋๋ก ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ์ค์ ์ ์ฐธ์กฐํ์ธ์. HTTP ์ฌ์์ฑ ๋ฐ ๋ฆฌ๋๋ ์ ๊ณผ ๊ฐ์ ๊ณ ๊ธ ๋ผ์ฐํ ์ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ํธ๋ํฝ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ฐ์
์ด ๊ฐ์ด๋์์๋ ์์ฒญ URL์ ๊ฒฝ๋ก๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํธ๋ํฝ์ ์ ๋ฌํ๊ณ ์ฌ๋ฌ ๋ฆฌ์ ์ ํธ๋ํฝ์ ๋ถ์ฐํ๋ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ๋ฏธ๊ตญ ๋ฆฌ์ (us-central1-b ์์ญ)๊ณผ EU ๋ฆฌ์ (eu-west1-b ์์ญ)์ ์ด 8๊ฐ์ Compute Engine ์ธ์คํด์ค๋ฅผ ๋ง๋ญ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ์ธ์คํด์ค๋ก ํธ๋ํฝ์ ๋ผ์ฐํ ํ๋ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค.
์๋ด์ ๋ฐ๋ผ ์์ ์ ๋ง์น๋ฉด ๋ถํ ๋ถ์ฐ๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋ฉ๋๋ค.
/video๋ก ์์ํ๋ URL ๊ฒฝ๋ก๋ฅผ ํฌํจํ๋ ํธ๋ํฝ์ ํ๋์ ๋ฐฑ์๋ ์๋น์ค๋ก ๋ผ์ฐํ ๋ฉ๋๋ค.- URL ๊ฒฝ๋ก๊ฐ ์ด ํจํด๊ณผ ์ผ์นํ์ง ์๋ ํธ๋ํฝ์ ๋ค๋ฅธ ๋ฐฑ์๋ ์๋น์ค๋ก ๋ผ์ฐํ ๋ฉ๋๋ค.
์ด ๋ฐฉ๋ฒ ๋ฌธ์์์๋ ๋ค์ ๋ค์ด์ด๊ทธ๋จ์ ๋์ ์๋ ๊ตฌ์ฑ์ ๋ง๋ญ๋๋ค.
๋ค์ด์ด๊ทธ๋จ์ ์ด๋ฒคํธ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ
https://www.example.com/video/concertURL์ ์ก์ธ์คํ์ฌ ์ ๋ฌ ๊ท์น์์ ์ ์๋ ์ธ๋ถ IP ์ฃผ์๋ก ์ฝํ ์ธ ์์ฒญ์ ๋ณด๋ ๋๋ค. ์ด ์์ฒญ์ IPv4 ๋๋ IPv6๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ ํ๋กํ ์ฝ ๋ชจ๋ ์ ๋ฌ ๊ท์น์ด ์์ต๋๋ค. - ์ ๋ฌ ๊ท์น์ ์์ฒญ์ ๋์ HTTPS ํ๋ก์๋ก ์ ๋ฌํฉ๋๋ค.
- ๋์ ํ๋ก์๋ URL ๋งต์ ์ค์ ๋ ๊ท์น ์งํฉ์ ์ฌ์ฉํ์ฌ ์์ฒญ์ ์์ ํ๋ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
https://www.example.com/video/concert์ ๊ฐ์ด/video๋ฅผ ํฌํจํ๋ ์์ฒญ์video-backend-service๋ก ์ ์ก๋ฉ๋๋ค. ๋ค๋ฅธ URL ๊ฒฝ๋ก๋ ๊ธฐ๋ณธ ์๋น์ค์ธweb-backend-service๋ก ์ ์ก๋ฉ๋๋ค. - ๋ถํ ๋ถ์ฐ๊ธฐ๋ ์์ฒญ์ ์ฒ๋ฆฌํ ๋ฐฑ์๋ ์๋น์ค์ ์ธ์คํด์ค ๊ทธ๋ฃน์ ํด๋น ๊ทธ๋ฃน์ ๋ก๋ฉ ๋ฐ ํด๋ผ์ด์ธํธ์ ๋ํ ๊ทผ์ ์ฑ์ ๋ฐ๋ผ ๊ฒฐ์ ํ๊ณ ์ด ๊ทธ๋ฃน์ ์ธ์คํด์ค์ ์์ฒญ์ ์ ๋ฌํฉ๋๋ค.
- ์ธ์คํด์ค๋ ๊ฐ ์ฌ์ฉ์๊ฐ ์์ฒญํ ์ฝํ
์ธ ๋ฅผ ์ ๊ณตํฉ๋๋ค.
video์ธ์คํด์ค๋ ๋์์ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ๊ณwww์ธ์คํด์ค๋ ๋ค๋ฅธ ๋ชจ๋ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด ์์์์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ํด๋ผ์ด์ธํธ์ HTTPS ์์ฒญ์ ์๋ฝํ๊ณ ์์ฒญ์ HTTP๋ก ๋ฐฑ์๋์ ํ๋ก์ํฉ๋๋ค. HTTP ์์ฒญ์ ์๋ฝํ๊ณ ๋ฐฑ์๋๋ก ์์ฒญ์ ํ๋ก์ํ ๋ HTTPS๋ฅผ ์ฌ์ฉํ๋๋ก ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๊ตฌ์ฑํ ์๋ ์์ต๋๋ค.
์์ํ๊ธฐ ์ ์
์ด ์๋ด์ ๋ฐ๋ผ ์์ ์ ์ํํ๋ ค๋ฉด ํ๋ก์ ํธ๊ฐ ํ์ํฉ๋๋ค. ์์ง ํ๋ก์ ํธ๊ฐ ์๋ค๋ฉด ์ง๊ธ ์ค์ ํ์ธ์. ์ด ์๋ด์์๋ ์ปค์คํ ๋ชจ๋ Virtual Private Cloud(VPC) ๋คํธ์ํฌ๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ์ค๋ช ํฉ๋๋ค. ๋ํ ํธ๋ํฝ์ด ์ธ์คํด์ค์ ๋๋ฌํ๋๋ก ํ์ฉํ๋ ์ปค์คํ ๋ฐฉํ๋ฒฝ ๊ท์น์ ์ค์ ํด์ผ ํฉ๋๋ค.
๋ช
๋ น์ค์์์ ์์
์ ๋ ์ ํธํ๋ ๊ฒฝ์ฐ gcloud ๋ช
๋ น์ค ๋๊ตฌ๋ฅผ ์ค์นํฉ๋๋ค. ๋๊ตฌ์ ๋ํ ๊ฐ๋
๋ฐ ์ค์น ์ ๋ณด๋ gcloud ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ถํ
์ด ๊ฐ์ด๋์ ๋จ๊ณ๋ฅผ ์๋ฃํ๋ ค๋ฉด ํ๋ก์ ํธ์์ Compute Engine ์ธ์คํด์ค๋ฅผ ๋ง๋ค ๊ถํ์ด ์์ด์ผ ํฉ๋๋ค. ํ๋ก์ ํธ ์์ ์ ๋๋ ํธ์ง์ ์ญํ ์ด ์๊ฑฐ๋ ๋ค์๊ณผ ๊ฐ์ Compute Engine IAM ์ญํ ์ด ์์ด์ผ ํฉ๋๋ค.
| ์์ | ํ์ํ ์ญํ |
|---|---|
| ์ธ์คํด์ค ๋ง๋ค๊ธฐ | Compute ์ธ์คํด์ค ๊ด๋ฆฌ์ |
| ๋ฐฉํ๋ฒฝ ๊ท์น ์ถ๊ฐ ๋ฐ ์ญ์ | ๋ณด์ ๊ด๋ฆฌ์ |
| ๋ถํ ๋ถ์ฐ๊ธฐ ๊ตฌ์ฑ์์ ๋ง๋ค๊ธฐ | ๋คํธ์ํฌ ๊ด๋ฆฌ์ |
| ํ๋ก์ ํธ ๋ง๋ค๊ธฐ(์ ํ์ฌํญ) | ํ๋ก์ ํธ ์์ฑ์ |
์์ธํ ๋ด์ฉ์ ๋ค์ ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์ค์
์ ํ์ฌํญ: ์ ํ๋ก์ ํธ ๋ง๋ค๊ธฐ
์ด ๊ฐ์ด๋์ ๋๋จธ์ง ๋ฐฉ๋ฒ์ ์ํํ๊ธฐ ์ ์ resourcemanager.projects.create ๊ถํ์ ๊ฐ์ง ์ฌ์ฉ์๊ฐ ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ด ๊ฐ์ด๋์ ๋๋ถ๋ถ์์ ์ํํ๋ ์ญ์ ์์
์ด ๊ฐ์ํ๋ฉ๋๋ค.
๋คํธ์ํฌ ๋ฐ ์๋ธ๋ท ๊ตฌ์ฑ
์ด ์์์์๋ ๋ค์ VPC ๋คํธ์ํฌ, ๋ฆฌ์ , ์๋ธ๋ท์ ์ฌ์ฉํฉ๋๋ค.
๋คํธ์ํฌ: ๋คํธ์ํฌ๋ ์ปค์คํ ๋ชจ๋ VPC ๋คํธ์ํฌ์ด๋ฉฐ ์ด๋ฆ์
lb-network์ ๋๋ค.์๋ก ๋ค๋ฅธ ๋ ๋ฆฌ์ ์ ์๋ ์๋ธ๋ท:
us-subnet์ ๊ธฐ๋ณธ IP ๋ฒ์๋ก10.1.10.0/24๋ฅผ ์ฌ์ฉํ๋ฉฐus-central1๋ฆฌ์ ์ ์์ต๋๋ค.eu-subnet์ ๊ธฐ๋ณธ IP ๋ฒ์๋ก10.1.11.0/24๋ฅผ ์ฌ์ฉํ๋ฉฐeurope-west1๋ฆฌ์ ์ ์์ต๋๋ค.
๋คํธ์ํฌ ๋ฐ ์๋ธ๋ท ์์๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
์ฝ์
Google Cloud ์ฝ์์์ VPC ๋คํธ์ํฌ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
VPC ๋คํธ์ํฌ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
lb-network์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.์๋ธ๋ท ์น์ ์์ ์ฒซ ๋ฒ์งธ ์๋ธ๋ท์ ๋ง๋ญ๋๋ค.
- ์๋ธ๋ท ์์ฑ ๋ชจ๋๋ฅผ ์ปค์คํ ์ผ๋ก ์ค์ ํฉ๋๋ค.
- ์ ์๋ธ๋ท ์น์
์ ๋ค์ ์ ๋ณด๋ฅผ ์
๋ ฅํฉ๋๋ค.
- ์ด๋ฆ:
us-subnet - ๋ฆฌ์ :
us-central1 - IP ์ฃผ์ ๋ฒ์:
10.1.10.0/24 - ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ:
์๋ธ๋ท ์น์ ์์ ์๋ธ๋ท ์ถ๊ฐ๋ฅผ ํด๋ฆญํ๊ณ ๋ ๋ฒ์งธ ์๋ธ๋ท์ ๋ง๋ญ๋๋ค.
- ์ ์๋ธ๋ท ์น์
์ ๋ค์ ์ ๋ณด๋ฅผ ์
๋ ฅํฉ๋๋ค.
- ์ด๋ฆ:
eu-subnet - ๋ฆฌ์ :
europe-west1 - IP ์ฃผ์ ๋ฒ์:
10.1.11.0/24 - ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ:
- ์ ์๋ธ๋ท ์น์
์ ๋ค์ ์ ๋ณด๋ฅผ ์
๋ ฅํฉ๋๋ค.
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
์ปค์คํ VPC ๋คํธ์ํฌ๋ฅผ ๋ง๋ญ๋๋ค.
gcloud compute networks create lb-network --subnet-mode=custom
us-subnet์ ๋ง๋ญ๋๋ค.gcloud compute networks subnets create us-subnet \ --network=lb-network \ --range=10.1.10.0/24 \ --region=us-central1
eu-subnet์ ๋ง๋ญ๋๋ค.gcloud compute networks subnets create eu-subnet \ --network=lb-network \ --range=10.1.11.0/24 \ --region=europe-west1
๋ฐฉํ๋ฒฝ ๊ท์น ๊ตฌ์ฑ
๊ธฐ๋ณธ ๊ฑฐ๋ถ ์ธ๊ทธ๋ ์ค ๊ท์น์ ๋ถํ ๋ถ์ฐ๊ธฐ ๋ฐGoogle Cloud ์ํ ํ์ธ ์์คํ ์ ํธ๋ํฝ์ ํฌํจํ์ฌ ๋ฐฑ์๋ ์ธ์คํด์ค๋ก ๋ค์ด์ค๋ ํธ๋ํฝ์ ์ฐจ๋จํฉ๋๋ค. ์ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ค์ด ๊ธฐ๋ณธ ๊ท์น์ ์ฌ์ ์ํ๊ณ ํธ๋ํฝ์ด ์ธ์คํด์ค์ ๋๋ฌํ๋๋ก ํ์ฉํด์ผ ํฉ๋๋ค.
์ด ์์์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค.
fw-allow-ssh: ๋ถํ ๋ถ์ฐ๋๋ ์ธ์คํด์ค์ ์ ์ฉ๋๋ ์ธ๊ทธ๋ ์ค ๊ท์น์ผ๋ก, TCP ํฌํธ 22์์ ์์์ ์ฃผ์๋ก๋ถํฐ ์์ ๋๋ SSH ์ฐ๊ฒฐ์ ํ์ฉํฉ๋๋ค. ์ด ๊ท์น์ ๋ ์ ํ์ ์ธ ์์ค IP ๋ฒ์๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด SSH ์ธ์ ์ ์์ํ ์์คํ ์ IP ๋ฒ์๋ง ์ง์ ํ ์๋ ์์ต๋๋ค. ์ด ์์์์๋ ๋์ ํ๊ทธallow-ssh๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฉํ ๋ฐฑ์๋ VM์ ์๋ณํฉ๋๋ค.fw-allow-health-check-and-proxy: ๋ถํ ๋ถ์ฐ๋๋ ์ธ์คํด์ค์ ์ ์ฉ๋๋ ์ธ๊ทธ๋ ์ค ๊ท์น์ผ๋ก, ๋ถํ ๋ถ์ฐ๊ธฐ ๋ฐ Google Cloud ์ํ ์ ๊ฒ ์์คํ ์ ํธ๋ํฝ์ ํ์ฉํฉ๋๋ค. ์ด ์์์์๋ ๋์ ํ๊ทธallow-health-check๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฉํ ๋ฐฑ์๋ VM์ ์๋ณํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ๋ฐฉํ๋ฒฝ ์ ์ฑ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ฐฉํ๋ฒฝ ๊ท์น ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํ์ฌ ์ฒซ ๋ฒ์งธ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค.
fw-allow-ssh์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.- ๋คํธ์ํฌ์์
lb-network๋ฅผ ์ ํํฉ๋๋ค. - ๋์์์ ์ง์ ๋ ๋์ ํ๊ทธ๋ฅผ ์ ํํฉ๋๋ค.
allow-ssh๋ก ๋์ ํ๊ทธ ํ๋๋ฅผ ์ฑ์๋๋ค.- ์์ค ํํฐ๋ฅผ IPv4 ๋ฒ์๋ก ์ค์ ํฉ๋๋ค.
- ์์ค IPv4 ๋ฒ์๋ฅผ
0.0.0.0/0์ผ๋ก ์ค์ ํฉ๋๋ค. - ํ๋กํ ์ฝ ๋ฐ ํฌํธ์์ ์ง์ ๋ ํ๋กํ ์ฝ ๋ฐ ํฌํธ๋ฅผ ์ ํํฉ๋๋ค.
- TCP ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ๊ณ ํฌํธ ๋ฒํธ๋ก
22์ ์ ๋ ฅํฉ๋๋ค. - ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ฐฉํ๋ฒฝ ๊ท์น ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํ์ฌ ๋ ๋ฒ์งธ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค.
fw-allow-health-check-and-proxy์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.- ๋คํธ์ํฌ์์
lb-network๋ฅผ ์ ํํฉ๋๋ค. - ๋์์์ ์ง์ ๋ ๋์ ํ๊ทธ๋ฅผ ์ ํํฉ๋๋ค.
allow-health-check๋ก ๋์ ํ๊ทธ ํ๋๋ฅผ ์ฑ์๋๋ค.- ์์ค ํํฐ๋ฅผ IPv4 ๋ฒ์๋ก ์ค์ ํฉ๋๋ค.
- ์์ค IPv4 ๋ฒ์๋ฅผ
35.191.0.0/16์ผ๋ก ์ค์ ํฉ๋๋ค. - ํ๋กํ ์ฝ ๋ฐ ํฌํธ์์ ์ง์ ๋ ํ๋กํ ์ฝ ๋ฐ ํฌํธ๋ฅผ ์ ํํฉ๋๋ค.
- TCP ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ๊ณ ํฌํธ ๋ฒํธ๋ก
80,443์ ์ ๋ ฅํฉ๋๋ค. - ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
allow-ssh๋คํธ์ํฌ ํ๊ทธ๋ฅผ ์ฌ์ฉํด VM์ผ๋ก ๊ฐ๋ SSH ์ฐ๊ฒฐ์ ํ์ฉํ๋fw-allow-ssh๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค.source-ranges๋ฅผ ์๋ตํ๋ฉดGoogle Cloud ๊ฐ ๋ชจ๋ ์์ค๋ฅผ ์๋ฏธํ๋ ๊ฒ์ผ๋ก ๊ท์น์ ํด์ํฉ๋๋ค.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22fw-allow-health-check-and-proxy๊ท์น์ ๋ง๋ค์ด ๋ถํ ๋ถ์ฐ๊ธฐ ๋ฐ Google Cloud ์ํ ํ์ธ์ด TCP ํฌํธ80๋ฐ443์์ ๋ฐฑ์๋ ์ธ์คํด์ค์ ํต์ ํ๋๋ก ํ์ฉํฉ๋๋ค.gcloud compute firewall-rules create fw-allow-health-check-and-proxy \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=35.191.0.0/16\ --rules=tcp:80,tcp:443
์ธ์คํด์ค ๋ง๋ค๊ธฐ
Compute Engine ๋ฐฑ์๋๋ก ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ค์ ํ๋ ค๋ฉด VM์ด ์ธ์คํด์ค ๊ทธ๋ฃน์ ์์ด์ผ ํฉ๋๋ค. ์ด ๊ฐ์ด๋์์๋ Apache๊ฐ ์คํ ์ค์ธ Linux VM์ผ๋ก ๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ธ๋ถ HTTPS ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ์๋ฒ๋ฅผ ์คํํ๋ VM์ ์ ๊ณตํฉ๋๋ค. ์ฌ๊ธฐ์์๋ ๋ฐฑ์๋์์ ๋ฐ๋ชจ์ฉ์ผ๋ก ์์ฒด ํธ์คํธ ์ด๋ฆ์ ์ ๊ณตํฉ๋๋ค.
์ด ์์์์๋ ์ด 8๊ฐ์ ๊ฐ์ ๋จธ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ญ๋๋ค. 4๊ฐ๋ ๋์์ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ๊ณ 4๊ฐ๋ ๋ค๋ฅธ ๋ชจ๋ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค๋ง๋ค ๊ณ ์ ํ ํํ์ด์ง๊ฐ ์๋ Apache ์น ์๋ฒ ์ํํธ์จ์ด๋ฅผ ์ค์นํฉ๋๋ค. VM์์ ๋ชจ๋ ์น ์๋ฒ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ์์์์๋ ํธ์์ Apache๋ฅผ ์ค์นํฉ๋๋ค.
์ฝ์
์ธ์คํด์ค ํ ํ๋ฆฟ์ ๋ง๋ญ๋๋ค.
Google Cloud ์ฝ์์์ ์ธ์คํด์ค ํ ํ๋ฆฟ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ธ์คํด์ค ํ ํ๋ฆฟ์ผ๋ก ์ด๋
- ์ธ์คํด์ค ํ ํ๋ฆฟ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ์
video-us-template๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ๋ถํ
๋์คํฌ๊ฐ Debian GNU/Linux 12(bookworm)์ ๊ฐ์ Debian ์ด๋ฏธ์ง๋ก ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค. ์ด ์๋ด์์๋
apt-get์ฒ๋ผ Debian์์๋ง ์ฌ์ฉํ ์ ์๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. - ๊ณ ๊ธ ์ต์ ์ ํด๋ฆญํฉ๋๋ค.
- ๋คํธ์ํน์ ํด๋ฆญํ๊ณ ๋ค์ ํ๋๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- ๋คํธ์ํฌ ํ๊ทธ์
allow-health-check๋ฐallow-ssh๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ๋ค์์ ์ ํํฉ๋๋ค.
- ๋คํธ์ํฌ:
lb-network - ์๋ธ๋ท:
us-subnet
- ๋คํธ์ํฌ:
- ๋คํธ์ํฌ ํ๊ทธ์
๊ด๋ฆฌ๋ฅผ ํด๋ฆญํฉ๋๋ค. ์์ ์คํฌ๋ฆฝํธ ํ๋์ ๋ค์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๋ ฅํฉ๋๋ค.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" mkdir -p /var/www/html/video echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html /var/www/html/video/index.html systemctl restart apache2
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ๋ง๋ญ๋๋ค. Google Cloud ์ฝ์์์ ์ธ์คํด์ค ๊ทธ๋ฃน ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ธ์คํด์ค ๊ทธ๋ฃน์ผ๋ก ์ด๋
- ์ธ์คํด์ค ๊ทธ๋ฃน ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ ๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน(์คํ ์ดํธ๋ฆฌ์ค(Stateless))์ ์ ํํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์คํ ์ดํธ๋ฆฌ์ค(Stateless) ๋๋ ์คํ ์ดํธํ(Stateful) MIG๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ด๋ฆ์
ig-video-us๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ์์น์์ ๋จ์ผ ์์ญ์ ์ ํํฉ๋๋ค.
- ๋ฆฌ์ ์์ ์ํ๋ ๋ฆฌ์ ์ ์ ํํฉ๋๋ค. ์ด ์์์์๋
us-central1์ ์ฌ์ฉํฉ๋๋ค. - ์์ญ์์ us-central1-b๋ฅผ ์ ํํฉ๋๋ค.
- ์ธ์คํด์ค ํ
ํ๋ฆฟ์์
video-us-template์ ์ ํํฉ๋๋ค. - ์๋ ํ์ฅ ๋ชจ๋์์
Off:do not autoscale์ ์ ํํฉ๋๋ค. - ์ต๋ ์ธ์คํด์ค ์์
2๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
์ธ์คํด์ค ํ ํ๋ฆฟ์ ๋ง๋ญ๋๋ค.
gcloud compute instance-templates create video-us-template \ --region=us-central1 \ --network=lb-network \ --subnet=us-subnet \ --tags=allow-health-check,allow-ssh \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" mkdir -p /var/www/html/video echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html /var/www/html/video/index.html systemctl restart apache2'ํ ํ๋ฆฟ์ ๊ธฐ๋ฐ์ผ๋ก ๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ๋ง๋ญ๋๋ค.
gcloud compute instance-groups managed create ig-video-us \ --template=video-us-template --size=2 --zone=us-central1-b
4๊ฐ์ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ด ์ ์ฐจ๋ฅผ 4๋ฒ ๋ฐ๋ณตํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ๊ฐ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ธ์คํด์ค ๊ทธ๋ฃน ์ด๋ฆ, ํ ํ๋ฆฟ ์ด๋ฆ, ๋ฆฌ์ , ์์ญ์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
ig-video-us,video-us-template,us-central1-b(์์ ์ฐธ์กฐ)ig-video-eu,video-eu-template,europe-west1-big-www-us,www-us-template,us-central1-big-www-eu,www-europe-template,europe-west1-b
์ธ์คํด์ค ๊ทธ๋ฃน์ ์ด๋ฆ์ด ์ง์ ๋ ํฌํธ ์ถ๊ฐ
์ธ์คํด์ค ๊ทธ๋ฃน๋ง๋ค HTTP ์๋น์ค๋ฅผ ์ ์ํ๊ณ ํด๋น ํฌํธ์ ํฌํธ ์ด๋ฆ์ ๋งคํํฉ๋๋ค. ๊ตฌ์ฑ๋ ํ์๋ ๋ถํ ๋ถ์ฐ ์๋น์ค๊ฐ ์ด๋ฆ์ด ์ง์ ๋ ํฌํธ๋ก ํธ๋ํฝ์ ์ ๋ฌํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์ธ์คํด์ค ๊ทธ๋ฃน ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ธ์คํด์ค ๊ทธ๋ฃน์ ์ด๋ฆ(์:
ig-video-us)์ ํด๋ฆญํ๊ณ ๊ทธ๋ฃน ์์ ์ ํด๋ฆญํฉ๋๋ค.ํฌํธ ์ด๋ฆ ๋งคํ ์ง์ ์ ํด๋ฆญํฉ๋๋ค.
ํญ๋ชฉ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํฌํธ ์ด๋ฆ์ผ๋ก
http๋ฅผ ์ ๋ ฅํฉ๋๋ค. ํฌํธ ๋ฒํธ๋ก80์ ์ ๋ ฅํฉ๋๋ค.์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
๊ฐ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ด ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํฉ๋๋ค.
gcloud
gcloud compute instance-groups unmanaged set-named-ports ig-video-us \
--named-ports http:80 \
--zone us-central1-b
gcloud compute instance-groups unmanaged set-named-ports ig-www-us \
--named-ports http:80 \
--zone us-central1-b
gcloud compute instance-groups unmanaged set-named-ports ig-video-eu \
--named-ports http:80 \
--zone europe-west1-b
gcloud compute instance-groups unmanaged set-named-ports ig-www-eu \
--named-ports http:80 \
--zone europe-west1-b
์ธ๋ถ IP ์ฃผ์ ์์ฝ
์ธ์คํด์ค๊ฐ ์ค๋น๋์ด ์คํ ์ค์ด๋ฏ๋ก ์ด์ ๋ถํ ๋ถ์ฐ์ ํ์ํ ์๋น์ค๋ฅผ ์ค์ ํฉ๋๋ค. ์ด ์น์ ์์๋ ๊ณ ๊ฐ์ด ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋๋ฌํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ ๊ฐ์ ์ ์ญ ๊ณ ์ ์ธ๋ถ IP ์ฃผ์๋ฅผ ๋ง๋ญ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ IP ์ฃผ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ธ๋ถ ์์ฝ์ ํด๋ฆญํ์ฌ IPv4 ์ฃผ์๋ฅผ ์์ฝํฉ๋๋ค.
์ธ๋ถ ๊ณ ์ IP ์ฃผ์ ์์ฝ ํ์ด์ง์์ ์ด๋ฆ์
lb-ipv4-1์ ์ ๋ ฅํฉ๋๋ค.๋คํธ์ํฌ ๋ฑ๊ธ์ ํ๋ฆฌ๋ฏธ์์ผ๋ก ์ค์ ํฉ๋๋ค.
IP ๋ฒ์ ์ IPv4๋ก ์ค์ ํฉ๋๋ค.
์ ํ์ ์ ์ญ์ผ๋ก ์ค์ ํฉ๋๋ค.
์์ฝ์ ํด๋ฆญํฉ๋๋ค.
์ธ๋ถ ์์ฝ์ ๋ค์ ํด๋ฆญํ์ฌ IPv6 ์ฃผ์๋ฅผ ์์ฝํฉ๋๋ค.
์ธ๋ถ ๊ณ ์ IP ์ฃผ์ ์์ฝ ํ์ด์ง์์ ์ด๋ฆ์
lb-ipv6-1์ ์ ๋ ฅํฉ๋๋ค.๋คํธ์ํฌ ๋ฑ๊ธ์ ํ๋ฆฌ๋ฏธ์์ผ๋ก ์ค์ ํฉ๋๋ค.
IP ๋ฒ์ ์ IPv6์ผ๋ก ์ค์ ํฉ๋๋ค.
์ ํ์ด ์ ์ญ์ผ๋ก ์ค์ ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
์ด ์์์์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ํ๋ฆฌ๋ฏธ์ ๋ฑ๊ธ ๋คํธ์ํน์ ์ฌ์ฉํฉ๋๋ค. ํ์ค ๋ฑ๊ธ ๋คํธ์ํน์ ์ฌ์ฉํ๋ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ๋์ ๋ฆฌ์ IP ์ฃผ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํ์ค ๋ฑ๊ธ์์๋ IPv6 ์ฃผ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ฝ์ ํด๋ฆญํฉ๋๋ค.
gcloud
IPv4 ์ฃผ์ ์์ฝ:
gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --network-tier=PREMIUM \ --global
IPv6 ์ฃผ์ ์์ฝ:
gcloud compute addresses create lb-ipv6-1 \ --ip-version=IPV6 \ --network-tier=PREMIUM \ --global
๋ถํ ๋ถ์ฐ ๋ฆฌ์์ค ๊ตฌ์ฑ
๋ถํ ๋ถ์ฐ๊ธฐ ๊ธฐ๋ฅ์๋ ์ฌ๋ฌ ์ฐ๊ฒฐ๋ ๋ฆฌ์์ค๊ฐ ํฌํจ๋ฉ๋๋ค. ์ด ์น์ ์์๋ ์ด๋ฌํ ๋ฆฌ์์ค๋ฅผ ์ค์ ํ๊ณ ์ฐ๊ฒฐํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ด๋ฆ์ด ์ง์ ๋ ํฌํธ. ๋ถํ ๋ถ์ฐ๊ธฐ์์ ํธ๋ํฝ์ ์ธ์คํด์ค ๊ทธ๋ฃน์ผ๋ก ์ ๋ฌํ ๋ ์ฌ์ฉํฉ๋๋ค.
- ์ํ ํ์ธ. ์ธ์คํด์ค๋ฅผ ํด๋งํ์ฌ ์ ์์ธ์ง ํ์ธํฉ๋๋ค. ๋ถํ ๋ถ์ฐ๊ธฐ๋ ์ ์ ์ธ์คํด์ค์๋ง ํธ๋ํฝ์ ๋ณด๋ ๋๋ค.
- ๋ฐฑ์๋ ์๋น์ค. ์ฉ๋, ์ธ์ ์ดํผ๋ํฐ, ์ํ ํ์ธ ์ํ๋ฅผ ์ถ์ ํฉ๋๋ค. ๋ฐฑ์๋ ์๋น์ค๋ ์ฉ๋ ๋ฐ ์ธ์คํด์ค ์ํ์ ๋ฐ๋ผ ์์ฒญ์ ๋ฐฑ์๋ VM ๋๋ ์๋ํฌ์ธํธ๋ก ์ ๋ฌํฉ๋๋ค.
- URL ๋งต - ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ์์ฒญ URL์ ํธ์คํธ์ ๊ฒฝ๋ก๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํน์ ๋ฐฑ์๋ ์๋น์ค๋ก ์์ฒญ์ ์ ๋ฌํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.
- SSL ์ธ์ฆ์ ๋ฆฌ์์ค. SSL ์ธ์ฆ์ ๋ฆฌ์์ค์๋ HTTPS ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ๋ ๋ ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ TLS๋ฅผ ์ข ๋ฃํ๋ ๋ฐ ์ฌ์ฉํ๋ SSL ์ธ์ฆ์ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค. ๊ด๋ฆฌํ SSL ์ธ์ฆ์ ๋๋ ์์ฒด ๊ด๋ฆฌํ SSL ์ธ์ฆ์๋ฅผ ์ํ๋ ๋๋ก ์กฐํฉํ์ฌ ์ฌ๋ฌ SSL ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ฉํ๋ ๊ฐ ์ธ์ฆ์์ ๋ํด SSL ์ธ์ฆ์ ๋ฆฌ์์ค๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
- ๋์ HTTPS ํ๋ก์. ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ URL ๋งต ๋ฐ SSL ์ธ์ฆ์๋ฅผ ์ ์ญ ์ ๋ฌ ๊ท์น๊ณผ ์ฐ๊ฒฐํ๋ ๋ฐ ์ฌ์ฉํฉ๋๋ค.
์ ์ญ ์ ๋ฌ ๊ท์น 2๊ฐ(IPv4์ IPv6์ ํ๋์ฉ). ์ฌ๊ธฐ์๋ ์ ์ญ ์ธ๋ถ IP ์ฃผ์ ๋ฆฌ์์ค๊ฐ ํฌํจ๋ฉ๋๋ค. ์ ์ญ ์ ๋ฌ ๊ท์น์ ์์ ๋๋ ์์ฒญ์ ๋์ ํ๋ก์๋ก ์ ๋ฌํฉ๋๋ค.
์ฝ์
๋ถํ ๋ถ์ฐ๊ธฐ ์ ํ ์ ํ
Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ ์ ํ์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ(HTTP/HTTPS)๋ฅผ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ๊ณต๊ฐ ๋๋ ๋ด๋ถ์์ ๊ณต๊ฐ(์ธ๋ถ)๋ฅผ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ์ ์ญ ๋๋ ๋จ์ผ ๋ฆฌ์ ๋ฐฐํฌ์์ ์ ์ญ ์ํฌ๋ก๋์ ์ ํฉ์ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ ์์ฑ์ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
๊ธฐ๋ณธ ๊ตฌ์ฑ
- ๋ถํ ๋ถ์ฐ๊ธฐ ์ด๋ฆ์
web-map๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ๊ณ์ํ๋ ค๋ฉด ์ฐฝ์ ์ด์ด๋ก๋๋ค.
www ์ธ์คํด์ค์ ๋ฐฑ์๋ ์๋น์ค ๋ฐ ์ํ ํ์ธ ๊ตฌ์ฑ
๋ถํ ๋ถ์ฐ๊ธฐ์๋ ๋ ๊ฐ์ ๋ฐฑ์๋ ์๋น์ค์ ๋ ์๋น์ค ๋ชจ๋์ ๋ํ ์ํ ์ ๊ฒ์ด ํ์ํฉ๋๋ค. ์ด ์์์์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ํด๋ผ์ด์ธํธ์ HTTPS ์์ฒญ์ ์ข ๋ฃํ๊ณ HTTP๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฑ์๋์ ํต์ ํฉ๋๋ค. ์ด๋ฅผ ์ํด ๋ฐฑ์๋ ํ๋กํ ์ฝ ๋ฐ ์ํ ํ์ธ์ HTTP๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
- ๋ฐฑ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
- ๋ฐฑ์๋ ์๋น์ค ๋ง๋ค๊ธฐ ๋๋ ์ ํ ๋๋กญ๋ค์ด ๋ฉ๋ด์์ ๋ฐฑ์๋ ์๋น์ค ์๋ก ๋ง์ฐ์ค ํฌ์ธํฐ๋ฅผ ๊ฐ์ ธ๊ฐ ํ ๋ฐฑ์๋ ์๋น์ค ๋ง๋ค๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.
- ๋ฐฑ์๋ ์๋น์ค์ ์ด๋ฆ์
web-backend-service๋ก ์ค์ ํฉ๋๋ค. - ๋ฐฑ์๋ ์ ํ์ด ์ธ์คํด์ค ๊ทธ๋ฃน์ผ๋ก ์ค์ ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
- ํ๋กํ ์ฝ ๋๋กญ๋ค์ด ๋ฉ๋ด์์ HTTP๋ฅผ ์ ํํฉ๋๋ค.
- ์ด๋ฆ์ด ์ง์ ๋ ํฌํธ ํ๋์
http๋ฅผ ์ ๋ ฅํฉ๋๋ค. www์ธ์คํด์ค์ ์ํ ์ ๊ฒ์ ๊ตฌ์ฑํฉ๋๋ค.- ์ํ ํ์ธ ๋ชฉ๋ก์์ ์ํ ํ์ธ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ ํ๋์
http-basic-check-www๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ํ๋กํ ์ฝ ๋ชฉ๋ก์์ HTTP๋ฅผ ์ ํํฉ๋๋ค.
- ํฌํธ ์
๋ ฅ๋์
80์ ์ ๋ ฅํฉ๋๋ค. - ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ฐฑ์๋์์ ์ธ์คํด์ค ๊ทธ๋ฃน์
ig-www-us๋ก ์ค์ ํฉ๋๋ค. - ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ธ์คํด์ค ๊ฐ ํธ๋ํฝ์ ๊ฒฝ์ฐ ํฌํธ ๋ฒํธ๋ฅผ
80์ผ๋ก ์ค์ ํฉ๋๋ค. - ๋๋จธ์ง ํ๋๋ ๊ธฐ๋ณธ๊ฐ์ ๊ทธ๋๋ก ๋ก๋๋ค.
- ์ ๋ฐฑ์๋ ์ฐฝ ํ๋จ์ ์๋ ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ฐฑ์๋ ์ถ๊ฐ๋ฅผ ํด๋ฆญํ๊ณ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ๋ ์ด๋ฒ์๋ ์ธ์คํด์ค ๊ทธ๋ฃน
ig-www-eu๋ฅผ ์ ํํฉ๋๋ค. - ๊ณ์ํ๋ ค๋ฉด ์ฐฝ์ ์ด์ด๋ก๋๋ค.
video ์ธ์คํด์ค์ ๋ฐฑ์๋ ์๋น์ค ๋ฐ ์ํ ํ์ธ ๊ตฌ์ฑ
- ์ด์ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ์ฌ ๋ฐฑ์๋ ์๋น์ค ๋ฐ ์ํ ์ ๊ฒ์ ๊ตฌ์ฑํ๋ ๋ ๋ฒ์งธ ๋ฐฑ์๋ ์๋น์ค
video-backend-service๋ฅผ ์ง์ ํ๊ณig-video-us๋ฐig-video-eu์ธ์คํด์ค ๊ทธ๋ฃน์ ํ ๋นํฉ๋๋ค. - ์ํ ์ ๊ฒ์ ๋ง๋ค๋ ค๋ฉด ๋์ผํ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด๋ ์ํ ์ ๊ฒ์ ์ด๋ฆ์
http-basic-check-video๋ก ์ง์ ํฉ๋๋ค. ์ํ ์ ๊ฒ ์ด๋ฆ์ ๊ณ ์ ํด์ผ ํฉ๋๋ค.
ํธ์คํธ ๋ฐ ๊ฒฝ๋ก ๊ท์น ๊ตฌ์ฑ
ํธ์คํธ ๋ฐ ๊ฒฝ๋ก ๊ท์น์ ๋ถํ ๋ถ์ฐ๊ธฐ์ URL ๋งต ๋ฆฌ์์ค๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- ํ๋ฉด์ ์ผ์ชฝ ์ด์์ ํธ์คํธ ๋ฐ ๊ฒฝ๋ก ๊ท์น์ ํด๋ฆญํฉ๋๋ค.
- ์ค๋ฅธ์ชฝ ์ด์ ์ฒซ ๋ฒ์งธ ํ์
web-backend-service๊ฐ ์๊ณ ํธ์คํธ ๋ฐ ๊ฒฝ๋ก์ ๊ธฐ๋ณธ ๊ท์นAny unmatched (default)๊ฐ ์ด๋ฏธ ์ฑ์์ ธ ์์ต๋๋ค. - ์ค๋ฅธ์ชฝ ์ด์
video-backend-service๊ฐ ์๋ ๋ ๋ฒ์งธ ํ์ด ์๋์ง ํ์ธํฉ๋๋ค. ์๋ค๋ฉด ํธ์คํธ ๋ฐ ๊ฒฝ๋ก ๊ท์น ์ถ๊ฐ๋ฅผ ํด๋ฆญํ ๋ค์ ์ค๋ฅธ์ชฝ ์ด์ ๋๋กญ๋ค์ด ๋ฉ๋ด์์video-backend-service๋ฅผ ์ ํํฉ๋๋ค. ๋ค๋ฅธ ์ด์ ๋ค์๊ณผ ๊ฐ์ด ์ฑ์๋๋ค.- ํธ์คํธ๋ฅผ
*๋ก ์ค์ ํฉ๋๋ค. - ๊ฒฝ๋ก ํ๋์์ ๋ค์์ ์ํํฉ๋๋ค.
/video๋ฅผ ์ ๋ ฅํ ๋ค์ Tab ํค๋ฅผ ๋๋ฆ ๋๋ค./video/*๋ฅผ ์ ๋ ฅํ ๋ค์ Tab ํค๋ฅผ ๋๋ฆ ๋๋ค.
- ํธ์คํธ๋ฅผ
ํ๋ฐํธ์๋ ๊ตฌ์ฑ
ํ๋ฐํธ์๋ ๊ตฌ์ฑ ์น์ ์ ์ ๋ฌ ๊ท์น ๋ฐ SSL ์ธ์ฆ์๋ฅผ ๋น๋กฏํ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ํ ์ฌ๋ฌ ๋ฆฌ์์ค๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ๋ํ ํด๋ผ์ด์ธํธ์ ๋ถํ ๋ถ์ฐ๊ธฐ ๊ฐ์ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ์ ์ ํํ ์ ์์ต๋๋ค.
์ด ์์์์๋ ํด๋ผ์ด์ธํธ์ ๋ถํ ๋ถ์ฐ๊ธฐ ์ฌ์ด์ HTTPS๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ํ๋ก์๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ํ๋ ์ด์์ SSL ์ธ์ฆ์ ๋ฆฌ์์ค๊ฐ ํ์ํฉ๋๋ค. SSL ์ธ์ฆ์ ๋ฆฌ์์ค๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ SSL ์ธ์ฆ์๋ฅผ ์ฐธ์กฐํ์ธ์. Google ๊ด๋ฆฌํ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ๋ง๋ค๊ธฐ ํ์ด์ง์ ์ผ์ชฝ ํจ๋์์ ํ๋ฐํธ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ ํ๋์
https-content-rule๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ํ๋กํ ์ฝ ํ๋์์
HTTPS๋ฅผ ์ ํํฉ๋๋ค. - ๊ณ์ํ๋ ค๋ฉด ์ฐฝ์ ์ด์ด๋ก๋๋ค.
IPv4 ์ ๋ฌ ๊ท์น ๊ตฌ์ฑ
- IP ๋ฒ์ ์
IPv4๋ก ์ค์ ํฉ๋๋ค. - IP ์ฃผ์์์ ์์ ๋ง๋
lb-ipv4-1์ ์ ํํฉ๋๋ค. - HTTPS ํธ๋ํฝ์ ํ์ฉํ๋๋ก ํฌํธ๊ฐ
443์ผ๋ก ์ค์ ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. - ์ธ์ฆ์ ์ ์ฅ์ ์ ํ์์ ์ธ์ฆ์ ๋งต ์ฌ์ฉ ๋๋ ๊ธฐ์กด ์ธ์ฆ์ ์ฌ์ฉ์ ์ ํํฉ๋๋ค.
- ์ ํ์ ๋ฐ๋ผ ์ธ์ฆ์ ๋งต ๋๋ ๊ธฐ๋ณธ ์ธ์ฆ์๋ฅผ ์ ํํฉ๋๋ค.
- QUIC ํ์์์ ๋ค์ ์ต์
์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
- ์๋(๊ธฐ๋ณธ๊ฐ): Google์ด QUIC๋ฅผ ํ์ํ ์๊ธฐ๋ฅผ ์ ์ดํฉ๋๋ค. ํ์ฌ๋ ์๋์ ์ ํํ๋ฉด QUIC๊ฐ ์ฌ์ฉ ์ค์ง๋ฉ๋๋ค. ์ด ์ต์
์ ์ ํํ๋ฉด ๋์ค์ Google์์ ์ด ๋ถํ ๋ถ์ฐ๊ธฐ์ QUIC ํ์ ๋ฐ HTTP/3๋ฅผ ์๋์ผ๋ก ์ฌ์ฉ ์ค์ ํ๋ ๊ฒ์ ํ์ฉํ๊ฒ ๋ฉ๋๋ค.
gcloud๋ฐ API์์๋ ์ด ์ต์ ์NONE์ด๋ผ๊ณ ํฉ๋๋ค. - ์ฌ์ฉ ์ค์ - ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ํด๋ผ์ด์ธํธ์ QUIC๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ ์ค์ง - ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ํด๋ผ์ด์ธํธ์ QUIC๋ฅผ ํ์ํ์ง ๋ชปํฉ๋๋ค.
- ์๋(๊ธฐ๋ณธ๊ฐ): Google์ด QUIC๋ฅผ ํ์ํ ์๊ธฐ๋ฅผ ์ ์ดํฉ๋๋ค. ํ์ฌ๋ ์๋์ ์ ํํ๋ฉด QUIC๊ฐ ์ฌ์ฉ ์ค์ง๋ฉ๋๋ค. ์ด ์ต์
์ ์ ํํ๋ฉด ๋์ค์ Google์์ ์ด ๋ถํ ๋ถ์ฐ๊ธฐ์ QUIC ํ์ ๋ฐ HTTP/3๋ฅผ ์๋์ผ๋ก ์ฌ์ฉ ์ค์ ํ๋ ๊ฒ์ ํ์ฉํ๊ฒ ๋ฉ๋๋ค.
- ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๊ณ์ํ๋ ค๋ฉด ์ฐฝ์ ์ด์ด๋ก๋๋ค.
IPv6 ์ ๋ฌ ๊ท์น ๊ตฌ์ฑ
- ํ๋ฐํธ์๋ IP ๋ฐ ํฌํธ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
https-content-ipv6-rule์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.- ํด๋ผ์ด์ธํธ์ ๋ถํ ๋ถ์ฐ๊ธฐ ๊ฐ์ HTTPS๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํ๋กํ ์ฝ ํ๋์์
HTTPS๋ฅผ ์ ํํฉ๋๋ค. ํด๋ผ์ด์ธํธ์ ๋ถํ ๋ถ์ฐ๊ธฐ ๊ฐ์ HTTP๋ฅผ ์ฌ์ฉํ๋ ค๋ฉดHTTP๋ฅผ ์ ํํฉ๋๋ค. - IP ๋ฒ์ ์
IPv6๋ก ์ค์ ํฉ๋๋ค. - IP์์ ์์ ๋ง๋
lb-ipv6-1์ ์ ํํฉ๋๋ค. - ํฌํธ๋ฅผ ๊ธฐ๋ณธ๊ฐ
443์ผ๋ก ์ค์ ํฉ๋๋ค. - ์ธ์ฆ์ ์ ์ฅ์ ์ ํ์์ ์ธ์ฆ์ ๋งต ์ฌ์ฉ ๋๋ ๊ธฐ์กด ์ธ์ฆ์ ์ฌ์ฉ์ ์ ํํฉ๋๋ค.
- ์ ํ์ ๋ฐ๋ผ ์ธ์ฆ์ ๋งต ๋๋ ๊ธฐ๋ณธ ์ธ์ฆ์๋ฅผ ์ ํํฉ๋๋ค.
- QUIC ํ์์์ ๋ค์ ์ต์
์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
- ์๋(๊ธฐ๋ณธ๊ฐ): Google์ด QUIC๋ฅผ ํ์ํ ์๊ธฐ๋ฅผ ์ ์ดํฉ๋๋ค. ํ์ฌ๋ ์๋์ ์ ํํ๋ฉด QUIC๊ฐ ์ฌ์ฉ ์ค์ง๋ฉ๋๋ค.
์ด ์ต์
์ ์ ํํ๋ฉด ๋์ค์ Google์์ ์ด ๋ถํ ๋ถ์ฐ๊ธฐ์ QUIC ํ์ ๋ฐ HTTP/3๋ฅผ ์๋์ผ๋ก ์ฌ์ฉ ์ค์ ํ๋ ๊ฒ์ ํ์ฉํ๊ฒ ๋ฉ๋๋ค.
gcloud๋ฐ API์์๋ ์ด ์ต์ ์NONE์ด๋ผ๊ณ ํฉ๋๋ค. - ์ฌ์ฉ ์ค์ - ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ํด๋ผ์ด์ธํธ์ QUIC๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ ์ค์ง - ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ํด๋ผ์ด์ธํธ์ QUIC๋ฅผ ํ์ํ์ง ๋ชปํฉ๋๋ค.
- ์๋(๊ธฐ๋ณธ๊ฐ): Google์ด QUIC๋ฅผ ํ์ํ ์๊ธฐ๋ฅผ ์ ์ดํฉ๋๋ค. ํ์ฌ๋ ์๋์ ์ ํํ๋ฉด QUIC๊ฐ ์ฌ์ฉ ์ค์ง๋ฉ๋๋ค.
์ด ์ต์
์ ์ ํํ๋ฉด ๋์ค์ Google์์ ์ด ๋ถํ ๋ถ์ฐ๊ธฐ์ QUIC ํ์ ๋ฐ HTTP/3๋ฅผ ์๋์ผ๋ก ์ฌ์ฉ ์ค์ ํ๋ ๊ฒ์ ํ์ฉํ๊ฒ ๋ฉ๋๋ค.
- ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๊ฒํ ๋ฐ ์๋ฃ
- ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ๋ง๋ค๊ธฐ ํ์ด์ง์ ์ผ์ชฝ ํจ๋์์ ๊ฒํ ๋ฐ ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ง๋ค๋ ค๋ ์ค์ ๊ณผ ํ์ฌ ์ค์ ์ ๋น๊ตํฉ๋๋ค.
- ๋ชจ๋ ์ค์ ์ด ์ฌ๋ฐ๋ฅธ ๊ฒ์ผ๋ก ํ์ธ๋๋ฉด ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํ์ฌ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค.
gcloud
์ํ ์ ๊ฒ์ ๋ง๋ญ๋๋ค. ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ฐฑ์๋ ๊ฐ์ HTTP๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
gcloud๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.gcloud compute health-checks create http http-basic-check \ --port 80์ฝํ ์ธ ์ ๊ณต์ ์ฒด๋ง๋ค ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๋ง๋ญ๋๋ค.
HTTP๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค๋ก ์ด๋ํ๊ธฐ ๋๋ฌธ์
--protocolํ๋๋ฅผHTTP๋ก ์ค์ ํฉ๋๋ค. ์ด์ ์ ์ํ ์ ๊ฒ์ผ๋ก ๋ง๋http-basic-check์ํ ์ ๊ฒ์ ์ฌ์ฉํฉ๋๋ค.-
์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ฒฝ์ฐ gcloud CLI ๋ช
๋ น์ด๋ฅผ
load-balancing-scheme=EXTERNAL_MANAGED์ ํจ๊ป ์ฌ์ฉํฉ๋๋ค. ์ด ์ค์ ์ ๊ณ ๊ธ ํธ๋ํฝ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. - ๊ธฐ๋ณธ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ฒฝ์ฐ
load-balancing-scheme=EXTERNAL์ ์ฌ์ฉํฉ๋๋ค.
gcloud compute backend-services create video-backend-service \ --load-balancing-scheme=LOAD_BALANCING_SCHEME \ --global-health-checks \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --globalgcloud compute backend-services create web-backend-service \ --load-balancing-scheme=LOAD_BALANCING_SCHEME \ --global-health-checks \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global-
์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ฒฝ์ฐ gcloud CLI ๋ช
๋ น์ด๋ฅผ
์ธ์คํด์ค ๊ทธ๋ฃน์ ๋ฐฑ์๋ ์๋น์ค์ ๋ฐฑ์๋๋ก ์ถ๊ฐํฉ๋๋ค. ๋ฐฑ์๋๋ ํฌํจ๋ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ฉ๋(์ต๋ ๋ฐฑ์๋ ์ฌ์ฉ๋ฅ ๋๋ ์ด๋น ์ต๋ ์ฟผ๋ฆฌ ์)์ ์ ์ํฉ๋๋ค. ์ด ์์์์
balancing-mode๋UTILIZATION๊ฐ์ผ๋ก,max-utilization์0.8๋ก,capacity-scaler๋1๋ก ์ค์ ํฉ๋๋ค. ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๋๋ ์ด๋ํ๋ ค๋ฉดcapacity-scaler์0์ผ๋ก ์ค์ ํฉ๋๋ค.ig-video-us์ธ์คํด์ค ๊ทธ๋ฃน์ ์ถ๊ฐํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.gcloud compute backend-services add-backend video-backend-service \ --balancing-mode=UTILIZATION \ --max-utilization=0.8 \ --capacity-scaler=1 \ --instance-group=ig-video-us \ --instance-group-zone=us-central1-b \ --globalig-video-eu์ธ์คํด์ค ๊ทธ๋ฃน์ ์ถ๊ฐํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.gcloud compute backend-services add-backend video-backend-service \ --balancing-mode=UTILIZATION \ --max-utilization=0.8 \ --capacity-scaler=1 \ --instance-group=ig-video-eu \ --instance-group-zone=europe-west1-b \ --globalig-www-us์ธ์คํด์ค ๊ทธ๋ฃน์ ์ถ๊ฐํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.gcloud compute backend-services add-backend web-backend-service \ --balancing-mode=UTILIZATION \ --max-utilization=0.8 \ --capacity-scaler=1 \ --instance-group=ig-www-us \ --instance-group-zone=us-central1-b \ --globalig-www-eu์ธ์คํด์ค ๊ทธ๋ฃน์ ์ถ๊ฐํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค.gcloud compute backend-services add-backend web-backend-service \ --balancing-mode=UTILIZATION \ --max-utilization=0.8 \ --capacity-scaler=1 \ --instance-group=ig-www-eu \ --instance-group-zone=europe-west1-b \ --global์์ ๋๋ ์์ฒญ์ ํด๋น ๋ฐฑ์๋ ์๋น์ค๋ก ๋ผ์ฐํ ํ๋ URL ๋งต์ ๋ง๋ญ๋๋ค. ์ด ๊ฒฝ์ฐ
--path-rulesํ๋๊ทธ๋ฅผ ํตํด ์ ์๋ ์์ฒญ ๊ฒฝ๋ก ๋งคํ์ ์ฌ์ดํธ์ ๋ํ ๊ฐ ์์ฒญ์ URL ๊ฒฝ๋ก์ ๋ฐ๋ผ ํธ๋ํฝ์ ๋ถํ ํฉ๋๋ค.--path-rules์ ํญ๋ชฉ๊ณผ ์ผ์นํ์ง ์๋ ํธ๋ํฝ์--default-service flag์ ํญ๋ชฉ์ผ๋ก ์ ์ก๋ฉ๋๋ค.URL ๋งต์ ๋ง๋ญ๋๋ค.
gcloud compute url-maps create web-map \ --default-service web-backend-serviceURL ๋งต์ ๊ฒฝ๋ก ์ผ์น์๋ฅผ ์ถ๊ฐํ๊ณ ์์ฒญ ๊ฒฝ๋ก ๋งคํ์ ์ ์ํฉ๋๋ค.
gcloud compute url-maps add-path-matcher web-map \ --default-service web-backend-service \ --path-matcher-name pathmap \ --path-rules="/video=video-backend-service,/video/*=video-backend-service"
HTTPS ํ๋ก์์ ์ฌ์ฉํ SSL ์ธ์ฆ์ ๋ฆฌ์์ค๋ฅผ ๋ง๋ญ๋๋ค. Google ๊ด๋ฆฌํ ์ธ์ฆ์๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋๋ฉ์ธ์ด ์์ด์ผ ํฉ๋๋ค. ๋๋ฉ์ธ์ด ์๋ ๊ฒฝ์ฐ ์์ฒด ์๋ช SSL ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ SSL ์ธ์ฆ์ ์ ํ์ ์ฐธ์กฐํ์ธ์.
์ฌ๋ฌ SSL ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ธ์ฆ์๋ง๋ค SSL ์ธ์ฆ์ ๋ฆฌ์์ค๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
์์ฒด ๊ด๋ฆฌํ SSL ์ธ์ฆ์ ๋ฆฌ์์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํ์ธ์.
gcloud compute ssl-certificates create www-ssl-cert \ --certificate [CRT_FILE_PATH] \ --private-key [KEY_FILE_PATH]Google ๊ด๋ฆฌํ SSL ์ธ์ฆ์ ๋ฆฌ์์ค๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
gcloud compute ssl-certificates create www-ssl-cert \ --domains [DOMAIN]
๋์ HTTPS ํ๋ก์๋ฅผ ๋ง๋ค์ด ์์ฒญ์ URL ๋งต์ผ๋ก ๋ผ์ฐํ ํฉ๋๋ค. ํ๋ก์๋ HTTPS ๋ถํ ๋ถ์ฐ์ ์ํด SSL ์ธ์ฆ์๋ฅผ ํฌํจํ๋ ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ผ๋ถ๋ถ์ด๋ฏ๋ก ์ด ๋จ๊ณ์์ ์ธ์ฆ์๋ ๋ก๋ํฉ๋๋ค.
gcloud compute target-https-proxies create https-lb-proxy \ --url-map web-map --ssl-certificates www-ssl-cert์์ฑํ IP ์ฃผ์ ๊ฐ๊ฐ์ ๋ํด ํ๋์ฉ ๋ ๊ฐ์ ์ ์ญ ์ ๋ฌ ๊ท์น์ ๋ง๋ค์ด ์์ ๋๋ ์์ฒญ์ ํ๋ก์๋ก ๋ผ์ฐํ ํฉ๋๋ค.
-
์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ฒฝ์ฐ gcloud CLI ๋ช
๋ น์ด๋ฅผ
load-balancing-scheme=EXTERNAL_MANAGED์ ํจ๊ป ์ฌ์ฉํฉ๋๋ค. ์ด ์ค์ ์ ๊ณ ๊ธ ํธ๋ํฝ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. - ๊ธฐ๋ณธ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ฒฝ์ฐ
load-balancing-scheme=EXTERNAL์ ์ฌ์ฉํฉ๋๋ค.
gcloud compute forwarding-rules create https-content-rule \ --load-balancing-scheme=LOAD_BALANCING_SCHEME \ --network-tier=PREMIUM \ --address=lb-ipv4-1 \ --global \ --target-https-proxy=https-lb-proxy \ --ports=443gcloud compute forwarding-rules create https-content-ipv6-rule \ --load-balancing-scheme=LOAD_BALANCING_SCHEME \ --network-tier=PREMIUM \ --address=lb-ipv6-1 \ --global \ --target-https-proxy=https-lb-proxy \ --ports=443-
์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ฒฝ์ฐ gcloud CLI ๋ช
๋ น์ด๋ฅผ
์ ์ญ ์ ๋ฌ ๊ท์น์ ๋ง๋ ํ์ ๊ตฌ์ฑ์ด ์ ์ญ์ ์ผ๋ก ์ ์ฉ๋๋ ๋ฐ ๋ช ๋ถ ์ ๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
๋ถํ ๋ถ์ฐ๊ธฐ์ ๋๋ฉ์ธ ์ฐ๊ฒฐ
๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ ํ ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ฐ๊ฒฐ๋ IP ์ฃผ์๋ฅผ ํ์ธํฉ๋๋ค(์: 30.90.80.100). ๋๋ฉ์ธ์ด ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ํ๋ ค๋ฉด ๋๋ฉ์ธ ๋ฑ๋ก ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ A ๋ ์ฝ๋๋ฅผ ๋ง๋ญ๋๋ค. SSL ์ธ์ฆ์์ ์ฌ๋ฌ ๋๋ฉ์ธ์ ์ถ๊ฐํ๋ค๋ฉด ๋ชจ๋ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ A ๋ ์ฝ๋๋ฅผ ๋๋ฉ์ธ๋ง๋ค ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด www.example.com ๋ฐ example.com์ A ๋ ์ฝ๋๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํฉ๋๋ค.
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
Cloud DNS๋ฅผ DNS ์ ๊ณต์ ์ฒด๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ ์ฝ๋ ์ถ๊ฐ, ์์ , ์ญ์ ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ธ์คํด์ค์ ํธ๋ํฝ ๋ณด๋ด๊ธฐ
๋ถํ ๋ถ์ฐ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ์ผ๋ฏ๋ก ์ด์ ์ ๋ฌ ๊ท์น์ผ๋ก ํธ๋ํฝ์ ์ ์กํ๊ณ ํธ๋ํฝ์ด ๋ค๋ฅธ ์ธ์คํด์ค๋ก ์ด๋ํ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ฝ์ ๋ฐ ์น๋ธ๋ผ์ฐ์
Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
web-map์ ํด๋ฆญํ์ฌ ์์์ ๋ง๋ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํ์ฅํฉ๋๋ค.๋ฐฑ์๋ ์น์ ์์ ์ธ์คํด์ค๊ฐ ์ ์์ธ์ง ํ์ธํฉ๋๋ค. ์ ์ ์ด์๋ ๋ค ๊ฐ์ ์ธ์คํด์ค ๊ทธ๋ฃน ๊ฐ๊ฐ์ ์๋ ๋ ์ธ์คํด์ค๊ฐ ๋ชจ๋ ์ ์์ผ๋ก ํ์๋์ด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ ์ฐ์ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํด ๋ณด์ธ์.Google Cloud ์ฝ์์ ์ธ์คํด์ค๊ฐ ์ ์์ด๋ผ๊ณ ํ์๋๋ ๋ฐ ์ ์ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ๋ช ๋ถ ํ์๋ ๋ฐฑ์๋๊ฐ ์ ์์ผ๋ก ํ์๋์ง ์์ผ๋ฉด ๋ฐฉํ๋ฒฝ ๊ตฌ์ฑ๊ณผ ๋ฐฑ์๋ ์ธ์คํด์ค์ ํ ๋น๋ ๋คํธ์ํฌ ํ๊ทธ ์งํฉ์ ๊ฒํ ํฉ๋๋ค.
๋ถํ ๋ถ์ฐ๊ธฐ์ IPv4 ๋ฐ IPv6 ์ฃผ์๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
Google Cloud ์ฝ์์์ IP ์ฃผ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ด๋ฆ์์
lb-ipv4-1๋ฐlb-ipv6-1์ด๋ผ๋ ์ฃผ์๋ฅผ ์ฐพ์ ๋ค์ IP ์ฃผ์ ์ด์์ ์ฐ๊ฒฐ๋ ๊ฐ์ ๊ธฐ๋กํฉ๋๋ค.
Google ๊ด๋ฆฌํ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
๋ค์ DNS ๋ ์ฝ๋๋ฅผ ๋ง๋ญ๋๋ค.
- CAA ๋ ์ฝ๋. ์์ธํ ๋ด์ฉ์ Google ๊ด๋ฆฌํ ์ธ์ฆ์์ ์๋ช ํ ์ ์๋ CA ์ง์ ์ ์ฐธ์กฐํ์ธ์.
- A ๋ ์ฝ๋. ์์ธํ ๋ด์ฉ์ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋๋ก DNS A ๋ฐ AAAA ๋ ์ฝ๋ ์ ๋ฐ์ดํธ๋ฅผ ์ฐธ์กฐํ์ธ์.
- AAAA ๋ ์ฝ๋. A ๋ ์ฝ๋์ ์ ์ฌํ์ง๋ง ๋ถํ ๋ถ์ฐ๊ธฐ์ IPv6 ์ฃผ์์ ์ฌ์ฉ๋ฉ๋๋ค.
์ธ์ฆ์ ๋ฆฌ์์ค์ ์ํ๊ฐ ACTIVE์ธ์ง ํ์ธํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Google ๊ด๋ฆฌํ SSL ์ธ์ฆ์ ๋ฆฌ์์ค ์ํ๋ฅผ ์ฐธ์กฐํ์ธ์.
์น๋ธ๋ผ์ฐ์ ์์ ๋ค์ ์ค ํ๋๋ก ์ด๋ํ์ฌ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํ ์คํธํฉ๋๋ค.
https://IP_ADDRESS. ์ฌ๊ธฐ์ IP_ADDRESS๋ ๋ถํ ๋ถ์ฐ๊ธฐ์ IPv4 ์ฃผ์์ ๋๋ค. ๋ธ๋ผ์ฐ์ ์ ์ธ์ฆ์ ๊ฒฝ๊ณ ๊ฐ ํ์๋๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ธ์ฆ์๋ฅผ ์ ๋ขฐํ๋๋ก ๋ช ์์ ์ผ๋ก ์ง์ํด์ผ ํฉ๋๋ค. ์ธ์ฆ์๋ ์ผ๋ฐ์ ์ผ๋ก IP ์ฃผ์๊ฐ ์๋ ๋๋ฉ์ธ์ผ๋ก ๊ตฌ์ฑ๋๊ธฐ ๋๋ฌธ์ ๊ฒฝ๊ณ ๊ฐ ๋ฐ์ํฉ๋๋ค.https://FQDN. ์ฌ๊ธฐ์ FQDN์ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋๋ก DNS๋ฅผ ๊ตฌ์ฑํ ์ ๊ทํ๋ ๋๋ฉ์ธ ์ด๋ฆ(FQDN)์ ๋๋ค. ์์ฒด ๊ด๋ฆฌํ ์์ฒด ์๋ช SSL ๋๋ ์ปค์คํ ์ธ์ฆ ๊ธฐ๊ด(CA)์์ ์๋ช ํ ์์ฒด ๊ด๋ฆฌํ SSL ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ธ์ฆ์ ๋๋ ์ธ์ฆ์์ CA๋ฅผ ์ ๋ขฐํ๋๋ก ๋ช ์์ ์ผ๋ก ๊ตฌ์ฑํ์ง ์๋ ํ ๋ธ๋ผ์ฐ์ ์ ์ธ์ฆ์ ๊ฒฝ๊ณ ๊ฐ ํ์๋ฉ๋๋ค. ์์ฒด ๊ด๋ฆฌํ ์ธ์ฆ์์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋น๊ณต๊ฐ ํค ๋ฐ ์ธ์ฆ์ ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ธ๋ผ์ฐ์ ๋ ํ์ด์ง๋ฅผ ์ ๊ณตํ ์ธ์คํด์ค์ ์ด๋ฆ๊ณผ ์์ญ์ ํ์ํ๋ ์ฝํ ์ธ ๋ก ํ์ด์ง๋ฅผ ๋ ๋๋งํด์ผ ํฉ๋๋ค(์:
Page on ig-www-us-02 in us-central1-b).๋ธ๋ผ์ฐ์ ์์ ๋ค์ ์ค ํ๋๋ก ์ด๋ํฉ๋๋ค.
https://IP_ADDRESS/video. ์ฌ๊ธฐ์ IP_ADDRESS๋ ๋ถํ ๋ถ์ฐ๊ธฐ์ IPv4 ์ฃผ์์ ๋๋ค.https://FQDN/video. ์ฌ๊ธฐ์ FQDN์ DNS๊ฐ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ๊ตฌ์ฑํ FQDN์ ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ ํ์ด์ง๋ฅผ ์ ๊ณตํ ๋์์ ์ธ์คํด์ค์ ์ด๋ฆ๊ณผ ์์ญ์ ํ์ํ๋ ์ฝํ ์ธ ๋ก ํ์ด์ง๋ฅผ ๋ ๋๋งํด์ผ ํฉ๋๋ค(์:
Page on ig-video-us-02 in us-central1-b).
gcloud ๋ฐ curl ์ฌ์ฉ
๋ถํ ๋ถ์ฐ๊ธฐ์ IPv4 ๋ฐ IPv6 ์ฃผ์๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
gcloud compute addresses describe lb-ipv4-1 \ --format="get(address)" \ --global
gcloud compute addresses describe lb-ipv6-1 \ --format="get(address)" \ --global
Google ๊ด๋ฆฌํ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
๋ค์ DNS ๋ ์ฝ๋๋ฅผ ๋ง๋ญ๋๋ค.
- CAA ๋ ์ฝ๋. ์์ธํ ๋ด์ฉ์ Google ๊ด๋ฆฌํ ์ธ์ฆ์์ ์๋ช ํ ์ ์๋ CA ์ง์ ์ ์ฐธ์กฐํ์ธ์.
- A ๋ ์ฝ๋. ์์ธํ ๋ด์ฉ์ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋๋ก DNS A ๋ฐ AAAA ๋ ์ฝ๋ ์ ๋ฐ์ดํธ๋ฅผ ์ฐธ์กฐํ์ธ์.
- AAAA ๋ ์ฝ๋. A ๋ ์ฝ๋์ ์ ์ฌํ์ง๋ง ๋ถํ ๋ถ์ฐ๊ธฐ์ IPv6 ์ฃผ์์ ์ฌ์ฉ๋ฉ๋๋ค.
์ธ์ฆ์ ๋ฆฌ์์ค์ ์ํ๊ฐ ACTIVE์ธ์ง ํ์ธํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Google ๊ด๋ฆฌํ SSL ์ธ์ฆ์ ๋ฆฌ์์ค ์ํ๋ฅผ ์ฐธ์กฐํ์ธ์.
gcloud compute ssl-certificates list
curl๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ URL์ ์๋ต์ ํ ์คํธํฉ๋๋ค. IP_ADDRESS๋ฅผ ๋ถํ ๋ถ์ฐ๊ธฐ์ IPv4 ์ฃผ์๋ก ๋ฐ๊ฟ๋๋ค.curl -k https://IP_ADDRESS
curl -k https://IP_ADDRESS/video/
curl๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ URL์ ์๋ต์ ํ ์คํธํฉ๋๋ค. IP_ADDRESS๋ฅผ ๋ถํ ๋ถ์ฐ๊ธฐ์ IPv6 ์ฃผ์๋ก ๋ฐ๊ฟ๋๋ค. IPv6์ ๊ฒฝ์ฐ ์ฃผ์๋ฅผ ๋๊ดํธ([])๋ก ๋ฌถ๊ณ-gํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์์ผ๋์นด๋ ์ฌ์ฉ์ ๋นํ์ฑํํด์ผ ํฉ๋๋ค(์:curl -g -6 "https://[2001:DB8::]/").curl -k -g -6 https://[IP_ADDRESS]
curl -k -g -6 https://[IP_ADDRESS]/video/
๋ฉํฐ ๋ฆฌ์ ๊ธฐ๋ฅ ํ ์คํธ
๋ค๋ฅธ ์ง์ญ์ ์ฌ์ฉ์๋ฅผ ์๋ฎฌ๋ ์ด์
ํ๋ ค๋ฉด ๋ค๋ฅธ ๋ฆฌ์ ์ ๊ฐ์ ๋จธ์ ์ธ์คํด์ค ์ค ํ๋์ ์ฐ๊ฒฐํ ๋ค์ ํด๋น ์ธ์คํด์ค์์ curl ๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ฆฌ์ ์ ์ธ์คํด์ค๋ก ์ด๋ํ๋ ์์ฒญ์ ํ์ธํฉ๋๋ค.
ig-www-us-01์ ์ฐ๊ฒฐํ๋ ๊ฒฝ์ฐ curl ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด ์์ฒญ์ด us-central1์ ์ธ์คํด์ค๋ก ์ด๋ํ๋ค๊ณ ํ์๋ฉ๋๋ค. Page on ig-www-us-02 in us-central1-b์ ๊ฐ์ ์ถ๋ ฅ์ด ํ์๋ฉ๋๋ค.
ig-www-eu-01์ ์ฐ๊ฒฐํ๋ ๊ฒฝ์ฐ curl ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด ์์ฒญ์ด europe-west1์ ์ธ์คํด์ค๋ก ์ด๋ํ๋ค๊ณ ํ์๋ฉ๋๋ค. Page on ig-www-eu-02 in europe-west1-b์ ๊ฐ์ ์ถ๋ ฅ์ด ํ์๋ฉ๋๋ค.
ํ ์คํธ๋ ์ ์ธ๊ณ์ ํด๋ผ์ด์ธํธ ์์คํ ์์ ์ํํ ์ ์์ต๋๋ค. ํ ๋ฆฌ์ ์ ๋ฐฑ์๋๊ฐ ๋น์ ์์ ์ด๊ฑฐ๋ ์ฉ๋์ ๋๋ฌํ๋ฉด HTTPS ๋ถํ ๋ถ์ฐ๊ธฐ๋ ํธ๋ํฝ์ ๋ค์์ผ๋ก ๊ฐ๊น์ด ๋ฆฌ์ ์ผ๋ก ์๋์ผ๋ก ๋ณด๋ ๋๋ค.
์ถ๊ฐ ๊ตฌ์ฑ ์ต์
์ด ์น์ ์์๋ ๋์ฒด ๋ฐ ์ถ๊ฐ ๊ตฌ์ฑ ์ต์ ์ ์ ๊ณตํ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ดํด๋ด ๋๋ค. ๋ชจ๋ ์์ ์ ์ ํ์ฌํญ์ ๋๋ค. ์ํ๋ ์์๋๋ก ์ํํ ์ ์์ต๋๋ค.
์ธ์ ์ดํผ๋ํฐ ์ฌ์ฉ ์ค์
๋ค์ ์ ์ฐจ๋ ๊ฐ ๋ฐฑ์๋ ์๋น์ค์ ๋ค๋ฅธ ์ ํ์ ์ธ์ ์ดํผ๋ํฐ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
web-backend-service์ ํด๋ผ์ด์ธํธ IP ์ฃผ์ ์ธ์ ์ดํผ๋ํฐvideo-backend-service์ HTTP ์ฟ ํค ์ธ์ ์ดํผ๋ํฐ
ํด๋ผ์ด์ธํธ IP ์ดํผ๋ํฐ๊ฐ ์ฌ์ฉ ์ค์ ๋๋ฉด ๋ถํ ๋ถ์ฐ๊ธฐ๋ ํด๋ผ์ด์ธํธ์ IP ์ฃผ์์์ ์์ฑ๋ ํด์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํน์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋์ผํ ๋ฐฑ์๋ VM์ผ๋ก ์ ๋ฌํฉ๋๋ค.
์์ฑ๋ ์ฟ ํค ์ดํผ๋ํฐ๊ฐ ์ฌ์ฉ ์ค์ ๋๋ฉด ๋ถํ ๋ถ์ฐ๊ธฐ๋ ์ฒซ ๋ฒ์งธ ์์ฒญ์์ ์ฟ ํค๋ฅผ ์์ฑํฉ๋๋ค. ๋์ผํ ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ ๊ฐ ํ์ ์์ฒญ์ ๊ฒฝ์ฐ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ๊ฐ์ ๋ฐฑ์๋ VM ๋๋ ์๋ํฌ์ธํธ๋ก ์์ฒญ์ ์ ๋ฌํฉ๋๋ค. ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ฒฝ์ฐ ์ฟ ํค ์ด๋ฆ์ GCLB์
๋๋ค.
์ฝ์
web-backend-service์ ํด๋ผ์ด์ธํธ IP ์ธ์
์ดํผ๋ํฐ๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ฐฑ์๋๋ฅผ ํด๋ฆญํฉ๋๋ค.
web-backend-service(์ด ์์์์ ๋ง๋ ๋ฐฑ์๋ ์๋น์ค ์ค ํ๋์ ์ด๋ฆ)๋ฅผ ํด๋ฆญํ๊ณ ์์ ์ ํด๋ฆญํฉ๋๋ค.
๋ฐฑ์๋ ์๋น์ค ์ธ๋ถ์ ๋ณด ํ์ด์ง์์ ๊ณ ๊ธ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
์ธ์ ์ดํผ๋ํฐ์ ๋ฉ๋ด์์ ํด๋ผ์ด์ธํธ IP๋ฅผ ์ ํํฉ๋๋ค.
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
์์ฑ๋ ์ฟ ํค ์ธ์
์ดํผ๋ํฐ๋ฅผ video-backend-service์ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ฐฑ์๋๋ฅผ ํด๋ฆญํฉ๋๋ค.
video-backend-service(์ด ์์์์ ๋ง๋ ๋ฐฑ์๋ ์๋น์ค ์ค ํ๋์ ์ด๋ฆ)๋ฅผ ํด๋ฆญํ๊ณ ์์ ์ ํด๋ฆญํฉ๋๋ค.
๋ฐฑ์๋ ์๋น์ค ์ธ๋ถ์ ๋ณด ํ์ด์ง์์ ๊ณ ๊ธ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
์ธ์ ์ดํผ๋ํฐ ๋ฉ๋ด์์ ์์ฑ๋ ์ฟ ํค๋ฅผ ์ ํํฉ๋๋ค.
์ ๋ฐ์ดํธ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
๋ค์ gcloud ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ IP ์ธ์
์ดํผ๋ํฐ๋ฅผ ์ง์ ํ์ฌ web-backend-service ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์
๋ฐ์ดํธํฉ๋๋ค.
gcloud compute backend-services update web-backend-service \
--session-affinity=CLIENT_IP \
--global
๋ค์ gcloud ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ์ฟ ํค ์ธ์
์ดํผ๋ํฐ๋ฅผ ์ง์ ํ์ฌ video-backend-service ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์
๋ฐ์ดํธํฉ๋๋ค.
gcloud compute backend-services update video-backend-service \
--session-affinity=GENERATED_COOKIE \
--global
API
ํด๋ผ์ด์ธํธ IP ์ธ์
์ดํผ๋ํฐ๋ฅผ ์ค์ ํ๋ ค๋ฉด backendServices/patch ๋ฉ์๋์ PATCH ์์ฒญ์ ์คํํฉ๋๋ค.
PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/web-backend-service
{
"sessionAffinity": "CLIENT_IP"
}
์์ฑ๋ ์ฟ ํค ์ธ์
์ดํผ๋ํฐ๋ฅผ ์ค์ ํ๋ ค๋ฉด backendServices/patch ๋ฉ์๋์ PATCH ์์ฒญ์ ์คํํฉ๋๋ค.
PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/video-backend-service
{
"sessionAffinity": "GENERATED_COOKIE"
}
๋ฐฑ์๋ VM์์ ์ธ๋ถ IP ์ฃผ์ ์ ๊ฑฐ
์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ๋ด๋ถ IP ์ฃผ์ ๋ฐ ํน์ ๋ถํ ๋ถ์ฐ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฑ์๋์ ํต์ ํฉ๋๋ค. ๋ฐฑ์๋ ์ธ์คํด์ค๋ ๋ถํ ๋ถ์ฐ๊ธฐ์ ํต์ ํ๊ธฐ ์ํด ์ธ๋ถ IP ์ฃผ์๋ฅผ ํ์๋ก ํ์ง ์์ต๋๋ค. ๋ฐฑ์๋ ์ธ์คํด์ค์์ ์ธ๋ถ IP ์ฃผ์๋ฅผ ์ ๊ฑฐํ์ฌ ๋ณด์์ ๊ฐํํ ์ ์์ต๋๋ค.
๋ฐฑ์๋ ์ธ์คํด์ค์์ ์ธ๋ถ IP ์ฃผ์๋ฅผ ์ ๊ฑฐํ๋ ค๋ฉด ๋ค์ ์ง์นจ์ ๋ฐ๋ฅด์ธ์.
SSH๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๋ถ IP ์ฃผ์๊ฐ ์๋ ๋ฐฑ์๋ ์ธ์คํด์ค์ ์ฐ๊ฒฐํด์ผ ํ๋ ๊ฒฝ์ฐ ์ธ๋ถ IP ์ฃผ์๊ฐ ์๋ ์ธ์คํด์ค์ ์ฐ๊ฒฐํ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ญ์
์ด ํํ ๋ฆฌ์ผ์ ์๋ฃํ ํ์๋ ๋ง๋ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ์ฌ ํฅํ ์๊ธ์ด ์ฒญ๊ตฌ๋์ง ์๋๋ก ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ฆฌ์์ค๋ฅผ ์์ฒด ํ๋ก์ ํธ ๋ด์ ๋ง๋ ๊ฒฝ์ฐ ์ ์ฒด ํ๋ก์ ํธ๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๋ฆฌ์์ค๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ์ญ์ ํ ์ ์์ต๋๋ค.
ํ๋ก์ ํธ ์ญ์
์ฝ์
Google Cloud ์ฝ์์์ ํ๋ก์ ํธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
ํ๋ก์ ํธ ๋ชฉ๋ก์์ ์ญ์ ํ ํ๋ก์ ํธ๋ฅผ ์ ํํ๊ณ ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ํ์์์์
PROJECT_ID๋ฅผ ์ ๋ ฅํ ๋ค์ ์ข ๋ฃ๋ฅผ ํด๋ฆญํ์ฌ ํ๋ก์ ํธ๋ฅผ ์ญ์ ํฉ๋๋ค.
gcloud
PROJECT_ID๋ฅผ ํ๋ก์ ํธ ID๋ก ๋ฐ๊ฟ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud projects delete PROJECT_ID
๊ฐ๋ณ ๋ฆฌ์์ค ์ญ์
์ฝ์
๋ถํ ๋ถ์ฐ๊ธฐ ์ญ์
Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
web-map์์ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.ํ์ด์ง ์๋จ์ ์ญ์ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
๋ฐฑ์๋ ์๋น์ค, ์ํ ์ ๊ฒ, SSL ์ธ์ฆ์ ๋ฑ ๋ชจ๋ ์ถ๊ฐ ๋ฆฌ์์ค ์์ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.
๋ถํ ๋ถ์ฐ๊ธฐ ๋ฐ ์ ํํ ๋ฆฌ์์ค ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ธ์คํด์ค ๊ทธ๋ฃน ์ญ์
Google Cloud ์ฝ์์์ ์ธ์คํด์ค ๊ทธ๋ฃน ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ชจ๋ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ ํํ๋ ค๋ฉด ์ด๋ฆ ์๋จ ์์ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.
์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํ์ธ ์ฐฝ์์ ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ธ๋ถ IP ์ฃผ์ ํด์
Google Cloud ์ฝ์์์ ์ธ๋ถ IP ์ฃผ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
lb-ipv4-1๋ฐlb-ipv6-1์์ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค,๊ณ ์ ์ฃผ์ ํด์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํ์ธ ์ฐฝ์์ ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ฐฉํ๋ฒฝ ๊ท์น ์ญ์
Google Cloud ์ฝ์์์ ๋ฐฉํ๋ฒฝ ์ ์ฑ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
fw-allow-health-check-and-proxy๋ฐfw-allow-ssh์์ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค,์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํ์ธ ์ฐฝ์์ ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
VM ์ธ์คํด์ค ์ญ์
Google Cloud ์ฝ์์์ VM ์ธ์คํด์ค ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ชจ๋ ์ธ์คํด์ค๋ฅผ ์ ํํ๋ ค๋ฉด ์ด๋ฆ ์๋จ ์์ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.
์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํ์ธ ์ฐฝ์์ ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
VPC ๋คํธ์ํฌ ์ญ์
Google Cloud ์ฝ์์์ VPC ๋คํธ์ํฌ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
lb-network๋ฅผ ํด๋ฆญํฉ๋๋ค.๋คํธ์ํฌ ์ธ๋ถ์ ๋ณด ํ์ด์ง์์ VPC ๋คํธ์ํฌ ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํ์ธ ์ฐฝ์์ ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
๋ถํ ๋ถ์ฐ๊ธฐ ์ญ์
๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ญ์ ํ๋ ค๋ฉด ํด๋น ๊ตฌ์ฑ์์๋ฅผ ๊ฐ๊ฐ ์ญ์ ํด์ผ ํฉ๋๋ค.
์ ๋ฌ ๊ท์น์ ์ญ์ ํฉ๋๋ค.
gcloud compute forwarding-rules delete https-content-rule \ --globalgcloud compute forwarding-rules delete https-content-ipv6-rule \ --global์ ์ญ ์ธ๋ถ IP ์ฃผ์๋ฅผ ์ญ์ ํฉ๋๋ค.
gcloud compute addresses delete lb-ipv4-1 \ --globalgcloud compute addresses delete lb-ipv6-1 \ --global๋์ ํ๋ก์๋ฅผ ์ญ์ ํฉ๋๋ค.
gcloud compute target-https-proxies delete https-lb-proxy
SSL ์ธ์ฆ์๋ฅผ ์ญ์ ํฉ๋๋ค.
gcloud compute ssl-certificates delete www-ssl-cert
URL ๋งต์ ์ญ์ ํฉ๋๋ค.
gcloud compute url-maps delete web-map
๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ญ์ ํฉ๋๋ค.
gcloud compute backend-services delete web-backend-service \ --globalgcloud compute backend-services delete video-backend-service \ --global์ํ ์ ๊ฒ์ ์ญ์ ํฉ๋๋ค.
gcloud compute health-checks delete http-basic-check
๋ชจ๋ ๋ถํ ๋ถ์ฐ๊ธฐ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ์ต๋๋ค.
์ธ์คํด์ค ๊ทธ๋ฃน ์ญ์
๋ค์ ์ด๋ฆ ๋ฐ ์์ญ ์กฐํฉ์ ์ฌ์ฉํด ๋ค์ ๋ช
๋ น์ด๋ฅผ ๋ฐ๋ณตํ์ฌ 4๊ฐ์ ๋น๊ด๋ฆฌํ ์ธ์คํด์ค ๊ทธ๋ฃน์ ์ญ์ ํฉ๋๋ค. INSTANCE_GROUP_NAME ๋ฐ ZONE์ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.
- ์ด๋ฆ:
ig-www-us, ์์ญ:us-central1-b - ์ด๋ฆ:
ig-video-us, ์์ญ:us-central1-b - ์ด๋ฆ:
ig-www-eu, ์์ญ:europe-west1-b - ์ด๋ฆ:
ig-video-eu, ์์ญ:europe-west1-b
gcloud compute instance-groups unmanaged delete INSTANCE_GROUP_NAME \ --zone=ZONE
VM ์ธ์คํด์ค ์ญ์
๋ค์ ์ด๋ฆ ๋ฐ ์์ญ ์กฐํฉ์ ์ฌ์ฉํด ๋ค์ ๋ช
๋ น์ด๋ฅผ ๋ฐ๋ณตํ์ฌ 8๊ฐ์ VM์ ์ญ์ ํฉ๋๋ค. VM_NAME ๋ฐ ZONE์ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊ฟ๋๋ค.
- ์ด๋ฆ:
ig-www-us-01, ์์ญ:us-central1-b - ์ด๋ฆ:
ig-www-us-02, ์์ญ:us-central1-b - ์ด๋ฆ:
ig-video-us-01, ์์ญ:us-central1-b - ์ด๋ฆ:
ig-video-us-02, ์์ญ:us-central1-b - ์ด๋ฆ:
ig-www-eu-01, ์์ญ:europe-west1-b - ์ด๋ฆ:
ig-www-eu-02, ์์ญ:europe-west1-b - ์ด๋ฆ:
ig-video-eu-01, ์์ญ:europe-west1-b - ์ด๋ฆ:
ig-video-eu-02, ์์ญ:europe-west1-b
gcloud compute instances delete VM_NAME \ --zone=ZONE
๋ฐฉํ๋ฒฝ ๊ท์น ์ญ์
๋ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ชจ๋ ์ญ์ ํฉ๋๋ค.
gcloud compute firewall-rules delete fw-allow-health-check-and-proxy
gcloud compute firewall-rules delete fw-allow-ssh
VPC ๋คํธ์ํฌ ์ญ์
us-subnet์ ์ญ์ ํฉ๋๋ค.gcloud compute networks subnets delete us-subnet \ --region=us-central1
eu-subnet์ ์ญ์ ํฉ๋๋ค.gcloud compute networks subnets delete eu-subnet \ --region=europe-west1
VPC ๋คํธ์ํฌ๋ฅผ ์ญ์ ํฉ๋๋ค.
gcloud compute networks delete lb-network
์ด ํ๋ก์ ํธ์์ ์ค์ ํ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ์ต๋๋ค.
๋ค์ ๋จ๊ณ
- ๋ก๊น ๋ฐ ๋ชจ๋ํฐ๋ง ์ฌ์ฉ
- ๋ถํ ๋ถ์ฐ ๋ฌธ์ ํด๊ฒฐ
- IAP๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ์์ IAP ์ฌ์ฉ ์ค์ ์ฐธ์กฐ