Cloud Run, App Engine ๋˜๋Š” Cloud Run Functions๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์„ค์ •

์ด ํŽ˜์ด์ง€์—์„œ๋Š” ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์š”์ฒญ์„ ์„œ๋ฒ„๋ฆฌ์Šค ๋ฐฑ์—”๋“œ๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์„œ๋ฒ„๋ฆฌ์Šค๋ผ๋Š” ์šฉ์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ… ์ œํ’ˆ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  • App Engine
  • Cloud Run Functions
  • Cloud Run

API ๊ฒŒ์ดํŠธ์›จ์ด์™€ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ํ†ตํ•ฉ์„ ํ†ตํ•ด ์„œ๋ฒ„๋ฆฌ์Šค ๋ฐฑ์—”๋“œ๊ฐ€ Cloud Load Balancing์—์„œ ์ œ๊ณต๋˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋„๋ก ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋ž˜ํ”ฝ์„ API ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ๋ผ์šฐํŒ…ํ•˜๋„๋ก ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด API ๊ฒŒ์ดํŠธ์›จ์ด์šฉ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์‹œ์ž‘ํ•˜๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. API ๊ฒŒ์ดํŠธ์›จ์ด์šฉ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์ง€์›์€ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

์„œ๋ฒ„๋ฆฌ์Šค NEG๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์™€ ํ•จ๊ป˜ Google Cloud ์„œ๋ฒ„๋ฆฌ์Šค ์•ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฆฌ์Šค NEG ๋ฐฑ์—”๋“œ๋กœ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์— ๋Œ€ํ•œ ์š”์ฒญ์ด ์„œ๋ฒ„๋ฆฌ์Šค ์•ฑ ๋ฐฑ์—”๋“œ๋กœ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„๋ฆฌ์Šค NEG์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„œ๋ฒ„๋ฆฌ์Šค NEG ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

  1. App Engine, Cloud Run Functions ๋˜๋Š” Cloud Run ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
  2. Google Cloud CLI๋ฅผ ์•„์ง ์„ค์น˜ํ•˜์ง€ ์•Š์•˜์œผ๋ฉด ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ถŒํ•œ ๊ตฌ์„ฑ
  4. 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 ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†”์—์„œ ์™ธ๋ถ€ IP ์ฃผ์†Œ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ์™ธ๋ถ€ IP ์ฃผ์†Œ๋กœ ์ด๋™

  2. ์™ธ๋ถ€ ๊ณ ์ • IP ์ฃผ์†Œ ์˜ˆ์•ฝ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์ด๋ฆ„์— example-ip๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  4. ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค ๋“ฑ๊ธ‰์—์„œ ํ”„๋ฆฌ๋ฏธ์—„์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  5. IP ๋ฒ„์ „์—์„œ IPv4๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  6. ์œ ํ˜•์—์„œ ์ „์—ญ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  7. ์˜ˆ์•ฝ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

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 ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ–ˆ์Šต๋‹ˆ๋‹ค.

Cloud Run ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์•„ํ‚คํ…์ฒ˜
Cloud Run ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์•„ํ‚คํ…์ฒ˜(ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

์„œ๋ฒ„๋ฆฌ์Šค NEG ๋ฐฑ์—”๋“œ๊ฐ€ ์žˆ๋Š” ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์—๋Š” ์ƒํƒœ ํ™•์ธ์ด ์ง€์›๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์— ์„œ๋ฒ„๋ฆฌ์Šค NEG ๋ฐฑ์—”๋“œ๋งŒ ์žˆ๋Š” ๊ฒฝ์šฐ ์ƒํƒœ ํ™•์ธ์„ ํ—ˆ์šฉํ•˜๋Š” ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ฝ˜์†”

๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์œ ํ˜• ์„ ํƒ

  1. Google Cloud ์ฝ˜์†”์—์„œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ๋ถ€ํ•˜ ๋ถ„์‚ฐ์œผ๋กœ ์ด๋™

  2. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์œ ํ˜•์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ(HTTP/HTTPS)๋ฅผ ์„ ํƒํ•˜๊ณ  ๋‹ค์Œ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ณต๊ฐœ ๋˜๋Š” ๋‚ด๋ถ€์—์„œ ๊ณต๊ฐœ(์™ธ๋ถ€)๋ฅผ ์„ ํƒํ•˜๊ณ  ๋‹ค์Œ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  5. ์ „์—ญ ๋˜๋Š” ๋‹จ์ผ ๋ฆฌ์ „ ๋ฐฐํฌ์— ์ „์—ญ ์›Œํฌ๋กœ๋“œ์— ์ ํ•ฉ์„ ์„ ํƒํ•˜๊ณ  ๋‹ค์Œ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  6. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์ƒ์„ฑ์— ๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ์„ ํƒํ•˜๊ณ  ๋‹ค์Œ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  7. ๊ตฌ์„ฑ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๊ตฌ์„ฑ

  1. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์ด๋ฆ„์— serverless-lb๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ณ„์†ํ•˜๋ ค๋ฉด ์ฐฝ์„ ์—ด์–ด๋‘ก๋‹ˆ๋‹ค.

ํ”„๋ŸฐํŠธ์—”๋“œ ๊ตฌ์„ฑ

  1. ํ”„๋ŸฐํŠธ์—”๋“œ ๊ตฌ์„ฑ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. ์ด๋ฆ„์— ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  3. HTTPS ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด SSL ์ธ์ฆ์„œ(gcloud compute ssl-certificates list)๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์•ž์„  ์„ค๋ช…๋Œ€๋กœ Google ๊ด€๋ฆฌ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  4. ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•„๋“œ๋ฅผ ์ฑ„์›๋‹ˆ๋‹ค.

    ๋‹ค์Œ ์˜ต์…˜์ด ์ด๋Ÿฌํ•œ ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    ์†์„ฑ ๊ฐ’(๊ฐ’ ์ž…๋ ฅ ๋˜๋Š” ์ง€์ •๋œ ์˜ต์…˜ ์„ ํƒ)
    ํ”„๋กœํ† ์ฝœ 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
  5. ์™„๋ฃŒ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ ๊ตฌ์„ฑ

  1. ๋ฐฑ์—”๋“œ ๊ตฌ์„ฑ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ๋ฐ ๋ฐฑ์—”๋“œ ๋ฒ„ํ‚ท ๋ชฉ๋ก์—์„œ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. ์ด๋ฆ„์— ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  4. ๋ฐฑ์—”๋“œ ์œ ํ˜•์—์„œ ์„œ๋ฒ„๋ฆฌ์Šค ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  5. ํ”„๋กœํ† ์ฝœ์€ ๊ทธ๋Œ€๋กœ ๋‘ก๋‹ˆ๋‹ค. ์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.
  6. ๋ฐฑ์—”๋“œ ์„น์…˜์˜ ์ƒˆ ๋ฐฑ์—”๋“œ์—์„œ ์„œ๋ฒ„๋ฆฌ์Šค ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน ๋งŒ๋“ค๊ธฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  7. ์ด๋ฆ„์— ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  8. ๋ฆฌ์ „์—์„œ us-central1์„ ์„ ํƒํ•œ ํ›„ Cloud Run์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  9. ์„œ๋น„์Šค ์ด๋ฆ„ ์„ ํƒ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  10. ์„œ๋น„์Šค ๋ชฉ๋ก์—์„œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“ค๋ ค๋Š” Cloud Run ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  11. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  12. ์ƒˆ ๋ฐฑ์—”๋“œ ์„น์…˜์—์„œ ์™„๋ฃŒ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  13. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๋ผ์šฐํŒ… ๊ทœ์น™

๋ผ์šฐํŒ… ๊ทœ์น™์€ ํŠธ๋ž˜ํ”ฝ์˜ ์ „๋‹ฌ ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ผ์šฐํŒ…์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ URL ๋งต์˜ ๊ตฌ์„ฑ ๊ตฌ์„ฑ์š”์†Œ์— ํ•ด๋‹นํ•˜๋Š” ํ˜ธ์ŠคํŠธ ๊ทœ์น™ ๋ฐ ๊ฒฝ๋กœ ์ผ์น˜์ž๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  1. ํ˜ธ์ŠคํŠธ ๋ฐ ๊ฒฝ๋กœ ๊ทœ์น™์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  2. ๊ธฐ๋ณธ ํ˜ธ์ŠคํŠธ ๋ฐ ๊ฒฝ๋กœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ์—์„œ๋Š” ๋ชจ๋“  ์š”์ฒญ์ด ์ด์ „ ๋‹จ๊ณ„์—์„œ ์ƒ์„ฑ๋œ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ๊ฒ€ํ† 

  1. ๊ฒ€ํ†  ๋ฐ ์™„๋ฃŒ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ชจ๋“  ์„ค์ •์„ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค.
  3. ์„ ํƒ์‚ฌํ•ญ: ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” REST API ์š”์ฒญ์„ ๋ณด๋ ค๋ฉด ์ƒ์‘ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  4. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  5. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
  6. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ ์ด๋ฆ„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค(serverless-lb).
  7. ๋‹ค์Œ ํƒœ์Šคํฌ๋ฅผ ์œ„ํ•ด ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ IP ์ฃผ์†Œ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ IP_ADDRESS๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

gcloud

  1. ์„œ๋ฒ„๋ฆฌ์Šค ์•ฑ์˜ ์„œ๋ฒ„๋ฆฌ์Šค 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_NAME
       
    ๋‹ค๋ฅธ ์˜ต์…˜์€ gcloud compute network-endpoint-groups create์˜ gcloud์ฐธ์กฐ ๊ฐ€์ด๋“œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
  2. ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
       gcloud compute backend-services create BACKEND_SERVICE_NAME \
           --load-balancing-scheme=EXTERNAL \
           --global
       
  3. ์„œ๋ฒ„๋ฆฌ์Šค NEG๋ฅผ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์— ๋ฐฑ์—”๋“œ๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
       gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
           --global \
           --network-endpoint-group=SERVERLESS_NEG_NAME \
           --network-endpoint-group-region=us-central1
       
  4. ์ˆ˜์‹ ๋˜๋Š” ์š”์ฒญ์„ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” URL ๋งต์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
       gcloud compute url-maps create URL_MAP_NAME \
           --default-service BACKEND_SERVICE_NAME
       

    ์ด ์˜ˆ์‹œ URL ๋งต์€ ๋‹จ์ผ ์„œ๋ฒ„๋ฆฌ์Šค ์•ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ํ•˜๋‚˜๋งŒ ๋Œ€์ƒ์œผ๋กœ ์ง€์ •ํ•˜๋ฏ€๋กœ ํ˜ธ์ŠคํŠธ ๊ทœ์น™์ด๋‚˜ ๊ฒฝ๋กœ ์ผ์น˜์ž๋ฅผ ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๊ฐ€ ๋‘ ๊ฐœ ์ด์ƒ ์žˆ์œผ๋ฉด ํ˜ธ์ŠคํŠธ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋กœ ์š”์ฒญ์„ ์ „๋‹ฌํ•˜๊ณ  ๊ฒฝ๋กœ ์ผ์น˜์ž๋ฅผ ์„ค์ •ํ•˜์—ฌ ์š”์ฒญ ๊ฒฝ๋กœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋กœ ์š”์ฒญ์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  5. HTTPS ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด HTTPS ๋Œ€์ƒ ํ”„๋ก์‹œ์—์„œ ์‚ฌ์šฉํ•  SSL ์ธ์ฆ์„œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Google ๊ด€๋ฆฌํ˜• SSL ์ธ์ฆ์„œ๋‚˜ ์ž์ฒด ๊ด€๋ฆฌํ˜• SSL ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SSL ์ธ์ฆ์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Google Cloud ๋Š” ์ด๋Ÿฌํ•œ ์ธ์ฆ์„œ๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ณ  ๊ด€๋ฆฌํ•˜๋ฉฐ ๊ฐฑ์‹ ํ•˜๋ฏ€๋กœ Google ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

    Google ๊ด€๋ฆฌํ˜• ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋„๋ฉ”์ธ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ์ด ์—†๋Š” ๊ฒฝ์šฐ ์ž์ฒด ์„œ๋ช… SSL ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Google ๊ด€๋ฆฌํ˜• SSL ์ธ์ฆ์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
       gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
           --domains DOMAIN
       
    ์ž์ฒด ๊ด€๋ฆฌํ˜• SSL ์ธ์ฆ์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.
       gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
           --certificate CRT_FILE_PATH \
           --private-key KEY_FILE_PATH
       
  6. ๋Œ€์ƒ HTTP(S) ํ”„๋ก์‹œ๋ฅผ ๋งŒ๋“ค์–ด ์š”์ฒญ์„ URL ๋งต์œผ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.

    HTTP ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ ๊ฒฝ์šฐ HTTP ๋Œ€์ƒ ํ”„๋ก์‹œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

       gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \
           --url-map=URL_MAP_NAME
       

    HTTPS ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ ๊ฒฝ์šฐ HTTPS ๋Œ€์ƒ ํ”„๋ก์‹œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํ”„๋ก์‹œ๋Š” HTTPS ๋ถ€ํ•˜ ๋ถ„์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” SSL ์ธ์ฆ์„œ๊ฐ€ ํฌํ•จ๋œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ ์ผ๋ถ€๋ถ„์ด๋ฏ€๋กœ ์ด ๋‹จ๊ณ„์—์„œ ์ธ์ฆ์„œ๋„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

       gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
          --ssl-certificates=SSL_CERTIFICATE_NAME \
          --url-map=URL_MAP_NAME
       
  7. ์ˆ˜์‹ ๋˜๋Š” ์š”์ฒญ์„ ํ”„๋ก์‹œ๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ์ „๋‹ฌ ๊ทœ์น™์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    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=80
       

    HTTPS ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ ๊ฒฝ์šฐ:

       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 ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. Google Cloud ์ฝ˜์†”์—์„œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ๋ถ€ํ•˜ ๋ถ„์‚ฐ์œผ๋กœ ์ด๋™

  2. ๋ฐฉ๊ธˆ ๋งŒ๋“  ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ IP ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  4. HTTP ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ ๊ฒฝ์šฐ http://IP_ADDRESS๋กœ ์ด๋™ํ•˜์—ฌ ์›น๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. IP_ADDRESS๋ฅผ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ IP ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. helloworld ์„œ๋น„์Šค ํ™ˆํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  5. 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 ๋ฐฐํฌ๊ฐ€ ํ˜ธํ™˜๋˜๊ณ  ๋ชจ๋“  ๋ฆฌ์ „์˜ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ฆฌ๋ฏธ์—„ ๋„คํŠธ์›Œํฌ ๋“ฑ๊ธ‰์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ€ํ‹ฐ ๋ฆฌ์ „ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ์„œ๋กœ ๋‹ค๋ฅธ ๋ฆฌ์ „์— 2๊ฐœ์˜ Cloud Run ์„œ๋น„์Šค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ๊ตญ ๋ฆฌ์ „๊ณผ ์œ ๋Ÿฝ ๋ฆฌ์ „์— ๊ฐ๊ฐ 1๊ฐœ์”ฉ 2๊ฐœ์˜ Cloud Run ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ์‹œ๋‹ค.
  2. ๋‹ค์Œ ์„ค์ •์œผ๋กœ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
    1. ์„œ๋ฒ„๋ฆฌ์Šค NEG 2๊ฐœ๋กœ ์ „์—ญ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
      1. ๋ฏธ๊ตญ์— ๋ฐฐํฌ๋œ Cloud Run ์„œ๋น„์Šค์™€ ๋™์ผํ•œ ๋ฆฌ์ „์— ์ฒซ ๋ฒˆ์งธ NEG๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
      2. ์œ ๋Ÿฝ์— ๋ฐฐํฌ๋œ Cloud Run ์„œ๋น„์Šค์™€ ๋™์ผํ•œ ๋ฆฌ์ „์— ๋‘ ๋ฒˆ์งธ NEG๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
    2. ํ”„๋ฆฌ๋ฏธ์—„ ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค ๋“ฑ๊ธ‰์œผ๋กœ ํ”„๋ŸฐํŠธ์—”๋“œ ๊ตฌ์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์— ๊ฒฐ๊ณผ ์„ค์ •์ด ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฉ€ํ‹ฐ ๋ฆฌ์ „ ๋ผ์šฐํŒ…
์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฉ€ํ‹ฐ ๋ฆฌ์ „ ๋ผ์šฐํŒ…

์ด ์„น์…˜์—์„œ๋Š” ์ด ํŽ˜์ด์ง€์˜ ์•ž๋ถ€๋ถ„์—์„œ ์„ค๋ช…ํ•œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์„ค์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” ๋™์ผํ•œ ๋ฆฌ์ „์˜ Cloud Run ์„œ๋น„์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” us-central1 ๋ฆฌ์ „์— ํ•˜๋‚˜์˜ ์„œ๋ฒ„๋ฆฌ์Šค NEG๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ europe-west1 ๋ฆฌ์ „์—์„œ ๋‘ ๋ฒˆ์งธ Cloud Run ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ๋“œ๋Š” ๋‘ ๋ฒˆ์งธ ์„œ๋ฒ„๋ฆฌ์Šค NEG๋Š” europe-west1 ๋ฆฌ์ „์˜ ์ด Cloud Run ์„œ๋น„์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

์ด ์˜ˆ์‹œ์—์„œ๋Š” ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

  1. europe-west1 ๋ฆฌ์ „์— ๋‘ ๋ฒˆ์งธ ์„œ๋ฒ„๋ฆฌ์Šค NEG๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  2. ๋‘ ๋ฒˆ์งธ ์„œ๋ฒ„๋ฆฌ์Šค NEG๋ฅผ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์„œ๋ฒ„๋ฆฌ์Šค NEG๋ฅผ ๊ธฐ์กด ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†”์—์„œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ๋ถ€ํ•˜ ๋ถ„์‚ฐ์œผ๋กœ ์ด๋™

  2. ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์ˆ˜์ •ํ•  ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ ์ด๋ฆ„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€์—์„œ ์ˆ˜์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์ „์—ญ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์ˆ˜์ • ํŽ˜์ด์ง€์—์„œ ๋ฐฑ์—”๋“œ ๊ตฌ์„ฑ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ๋ฐฑ์—”๋“œ ๊ตฌ์„ฑ ํŽ˜์ด์ง€์—์„œ ์ˆ˜์ •ํ•˜๋ ค๋Š” ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์ˆ˜์ • ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  6. ๋ฐฑ์—”๋“œ ์„น์…˜์—์„œ ๋ฐฑ์—”๋“œ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  7. ์„œ๋ฒ„๋ฆฌ์Šค ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน ๋ชฉ๋ก์—์„œ ์„œ๋ฒ„๋ฆฌ์Šค ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน ๋งŒ๋“ค๊ธฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  8. ์„œ๋ฒ„๋ฆฌ์Šค NEG์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  9. ๋ฆฌ์ „์—์„œ europe-west1์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  10. ์„œ๋ฒ„๋ฆฌ์Šค ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน ์œ ํ˜•์— Cloud Run์„ ์„ ํƒํ•œ ํ›„ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    1. ์„œ๋น„์Šค ์„ ํƒ ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    2. ์„œ๋น„์Šค ๋ชฉ๋ก์—์„œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“ค๋ ค๋Š” Cloud Run ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  11. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  12. ์ƒˆ ๋ฐฑ์—”๋“œ ํŽ˜์ด์ง€์—์„œ ์™„๋ฃŒ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  13. ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  14. ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ์—…๋ฐ์ดํŠธ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  15. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ์ „์—ญ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์ˆ˜์ • ํŽ˜์ด์ง€์—์„œ ์—…๋ฐ์ดํŠธ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

  1. 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 ์„œ๋น„์Šค์˜ ์ด๋ฆ„
  2. ๋‘ ๋ฒˆ์งธ ์„œ๋ฒ„๋ฆฌ์Šค 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 ํ† ํฐ ํ™•์ธ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฆฌ์ „ ๊ด€๋ จ ์ œํ•œ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ๋‹ค๋ฅธ ๋ฆฌ์ „์˜ ์„œ๋น„์Šค ๋ฐฐํฌ์™€ ๋™์ผํ•œ ์ปค์Šคํ…€ ๋Œ€์ƒ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. ์ปค์Šคํ…€ ๋Œ€์ƒ์„ JWT ํ† ํฐ์˜ ๋Œ€์ƒ์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก Pub/Sub ํ‘ธ์‹œ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ์ „ ๋ผ์šฐํŒ… ์„ค์ •

์—ฌ๋Ÿฌ ๋ฆฌ์ „์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ๊ณตํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ์ด์œ ๋Š” ๋ฐ์ดํ„ฐ ์ง€์—ญ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์œ ๋Ÿฝ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์ด ํ•ญ์ƒ ์œ ๋Ÿฝ์— ์žˆ๋Š” ๋ฆฌ์ „์—์„œ ์ œ๊ณต๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด EU ์‚ฌ์šฉ์ž์™€ EU ์ด์™ธ์˜ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๋ณ„๋„์˜ URL์ด ์žˆ๋Š” URL ์Šคํ‚ค๋งˆ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ EU ์‚ฌ์šฉ์ž๋ฅผ EU URL๋กœ ์•ˆ๋‚ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” URL ๋งต์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • URL์˜ ์š”์ฒญ์„ ํ•ด๋‹น ๋ฆฌ์ „์œผ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์„ค์ •ํ•˜๋ฉด ํ•œ ๋ฆฌ์ „์— ๋Œ€ํ•œ ์š”์ฒญ์ด ๋‹ค๋ฅธ ๋ฆฌ์ „์œผ๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฆฌ์ „ ๊ฐ„ ๊ฒฉ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ๋ฆฌ์ „์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ์š”์ฒญ์ด ๋‹ค๋ฅธ ๋ฆฌ์ „์œผ๋กœ ๋ผ์šฐํŒ…๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ์„ค์ •์€ ์„œ๋น„์Šค์˜ ๊ฐ€์šฉ์„ฑ์„ ๋†’์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฆฌ์ „ ๋ผ์šฐํŒ…์„ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹จ์ผ ์ „๋‹ฌ ๊ทœ์น™์—์„œ ์—ฌ๋Ÿฌ ๋ฆฌ์ „์„ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ”„๋ฆฌ๋ฏธ์—„ ๋„คํŠธ์›Œํฌ ๋“ฑ๊ธ‰์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ์ „ ๋ผ์šฐํŒ…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ์„œ๋กœ ๋‹ค๋ฅธ ๋ฆฌ์ „์— 2๊ฐœ์˜ Cloud Run ์„œ๋น„์Šค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์œ ๋Ÿฝ์˜ ๋ฆฌ์ „์— hello-world-eu, ๋ฏธ๊ตญ ๋ฆฌ์ „์— hello-world-us๋กœ ๋‘ ๊ฐœ์˜ Cloud Run ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋‹ค์Œ ์„ค์ •์œผ๋กœ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
    1. ์œ ๋Ÿฝ์—์„œ ์„œ๋ฒ„๋ฆฌ์Šค NEG๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฆฌ์Šค NEG๋Š” ์œ ๋Ÿฝ์— ๋ฐฐํฌ๋œ Cloud Run ์„œ๋น„์Šค์™€ ๋™์ผํ•œ ๋ฆฌ์ „์— ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    2. ๋ฏธ๊ตญ์—์„œ ๋‹ค๋ฅธ ์„œ๋ฒ„๋ฆฌ์Šค NEG๋กœ ๋‘ ๋ฒˆ์งธ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„œ๋ฒ„๋ฆฌ์Šค NEG๋Š” ๋ฏธ๊ตญ์— ๋ฐฐํฌ๋œ Cloud Run ์„œ๋น„์Šค์™€ ๋™์ผํ•œ ๋ฆฌ์ „์— ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    3. ๋ชจ๋“  ์š”์ฒญ์ด ๋ฏธ๊ตญ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…๋˜๋Š” ๋™์‹œ์— ํ•˜๋‚˜์˜ URL ์ง‘ํ•ฉ์ด ์œ ๋Ÿฝ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋กœ ๋ผ์šฐํŒ…๋˜๋„๋ก ์ ์ ˆํ•œ ํ˜ธ์ŠคํŠธ ๋ฐ ๊ฒฝ๋กœ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ URL ๋งต์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    4. ํ”„๋ฆฌ๋ฏธ์—„ ๋„คํŠธ์›Œํฌ ๋“ฑ๊ธ‰์œผ๋กœ ํ”„๋ŸฐํŠธ์—”๋“œ ๊ตฌ์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋จธ์ง€ ์„ค์ •์€ ์ด์ „์— ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค. ์„ค์ • ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์žฅ์•  ์กฐ์น˜๊ฐ€ ์—†๋Š” ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฆฌ์ „ ๋ผ์šฐํŒ…
์žฅ์•  ์กฐ์น˜๊ฐ€ ์—†๋Š” ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฆฌ์ „ ๋ผ์šฐํŒ…

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์ž…๋‹ˆ๋‹ค.

  1. URL์—์„œ http ๋˜๋Š” https๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. example.com/login์ด ๋‚จ์•˜์Šต๋‹ˆ๋‹ค.
  2. ์„œ๋น„์Šค ์ด๋ฆ„์„ URL ๋งˆ์Šคํฌ์˜ ์ž๋ฆฌํ‘œ์‹œ์ž๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
    1. Cloud Run: Cloud Run ์„œ๋น„์Šค ์ด๋ฆ„์„ ์ž๋ฆฌํ‘œ์‹œ์ž <service>๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. Cloud Run ์„œ๋น„์Šค์— ์—ฐ๊ฒฐ๋œ ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ํƒœ๊ทธ ์ด๋ฆ„์„ ์ž๋ฆฌํ‘œ์‹œ์ž <tag>์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ์—์„œ ๋‚จ์€ URL ๋งˆ์Šคํฌ๋Š” example.com/<service>์ž…๋‹ˆ๋‹ค.
    2. Cloud Run Functions: ํ•จ์ˆ˜ ์ด๋ฆ„์„ ์ž๋ฆฌํ‘œ์‹œ์ž <function>์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ์—์„œ ๋‚จ์€ URL ๋งˆ์Šคํฌ๋Š” example.com/<function>์ž…๋‹ˆ๋‹ค.
    3. App Engine: ์„œ๋น„์Šค ์ด๋ฆ„์„ ์ž๋ฆฌํ‘œ์‹œ์ž <service>๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์„œ๋น„์Šค์— ์—ฐ๊ฒฐ๋œ ๋ฒ„์ „์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฒ„์ „์„ ์ž๋ฆฌํ‘œ์‹œ์ž <version>์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ์—์„œ ๋‚จ์€ URL ๋งˆ์Šคํฌ๋Š” example.com/<service>์ž…๋‹ˆ๋‹ค.
    4. API ๊ฒŒ์ดํŠธ์›จ์ด: ๊ฒŒ์ดํŠธ์›จ์ด ์ด๋ฆ„์„ ์ž๋ฆฌํ‘œ์‹œ์ž <gateway>๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ์—์„œ ๋‚จ์€ URL ๋งˆ์Šคํฌ๋Š” example.com/<gateway>์ž…๋‹ˆ๋‹ค.
  3. (์„ ํƒ ์‚ฌํ•ญ) 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๋ฅผ ๊ธฐ์กด ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Google Cloud ์ฝ˜์†”์—์„œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
    ๋ถ€ํ•˜ ๋ถ„์‚ฐ ํŽ˜์ด์ง€๋กœ ์ด๋™
  2. ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ์ˆ˜์ •ํ•  ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ ์ด๋ฆ„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€์—์„œ ์ˆ˜์ • ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  4. ์ „์—ญ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์ˆ˜์ • ํŽ˜์ด์ง€์—์„œ ๋ฐฑ์—”๋“œ ๊ตฌ์„ฑ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  5. ๋ฐฑ์—”๋“œ ๊ตฌ์„ฑ ํŽ˜์ด์ง€์—์„œ ์ˆ˜์ •ํ•˜๋ ค๋Š” ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์ˆ˜์ • ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  6. ๋ฐฑ์—”๋“œ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  7. ์„œ๋ฒ„๋ฆฌ์Šค ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน ๋งŒ๋“ค๊ธฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    1. ์ด๋ฆ„์— helloworld-serverless-neg์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    2. ๋ฆฌ์ „์—์„œ us-central1์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    3. ์„œ๋ฒ„๋ฆฌ์Šค ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน ์œ ํ˜•์—์„œ ์„œ๋ฒ„๋ฆฌ์Šค ์•ฑ(๋˜๋Š” ์„œ๋น„์Šค ๋˜๋Š” ํ•จ์ˆ˜)์„ ๋งŒ๋“  ํ”Œ๋žซํผ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
      1. URL ๋งˆ์Šคํฌ ์‚ฌ์šฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
      2. URL ๋งˆ์Šคํฌ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. URL ๋งˆ์Šคํฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ URL ๋งˆ์Šคํฌ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.
      3. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  8. ์ƒˆ ๋ฐฑ์—”๋“œ ์„น์…˜์—์„œ ์™„๋ฃŒ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  9. ์—…๋ฐ์ดํŠธ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

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 ์ธ์ฆ์„œ, ๋น„๊ณต๊ฐœ ํ‚ค๋ฅผ ์šฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ ํƒ์‚ฌํ•ญ: ๊ธฐ๋ณธ ๋ฐฑ์—”๋“œ ๋ณด์•ˆ ์ •์ฑ…์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ณด์•ˆ ์ •์ฑ…์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ์„ฑํ•œ ๊ธฐ์ค€์ ์„ ํ†ตํ•ด ํŠธ๋ž˜ํ”ฝ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ณด์•ˆ ์ •์ฑ…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋น„์œจ ์ œํ•œ ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  1. Cloud Armor ๊ธฐ๋ณธ ๋ณด์•ˆ ์ •์ฑ…์„ ์„ ํƒ ํ•ด์ œํ•˜๋ ค๋ฉด Cloud Armor ๋ฐฑ์—”๋“œ ๋ณด์•ˆ ์ •์ฑ… ๋ชฉ๋ก์—์„œ None์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  2. Cloud Armor ๊ธฐ๋ณธ ๋ณด์•ˆ ์ •์ฑ…์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด Cloud Armor ๋ฐฑ์—”๋“œ ๋ณด์•ˆ ์ •์ฑ… ๋ชฉ๋ก์—์„œ ๊ธฐ๋ณธ ๋ณด์•ˆ ์ •์ฑ…์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. ์ •์ฑ… ์ด๋ฆ„ ํ•„๋“œ์— ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋ณด์•ˆ ์ •์ฑ… ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  4. ์š”์ฒญ ์ˆ˜ ํ•„๋“œ์—์„œ ๊ธฐ๋ณธ ์š”์ฒญ ์ˆ˜๋ฅผ ์ˆ˜๋ฝํ•˜๊ฑฐ๋‚˜ 1~10,000 ์‚ฌ์ด์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  5. ๊ฐ„๊ฒฉ ํ•„๋“œ์—์„œ ๊ฐ„๊ฒฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  6. ํ‚ค์— ์ ์šฉ ํ•„๋“œ์—์„œ ๋ชจ๋‘, IP ์ฃผ์†Œ, X-Forwarded-For IP ์ฃผ์†Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ต์…˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋น„์œจ ์ œํ•œ์„ ์œ„ํ•œ ํด๋ผ์ด์–ธํŠธ ์‹๋ณ„์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋กœ๊น… ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ์‚ฌ์šฉ ์„ค์ •

์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๋กœ๊ทธ๋ฅผ ์‚ฌ์šฉ ์„ค์ •, ์‚ฌ์šฉ ์ค‘์ง€, ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Google Cloud ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์„œ๋ฒ„๋ฆฌ์Šค NEG ๋ฐฑ์—”๋“œ๊ฐ€ ์žˆ๋Š” ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์— ๋กœ๊น…์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ gcloud๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์˜ ๋กœ๊น…์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Logging์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋˜ํ•œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ์ดํ„ฐ๋ฅผ Cloud Monitoring์œผ๋กœ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋ชจ๋‹ˆํ„ฐ๋ง ์ธก์ •ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ ๊ตฌ์„ฑ, ์‚ฌ์šฉ, ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ธก์ •ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋ฅ  ๋ฐ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Monitoring์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์„œ๋ฒ„๋ฆฌ์Šค NEG ์‚ญ์ œ

๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน์ด ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. NEG๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์ „์— ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์—์„œ ๋ถ„๋ฆฌํ•˜์„ธ์š”.

์ฝ˜์†”

  1. ์‚ญ์ œํ•˜๋ ค๋Š” ์„œ๋ฒ„๋ฆฌ์Šค NEG๊ฐ€ ํ˜„์žฌ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์ง€ ์•Š์€์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋ถ€ํ•˜ ๋ถ„์‚ฐ ๊ณ ๊ธ‰ ๋ฉ”๋‰ด์˜ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ํƒญ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
    ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ํƒญ์œผ๋กœ ์ด๋™
  2. ์„œ๋ฒ„๋ฆฌ์Šค NEG๊ฐ€ ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ๊ฒฝ์šฐ:
    1. ์„œ๋ฒ„๋ฆฌ์Šค NEG๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์˜ ์ด๋ฆ„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    2. ์ˆ˜์ • ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    3. ๋ฐฑ์—”๋“œ ๋ชฉ๋ก์—์„œ ๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์—์„œ ์„œ๋ฒ„๋ฆฌ์Šค NEG ๋ฐฑ์—”๋“œ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
    4. ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. Google Cloud ์ฝ˜์†”์—์„œ ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
    ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ ๊ทธ๋ฃน ํŽ˜์ด์ง€๋กœ ์ด๋™
  4. ์‚ญ์ œํ•  ์„œ๋ฒ„๋ฆฌ์Šค NEG์˜ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  5. ์‚ญ์ œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  6. ์‚ญ์ œ๋ฅผ ๋‹ค์‹œ ํด๋ฆญํ•˜์—ฌ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

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

๋‹ค์Œ ๋‹จ๊ณ„