์ด ํ์ด์ง์์๋ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ค์ด์ ์์ฒญ์ ์๋ฒ๋ฆฌ์ค ๋ฐฑ์๋๋ก ๋ผ์ฐํ ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ฌ๊ธฐ์ ์๋ฒ๋ฆฌ์ค๋ผ๋ ์ฉ์ด๋ ๋ค์๊ณผ ๊ฐ์ ์๋ฒ๋ฆฌ์ค ์ปดํจํ ์ ํ์ ์๋ฏธํฉ๋๋ค.
- App Engine
- Cloud Run Functions
- Cloud Run
API ๊ฒ์ดํธ์จ์ด์ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ํตํฉ์ ํตํด ์๋ฒ๋ฆฌ์ค ๋ฐฑ์๋๊ฐ Cloud Load Balancing์์ ์ ๊ณต๋๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ํ์ฉํ๋๋ก ์ง์ํ ์ ์์ต๋๋ค. ํธ๋ํฝ์ API ๊ฒ์ดํธ์จ์ด๋ก ๋ผ์ฐํ ํ๋๋ก ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด API ๊ฒ์ดํธ์จ์ด์ฉ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ์์ํ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์. API ๊ฒ์ดํธ์จ์ด์ฉ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ์ง์์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ํ์ ๋๋ค.
์๋ฒ๋ฆฌ์ค NEG๋ฅผ ์ฌ์ฉํ๋ฉด ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ํจ๊ป Google Cloud ์๋ฒ๋ฆฌ์ค ์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฒ๋ฆฌ์ค NEG ๋ฐฑ์๋๋ก ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๊ตฌ์ฑํ๋ฉด ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ํ ์์ฒญ์ด ์๋ฒ๋ฆฌ์ค ์ฑ ๋ฐฑ์๋๋ก ๋ผ์ฐํ ๋ฉ๋๋ค.
์๋ฒ๋ฆฌ์ค NEG์ ๋ํ ์์ธํ ๋ด์ฉ์ ์๋ฒ๋ฆฌ์ค NEG ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์์ํ๊ธฐ ์ ์
- App Engine, Cloud Run Functions ๋๋ Cloud Run ์๋น์ค๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
- Google Cloud CLI๋ฅผ ์์ง ์ค์นํ์ง ์์์ผ๋ฉด ์ค์นํฉ๋๋ค.
- ๊ถํ ๊ตฌ์ฑ
- SSL ์ธ์ฆ์ ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค.
App Engine, Cloud Run Functions ๋๋ Cloud Run ์๋น์ค ๋ฐฐํฌ
์ด ํ์ด์ง์ ์๋ด์์๋ ์ด๋ฏธ Cloud Run, Cloud Run Functions ๋๋ App Engine ์๋น์ค๊ฐ ์คํ ์ค์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
์ด ํ์ด์ง์ ์์์์๋ Cloud Run Python ๋น ๋ฅธ ์์์ ์ฌ์ฉํ์ฌ us-central1 ๋ฆฌ์ ์ Cloud Run ์๋น์ค๋ฅผ ๋ฐฐํฌํ์ต๋๋ค. ์ด ํ์ด์ง์ ๋๋จธ์ง ๋ถ๋ถ์์๋ ์๋ฒ๋ฆฌ์ค NEG ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒญ์ ์ด ์๋น์ค๋ก ๋ผ์ฐํ
ํ๋ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
์์ง ์๋ฒ๋ฆฌ์ค ์ฑ์ ๋ฐฐํฌํ์ง ์์๊ฑฐ๋ ์ํ ์ฑ์ผ๋ก ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ์ฌ์ฉํด ๋ณด๋ ค๋ฉด ๋ค์ ๋น ๋ฅธ ์์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ธ์. ๋ชจ๋ ๋ฆฌ์ ์์ ์๋ฒ๋ฆฌ์ค ์ฑ์ ๋ง๋ค ์ ์์ง๋ง ๋์ค์ ๋์ผํ ๋ฆฌ์ ์ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค NEG ๋ฐ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
Cloud Run
๊ฐ๋จํ Hello World ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ณ ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ ํจํค์งํ ๋ค์ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ Cloud Run์ ๋ฐฐํฌํ๋ ค๋ฉด ๋น ๋ฅธ ์์: ๋น๋ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
Container Registry์ ์ด๋ฏธ ์ ๋ก๋๋ ์ํ ์ปจํ ์ด๋๊ฐ ์๋ ๊ฒฝ์ฐ ๋น ๋ฅธ ์์: ์ฌ์ ๋น๋๋ ์ํ ์ปจํ ์ด๋ ๋ฐฐํฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
Cloud Run ํจ์
Cloud Run Functions: Python ๋น ๋ฅธ ์์์ ์ฐธ๊ณ ํ์ธ์.
App Engine
Python 3์ฉ App Engine ๋น ๋ฅธ ์์ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
Google Cloud CLI ์ค์น
Google Cloud CLI๋ฅผ ์ค์นํฉ๋๋ค. ๋๊ตฌ์ ๋ํ ๊ฐ๋ ๋ฐ ์ค์น ์ ๋ณด๋ gcloud ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ด์ ์ gcloud CLI๋ฅผ ์คํํ ์ ์ด ์์ผ๋ฉด ๋จผ์ gcloud init๋ฅผ ์คํํ์ฌ gcloud ๋๋ ํฐ๋ฆฌ๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
๊ถํ ๊ตฌ์ฑ
์ด ๊ฐ์ด๋๋ฅผ ๋ฐ๋ฅด๋ ค๋ฉด ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๋ง๋ค๊ณ ํ๋ก์ ํธ์ ์ธ๋ถ HTTP(S) ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ํ๋ก์ ํธ ์์ ์ ๋๋ ํธ์ง์์ด๊ฑฐ๋ ๋ค์ Compute Engine IAM ์ญํ ์ ๋ณด์ ํด์ผ ํฉ๋๋ค.
| ์์ | ํ์ํ ์ญํ |
|---|---|
| ๋ถํ ๋ถ์ฐ๊ธฐ ๋ฐ ๋คํธ์ํน ๊ตฌ์ฑ์์ ๋ง๋ค๊ธฐ | ๋คํธ์ํฌ ๊ด๋ฆฌ์ |
| NEG ์์ฑ ๋ฐ ์์ | Compute ์ธ์คํด์ค ๊ด๋ฆฌ์ |
| SSL ์ธ์ฆ์ ์์ฑ ๋ฐ ์์ | ๋ณด์ ๊ด๋ฆฌ์ |
์ธ๋ถ IP ์ฃผ์ ์์ฝ
์๋น์ค๊ฐ ์ค๋น๋์ด ์คํ ์ค์ด๋ฏ๋ก ๊ณ ๊ฐ์ด ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ฐ๊ฒฐํ๋ ๋ฐ ์ฌ์ฉํ๋ ์ ์ญ ๊ณ ์ ์ธ๋ถ IP ์ฃผ์๋ฅผ ์ค์ ํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ์ธ๋ถ IP ์ฃผ์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
์ธ๋ถ ๊ณ ์ IP ์ฃผ์ ์์ฝ์ ํด๋ฆญํฉ๋๋ค.
์ด๋ฆ์
example-ip๋ฅผ ์ ๋ ฅํฉ๋๋ค.๋คํธ์ํฌ ์๋น์ค ๋ฑ๊ธ์์ ํ๋ฆฌ๋ฏธ์์ ์ ํํฉ๋๋ค.
IP ๋ฒ์ ์์ IPv4๋ฅผ ์ ํํฉ๋๋ค.
์ ํ์์ ์ ์ญ์ ์ ํํฉ๋๋ค.
์์ฝ์ ํด๋ฆญํฉ๋๋ค.
gcloud
gcloud compute addresses create EXAMPLE_IP \
--network-tier=PREMIUM \
--ip-version=IPV4 \
--global
์์ฝ๋ IPv4 ์ฃผ์๋ฅผ ํ์ธํฉ๋๋ค.
gcloud compute addresses describe EXAMPLE_IP \
--format="get(address)" \
--global
EXAMPLE_IP์ IP ์ฃผ์์ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
SSL ์ธ์ฆ์ ๋ฆฌ์์ค ๋ง๋ค๊ธฐ
HTTPS ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ถํ ๋ถ์ฐ๊ธฐ์ ํ๋ฐํธ์๋์ SSL ์ธ์ฆ์ ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค. Google ๊ด๋ฆฌํ SSL ์ธ์ฆ์ ๋๋ ์์ฒด ๊ด๋ฆฌํ SSL ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ SSL ์ธ์ฆ์ ๋ฆฌ์์ค๋ฅผ ๋ง๋ญ๋๋ค.
Google ๊ด๋ฆฌํ ์ธ์ฆ์. Google Cloud ๋ ์ด๋ฌํ ์ธ์ฆ์๋ฅผ ์๋์ผ๋ก ๊ฐ์ ธ์ค๊ณ ๊ด๋ฆฌํ๋ฉฐ ๊ฐฑ์ ํ๋ฏ๋ก Google ๊ด๋ฆฌํ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. Google ๊ด๋ฆฌํ ์ธ์ฆ์๋ฅผ ๋ง๋ค๋ ค๋ฉด ์ธ์ฆ์๋ฅผ ํ๋ก๋น์ ๋ํ ์ ์๋๋ก ๋๋ฉ์ธ๊ณผ ํด๋น ๋๋ฉ์ธ์ ๋ํ DNS ๋ ์ฝ๋๊ฐ ์์ด์ผ ํฉ๋๋ค.
๋ํ ์ด์ ๋จ๊ณ์์ ๋ง๋ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ๋๋ฉ์ธ์ DNS A ๋ ์ฝ๋๋ฅผ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. Google ๊ด๋ฆฌํ ์ธ์ฆ์์ ์ฌ๋ฌ ๋๋ฉ์ธ์ด ์์ผ๋ฉด ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ๋ชจ๋ ๋๋ฉ์ธ๊ณผ ํ์ ๋๋ฉ์ธ์ ๋ํด DNS ๋ ์ฝ๋๋ฅผ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Google ๊ด๋ฆฌํ ์ธ์ฆ์ ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.
์์ฒด ์๋ช ์ธ์ฆ์. ์ง๊ธ ๋๋ฉ์ธ์ ์ค์ ํ์ง ์์ผ๋ ค๋ฉด ์์ฒด ์๋ช ๋ SSL ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธํ ์ ์์ต๋๋ค.
์ด ์์์์๋ ์ฌ์ฉ์๊ฐ ์ด๋ฏธ SSL ์ธ์ฆ์ ๋ฆฌ์์ค๋ฅผ ๋ง๋ค์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
SSL ์ธ์ฆ์ ๋ฆฌ์์ค(๋๋ Google์์ ๊ด๋ฆฌํ๋ ์ธ์ฆ์์์ ์๊ตฌํ๋ ๋๋ฉ์ธ)๋ฅผ ๋ง๋ค์ง ์๊ณ ์ด ํ๋ก์ธ์ค๋ฅผ ํ ์คํธํ๋ ค๋ ๊ฒฝ์ฐ์๋ ์ด ํ์ด์ง์ ์๋ด์ ๋ฐ๋ผ HTTP ๋ก๋๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
๋ถํ ๋ถ์ฐ๊ธฐ ๋ง๋ค๊ธฐ
๋ค์ ๋ค์ด์ด๊ทธ๋จ์์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ์๋ฒ๋ฆฌ์ค NEG ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค Cloud Run ์๋น์ค๋ก ์์ฒญ์ ์ ๋ฌํฉ๋๋ค. ์ด ์์์์๋ Cloud Run Python ๋น ๋ฅธ ์์์ ์ฌ์ฉํ์ฌ Cloud Run ์๋น์ค๋ฅผ ๋ฐฐํฌํ์ต๋๋ค.
์๋ฒ๋ฆฌ์ค NEG ๋ฐฑ์๋๊ฐ ์๋ ๋ฐฑ์๋ ์๋น์ค์๋ ์ํ ํ์ธ์ด ์ง์๋์ง ์์ผ๋ฏ๋ก ๋ถํ ๋ถ์ฐ๊ธฐ์ ์๋ฒ๋ฆฌ์ค NEG ๋ฐฑ์๋๋ง ์๋ ๊ฒฝ์ฐ ์ํ ํ์ธ์ ํ์ฉํ๋ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค.
์ฝ์
๋ถํ ๋ถ์ฐ๊ธฐ ์ ํ ์ ํ
Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ ์ ํ์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ(HTTP/HTTPS)๋ฅผ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ๊ณต๊ฐ ๋๋ ๋ด๋ถ์์ ๊ณต๊ฐ(์ธ๋ถ)๋ฅผ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ์ ์ญ ๋๋ ๋จ์ผ ๋ฆฌ์ ๋ฐฐํฌ์ ์ ์ญ ์ํฌ๋ก๋์ ์ ํฉ์ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ ์์ฑ์ ๊ธฐ๋ณธ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ ํํ๊ณ ๋ค์์ ํด๋ฆญํฉ๋๋ค.
- ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
๊ธฐ๋ณธ ๊ตฌ์ฑ
- ๋ถํ ๋ถ์ฐ๊ธฐ ์ด๋ฆ์
serverless-lb๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ๊ณ์ํ๋ ค๋ฉด ์ฐฝ์ ์ด์ด๋ก๋๋ค.
ํ๋ฐํธ์๋ ๊ตฌ์ฑ
- ํ๋ฐํธ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
-
HTTPS ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ค๋ ค๋ฉด SSL ์ธ์ฆ์(
gcloud compute ssl-certificates list)๊ฐ ์์ด์ผ ํฉ๋๋ค.์์ ์ค๋ช ๋๋ก Google ๊ด๋ฆฌ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ๋๋ฅผ ์ฑ์๋๋ค.
๋ค์ ์ต์ ์ด ์ด๋ฌํ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋์๋์ง ํ์ธํฉ๋๋ค.
| ์์ฑ | ๊ฐ(๊ฐ ์ ๋ ฅ ๋๋ ์ง์ ๋ ์ต์ ์ ํ) |
|---|---|
| ํ๋กํ ์ฝ | HTTPS |
| ๋คํธ์ํฌ ์๋น์ค ๊ณ์ธต | ํ๋ฆฌ๋ฏธ์ |
| IP ๋ฒ์ | IPv4 |
| IP ์ฃผ์ | example-ip |
| ํฌํธ | 443 |
| ์ธ์ฆ์ | ๊ธฐ์กด SSL ์ธ์ฆ์๋ฅผ ์ ํํ๊ฑฐ๋ ์ ์ธ์ฆ์๋ฅผ ๋ง๋ญ๋๋ค. HTTPS ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ค๋ ค๋ฉด HTTPS ํ๋ก์์์ ์ฌ์ฉํ SSL ์ธ์ฆ์ ๋ฆฌ์์ค๊ฐ ์์ด์ผ ํฉ๋๋ค. Google ๊ด๋ฆฌ SSL ์ธ์ฆ์๋ ์์ฒด ๊ด๋ฆฌํ SSL ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ SSL ์ธ์ฆ์ ๋ฆฌ์์ค๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. Google ๊ด๋ฆฌํ ์ธ์ฆ์๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋๋ฉ์ธ์ด ์์ด์ผ ํฉ๋๋ค. ๋๋ฉ์ธ์ A ๋ ์ฝ๋๋ ์ด ์ ์ฐจ์ ์๋ถ๋ถ์์ ๋ง๋ ๋ถํ ๋ถ์ฐ๊ธฐ IP ์ฃผ์๋ก ํ์ธ๋์ด์ผ ํฉ๋๋ค. Google Cloud ๋ ์ด๋ฌํ ์ธ์ฆ์๋ฅผ ์๋์ผ๋ก ๊ฐ์ ธ์ค๊ณ ๊ด๋ฆฌํ๋ฉฐ ๊ฐฑ์ ํ๋ฏ๋ก Google ๊ด๋ฆฌํ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋๋ฉ์ธ์ด ์๋ ๊ฒฝ์ฐ ์์ฒด ์๋ช SSL ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธํ ์ ์์ต๋๋ค. |
| ์ ํ์ฌํญ: HTTP-HTTPS ๋ฆฌ๋๋ ์ ์ฌ์ฉ ์ค์ |
์ด ์ฒดํฌ๋ฐ์ค๋ฅผ ์ฌ์ฉํ์ฌ HTTP์์ HTTPS๋ก ๋ฆฌ๋๋ ์
์ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
์ด ์ฒดํฌ๋ฐ์ค๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ฉด HTTPS ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋์ผํ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ ์ถ๊ฐ์ ์ธ ๋ถ๋ถ HTTP ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ค๊ณ HTTP ์์ฒญ์ ๋ถํ ๋ถ์ฐ๊ธฐ์ HTTPS ํ๋ฐํธ์๋๋ก ๋ฆฌ๋๋ ์ ํฉ๋๋ค. ์ด ์ฒดํฌ๋ฐ์ค๋ HTTPS ํ๋กํ ์ฝ์ด ์ ํ๋์๊ณ ์์ฝ๋ IP ์ฃผ์๊ฐ ์ฌ์ฉ๋ ๋๋ง ์ ํํ ์ ์์ต๋๋ค. |
SSL ์ธ์ฆ์ ๋ฆฌ์์ค(๋๋ Google ๊ด๋ฆฌ ์ธ์ฆ์์ ์๊ตฌ์ ๋ฐ๋ผ ๋๋ฉ์ธ)์ ์ค์ ํ์ง ์๊ณ ์ด ํ๋ก์ธ์ค๋ฅผ ํ ์คํธํ๋ ค๋ฉด HTTP ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ค์ ํ๋ฉด ๋ฉ๋๋ค.
HTTP ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์ ์ต์ ์ด ํด๋น ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋์๋์ง ํ์ธํฉ๋๋ค.
| ์์ฑ | ๊ฐ(๊ฐ ์ ๋ ฅ ๋๋ ์ง์ ๋ ์ต์ ์ ํ) |
|---|---|
| ํ๋กํ ์ฝ | HTTP |
| ๋คํธ์ํฌ ์๋น์ค ๊ณ์ธต | ํ๋ฆฌ๋ฏธ์ |
| IP ๋ฒ์ | IPv4 |
| IP ์ฃผ์ | example-ip |
| ํฌํธ | 80 |
๋ฐฑ์๋ ๊ตฌ์ฑ
- ๋ฐฑ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
- ๋ฐฑ์๋ ์๋น์ค ๋ฐ ๋ฐฑ์๋ ๋ฒํท ๋ชฉ๋ก์์ ๋ฐฑ์๋ ์๋น์ค ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
- ๋ฐฑ์๋ ์ ํ์์ ์๋ฒ๋ฆฌ์ค ๋คํธ์ํฌ ์๋ํฌ์ธํธ ๊ทธ๋ฃน์ ์ ํํฉ๋๋ค.
- ํ๋กํ ์ฝ์ ๊ทธ๋๋ก ๋ก๋๋ค. ์ด ํ๋ผ๋ฏธํฐ๋ ๋ฌด์๋ฉ๋๋ค.
- ๋ฐฑ์๋ ์น์ ์ ์ ๋ฐฑ์๋์์ ์๋ฒ๋ฆฌ์ค ๋คํธ์ํฌ ์๋ํฌ์ธํธ ๊ทธ๋ฃน ๋ง๋ค๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.
- ์ด๋ฆ์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
- ๋ฆฌ์ ์์ us-central1์ ์ ํํ ํ Cloud Run์ ์ ํํฉ๋๋ค.
- ์๋น์ค ์ด๋ฆ ์ ํ์ ์ ํํฉ๋๋ค.
- ์๋น์ค ๋ชฉ๋ก์์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ค๋ ค๋ Cloud Run ์๋น์ค๋ฅผ ์ ํํฉ๋๋ค.
- ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ ๋ฐฑ์๋ ์น์ ์์ ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ผ์ฐํ ๊ท์น
๋ผ์ฐํ ๊ท์น์ ํธ๋ํฝ์ ์ ๋ฌ ๋ฐฉ์์ ๊ฒฐ์ ํฉ๋๋ค. ๋ผ์ฐํ ์ ๊ตฌ์ฑํ๋ ค๋ฉด ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ์ URL ๋งต์ ๊ตฌ์ฑ ๊ตฌ์ฑ์์์ ํด๋นํ๋ ํธ์คํธ ๊ท์น ๋ฐ ๊ฒฝ๋ก ์ผ์น์๋ฅผ ์ค์ ํฉ๋๋ค.
-
ํธ์คํธ ๋ฐ ๊ฒฝ๋ก ๊ท์น์ ํด๋ฆญํฉ๋๋ค.
- ๊ธฐ๋ณธ ํธ์คํธ ๋ฐ ๊ฒฝ๋ก๋ฅผ ์ ์งํฉ๋๋ค. ์ด ์์์์๋ ๋ชจ๋ ์์ฒญ์ด ์ด์ ๋จ๊ณ์์ ์์ฑ๋ ๋ฐฑ์๋ ์๋น์ค๋ก ์ด๋ํฉ๋๋ค.
๊ตฌ์ฑ ๊ฒํ
- ๊ฒํ ๋ฐ ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ชจ๋ ์ค์ ์ ๊ฒํ ํฉ๋๋ค.
- ์ ํ์ฌํญ: ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉ๋๋ REST API ์์ฒญ์ ๋ณด๋ ค๋ฉด ์์ํ๋ ์ฝ๋๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ์์ฑ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค(serverless-lb).
- ๋ค์ ํ์คํฌ๋ฅผ ์ํด ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ฅผ ๊ธฐ๋กํฉ๋๋ค. ์ด๋ฅผ
IP_ADDRESS๋ผ๊ณ ํฉ๋๋ค.
gcloud
- ์๋ฒ๋ฆฌ์ค ์ฑ์ ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๋ง๋ญ๋๋ค.
Cloud Run ์๋น์ค๋ก ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์์ ์คํํฉ๋๋ค.
๋ค๋ฅธ ์ต์ ์gcloud compute network-endpoint-groups create SERVERLESS_NEG_NAME \ --region=us-central1 \ --network-endpoint-type=serverless \ --cloud-run-service=CLOUD_RUN_SERVICE_NAMEgcloud compute network-endpoint-groups create์gcloud์ฐธ์กฐ ๊ฐ์ด๋๋ฅผ ํ์ธํ์ธ์. - ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๋ง๋ญ๋๋ค.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL \ --global - ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๋ฐฑ์๋ ์๋น์ค์ ๋ฐฑ์๋๋ก ์ถ๊ฐํฉ๋๋ค.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --global \ --network-endpoint-group=SERVERLESS_NEG_NAME \ --network-endpoint-group-region=us-central1 - ์์ ๋๋ ์์ฒญ์ ๋ฐฑ์๋ ์๋น์ค๋ก ๋ผ์ฐํ
ํ๋ URL ๋งต์ ๋ง๋ญ๋๋ค.
gcloud compute url-maps create URL_MAP_NAME \ --default-service BACKEND_SERVICE_NAME์ด ์์ URL ๋งต์ ๋จ์ผ ์๋ฒ๋ฆฌ์ค ์ฑ์ ๋ํ๋ด๋ ๋ฐฑ์๋ ์๋น์ค ํ๋๋ง ๋์์ผ๋ก ์ง์ ํ๋ฏ๋ก ํธ์คํธ ๊ท์น์ด๋ ๊ฒฝ๋ก ์ผ์น์๋ฅผ ์ค์ ํ ํ์๊ฐ ์์ต๋๋ค. ๋ฐฑ์๋ ์๋น์ค๊ฐ ๋ ๊ฐ ์ด์ ์์ผ๋ฉด ํธ์คํธ ๊ท์น์ ์ฌ์ฉํ์ฌ ํธ์คํธ ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ๋ค๋ฅธ ์๋น์ค๋ก ์์ฒญ์ ์ ๋ฌํ๊ณ ๊ฒฝ๋ก ์ผ์น์๋ฅผ ์ค์ ํ์ฌ ์์ฒญ ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ค๋ฅธ ์๋น์ค๋ก ์์ฒญ์ ์ ๋ฌํ ์ ์์ต๋๋ค.
-
HTTPS ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ค๋ ค๋ฉด HTTPS ๋์ ํ๋ก์์์ ์ฌ์ฉํ SSL ์ธ์ฆ์ ๋ฆฌ์์ค๊ฐ ์์ด์ผ ํฉ๋๋ค.
Google ๊ด๋ฆฌํ SSL ์ธ์ฆ์๋ ์์ฒด ๊ด๋ฆฌํ SSL ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ SSL ์ธ์ฆ์ ๋ฆฌ์์ค๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. Google Cloud ๋ ์ด๋ฌํ ์ธ์ฆ์๋ฅผ ์๋์ผ๋ก ๊ฐ์ ธ์ค๊ณ ๊ด๋ฆฌํ๋ฉฐ ๊ฐฑ์ ํ๋ฏ๋ก Google ๊ด๋ฆฌํ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
Google ๊ด๋ฆฌํ ์ธ์ฆ์๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋๋ฉ์ธ์ด ์์ด์ผ ํฉ๋๋ค. ๋๋ฉ์ธ์ด ์๋ ๊ฒฝ์ฐ ์์ฒด ์๋ช SSL ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธํ ์ ์์ต๋๋ค.
Google ๊ด๋ฆฌํ SSL ์ธ์ฆ์ ๋ฆฌ์์ค๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์์ฒด ๊ด๋ฆฌํ SSL ์ธ์ฆ์ ๋ฆฌ์์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --domains DOMAINgcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --certificate CRT_FILE_PATH \ --private-key KEY_FILE_PATH -
๋์ HTTP(S) ํ๋ก์๋ฅผ ๋ง๋ค์ด ์์ฒญ์ URL ๋งต์ผ๋ก ๋ผ์ฐํ ํฉ๋๋ค.
HTTP ๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ฒฝ์ฐ HTTP ๋์ ํ๋ก์๋ฅผ ๋ง๋ญ๋๋ค.
gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAMEHTTPS ๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ฒฝ์ฐ HTTPS ๋์ ํ๋ก์๋ฅผ ๋ง๋ญ๋๋ค. ํ๋ก์๋ HTTPS ๋ถํ ๋ถ์ฐ์ ์ฌ์ฉ๋๋ SSL ์ธ์ฆ์๊ฐ ํฌํจ๋ ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ผ๋ถ๋ถ์ด๋ฏ๋ก ์ด ๋จ๊ณ์์ ์ธ์ฆ์๋ ๋ก๋ํฉ๋๋ค.
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --url-map=URL_MAP_NAME - ์์ ๋๋ ์์ฒญ์ ํ๋ก์๋ก ๋ผ์ฐํ
ํ๋ ์ ๋ฌ ๊ท์น์ ๋ง๋ญ๋๋ค.
HTTP ๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ฒฝ์ฐ:
gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL \ --network-tier=PREMIUM \ --address=EXAMPLE_IP \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --global \ --ports=80HTTPS ๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ฒฝ์ฐ:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL \ --network-tier=PREMIUM \ --address=EXAMPLE_IP \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --global \ --ports=443
๋ถํ ๋ถ์ฐ๊ธฐ์ ๋๋ฉ์ธ ์ฐ๊ฒฐ
๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ ํ ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ฐ๊ฒฐ๋ 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 ์ ๊ณต์ ์ฒด๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ ์ฝ๋ ์ถ๊ฐ, ์์ , ์ญ์ ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ถํ ๋ถ์ฐ๊ธฐ ํ ์คํธ
๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๊ตฌ์ฑํ์ผ๋ฏ๋ก ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ก ํธ๋ํฝ์ ์ ์กํ ์ ์์ต๋๋ค. ๋๋ฉ์ธ์ ๊ตฌ์ฑํ ๊ฒฝ์ฐ ํธ๋ํฝ์ ๋๋ฉ์ธ ์ด๋ฆ์ผ๋ก๋ ์ ์กํ ์ ์์ต๋๋ค. ํ์ง๋ง DNS ์ ํ๋ ์๋ฃํ๋ ๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์์ผ๋ฏ๋ก, IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ๋ฅผ ์์ํ ์ ์์ต๋๋ค.
Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ฐฉ๊ธ ๋ง๋ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ฅผ ํ์ธํฉ๋๋ค.
HTTP ๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ฒฝ์ฐ
http://IP_ADDRESS๋ก ์ด๋ํ์ฌ ์น๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํ ์คํธํ ์ ์์ต๋๋ค.IP_ADDRESS๋ฅผ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ก ๋ฐ๊ฟ๋๋ค.helloworld์๋น์ค ํํ์ด์ง๋ก ์ด๋ํด์ผ ํฉ๋๋ค.
HTTPS ๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ฒฝ์ฐ
https://IP_ADDRESS๋ก ์ด๋ํ์ฌ ์น๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํ ์คํธํ ์ ์์ต๋๋ค.IP_ADDRESS๋ฅผ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ก ๋ฐ๊ฟ๋๋ค.helloworld์๋น์ค ํํ์ด์ง๋ก ์ด๋ํด์ผ ํฉ๋๋ค.
๊ทธ๋๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์๊ณ Google ๊ด๋ฆฌํ ์ธ์ฆ์๋ฅผ ์ฌ์ฉ ์ค์ธ ๊ฒฝ์ฐ ์ธ์ฆ์ ๋ฆฌ์์ค๊ฐ ํ์ฑ ์ํ์ธ์ง ํ์ธํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Google ๊ด๋ฆฌํ SSL ์ธ์ฆ์ ๋ฆฌ์์ค ์ํ๋ฅผ ์ฐธ์กฐํ์ธ์.
์์ฒด ์๋ช ์ธ์ฆ์๋ฅผ ํ ์คํธ์ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ์ ๊ฒฝ๊ณ ๊ฐ ํ์๋ฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ์์ฒด ์๋ช ์ธ์ฆ์๋ฅผ ์๋ฝํ๋๋ก ๋ช ์์ ์ผ๋ก ์ง์ํด์ผ ํฉ๋๋ค. ์ค์ ํ์ด์ง๋ฅผ ๋ณด๋ ค๋ฉด ๊ฒฝ๊ณ ๋ฅผ ํด๋ฆญํ์ธ์.
์ถ๊ฐ ๊ตฌ์ฑ ์ต์
์ด ์น์ ์์๋ ๋์ฒด ๋ฐ ์ถ๊ฐ ๊ตฌ์ฑ ์ต์ ์ ์ ๊ณตํ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ดํด๋ด ๋๋ค. ๋ชจ๋ ํ์คํฌ๋ ์ ํ์ฌํญ์ ๋๋ค. ์ํ๋ ์์๋๋ก ์ํํ ์ ์์ต๋๋ค.
๋ฉํฐ ๋ฆฌ์ ๋ถํ ๋ถ์ฐ ์ค์
์ด ํ์ด์ง์ ์๋ถ๋ถ์์ ์ค๋ช
ํ ์์์์๋ us-central1 ๋ฆฌ์ ์ ๋ฐฑ์๋๋ก ์ ๊ณต๋๋ Cloud Run ์๋น์ค๊ฐ ํ๋๋ฟ์
๋๋ค. ์๋ฒ๋ฆฌ์ค NEG๋ ํ ๋ฒ์ ํ๋์ ์๋ํฌ์ธํธ๋ง ๊ฐ๋ฆฌํฌ ์ ์์ผ๋ฏ๋ก ์ฌ๋ฌ ๋ฆฌ์ ์์ ๋ถํ ๋ถ์ฐ์ด ์ํ๋์ง ์์ต๋๋ค. ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ๋ ํ๋ฐํธ์๋ ์ญํ ๋ง ํ๋ฉฐ ์ง์ ๋ helloworld ์ฑ ์๋ํฌ์ธํธ๋ก ํธ๋ํฝ์ ํ๋ก์ํฉ๋๋ค. ํ์ง๋ง ์ต์ข
์ฌ์ฉ์์ ์ง์ฐ ์๊ฐ์ ๊ฐ์ ํ๊ธฐ ์ํด ๋ ์ด์์ ๋ฆฌ์ ์์ Cloud Run ์ฑ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
๋ฐฑ์๋ ์๋น์ค์ ์ฌ๋ฌ ์๋ฒ๋ฆฌ์ค NEG๊ฐ ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ฆฌ์ ์ ์๋ฒ๋ฆฌ์ค NEG๋ก ์์ฒญ์ ์ ๋ฌํ์ฌ ํธ๋ํฝ์ ๋ถ์ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฐฑ์๋ ์๋น์ค๋ ๋ฆฌ์ ๋น ์๋ฒ๋ฆฌ์ค NEG ํ๋๋ง ํฌํจํ ์ ์์ต๋๋ค. ์ฌ๋ฌ ๋ฆฌ์ ์์ Cloud Run ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ฆฌ์ ๊ฐ ๋ผ์ฐํ ์ ์ค์ ํด์ผ ํฉ๋๋ค. ์ ์ธ๊ณ ์ด๋์๋ ์๋ํ์ง๋ง ์ฌ์ฉ์์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ฆฌ์ ์ ์ฌ์ฉ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋จ์ผ URL ์คํค๋ง๋ฅผ ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค.
๋ฉํฐ ๋ฆฌ์ ์ ์ ๊ณตํ๋ ค๋ฉด ๋ชจ๋ ๋ฆฌ์ Cloud Run ๋ฐฐํฌ๊ฐ ํธํ๋๊ณ ๋ชจ๋ ๋ฆฌ์ ์ ํธ๋ํฝ์ ์ฒ๋ฆฌํ ์ ์๋ ํ๋ฆฌ๋ฏธ์ ๋คํธ์ํฌ ๋ฑ๊ธ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
๋ฉํฐ ๋ฆฌ์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ค์ ํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- ์๋ก ๋ค๋ฅธ ๋ฆฌ์ ์ 2๊ฐ์ Cloud Run ์๋น์ค๋ฅผ ์ค์ ํฉ๋๋ค. ๋ฏธ๊ตญ ๋ฆฌ์ ๊ณผ ์ ๋ฝ ๋ฆฌ์ ์ ๊ฐ๊ฐ 1๊ฐ์ฉ 2๊ฐ์ Cloud Run ์๋น์ค๋ฅผ ๋ฐฐํฌํ๋ค๊ณ ๊ฐ์ ํฉ์๋ค.
- ๋ค์ ์ค์ ์ผ๋ก ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค.
- ์๋ฒ๋ฆฌ์ค NEG 2๊ฐ๋ก ์ ์ญ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ค์ ํฉ๋๋ค.
- ๋ฏธ๊ตญ์ ๋ฐฐํฌ๋ Cloud Run ์๋น์ค์ ๋์ผํ ๋ฆฌ์ ์ ์ฒซ ๋ฒ์งธ NEG๋ฅผ ๋ง๋ญ๋๋ค.
- ์ ๋ฝ์ ๋ฐฐํฌ๋ Cloud Run ์๋น์ค์ ๋์ผํ ๋ฆฌ์ ์ ๋ ๋ฒ์งธ NEG๋ฅผ ๋ง๋ญ๋๋ค.
- ํ๋ฆฌ๋ฏธ์ ๋คํธ์ํฌ ์๋น์ค ๋ฑ๊ธ์ผ๋ก ํ๋ฐํธ์๋ ๊ตฌ์ฑ์ ์ค์ ํฉ๋๋ค.
- ์๋ฒ๋ฆฌ์ค NEG 2๊ฐ๋ก ์ ์ญ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ค์ ํฉ๋๋ค.
๋ค์ ๋ค์ด์ด๊ทธ๋จ์ ๊ฒฐ๊ณผ ์ค์ ์ด ๋์ ์์ต๋๋ค.
์ด ์น์
์์๋ ์ด ํ์ด์ง์ ์๋ถ๋ถ์์ ์ค๋ช
ํ ๋ถํ ๋ถ์ฐ๊ธฐ ์ค์ ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ฌ๊ธฐ์์๋ ๋์ผํ ๋ฆฌ์ ์ Cloud Run ์๋น์ค๋ฅผ ๊ฐ๋ฆฌํค๋ us-central1 ๋ฆฌ์ ์ ํ๋์ ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๋ง๋ค์์ต๋๋ค. ๋ํ europe-west1 ๋ฆฌ์ ์์ ๋ ๋ฒ์งธ Cloud Run ์๋น์ค๋ฅผ ๋ง๋ค์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋ง๋๋ ๋ ๋ฒ์งธ ์๋ฒ๋ฆฌ์ค NEG๋ europe-west1 ๋ฆฌ์ ์ ์ด Cloud Run ์๋น์ค๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.
์ด ์์์์๋ ๋ค์ ๋จ๊ณ๋ฅผ ์๋ฃํฉ๋๋ค.
europe-west1๋ฆฌ์ ์ ๋ ๋ฒ์งธ ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๋ง๋ญ๋๋ค.- ๋ ๋ฒ์งธ ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๋ฐฑ์๋ ์๋น์ค์ ์ฐ๊ฒฐํฉ๋๋ค.
๋ ๋ฒ์งธ ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๊ธฐ์กด ๋ฐฑ์๋ ์๋น์ค์ ์ถ๊ฐํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์๋ฃํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ฐฑ์๋ ์๋น์ค๋ฅผ ์์ ํ ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค.
๋ถํ ๋ถ์ฐ๊ธฐ ์ธ๋ถ์ ๋ณด ํ์ด์ง์์ ์์ ์ ํด๋ฆญํฉ๋๋ค.
์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ์์ ํ์ด์ง์์ ๋ฐฑ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
๋ฐฑ์๋ ๊ตฌ์ฑ ํ์ด์ง์์ ์์ ํ๋ ค๋ ๋ฐฑ์๋ ์๋น์ค์ ๋ํด ์์ ์ ํด๋ฆญํฉ๋๋ค.
๋ฐฑ์๋ ์น์ ์์ ๋ฐฑ์๋ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์๋ฒ๋ฆฌ์ค ๋คํธ์ํฌ ์๋ํฌ์ธํธ ๊ทธ๋ฃน ๋ชฉ๋ก์์ ์๋ฒ๋ฆฌ์ค ๋คํธ์ํฌ ์๋ํฌ์ธํธ ๊ทธ๋ฃน ๋ง๋ค๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.
์๋ฒ๋ฆฌ์ค NEG์ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
๋ฆฌ์ ์์
europe-west1์ ์ ํํฉ๋๋ค.์๋ฒ๋ฆฌ์ค ๋คํธ์ํฌ ์๋ํฌ์ธํธ ๊ทธ๋ฃน ์ ํ์ Cloud Run์ ์ ํํ ํ ๋ค์์ ์ํํฉ๋๋ค.
- ์๋น์ค ์ ํ ์ต์ ์ ์ ํํฉ๋๋ค.
- ์๋น์ค ๋ชฉ๋ก์์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ค๋ ค๋ Cloud Run ์๋น์ค๋ฅผ ์ ํํฉ๋๋ค.
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ๋ฐฑ์๋ ํ์ด์ง์์ ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ ๋ฐ์ดํธํ๋ ค๋ฉด ์ ๋ฐ์ดํธ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ ค๋ฉด ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ์์ ํ์ด์ง์์ ์ ๋ฐ์ดํธ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud
Cloud Run ์๋น์ค๊ฐ ๋ฐฐํฌ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฆฌ์ ์์ ๋ ๋ฒ์งธ ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๋ง๋ญ๋๋ค.
gcloud compute network-endpoint-groups create SERVERLESS_NEG_NAME_2 \ --region=europe-west1 \ --network-endpoint-type=SERVERLESS \ --cloud-run-service=CLOUD_RUN_SERVICE_2
๋ค์์ ๋ฐ๊ฟ๋๋ค.
SERVERLESS_NEG_NAME_2: ๋ ๋ฒ์งธ ์๋ฒ๋ฆฌ์ค NEG์ ์ด๋ฆCLOUD_RUN_SERVICE_2: Cloud Run ์๋น์ค์ ์ด๋ฆ
๋ ๋ฒ์งธ ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๋ฐฑ์๋ ์๋น์ค์ ๋ฐฑ์๋๋ก ์ถ๊ฐํฉ๋๋ค.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --global \ --network-endpoint-group=SERVERLESS_NEG_NAME_2 \ --network-endpoint-group-region=europe-west1
๋ค์์ ๋ฐ๊ฟ๋๋ค.
BACKEND_SERVICE_NAME: ๋ฐฑ์๋ ์๋น์ค์ ์ด๋ฆSERVERLESS_NEG_NAME_2: ๋ ๋ฒ์งธ ์๋ฒ๋ฆฌ์ค NEG์ ์ด๋ฆ
๋ฉํฐ ๋ฆฌ์ Cloud Run ๋ฐฐํฌ์ ์ธ์ฆ๋ Pub/Sub ํธ์ ๊ตฌ๋ ์ฌ์ฉ
์ธ์ฆ๋ ํธ์ ์์ฒญ์ ๊ฒฝ์ฐ Cloud Run์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฆฌ์ ๋ณ ๋์ ํ๋๋ฅผ ์์ํฉ๋๋ค. ๋ฉํฐ ๋ฆฌ์ Cloud Run ๋ฐฐํฌ์ ๊ฒฝ์ฐ ํธ์ ์์ฒญ์ด ๋ค๋ฅธ ๋ฆฌ์ ์ Cloud Run ์๋น์ค๋ก ๋ผ์ฐํ ๋๋ ๊ฒฝ์ฐ ๋์ ๋ถ์ผ์น๋ก ์ธํด JWT ํ ํฐ ํ์ธ์ด ์คํจํฉ๋๋ค.
์ด ๋ฆฌ์ ๊ด๋ จ ์ ํ์ฌํญ์ ํด๊ฒฐํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- ๋ค๋ฅธ ๋ฆฌ์ ์ ์๋น์ค ๋ฐฐํฌ์ ๋์ผํ ์ปค์คํ ๋์์ ๊ตฌ์ฑํฉ๋๋ค.
- ์ปค์คํ ๋์์ JWT ํ ํฐ์ ๋์์ผ๋ก ์ฌ์ฉํ๋๋ก Pub/Sub ํธ์ ๋ฉ์์ง๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
๋ฆฌ์ ๋ผ์ฐํ ์ค์
์ฌ๋ฌ ๋ฆฌ์ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํ๋ ์ผ๋ฐ์ ์ธ ์ด์ ๋ ๋ฐ์ดํฐ ์ง์ญ ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ๊ธฐ ์ํด์์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ ๋ฝ ์ฌ์ฉ์์ ์์ฒญ์ด ํญ์ ์ ๋ฝ์ ์๋ ๋ฆฌ์ ์์ ์ ๊ณต๋๋๋ก ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ค์ ํ๋ ค๋ฉด EU ์ฌ์ฉ์์ EU ์ด์ธ์ ์ฌ์ฉ์๋ฅผ ์ํ ๋ณ๋์ URL์ด ์๋ URL ์คํค๋ง๊ฐ ํ์ํ๋ฉฐ EU ์ฌ์ฉ์๋ฅผ EU URL๋ก ์๋ดํด์ผ ํฉ๋๋ค.
์ด๋ฌํ ์๋๋ฆฌ์ค์์๋ URL ๋งต์ ์ฌ์ฉํ์ฌ ํน์ URL์ ์์ฒญ์ ํด๋น ๋ฆฌ์ ์ผ๋ก ๋ผ์ฐํ ํฉ๋๋ค. ์ด๋ ๊ฒ ์ค์ ํ๋ฉด ํ ๋ฆฌ์ ์ ๋ํ ์์ฒญ์ด ๋ค๋ฅธ ๋ฆฌ์ ์ผ๋ก ์ ๋ฌ๋์ง ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฆฌ์ ๊ฐ ๊ฒฉ๋ฆฌํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด ๋ฆฌ์ ์ ์ฅ์ ๊ฐ ๋ฐ์ํด๋ ์์ฒญ์ด ๋ค๋ฅธ ๋ฆฌ์ ์ผ๋ก ๋ผ์ฐํ ๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด ์ค์ ์ ์๋น์ค์ ๊ฐ์ฉ์ฑ์ ๋์ด์ง ์์ต๋๋ค.
๋ฆฌ์ ๋ผ์ฐํ ์ ์ค์ ํ๋ ค๋ฉด ๋จ์ผ ์ ๋ฌ ๊ท์น์์ ์ฌ๋ฌ ๋ฆฌ์ ์ ๊ฒฐํฉํ ์ ์๋๋ก ํ๋ฆฌ๋ฏธ์ ๋คํธ์ํฌ ๋ฑ๊ธ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
๋ฆฌ์ ๋ผ์ฐํ ์ ์ฌ์ฉํ์ฌ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ค์ ํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- ์๋ก ๋ค๋ฅธ ๋ฆฌ์ ์ 2๊ฐ์ Cloud Run ์๋น์ค๋ฅผ ์ค์ ํฉ๋๋ค. ์ ๋ฝ์ ๋ฆฌ์ ์ hello-world-eu, ๋ฏธ๊ตญ ๋ฆฌ์ ์ hello-world-us๋ก ๋ ๊ฐ์ Cloud Run ์๋น์ค๋ฅผ ๋ฐฐํฌํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
- ๋ค์ ์ค์ ์ผ๋ก ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ง๋ญ๋๋ค.
- ์ ๋ฝ์์ ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ค์ ํฉ๋๋ค. ์๋ฒ๋ฆฌ์ค NEG๋ ์ ๋ฝ์ ๋ฐฐํฌ๋ Cloud Run ์๋น์ค์ ๋์ผํ ๋ฆฌ์ ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
- ๋ฏธ๊ตญ์์ ๋ค๋ฅธ ์๋ฒ๋ฆฌ์ค NEG๋ก ๋ ๋ฒ์งธ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์ค์ ํฉ๋๋ค. ์ด ์๋ฒ๋ฆฌ์ค NEG๋ ๋ฏธ๊ตญ์ ๋ฐฐํฌ๋ Cloud Run ์๋น์ค์ ๋์ผํ ๋ฆฌ์ ์ ์์ฑํด์ผ ํฉ๋๋ค.
- ๋ชจ๋ ์์ฒญ์ด ๋ฏธ๊ตญ ๋ฐฑ์๋ ์๋น์ค๋ก ๋ผ์ฐํ ๋๋ ๋์์ ํ๋์ URL ์งํฉ์ด ์ ๋ฝ ๋ฐฑ์๋ ์๋น์ค๋ก ๋ผ์ฐํ ๋๋๋ก ์ ์ ํ ํธ์คํธ ๋ฐ ๊ฒฝ๋ก ๊ท์น์ ์ฌ์ฉํ์ฌ URL ๋งต์ ์ค์ ํฉ๋๋ค.
- ํ๋ฆฌ๋ฏธ์ ๋คํธ์ํฌ ๋ฑ๊ธ์ผ๋ก ํ๋ฐํธ์๋ ๊ตฌ์ฑ์ ์ค์ ํฉ๋๋ค.
๋๋จธ์ง ์ค์ ์ ์ด์ ์ ์ค๋ช ํ ๊ฒ๊ณผ ๋์ผํด๋ ๋ฉ๋๋ค. ์ค์ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
URL ๋ง์คํฌ ์ฌ์ฉ
์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๋ง๋ค ๋ ํน์ Cloud Run ์๋น์ค๋ฅผ ์ ํํ๋ ๋์ URL ๋ง์คํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ ๋๋ฉ์ธ์์ ์ ๊ณต๋๋ ์ฌ๋ฌ ์๋น์ค๋ฅผ ๊ฐ๋ฆฌํฌ ์ ์์ต๋๋ค. URL ๋ง์คํฌ๋ URL ์คํค๋ง์ ํ ํ๋ฆฟ์ ๋๋ค. ์๋ฒ๋ฆฌ์ค NEG๋ ์ด ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ์์ ์์ฒญ์ URL์์ ์๋น์ค ์ด๋ฆ์ ์ถ์ถํ๊ณ ์์ฒญ์ ์ ์ ํ ์๋น์ค์ ๋งคํํฉ๋๋ค.
URL ๋ง์คํฌ๋Google Cloud ๊ฐ ๋ฐฐํฌ๋ ์๋น์ค์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ์ฃผ์๊ฐ ์๋ ์ปค์คํ ๋๋ฉ์ธ์ ์๋น์ค๊ฐ ๋งคํ๋๋ ๊ฒฝ์ฐ์ ํนํ ์ ์ฉํฉ๋๋ค. URL ๋ง์คํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ปค์คํ URL ํจํด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ๋จ์ผ ๊ท์น์ผ๋ก ์ฌ๋ฌ ์๋น์ค์ ๋ฒ์ ์ ๋์์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค.
์์ง ์ฝ์ด๋ณด์ง ์์๋ค๋ฉด ์๋ฒ๋ฆฌ์ค NEG ๊ฐ์: URL ๋ง์คํฌ๋ฅผ ์ฝ์ด๋ณด์ธ์.
URL ๋ง์คํฌ ๊ตฌ์ฑ
๋ถํ ๋ถ์ฐ๊ธฐ์ URL ๋ง์คํฌ๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ์๋น์ค์ URL๋ก ์์ํฉ๋๋ค. ์ด ์์์์๋ https://example.com/login์์ ์คํ๋๋ ์ํ ์๋ฒ๋ฆฌ์ค ์ฑ์ ์ฌ์ฉํฉ๋๋ค. ์ฑ์ login ์๋น์ค๊ฐ ์ ๊ณต๋ URL์
๋๋ค.
- URL์์
http๋๋https๋ฅผ ์ญ์ ํฉ๋๋ค.example.com/login์ด ๋จ์์ต๋๋ค. - ์๋น์ค ์ด๋ฆ์ URL ๋ง์คํฌ์ ์๋ฆฌํ์์๋ก ๋ฐ๊ฟ๋๋ค.
- Cloud Run: Cloud Run ์๋น์ค ์ด๋ฆ์ ์๋ฆฌํ์์
<service>๋ก ๋ฐ๊ฟ๋๋ค. Cloud Run ์๋น์ค์ ์ฐ๊ฒฐ๋ ํ๊ทธ๊ฐ ์๋ ๊ฒฝ์ฐ ํ๊ทธ ์ด๋ฆ์ ์๋ฆฌํ์์<tag>์ผ๋ก ๋ฐ๊ฟ๋๋ค. ์ด ์์์์ ๋จ์ URL ๋ง์คํฌ๋example.com/<service>์ ๋๋ค. - Cloud Run Functions: ํจ์ ์ด๋ฆ์ ์๋ฆฌํ์์
<function>์ผ๋ก ๋ฐ๊ฟ๋๋ค. ์ด ์์์์ ๋จ์ URL ๋ง์คํฌ๋example.com/<function>์ ๋๋ค. - App Engine: ์๋น์ค ์ด๋ฆ์ ์๋ฆฌํ์์
<service>๋ก ๋ฐ๊ฟ๋๋ค. ์๋น์ค์ ์ฐ๊ฒฐ๋ ๋ฒ์ ์ด ์๋ ๊ฒฝ์ฐ ๋ฒ์ ์ ์๋ฆฌํ์์<version>์ผ๋ก ๋ฐ๊ฟ๋๋ค. ์ด ์์์์ ๋จ์ URL ๋ง์คํฌ๋example.com/<service>์ ๋๋ค. - API ๊ฒ์ดํธ์จ์ด: ๊ฒ์ดํธ์จ์ด ์ด๋ฆ์ ์๋ฆฌํ์์
<gateway>๋ก ๋ฐ๊ฟ๋๋ค. ์ด ์์์์ ๋จ์ URL ๋ง์คํฌ๋example.com/<gateway>์ ๋๋ค.
- Cloud Run: Cloud Run ์๋น์ค ์ด๋ฆ์ ์๋ฆฌํ์์
(์ ํ ์ฌํญ) URL์ ๊ฒฝ๋ก ๋ถ๋ถ์์ ์๋น์ค ์ด๋ฆ(๋๋ ํจ์, ๋ฒ์ , ํ๊ทธ)์ ์ถ์ถํ ์ ์์ผ๋ฉด ๋๋ฉ์ธ์ ์๋ตํ ์ ์์ต๋๋ค. URL ๋ง์คํฌ์ ๊ฒฝ๋ก ๋ถ๋ถ์ ์ฒซ ๋ฒ์งธ
/๋ฌธ์๋ก ๊ตฌ๋ถ๋ฉ๋๋ค. URL ๋ง์คํฌ์/๊ฐ ์์ผ๋ฉด ๋ง์คํฌ๋ ํธ์คํธ๋ง ๋ํ๋ด๋ ๊ฒ์ผ๋ก ์ดํด๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ด ์์์์๋ URL ๋ง์คํฌ๋ฅผ/<service>,/<gateway>๋๋/<function>์ผ๋ก ์ค์ผ ์ ์์ต๋๋ค.๋ง์ฐฌ๊ฐ์ง๋ก URL์ ํธ์คํธ ๋ถ๋ถ์์ ์๋น์ค ์ด๋ฆ์ ์ถ์ถํ ์ ์์ผ๋ฉด URL ๋ง์คํฌ์์ ๊ฒฝ๋ก๋ฅผ ๋ชจ๋ ์๋ตํ ์ ์์ต๋๋ค.
๋ํ ์ฒซ ๋ฒ์งธ ์๋ฆฌํ์์ ์์ ์ค๋ ๋ชจ๋ ํธ์คํธ ๋๋ ํ์ ๋๋ฉ์ธ ๊ตฌ์ฑ์์์ ๋ง์ง๋ง ์๋ฆฌํ์์ ๋ค์์ ์ค๋ ๋ชจ๋ ๊ฒฝ๋ก ๊ตฌ์ฑ์์๋ฅผ ์๋ตํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ ์๋ฆฌํ์์๋ ๊ตฌ์ฑ์์์ ํ์ํ ์ ๋ณด๋ฅผ ์บก์ฒํฉ๋๋ค.
๋ค์์ ์ด๋ฌํ ๊ท์น์ ๋ณด์ฌ์ฃผ๋ ๋ช ๊ฐ์ง ์์์ ๋๋ค.
Cloud Run
์ด ํ์์๋ example.com์ด๋ผ๋ ์ปค์คํ
๋๋ฉ์ธ์ด ์๊ณ ๋ชจ๋ Cloud Run ์๋น์ค๊ฐ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋๋ฉ์ธ์ ๋งคํ๋์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
| ์๋น์ค, ํ๊ทธ ์ด๋ฆ | ์ปค์คํ ๋๋ฉ์ธ URL | URL ๋ง์คํฌ |
|---|---|---|
| ์๋น์ค: ๋ก๊ทธ์ธ | https://login-home.example.com/web | <service>-home.example.com |
| ์๋น์ค: ๋ก๊ทธ์ธ | https://example.com/login/web | example.com/<service> ๋๋ /<service> |
| ์๋น์ค: ๋ก๊ทธ์ธ, ํ๊ทธ: ํ ์คํธ | https://test.login.example.com/web | <tag>.<service>.example.com |
| ์๋น์ค: ๋ก๊ทธ์ธ, ํ๊ทธ: ํ ์คํธ | https://example.com/home/login/test | example.com/home/<service>/<tag> ๋๋ /home/<service>/<tag> |
| ์๋น์ค: ๋ก๊ทธ์ธ, ํ๊ทธ: ํ ์คํธ | https://test.example.com/home/login/web | <tag>.example.com/home/<service> |
Cloud Run Functions
์ด ํ์์๋ example.com์ด๋ผ๋ ์ปค์คํ
๋๋ฉ์ธ์ด ์๊ณ ๋ชจ๋ Cloud Run Functions ์๋น์ค๊ฐ ์ด ๋๋ฉ์ธ์ ๋งคํ๋์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
| ํจ์ ์ด๋ฆ | ์ปค์คํ ๋๋ฉ์ธ URL | URL ๋ง์คํฌ |
|---|---|---|
| ๋ก๊ทธ์ธ | https://example.com/login | /<function> |
| ๋ก๊ทธ์ธ | https://example.com/home/login | /home/<function> |
| ๋ก๊ทธ์ธ | https://login.example.com | <function>.example.com |
| ๋ก๊ทธ์ธ | https://login.home.example.com | <function>.home.example.com |
App Engine
์ด ํ์์๋ example.com์ด๋ผ๋ ์ปค์คํ
๋๋ฉ์ธ์ด ์๊ณ ๋ชจ๋ App Engine ์๋น์ค๊ฐ ์ด ๋๋ฉ์ธ์ ๋งคํ๋์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
| ์๋น์ค ์ด๋ฆ, ๋ฒ์ | ์ปค์คํ ๋๋ฉ์ธ URL | URL ๋ง์คํฌ |
|---|---|---|
| ์๋น์ค: ๋ก๊ทธ์ธ | https://login.example.com/web | <service>.example.com |
| ์๋น์ค: ๋ก๊ทธ์ธ | https://example.com/home/login/web | example.com/home/<service>, ๋๋ /home/<service> |
| ์๋น์ค: ๋ก๊ทธ์ธ, ๋ฒ์ : ํ ์คํธ | https://test.example.com/login/web | <version>.example.com/<service> |
| ์๋น์ค: ๋ก๊ทธ์ธ, ๋ฒ์ : ํ ์คํธ | https://example.com/login/test | example.com/<service>/<version> |
API ๊ฒ์ดํธ์จ์ด
์ด ํ์์๋ example.com์ด๋ผ๋ ์ปค์คํ
๋๋ฉ์ธ์ด ์๊ณ ๋ชจ๋ API ๊ฒ์ดํธ์จ์ด ์๋น์ค๊ฐ ์ด ๋๋ฉ์ธ์ ๋งคํ๋์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
| ๊ฒ์ดํธ์จ์ด ์ด๋ฆ | API ๊ฒ์ดํธ์จ์ด(๋ฏธ๋ฆฌ๋ณด๊ธฐ) ์ปค์คํ ๋๋ฉ์ธ URL | URL ๋ง์คํฌ |
|---|---|---|
| ๋ก๊ทธ์ธ | https://example.com/login | /<gateway> |
| ๋ก๊ทธ์ธ | https://example.com/home/login | /home/<gateway> |
| ๋ก๊ทธ์ธ | https://login.example.com | <gateway>.example.com |
| ๋ก๊ทธ์ธ | https://login.home.example.com | <gateway>.home.example.com |
URL ๋ง์คํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค NEG ๋ง๋ค๊ธฐ
์ฝ์
์ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๋ํด ์ด ์ฃผ์ ์ ์์์ ์ค๋ช ํ ๊ฒ๊ณผ ๋์ผํ ์๋ ํฌ ์๋ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ ๋ ํน์ ์๋น์ค๋ฅผ ์ ํํ๋ ๋์ URL ๋ง์คํฌ๋ฅผ ์ ๋ ฅํฉ๋๋ค.
๊ธฐ์กด ๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฐฑ์๋ ๊ตฌ์ฑ์ ์์ ํ์ฌ ์๋ฒ๋ฆฌ์ค NEG๊ฐ ํน์ ์๋น์ค ๋์ URL ๋ง์คํฌ๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ํ ์ ์์ต๋๋ค.
URL ๋ง์คํฌ ๊ธฐ๋ฐ ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๊ธฐ์กด ๋ฐฑ์๋ ์๋น์ค์ ์ถ๊ฐํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- Google Cloud ์ฝ์์์ ๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ถํ ๋ถ์ฐ ํ์ด์ง๋ก ์ด๋ - ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์์ ํ ๋ถํ ๋ถ์ฐ๊ธฐ์ ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค.
- ๋ถํ ๋ถ์ฐ๊ธฐ ์ธ๋ถ์ ๋ณด ํ์ด์ง์์ ์์ ์ ํด๋ฆญํฉ๋๋ค.
- ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ ์์ ํ์ด์ง์์ ๋ฐฑ์๋ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
- ๋ฐฑ์๋ ๊ตฌ์ฑ ํ์ด์ง์์ ์์ ํ๋ ค๋ ๋ฐฑ์๋ ์๋น์ค์ ๋ํด ์์ ์ ํด๋ฆญํฉ๋๋ค.
- ๋ฐฑ์๋ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์๋ฒ๋ฆฌ์ค ๋คํธ์ํฌ ์๋ํฌ์ธํธ ๊ทธ๋ฃน ๋ง๋ค๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.
- ์ด๋ฆ์
helloworld-serverless-neg์ ์ ๋ ฅํฉ๋๋ค. - ๋ฆฌ์ ์์ us-central1์ ์ ํํฉ๋๋ค.
- ์๋ฒ๋ฆฌ์ค ๋คํธ์ํฌ ์๋ํฌ์ธํธ ๊ทธ๋ฃน ์ ํ์์ ์๋ฒ๋ฆฌ์ค ์ฑ(๋๋ ์๋น์ค ๋๋ ํจ์)์ ๋ง๋ ํ๋ซํผ์ ์ ํํฉ๋๋ค.
- URL ๋ง์คํฌ ์ฌ์ฉ์ ์ ํํฉ๋๋ค.
- URL ๋ง์คํฌ๋ฅผ ์ ๋ ฅํฉ๋๋ค. URL ๋ง์คํฌ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ URL ๋ง์คํฌ ๊ตฌ์ฑ์ ์ฐธ์กฐํ์ธ์.
- ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ด๋ฆ์
- ์ ๋ฐฑ์๋ ์น์ ์์ ์๋ฃ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ ๋ฐ์ดํธ๋ฅผ ํด๋ฆญํฉ๋๋ค.
gcloud: Cloud Run
์ํ URL ๋ง์คํฌ๊ฐ example.com/<service>์ธ ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
gcloud compute network-endpoint-groups create helloworld-neg-mask \ --region=us-central1 \ --network-endpoint-type=serverless \ --cloud-run-url-mask="example.com/<service>"
gcloud: Cloud Run Functions
์ํ URL ๋ง์คํฌ๊ฐ example.com/<service>์ธ ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
gcloud compute network-endpoint-groups create helloworld-neg-mask \ --region=us-central1 \ --network-endpoint-type=serverless \ --cloud-function-url-mask="example.com/<service>"
gcloud: App Engine
์ํ URL ๋ง์คํฌ๊ฐ example.com/<service>์ธ ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
gcloud compute network-endpoint-groups create helloworld-neg-mask \ --region=us-central1 \ --network-endpoint-type=serverless \ --app-engine-url-mask="example.com/<service>"
gcloud: API ๊ฒ์ดํธ์จ์ด
์ํ URL ๋ง์คํฌ๊ฐ example.com/<gateway>์ธ ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ๋ง๋ค๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
gcloud beta compute network-endpoint-groups create helloworld-neg-mask \ --region=us-central1 \ --network-endpoint-type=serverless \ --serverless-deployment-platform=apigateway.googleapis.com \ --serverless-deployment-resource=my-gateway \ --serverless-deployment-url-mask="example.com/<gateway>"
๋ถํ ๋ถ์ฐ๊ธฐ๊ฐ URL ๋ง์คํฌ ๋ถ์ผ์น ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์์ ๋ณด๋ ค๋ฉด ์๋ฒ๋ฆฌ์ค NEG ๊ด๋ จ ๋ฌธ์ ํด๊ฒฐ์ ์ฐธ์กฐํ์ธ์.
์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ์์ ์ ๊ณตํ ์ปค์คํ ๋๋ฉ์ธ ์ด๋
์๋ฒ๋ฆฌ์ค ์ปดํจํ ์ฑ์ด ์ปค์คํ ๋๋ฉ์ธ์ ๋งคํ๋์ด ์๋ ๊ฒฝ์ฐ ๊ธฐ์กด Cloud Run, Cloud Run Functions, API ๊ฒ์ดํธ์จ์ด ๋๋ App Engine ์ปค์คํ ๋๋ฉ์ธ URL๋ก ์ ์ก๋๋ ํธ๋ํฝ์ด ๋์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํตํด ๋ผ์ฐํ ๋๋๋ก DNS ๋ ์ฝ๋๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด example.com์ด๋ผ๋ ์ปค์คํ
๋๋ฉ์ธ์ด ์๊ณ ๋ชจ๋ Cloud Run ์๋น์ค๊ฐ ์ด ๋๋ฉ์ธ์ ๋งคํ๋ ๊ฒฝ์ฐ example.com์ DNS ๋ ์ฝ๋๋ฅผ ์
๋ฐ์ดํธํ์ฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ฅผ ๊ฐ๋ฆฌ์ผ์ผ ํฉ๋๋ค.
DNS ๋ ์ฝ๋๋ฅผ ์
๋ฐ์ดํธํ๊ธฐ ์ ์ ์ปค์คํ
๋๋ฉ์ธ์ ๋ก์ปฌ DNS ํ์ธ์ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ก ๊ฐ์ ์คํํ์ฌ ๊ตฌ์ฑ์ ๋ก์ปฌ์์ ํ
์คํธํ ์ ์์ต๋๋ค. ๋ก์ปฌ์์ ํ
์คํธํ๋ ค๋ฉด ๋ก์ปฌ ๋จธ์ ์ /etc/hosts/ ํ์ผ์ ์์ ํ์ฌ example.com์ด ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ํ๊ฑฐ๋ curl --resolve ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ curl์ด ์์ฒญ์ ๋ํ ๋ถํ ๋ถ์ฐ๊ธฐ์ IP๋ฅผ ์ฌ์ฉํ๋๋ก ๊ฐ์ ํฉ๋๋ค.
example.com์ DNS ๋ ์ฝ๋๊ฐ HTTP(S) ๋ถํ ๋ถ์ฐ๊ธฐ์ IP ์ฃผ์๋ก ํ์ธ๋๋ฉด example.com์ผ๋ก ์ ์ก๋ ์์ฒญ์ด ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํตํด ๋ผ์ฐํ
๋ฉ๋๋ค. ๋ถํ ๋ถ์ฐ๊ธฐ๋ URL ๋งต์ ๋ฐ๋ผ ๊ด๋ จ ๋ฐฑ์๋ ์๋น์ค๋ก ์์ฒญ์ ์ ๋ฌํฉ๋๋ค. ๋ํ ๋ฐฑ์๋ ์๋น์ค๊ฐ URL ๋ง์คํฌ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ ์๋ฒ๋ฆฌ์ค NEG๋ ๋ง์คํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒญ์ ์ ์ ํ Cloud Run, Cloud Run Functions, API ๊ฒ์ดํธ์จ์ด ๋๋ App Engine ์๋น์ค๋ก ๋ผ์ฐํ
ํฉ๋๋ค.
Cloud CDN ์ฌ์ฉ ์ค์
Cloud Run ์๋น์ค์ Cloud CDN์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์์๊ฒ ๊ฐ๊น์ด ์ฝํ ์ธ ๋ฅผ ์บ์ํ์ฌ ์ฝํ ์ธ ์ ์ก์ ์ต์ ํํ ์ ์์ต๋๋ค.
gcloud compute
backend-services update ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ญ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ์์ ์ฌ์ฉํ๋ ๋ฐฑ์๋ ์๋น์ค์์ Cloud CDN์ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค.
gcloud compute backend-services update helloworld-backend-service
--enable-cdn
--global
Cloud CDN์ Cloud Run, Cloud Run Functions, API ๊ฒ์ดํธ์จ์ด, App Engine ๋ฐฑ์๋๊ฐ ์๋ ๋ฐฑ์๋ ์๋น์ค์์ ์ง์๋ฉ๋๋ค.
์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ์์ IAP ์ฌ์ฉ ์ค์
์ฐธ๊ณ : IAP๋ Cloud CDN๊ณผ ํธํ๋์ง ์์ต๋๋ค.IAP๋ฅผ ์ฌ์ฉ ์ค์ ๋๋ ์ฌ์ฉ ์ค์ง(๊ธฐ๋ณธ๊ฐ)ํ๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ฌ์ฉ ์ค์ ๋ ๊ฒฝ์ฐ oauth2-client-id ๋ฐ oauth2-client-secret ๊ฐ์ ์ ๊ณตํด์ผ ํฉ๋๋ค.
IAP๋ฅผ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด --iap=enabled ํ๋๊ทธ๋ฅผ oauth2-client-id ๋ฐ oauth2-client-secret๊ณผ ํจ๊ป ํฌํจํ๋๋ก ๋ฐฑ์๋ ์๋น์ค๋ฅผ ์
๋ฐ์ดํธํ์ธ์.
gcloud compute backend-services update BACKEND_SERVICE_NAME \
--iap=enabled,oauth2-client-id=ID,oauth2-client-secret=SECRET \
--global
์ํ๋ ๊ฒฝ์ฐ Google Cloud ์ฝ์, gcloud CLI ๋๋ API๋ฅผ ์ฌ์ฉํ์ฌ Compute Engine ๋ฆฌ์์ค์ IAP๋ฅผ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค.
Google Cloud Armor ์ฌ์ฉ ์ค์
Cloud Armor๋ DDoS ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ชจ๋ GCLB ํ๋ก์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ๋ณดํธํ๋ ๋ณด์ ์ ํ์ ๋๋ค. Cloud Armor๋ ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํตํด ์ก์ธ์คํ ์๋น์ค์ ๊ตฌ์ฑ ๊ฐ๋ฅํ ๋ณด์ ์ ์ฑ ๋ ์ ๊ณตํฉ๋๋ค. ์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ถํ ๋ถ์ฐ๊ธฐ์ฉ Cloud Armor ๋ณด์ ์ ์ฑ ์ ๋ํ ์์ธํ ๋ด์ฉ์ Cloud Armor ๋ณด์ ์ ์ฑ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Cloud Run Functions๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ internal-and-gclb ์ธ๊ทธ๋ ์ค ์ค์ ์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ URL๋ก ์ ์ก๋ ์์ฒญ์ด ์ฐจ๋จ๋๋๋ก ํ ์ ์์ต๋๋ค.
Cloud Run์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ธ๊ทธ๋ ์ค๋ฅผ '๋ด๋ถ ๋ฐ ํด๋ผ์ฐ๋ ๋ถํ ๋ถ์ฐ'์ผ๋ก ์ ํํ์ฌ ๊ธฐ๋ณธ URL ๋๋ Cloud Run์ ํตํด ์ค์ ๋ ๋ค๋ฅธ ์ปค์คํ ๋๋ฉ์ธ์ผ๋ก ์ ์ก๋ ์์ฒญ์ด ์ฐจ๋จ๋๋๋ก ํ ์ ์์ต๋๋ค.
App Engine์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ธ๊ทธ๋ ์ค ์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ด ๋ถํ ๋ถ์ฐ๊ธฐ(๋ฐ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ VPC)์์ ์ ์ก๋๋ ์์ฒญ๋ง ์์ ํ๋๋ก ํ ์ ์์ต๋๋ค.
์ ์ ํ ์ธ๊ทธ๋ ์ค ์ค์ ์ด ์์ผ๋ฉด ์ฌ์ฉ์๋ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ณธ URL์ ์ฌ์ฉํ์ฌ ๋ถํ ๋ถ์ฐ๊ธฐ๋ฅผ ํตํด ์ ๋ฌ๋๋ ๋ถํ ๋ถ์ฐ๊ธฐ, Cloud Armor ๋ณด์ ์ ์ฑ , SSL ์ธ์ฆ์, ๋น๊ณต๊ฐ ํค๋ฅผ ์ฐํํ ์ ์์ต๋๋ค.
์ ํ์ฌํญ: ๊ธฐ๋ณธ ๋ฐฑ์๋ ๋ณด์ ์ ์ฑ ์ ๊ตฌ์ฑํฉ๋๋ค. ๊ธฐ๋ณธ ๋ณด์ ์ ์ฑ ์ ์ฌ์ฉ์๊ฐ ๊ตฌ์ฑํ ๊ธฐ์ค์ ์ ํตํด ํธ๋ํฝ์ ์ ํํฉ๋๋ค. ๊ธฐ๋ณธ ๋ณด์ ์ ์ฑ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋น์จ ์ ํ ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
- Cloud Armor ๊ธฐ๋ณธ ๋ณด์ ์ ์ฑ
์ ์ ํ ํด์ ํ๋ ค๋ฉด Cloud Armor ๋ฐฑ์๋ ๋ณด์ ์ ์ฑ
๋ชฉ๋ก์์
None์ ์ ํํฉ๋๋ค. - Cloud Armor ๊ธฐ๋ณธ ๋ณด์ ์ ์ฑ ์ ๊ตฌ์ฑํ๋ ค๋ฉด Cloud Armor ๋ฐฑ์๋ ๋ณด์ ์ ์ฑ ๋ชฉ๋ก์์ ๊ธฐ๋ณธ ๋ณด์ ์ ์ฑ ์ ์ ํํฉ๋๋ค.
- ์ ์ฑ ์ด๋ฆ ํ๋์ ์๋์ผ๋ก ์์ฑ๋ ์ด๋ฆ์ ์ฌ์ฉํ๊ฑฐ๋ ๋ณด์ ์ ์ฑ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
- ์์ฒญ ์ ํ๋์์ ๊ธฐ๋ณธ ์์ฒญ ์๋ฅผ ์๋ฝํ๊ฑฐ๋
1~10,000์ฌ์ด์ ์ ์๋ฅผ ์ ๋ ฅํฉ๋๋ค. - ๊ฐ๊ฒฉ ํ๋์์ ๊ฐ๊ฒฉ์ ์ ํํฉ๋๋ค.
- ํค์ ์ ์ฉ ํ๋์์ ๋ชจ๋, IP ์ฃผ์, X-Forwarded-For IP ์ฃผ์ ๊ฐ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค. ์ด๋ฌํ ์ต์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋น์จ ์ ํ์ ์ํ ํด๋ผ์ด์ธํธ ์๋ณ์ ์ฐธ์กฐํ์ธ์.
๋ก๊น ๋ฐ ๋ชจ๋ํฐ๋ง ์ฌ์ฉ ์ค์
์ธ๋ถ ์ ํ๋ฆฌ์ผ์ด์
๋ถํ ๋ถ์ฐ๊ธฐ ๋ฐฑ์๋ ์๋น์ค์ ๋ํ ๋ก๊ทธ๋ฅผ ์ฌ์ฉ ์ค์ , ์ฌ์ฉ ์ค์ง, ์กฐํํ ์ ์์ต๋๋ค. Google Cloud ์ฝ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์๋ฒ๋ฆฌ์ค NEG ๋ฐฑ์๋๊ฐ ์๋ ๋ฐฑ์๋ ์๋น์ค์ ๋ก๊น
์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ ์ค์ ๋ฉ๋๋ค. ํ์์ ๋ฐ๋ผ gcloud๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ๋ฐฑ์๋ ์๋น์ค์ ๋ก๊น
์ ์ฌ์ฉ ์ค์งํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ Logging์ ์ฐธ์กฐํ์ธ์.
๋ํ ๋ถํ ๋ถ์ฐ๊ธฐ๋ ๋ชจ๋ํฐ๋ง ๋ฐ์ดํฐ๋ฅผ Cloud Monitoring์ผ๋ก ๋ด๋ณด๋ ๋๋ค. ๋ชจ๋ํฐ๋ง ์ธก์ ํญ๋ชฉ์ ์ฌ์ฉํ์ฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ ๊ตฌ์ฑ, ์ฌ์ฉ, ์ฑ๋ฅ์ ํ๊ฐํ ์ ์์ต๋๋ค. ๋ํ ์ธก์ ํญ๋ชฉ์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๋ฆฌ์์ค ์ฌ์ฉ๋ฅ ๋ฐ ์ฌ์ฉ์ ํ๊ฒฝ์ ๊ฐ์ ํ๋ ๋ฐ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ Monitoring์ ์ฐธ์กฐํ์ธ์.
์๋ฒ๋ฆฌ์ค NEG ์ญ์
๋คํธ์ํฌ ์๋ํฌ์ธํธ ๊ทธ๋ฃน์ด ๋ฐฑ์๋ ์๋น์ค์ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉด ์ญ์ ํ ์ ์์ต๋๋ค. NEG๋ฅผ ์ญ์ ํ๊ธฐ ์ ์ ๋ฐฑ์๋ ์๋น์ค์์ ๋ถ๋ฆฌํ์ธ์.
์ฝ์
- ์ญ์ ํ๋ ค๋ ์๋ฒ๋ฆฌ์ค NEG๊ฐ ํ์ฌ ๋ฐฑ์๋ ์๋น์ค์์ ์ฌ์ฉ๋๊ณ ์์ง ์์์ง ํ์ธํ๋ ค๋ฉด ๋ถํ ๋ถ์ฐ ๊ณ ๊ธ ๋ฉ๋ด์ ๋ฐฑ์๋ ์๋น์ค ํญ์ผ๋ก ์ด๋ํฉ๋๋ค.
๋ฐฑ์๋ ์๋น์ค ํญ์ผ๋ก ์ด๋ - ์๋ฒ๋ฆฌ์ค NEG๊ฐ ํ์ฌ ์ฌ์ฉ ์ค์ธ ๊ฒฝ์ฐ:
- ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ์ฌ์ฉํ๋ ๋ฐฑ์๋ ์๋น์ค์ ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค.
- ์์ ์ ํด๋ฆญํฉ๋๋ค.
- ๋ฐฑ์๋ ๋ชฉ๋ก์์ ๋ฅผ ํด๋ฆญํ์ฌ ๋ฐฑ์๋ ์๋น์ค์์ ์๋ฒ๋ฆฌ์ค NEG ๋ฐฑ์๋๋ฅผ ์ญ์ ํฉ๋๋ค.
- ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
- Google Cloud ์ฝ์์์ ๋คํธ์ํฌ ์๋ํฌ์ธํธ ๊ทธ๋ฃน ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋คํธ์ํฌ ์๋ํฌ์ธํธ ๊ทธ๋ฃน ํ์ด์ง๋ก ์ด๋ - ์ญ์ ํ ์๋ฒ๋ฆฌ์ค NEG์ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.
- ์ญ์ ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ญ์ ๋ฅผ ๋ค์ ํด๋ฆญํ์ฌ ํ์ธํฉ๋๋ค.
gcloud
๋ฐฑ์๋ ์๋น์ค์์ ์๋ฒ๋ฆฌ์ค NEG๋ฅผ ์ญ์ ํ๋ ค๋ฉด NEG๊ฐ ์์ฑ๋ ๋ฆฌ์ ์ ์ง์ ํด์ผ ํฉ๋๋ค. helloworld-backend-service๋ ์ ์ญ ๋ฆฌ์์ค์ด๋ฏ๋ก --global ํ๋๊ทธ๋ ์ง์ ํด์ผ ํฉ๋๋ค.
gcloud compute backend-services remove-backend helloworld-backend-service \
--network-endpoint-group=helloworld-serverless-neg \
--network-endpoint-group-region=us-central1 \
--global
์๋ฒ๋ฆฌ์ค NEG๋ฅผ ์ญ์ ํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
gcloud compute network-endpoint-groups delete helloworld-serverless-neg \
--region=us-central1
๋ค์ ๋จ๊ณ
- ๋ก๊น ๋ฐ ๋ชจ๋ํฐ๋ง ์ฌ์ฉ
- ์๋ฒ๋ฆฌ์ค NEG ๋ฌธ์ ํด๊ฒฐ
- ๋ถํ ๋ถ์ฐ๊ธฐ ์ค์ ์ญ์
- Cloud Run ๋ฐฑ์๋๊ฐ ์๋ ์ธ๋ถ HTTPS ๋ถํ ๋ถ์ฐ๊ธฐ์ Terraform ๋ชจ๋ ์ฌ์ฉ