๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ

์ด ๋ฌธ์„œ์—์„œ๋Š” ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Identity and Access Management(IAM) ์ œํ•œ์‚ฌํ•ญ ๋ฐ VPC ์„œ๋น„์Šค ์ œ์–ด ๊ฒฝ๊ณ„๋ฅผ ์ ์šฉํ•˜๋ฉด์„œ ๊ณ ๊ฐ Virtual Private Cloud(VPC) ๋„คํŠธ์›Œํฌ์— HTTP ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋Š” ๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๊ฐ€์ƒ ๋จธ์‹ (VM) ๋˜๋Š” L4 ๋‚ด๋ถ€ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ(ILB)์™€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋กœ ์š”์ฒญ์„ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ์˜ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋‚ด๋ถ€ IP ์ฃผ์†Œ๋Š” ๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ ์•ก์„ธ์Šค๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค๋กœ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์ œํ’ˆ์„ ์‚ฌ์šฉํ•ด์„œ ๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ ์•ก์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

VM ๋ฐ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์™€ ๊ฐ™์€ ๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ ๋ฐ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๋Š” ์„œ๋กœ ๋‹ค๋ฅธ Google Cloud ํ”„๋กœ์ ํŠธ์— ๋ฐฐ์น˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ์—…ํƒ€์ž„ ์ฒดํฌ์˜ ๋ฒ”์œ„ ์ง€์ • ํ”„๋กœ์ ํŠธ์—์„œ ์ธก์ •ํ•ญ๋ชฉ ๋ฒ”์œ„์— ์žˆ์„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค๊ฐ€ ์—…ํƒ€์ž„ ์ธก์ •ํ•ญ๋ชฉ์„ ์ˆ˜์ง‘ํ•˜๋ฏ€๋กœ, ์ธก์ •ํ•ญ๋ชฉ ๋ฒ”์œ„์— ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์— ์บก์Аํ™”๋˜๋Š” ๋ฆฌ์†Œ์Šค๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๊ณต๊ฐœ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์—…ํƒ€์ž„ ์ฒดํฌ ๊ด€๋ฆฌ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๋ฌธ์„œ์˜ ๋‹ค์Œ ๋‹จ๊ณ„ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ด ๊ธฐ๋Šฅ์€ Google Cloud ํ”„๋กœ์ ํŠธ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. App Hub ๊ตฌ์„ฑ์˜ ๊ฒฝ์šฐ App Hub ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ ๋˜๋Š” ์•ฑ ์ง€์› ํด๋”์˜ ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

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

  1. ๋‹ค์Œ API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    • Cloud Monitoring API: monitoring.googleapis.com
    • Service Directory API: servicedirectory.googleapis.com
    • Service Networking API: servicenetworking.googleapis.com
    • Compute Engine API: compute.googleapis.com

    gcloud CLI ๋˜๋Š” Google Cloud Console์„ ์‚ฌ์šฉํ•ด์„œ API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ํƒญ์—์„œ๋Š” gcloud CLI๋ฅผ ์„ค์น˜ํ•˜๊ณ  Cloud Monitoring API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

    Google Cloud ์ฝ˜์†”

    1. Google Cloud ์ฝ˜์†”์—์„œ API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋Š” Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•˜๊ณ  API ๋ฐ ์„œ๋น„์Šค ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

      API ๋ฐ ์„œ๋น„์Šค๋กœ ์ด๋™

    2. API ๋ฐ ์„œ๋น„์Šค ์‚ฌ์šฉ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    3. 'Monitoring'์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

    4. ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์—์„œ 'Stackdriver Monitoring API'๋ฅผ ์ฐพ์•„์„œ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    5. 'API ์‚ฌ์šฉ ์„ค์ •๋จ'์ด ํ‘œ์‹œ๋˜๋ฉด API๊ฐ€ ์ด๋ฏธ ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉ ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    gcloud CLI

    1. ์›Œํฌ์Šคํ…Œ์ด์…˜์— Google Cloud CLI๋ฅผ ์•„์ง ์„ค์น˜ํ•˜์ง€ ์•Š์•˜์œผ๋ฉด gcloud CLI ์„ค์น˜๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    2. Monitoring API๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์›Œํฌ์Šคํ…Œ์ด์…˜์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ PROJECT_ID๋Š” API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋Š” ํ”„๋กœ์ ํŠธ์˜ ID๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

      gcloud services list --project=PROJECT_ID
      

      ์ถœ๋ ฅ์— monitoring.googleapis.com์ด ํ‘œ์‹œ๋˜๋ฉด API๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    3. API๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์ง€ ์•Š์•˜์œผ๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

      gcloud services enable monitoring --project=PROJECT_ID
      

      ์ž์„ธํ•œ ๋‚ด์šฉ์€ gcloud services๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    ๋‹ค๋ฅธ API๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋„ ๋™์ผํ•œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • Google Cloud Console์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด 'Service Directory API'์™€ ๊ฐ™์€ ํ‘œ์‹œ ์ด๋ฆ„์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
    • gcloud CLI๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด servicedirectory์™€ ๊ฐ™์€ googleapis.com ์ด๋ฆ„์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  2. ์•Œ๋ฆผ์„ ์ˆ˜์‹ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์•Œ๋ฆผ ์ฑ„๋„์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์•Œ๋ฆผ ์ฑ„๋„์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•Œ๋ฆผ ์ฑ„๋„ ๋งŒ๋“ค๊ธฐ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

  3. ๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์ด ๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” VM ๋˜๋Š” ILB๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋น„๊ณต๊ฐœ ์„œ๋น„์Šค ์•ก์„ธ์Šค๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    ILB๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ๋น„๊ณต๊ฐœ ์ฒดํฌ๋Š” ์—…ํƒ€์ž„ ๊ฒ€์‚ฌ๊ธฐ๊ฐ€ ์žˆ๋Š” ๋ฆฌ์ „์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์—…ํƒ€์ž„ ์ฒดํฌ ๋ฆฌ์ „ USA์—๋Š” USA_OREGON, USA_IOWA, USA_VIRGINIA ๋ฆฌ์ „์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฐ USA_* ๋ฆฌ์ „์—๋Š” ํ•˜๋‚˜์˜ ์ฒด์ปค๊ฐ€ ์žˆ๊ณ  USA์—๋Š” 3๊ฐœ ๋ชจ๋‘ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์—…ํƒ€์ž„ ์ฒดํฌ ๋ฆฌ์ „ EUROPE, SOUTH_AMERICA, ASIA_PACIFIC์—๋Š” ๊ฐ๊ฐ ํ•˜๋‚˜์˜ ์ฒด์ปค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ œํ•œ์„ ์—†์• ๋ ค๋ฉด ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์— ๋Œ€ํ•ด ์ „์—ญ ์•ก์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ „์—ญ ์•ก์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๋ฌธ์„œ์˜ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ ์„น์…˜์— ์žˆ๋Š” ILB ํƒญ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

    ์ „์—ญ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ILB๋ฅผ ๊ฒ€์‚ฌํ•˜๋ ค๋ฉด ILB์— ๋‹ค์Œ ๋ฆฌ์ „ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    • us-east4
    • us-central1
    • us-west1
    • europe-west1
    • southamerica-east1
    • asia-southeast1
  4. ์‚ฌ์šฉํ•  ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

    • Google Cloud ์ฝ˜์†”: VM์—์„œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ, ์„œ๋น„์Šค ๊ณ„์ • ์Šน์ธ, ๋„คํŠธ์›Œํฌ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™ ๊ตฌ์„ฑ์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

    • ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค: ILB ๋ฐ VM์—์„œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ Google Cloud CLI ๋ฐ Cloud Monitoring API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  5. ๋ช…๋ น์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๊ธฐ๋ณธ ์š”๊ฑด ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ

์ด ์„น์…˜์—์„œ๋Š” ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค์˜ ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • Google Cloud ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Google Cloud ์ฝ˜์†” ํƒญ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  • Cloud Monitoring API๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์—…ํƒ€์ž„ ์ฒดํฌ์™€ ๋™์ผํ•œ Google Cloud ํ”„๋กœ์ ํŠธ์— ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด API: ๋ฒ”์œ„ ์ง€์ • ํ”„๋กœ์ ํŠธ ํƒญ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

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

Google Cloud ์ฝ˜์†”

Google Cloud ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜์—ฌ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. Google Cloud ์ฝ˜์†”์—์„œ  ์—…ํƒ€์ž„ ์ฒดํฌ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ์—…ํƒ€์ž„ ์ฒดํฌ๋กœ ์ด๋™

    ๊ฒ€์ƒ‰์ฐฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ํŽ˜์ด์ง€๋ฅผ ์ฐพ์€ ๊ฒฝ์šฐ ๋ถ€์ œ๋ชฉ์ด Monitoring์ธ ๊ฒฐ๊ณผ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  2. Google Cloud ์ฝ˜์†”์˜ ํˆด๋ฐ”์—์„œ Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. App Hub ๊ตฌ์„ฑ์˜ ๊ฒฝ์šฐ App Hub ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ ๋˜๋Š” ์•ฑ ์ง€์› ํด๋”์˜ ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. ์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ ๋Œ€ํ™” ์ƒ์ž

  4. ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

    1. ํ”„๋กœํ† ์ฝœ(HTTP, HTTPS ๋˜๋Š” TCP)์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    2. ๋‚ด๋ถ€ IP ๋ฆฌ์†Œ์Šค ์œ ํ˜•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

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

    1. ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด Compute Engine API ๋˜๋Š” Service Directory API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. API ์‚ฌ์šฉ ์„ค์ •์„ ์™„๋ฃŒํ•˜๋Š” ๋ฐ 1๋ถ„ ์ •๋„ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    2. ์„œ๋น„์Šค ๊ณ„์ •์ด ํ‘œ์‹œ๋˜๋ฉด ์ด๋ฅผ ํŽผ์นœ ํ›„ ์„œ๋น„์Šค ๊ณ„์ • ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

      Monitoring ์„œ๋น„์Šค ๊ณ„์ •์ด ์—†๋Š” ๊ฒฝ์šฐ ์ƒˆ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ Monitoring์—์„œ ์„œ๋น„์Šค ๊ณ„์ •์— ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์—ญํ•  2๊ฐœ๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

    3. ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฉ”๋‰ด๋ฅผ ํŽผ์นœ ํ›„ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

      1. ๋„คํŠธ์›Œํฌ๋ฅผ ํŽผ์น˜๊ณ  ๋„คํŠธ์›Œํฌ ๊ทœ์น™์ด ์—ฐ๊ฒฐ๋œ ๋„คํŠธ์›Œํฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

      2. ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™ ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

        ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์€ ๊ฒฝ๋กœ 35.199.192.0/19์—์„œ ์ธ๋ฐ”์šด๋“œ TCP ํŠธ๋ž˜ํ”ฝ์„ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. 35.199.192.0/19์˜ ๊ฒฝ๋กœ๋Š” ๋น„๊ณต๊ฐœ ๋ผ์šฐํŒ…์„ ์‚ฌ์šฉํ•˜๋Š” ์ „๋‹ฌ ๋Œ€์ƒ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ VPC ๊ฒฝ๋กœ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  6. ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ ์ฐฝ์—์„œ ์‚ฌ์šฉํ•  ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • ์ •๊ทœํ™”๋œ ์„œ๋น„์Šค ์ด๋ฆ„ ์‚ฌ์šฉ์„ ์„ ํƒํ•œ ํ›„ ์„œ๋น„์Šค์˜ ์ •๊ทœํ™”๋œ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

      projects/SERVICE_DIRECTORY_PROJECT_ID/locations/REGION/namespaces/PRIVATE_NAMESPACE/services/PRIVATE_SERVICE
      
    • ๋ฉ”๋‰ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์ „, ๋„ค์ž„์ŠคํŽ˜์ด์Šค, ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“  ๊ฒฝ์šฐ ์ด ํ•„๋“œ๊ฐ€ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.

  7. ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ ์ฐฝ์—์„œ ์—…ํƒ€์ž„ ์ฒดํฌ ๋Œ€์ƒ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

    1. ์„ ํƒ์‚ฌํ•ญ: ์š”์ฒญ์˜ ๊ฒฝ๋กœ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

      HTTP ๋˜๋Š” HTTPS ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋Š” http://target/path์— ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด ํ‘œํ˜„์‹์—์„œ target์€ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์—”๋“œํฌ์ธํŠธ์— ๊ตฌ์„ฑ๋œ ๋‚ด๋ถ€ IP ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.

      ๊ฒฝ๋กœ ํ•„๋“œ๋ฅผ ๋น„์›Œ ๋‘๊ฑฐ๋‚˜ ๊ฐ’์„ /๋กœ ์„ค์ •ํ•˜๋ฉด ์š”์ฒญ์ด http://target/์œผ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.

    2. ์„ ํƒ์‚ฌํ•ญ: ์—…ํƒ€์ž„ ์ฒดํฌ ์‹คํ–‰ ๋นˆ๋„๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด ์ฒดํฌ ๋นˆ๋„ ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    3. ์„ ํƒ์‚ฌํ•ญ: ๊ฒ€์‚ฌ๊ธฐ ๋ฆฌ์ „์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ์ธ์ฆ, HTTP ๋ฐ HTTPS ๊ฒ€์‚ฌ ํ—ค๋”, ๊ธฐํƒ€ ๊ฐ’์„ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ์ถ”๊ฐ€ ๋Œ€์ƒ ์˜ต์…˜์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

      • ๋ฆฌ์ „: ์—…ํƒ€์ž„ ์ฒดํฌ๊ฐ€ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•  ๋ฆฌ์ „์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์—…ํƒ€์ž„ ์ฒดํฌ์—๋Š” ์ ์–ด๋„ 3๊ฐœ์˜ ๊ฒ€์‚ฌ๊ธฐ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 3๊ฐœ์˜ ๊ฒ€์‚ฌ๊ธฐ๊ฐ€ ์žˆ๋Š” ๋ฏธ๊ตญ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฆฌ์ „์— 1๊ฐœ์˜ ๊ฒ€์‚ฌ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์„ค์ •์ธ ์ „์—ญ์—๋Š” ๋ชจ๋“  ๋ฆฌ์ „์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
      • ์š”์ฒญ ๋ฉ”์„œ๋“œ: GET ๋˜๋Š” POST๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
      • ๋ณธ๋ฌธ: HTTP POST ์ฒดํฌ์˜ ๊ฒฝ์šฐ URL๋กœ ์ธ์ฝ”๋”ฉ๋œ ๋ณธ๋ฌธ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ธ์ฝ”๋”ฉ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ์ฒดํฌ์˜ ๊ฒฝ์šฐ ์ด ํ•„๋“œ๋ฅผ ๋น„์›Œ ๋‘ก๋‹ˆ๋‹ค.
      • ํ˜ธ์ŠคํŠธ ํ—ค๋”: ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ๋Š” ์ด ํ•„๋“œ๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
      • ํฌํŠธ: ์—ฌ๊ธฐ์— ์„ค์ •ํ•œ ๊ฐ’์€ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์—”๋“œํฌ์ธํŠธ ๊ตฌ์„ฑ์˜ ํฌํŠธ๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์—”๋“œํฌ์ธํŠธ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์—ฌ๊ธฐ์— ๊ฐ’์„ ์„ค์ •ํ•˜์ง€ ๋งˆ์„ธ์š”.
      • ์ปค์Šคํ…€ ํ—ค๋”: ์ปค์Šคํ…€ ํ—ค๋”๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์„ ํƒ์ ์œผ๋กœ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”ํ•˜๋ฉด ์–‘์‹์—์„œ ํ—ค๋” ๊ฐ’์ด ์ˆจ๊ฒจ์ง‘๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œํ•˜์ง€ ์•Š์œผ๋ ค๋Š” ์ธ์ฆ ๊ด€๋ จ ํ—ค๋”์— ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
      • ์ธ์ฆ: ๋‹จ์ผ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์•”ํ˜ธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ์Šน์ธ ํ—ค๋”๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์Šน์ธ ํ—ค๋”๋ฅผ ๋ณ„๋„๋กœ ์„ค์ •ํ•˜์ง€ ๋ง๊ณ  ์Šน์ธ ํ—ค๋”๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์—ฌ๊ธฐ์— ๊ฐ’์„ ์„ค์ •ํ•˜์ง€ ๋งˆ์„ธ์š”. ์–‘์‹์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ํ•ญ์ƒ ์ˆจ๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  8. ๊ณ„์†์„ ํด๋ฆญํ•ด์„œ ์‘๋‹ต ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์˜ ๋ชจ๋“  ์„ค์ •์—๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์—…ํƒ€์ž„ ์ฒดํฌ ์ œํ•œ ์‹œ๊ฐ„์„ ์„ค์ •ํ•˜๋ ค๋ฉด ์‘๋‹ต ์ œํ•œ ์‹œ๊ฐ„ ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๊ฐ„ ๋‚ด์— ๋‘˜ ์ด์ƒ์˜ ์œ„์น˜์—์„œ ์‘๋‹ต์ด ์ˆ˜์‹ ๋˜์ง€ ์•Š์œผ๋ฉด ์—…ํƒ€์ž„ ์ฒดํฌ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

    • ์ฝ˜ํ…์ธ  ์ผ์น˜๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ์ „ํ™˜ ๋ผ๋ฒจ์ด ์ฝ˜ํ…์ธ  ์ผ์น˜ ์‚ฌ์šฉ ์„ค์ •๋จ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

      • ์˜ต์…˜ ๋ฉ”๋‰ด์—์„œ ์‘๋‹ต ์ฝ˜ํ…์ธ  ์ผ์น˜ ์œ ํ˜•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•„๋“œ์— ๋”ฐ๋ผ ์‘๋‹ต ์ฝ˜ํ…์ธ ๊ฐ€ ๋ฐ˜ํ™˜๋œ ๋ฐ์ดํ„ฐ์™€ ์–ด๋–ป๊ฒŒ ๋น„๊ต๋˜๋Š”์ง€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‘๋‹ต ์ฝ˜ํ…์ธ ๊ฐ€ abcd์ด๊ณ  ์ฝ˜ํ…์ธ  ์ผ์น˜ ์œ ํ˜•์ด ํฌํ•จ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์—…ํƒ€์ž„ ์ฒดํฌ๋Š” ์‘๋‹ต ๋ฐ์ดํ„ฐ์— abcd๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ์—๋งŒ ์„ฑ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‘๋‹ต ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ์„ ์ฐธ์กฐํ•˜์„ธ์š”.
      • ์‘๋‹ต ์ฝ˜ํ…์ธ ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์‘๋‹ต ์ฝ˜ํ…์ธ ๋Š” 1,024๋ฐ”์ดํŠธ๋ณด๋‹ค ๊ธธ์ง€ ์•Š์€ ๋ฌธ์ž์—ด์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. API์—์„œ ์ด ํ•„๋“œ๋Š” ContentMatcher ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.
    • ์—…ํƒ€์ž„ ์ฒดํฌ๋กœ ์ธํ•œ ๋กœ๊ทธ ํ•ญ๋ชฉ ์ƒ์„ฑ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ๋กœ๊ทธ ์ฒดํฌ ์‹คํŒจ๋ฅผ ์„ ํƒ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.

    • HTTP ์—…ํƒ€์ž„ ์ฒดํฌ์˜ ๊ฒฝ์šฐ ํ—ˆ์šฉ๋˜๋Š” ์‘๋‹ต ์ฝ”๋“œ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ HTTP ์—…ํƒ€์ž„ ์ฒดํฌ๋Š” 2xx ์‘๋‹ต์„ ์„ฑ๊ณต ์‘๋‹ต์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  9. ๊ณ„์†์„ ํด๋ฆญํ•˜๊ณ  ์•Œ๋ฆผ ์ •์ฑ…๊ณผ ์•Œ๋ฆผ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    ์—…ํƒ€์ž„ ์ฒดํฌ๊ฐ€ ์‹คํŒจํ•  ๋•Œ ์•Œ๋ฆผ์„ ๋ฐ›์œผ๋ ค๋ฉด ์•Œ๋ฆผ ์ •์ฑ…์„ ๋งŒ๋“ค๊ณ  ํ•ด๋‹น ์ •์ฑ…์— ๋Œ€ํ•œ ์•Œ๋ฆผ ์ฑ„๋„์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    1. ์„ ํƒ์‚ฌํ•ญ: ์•Œ๋ฆผ ์ •์ฑ… ์ด๋ฆ„์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
    2. ์„ ํƒ์‚ฌํ•ญ: ๊ธฐ๊ฐ„ ํ•„๋“œ์—์„œ ์•Œ๋ฆผ์ด ์ „์†ก๋˜๊ธฐ ์ „์— ์—…ํƒ€์ž„ ์ฒดํฌ๊ฐ€ ์‹คํŒจํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๊ฐ„์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ 2๊ฐœ ์ด์ƒ์˜ ๋ฆฌ์ „์—์„œ 1๋ถ„ ์ด์ƒ ์—…ํƒ€์ž„ ์ฒดํฌ ์‹คํŒจ๋ฅผ ๋ณด๊ณ ํ•˜๋ฉด ์•Œ๋ฆผ์ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
    3. ์•Œ๋ฆผ ์ฑ„๋„ ์ƒ์ž์—์„œ ๋ฉ”๋‰ด๋ฅผ ํŽผ์น˜๊ณ  ์ถ”๊ฐ€ํ•  ์ฑ„๋„์„ ์„ ํƒํ•œ ๋‹ค์Œ ํ™•์ธ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

      ๋ฉ”๋‰ด์—์„œ ์•Œ๋ฆผ ์ฑ„๋„์€ ๊ฐ ์ฑ„๋„ ์œ ํ˜•๋ณ„๋กœ ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ ๊ทธ๋ฃนํ™”๋ฉ๋‹ˆ๋‹ค.

    ์•Œ๋ฆผ ์ •์ฑ…์„ ๋งŒ๋“ค์ง€ ์•Š์œผ๋ ค๋ฉด ์ „ํ™˜ ๋ฒ„ํŠผ์˜ ํ…์ŠคํŠธ๊ฐ€ ์•Œ๋ฆผ ์ƒ์„ฑ ์•ˆํ•จ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  10. ๊ณ„์†์„ ํด๋ฆญํ•˜์—ฌ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

    1. ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ œ๋ชฉ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    2. ์„ ํƒ์‚ฌํ•ญ: ์—…ํƒ€์ž„ ์ฒดํฌ์— ์‚ฌ์šฉ์ž ์ •์˜ ๋ผ๋ฒจ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      1. ์‚ฌ์šฉ์ž ๋ผ๋ฒจ ํ‘œ์‹œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
      2. ํ‚ค ํ•„๋“œ์— ๋ผ๋ฒจ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋ผ๋ฒจ ์ด๋ฆ„์€ ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๋ฉฐ ์†Œ๋ฌธ์ž, ์ˆซ์ž, ๋ฐ‘์ค„, ๋Œ€์‹œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด severity์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
      3. ๊ฐ’ ํ•„๋“œ์— ๋ผ๋ฒจ ๊ฐ’์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋ผ๋ฒจ ๊ฐ’์—๋Š” ์†Œ๋ฌธ์ž, ์ˆซ์ž, ๋ฐ‘์ค„, ๋Œ€์‹œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด critical์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
      4. ์ถ”๊ฐ€ ๋ผ๋ฒจ๋งˆ๋‹ค ์‚ฌ์šฉ์ž ๋ผ๋ฒจ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•œ ํ›„ ๋ผ๋ฒจ์˜ ํ‚ค์™€ ๊ฐ’์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    3. ์—…ํƒ€์ž„ ์ฒดํฌ ๊ตฌ์„ฑ์„ ํ™•์ธํ•˜๋ ค๋ฉด ํ…Œ์ŠคํŠธ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๊ฐ€ ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅด๋ฉด ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์ฐธ์กฐํ•˜์—ฌ ๊ตฌ์„ฑ์„ ์ˆ˜์ •ํ•œ ํ›„ ํ™•์ธ ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

    4. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

API: ๋ฒ”์œ„ ์ง€์ • ํ”„๋กœ์ ํŠธ

๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ์— ๋Œ€ํ•œ ๊ตฌ์„ฑ์„ ๋งŒ๋“ค๋ ค๋ฉด UptimeCheckConfig ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ์ด ๊ฐ์ฒด๋ฅผ Cloud Monitoring API์˜ uptimeCheckConfigs.create ๋ฉ”์„œ๋“œ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ์˜ UptimeCheckConfig ๊ฐ์ฒด์™€ ๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ์˜ ๊ฐ์ฒด์˜ ์ฐจ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์—…ํƒ€์ž„ ์ฒดํฌ ๊ตฌ์„ฑ์— ์ง€์ •๋œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฆฌ์†Œ์Šค๋Š” servicedirectory_service ์œ ํ˜•์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฆฌ์†Œ์Šค ์œ ํ˜•์—๋Š” ๋‹ค์Œ ๋ผ๋ฒจ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    • project_id: ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค์™€ ์—ฐ๊ด€๋œ ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.
    • location: ์„œ๋น„์Šค์™€ ์—ฐ๊ด€๋œ ํด๋ผ์šฐ๋“œ ๋ฆฌ์ „์ž…๋‹ˆ๋‹ค.
    • namespace_name: ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.
    • service_name: ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
  • ์—…ํƒ€์ž„ ์ฒดํฌ ๊ตฌ์„ฑ์—์„œ port ๊ฐ’์„ ์ง€์ •ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์—”๋“œํฌ์ธํŠธ์˜ ํฌํŠธ ๊ฐ’์€ ์—…ํƒ€์ž„ ์ฒดํฌ ๊ตฌ์„ฑ์— ์„ค์ •๋œ ๊ฐ’์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์„ฑ์— ์ง€์ •๋œ ํฌํŠธ๊ฐ€ ์—†์œผ๋ฉด ๊ฒ€์‚ฌ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

  • ์—…ํƒ€์ž„ ์ฒดํฌ ๊ตฌ์„ฑ์€ checker_type ํ•„๋“œ์— VPC_CHECKERS ๊ฐ’์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์—…ํƒ€์ž„ ์ฒดํฌ๋Š” ๊ณต๊ฐœ์ด๋ฏ€๋กœ ๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋Š” ์ด ํ•„๋“œ๋ฅผ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ JSON ์ฝ”๋“œ๋Š” ๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ์—์„œ VM ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•ด ๊ตฌ์„ฑ๋œ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ์˜ UptimeCheckConfig ๊ฐ์ฒด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

{
  "displayName": "private-check-demo",
  "monitoredResource": {
    "type": "servicedirectory_service",
    "labels": {
      "project_id": "SERVICE_DIRECTORY_PROJECT_ID",
      "service_name": "PRIVATE_SERVICE",
      "namespace_name": "PRIVATE_NAMESPACE",
      "location": "REGION"
    }
  },
  "httpCheck": {
    "requestMethod": "GET"
  },
  "period": "60s",
  "timeout": "10s",
  "checker_type": "VPC_CHECKERS"
}'

์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค๊ฐ€ ์—…ํƒ€์ž„ ์ฒดํฌ์™€ ๋™์ผํ•œ Google Cloud ํ”„๋กœ์ ํŠธ์— ์žˆ์„ ๋•Œ ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. gcloud CLI์˜ ๊ธฐ๋ณธ Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    gcloud config set project PROJECT_ID
    
  2. ํ”„๋กœ์ ํŠธ ID๋ฅผ ์ €์žฅํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    export PROJECT_ID=$(gcloud config get-value core/project)
    
  3. ์•ก์„ธ์Šค ํ† ํฐ์„ ์ €์žฅํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    export TOKEN=`gcloud auth print-access-token`
    
  4. curl ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ uptimeCheckConfigs.create ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์—ฌ๊ธฐ์— ๊ตฌ์„ฑ ๊ฐ์ฒด๋ฅผ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

    curl https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/uptimeCheckConfigs \
    -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    --request POST --data '{
    "displayName": "private-check-demo",
    "monitoredResource": {
      "type": "servicedirectory_service",
      "labels": {
        "project_id": "'"$PROJECT_ID"'",
        "service_name": "PRIVATE_SERVICE",
        "namespace_name": "PRIVATE_NAMESPACE",
        "location": "REGION"
      }
    },
    "httpCheck": {
      "requestMethod": "GET"
    },
    "period": "60s",
    "timeout": "10s",
    "checker_type": "VPC_CHECKERS"
    }'
    

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

API: ๋ชจ๋‹ˆํ„ฐ๋ง ํ”„๋กœ์ ํŠธ

๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ์— ๋Œ€ํ•œ ๊ตฌ์„ฑ์„ ๋งŒ๋“ค๋ ค๋ฉด UptimeCheckConfig ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ์ด ๊ฐ์ฒด๋ฅผ Cloud Monitoring API์˜ uptimeCheckConfigs.create ๋ฉ”์„œ๋“œ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ์˜ UptimeCheckConfig ๊ฐ์ฒด์™€ ๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ์˜ ๊ฐ์ฒด์˜ ์ฐจ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์—…ํƒ€์ž„ ์ฒดํฌ ๊ตฌ์„ฑ์— ์ง€์ •๋œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฆฌ์†Œ์Šค๋Š” servicedirectory_service ์œ ํ˜•์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฆฌ์†Œ์Šค ์œ ํ˜•์—๋Š” ๋‹ค์Œ ๋ผ๋ฒจ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    • project_id: ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค์™€ ์—ฐ๊ด€๋œ ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.
    • location: ์„œ๋น„์Šค์™€ ์—ฐ๊ด€๋œ ํด๋ผ์šฐ๋“œ ๋ฆฌ์ „์ž…๋‹ˆ๋‹ค.
    • namespace_name: ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.
    • service_name: ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
  • ์—…ํƒ€์ž„ ์ฒดํฌ ๊ตฌ์„ฑ์—์„œ port ๊ฐ’์„ ์ง€์ •ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์—”๋“œํฌ์ธํŠธ์˜ ํฌํŠธ ๊ฐ’์€ ์—…ํƒ€์ž„ ์ฒดํฌ ๊ตฌ์„ฑ์— ์„ค์ •๋œ ๊ฐ’์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์„ฑ์— ์ง€์ •๋œ ํฌํŠธ๊ฐ€ ์—†์œผ๋ฉด ๊ฒ€์‚ฌ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

  • ์—…ํƒ€์ž„ ์ฒดํฌ ๊ตฌ์„ฑ์€ checker_type ํ•„๋“œ์— VPC_CHECKERS ๊ฐ’์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์—…ํƒ€์ž„ ์ฒดํฌ๋Š” ๊ณต๊ฐœ์ด๋ฏ€๋กœ ๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋Š” ์ด ํ•„๋“œ๋ฅผ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ JSON ์ฝ”๋“œ๋Š” ๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ์—์„œ VM ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•ด ๊ตฌ์„ฑ๋œ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ์˜ UptimeCheckConfig ๊ฐ์ฒด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

{
  "displayName": "private-check-demo",
  "monitoredResource": {
    "type": "servicedirectory_service",
    "labels": {
      "project_id": "SERVICE_DIRECTORY_PROJECT_ID",
      "service_name": "PRIVATE_SERVICE",
      "namespace_name": "PRIVATE_NAMESPACE",
      "location": "REGION"
    }
  },
  "httpCheck": {
    "requestMethod": "GET"
  },
  "period": "60s",
  "timeout": "10s",
  "checker_type": "VPC_CHECKERS"
}'

์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค๊ฐ€ ์—…ํƒ€์ž„ ์ฒดํฌ Google Cloud ํ”„๋กœ์ ํŠธ์˜ ์ธก์ •ํ•ญ๋ชฉ ๋ฒ”์œ„๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง๋˜๋Š” Google Cloud ํ”„๋กœ์ ํŠธ์— ์žˆ์„ ๋•Œ ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๋งŒ๋“ค Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก gcloud CLI๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    gcloud config set project PROJECT_ID
    
  2. ํ”„๋กœ์ ํŠธ ID๋ฅผ ์ €์žฅํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    export PROJECT_ID=$(gcloud config get-value core/project)
    
  3. ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค๊ฐ€ ์ •์˜๋œ Google Cloud ํ”„๋กœ์ ํŠธ์˜ ํ”„๋กœ์ ํŠธ ID๋ฅผ ์ €์žฅํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    export MONITORED_PROJECT_ID=MONITORED_PROJECT_ID
    

    ์ด ํ”„๋กœ์ ํŠธ๋Š” ์—…ํƒ€์ž„ ์ฒดํฌ ํ”„๋กœ์ ํŠธ์˜ ์ธก์ •ํ•ญ๋ชฉ ๋ฒ”์œ„์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  4. ์•ก์„ธ์Šค ํ† ํฐ์„ ์ €์žฅํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    export TOKEN=`gcloud auth print-access-token`
    
  5. curl ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ uptimeCheckConfigs.create ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์—ฌ๊ธฐ์— ๊ตฌ์„ฑ ๊ฐ์ฒด๋ฅผ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

    curl https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/uptimeCheckConfigs \
    -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    --request POST --data '{
    "displayName": "private-check-demo",
    "monitoredResource": {
      "type": "servicedirectory_service",
      "labels": {
        "project_id": "'"$MONITORED_PROJECT_ID"'",
        "service_name": "PRIVATE_SERVICE",
        "namespace_name": "PRIVATE_NAMESPACE",
        "location": "REGION"
      }
    },
    "httpCheck": {
      "requestMethod": "GET"
    },
    "period": "60s",
    "timeout": "10s",
    "checker_type": "VPC_CHECKERS"
    }'
    

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

์—…ํƒ€์ž„ ์ฒดํฌ ๊ฒฐ๊ณผ๊ฐ€ Monitoring์œผ๋กœ ์ „๋‹ฌ๋˜๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ๊นŒ์ง€ ์ตœ๋Œ€ 5๋ถ„์ด ์ง€์—ฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๊ฐ„ ๋™์•ˆ ์—…ํƒ€์ž„ ์ฒดํฌ ๋Œ€์‹œ๋ณด๋“œ์—๋Š” '์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์—†์Œ' ์ƒํƒœ๊ฐ€ ๋ณด๊ณ ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์š”๊ฑด ๋‹จ๊ณ„

Google Cloud ์ฝ˜์†” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. Google Cloud ์ฝ˜์†”์€ ๋ชจ๋“  ๊ธฐ๋ณธ ์š”๊ฑด ๋‹จ๊ณ„๋ฅผ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ น์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๋งŒ๋“ค๊ธฐ ์ „์— ๋จผ์ € ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ
  2. ์„œ๋น„์Šค ๊ณ„์ • ์Šน์ธ
  3. ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™ ๊ตฌ์„ฑ

์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ

๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋Š” ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค๋กœ ๊ธฐ๋ก๋˜๋Š” ๋‚ด๋ถ€ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฆฌ์†Œ์Šค ๊ฐ€์šฉ์„ฑ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ์˜ VM
  • L4 ๋‚ด๋ถ€ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ(ILB)

๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์—”๋“œํฌ์ธํŠธ: ์—”๋“œํฌ์ธํŠธ๋Š” ์„œ๋น„์Šค๊ฐ€ ์š”์ฒญ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” IP ์ฃผ์†Œ ๋ฐ ํฌํŠธ ๊ฐ’์˜ ์Œ์ž…๋‹ˆ๋‹ค. ์„œ๋น„์Šค์— ์—ฌ๋Ÿฌ ์—”๋“œํฌ์ธํŠธ๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ ํ•˜๋‚˜์˜ ์—”๋“œํฌ์ธํŠธ๊ฐ€ ๋ฌด์ž‘์œ„๋กœ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.
  • ์„œ๋น„์Šค: ์„œ๋น„์Šค๋Š” ์ผ๋ จ์˜ ๋™์ž‘์„ ์ œ๊ณตํ•˜๋Š” ์—”๋“œํฌ์ธํŠธ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค. ์„œ๋น„์Šค๋Š” ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ์˜ ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค.
  • ๋„ค์ž„์ŠคํŽ˜์ด์Šค: ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—๋Š” ์ผ๋ จ์˜ ์„œ๋น„์Šค ์ด๋ฆ„ ์—ฐ๊ด€๋œ ์—”๋“œํฌ์ธํŠธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ผ๊ด€์ ์ธ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์„œ๋น„์Šค๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gcloud CLI ๋˜๋Š” Google Cloud ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ตฌ์„ฑ ๋‹จ๊ณ„๊ฐ€ ์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ ๋Œ€ํ™”์ƒ์ž์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Google Cloud ์ฝ˜์†”

Google Cloud ์ฝ˜์†”์„ ์‚ฌ์šฉํ•  ๋•Œ ๋‚ด๋ถ€ IP๋ฅผ ์—…ํƒ€์ž„ ์ฒดํฌ์˜ ๋ฆฌ์†Œ์Šค ์œ ํ˜•์œผ๋กœ ์„ ํƒํ•˜๋ฉด ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

gcloud CLI - VM

์ด ๋ฌธ์„œ์—์„œ ์„œ๋น„์Šค, ๋„ค์ž„์ŠคํŽ˜์ด์Šค, ์—”๋“œํฌ์ธํŠธ์— ์‚ฌ์šฉ๋œ ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ gcloud service-directory ๋ช…๋ น์–ด ๊ทธ๋ฃน์„ ์ฐธ์กฐํ•˜์„ธ์š”.

VM์˜ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก Google Cloud CLI๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    gcloud config set project PROJECT_ID
    
  2. ํ”„๋กœ์ ํŠธ ID์™€ ํ”„๋กœ์ ํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    export PROJECT_ID=$(gcloud config get-value core/project)
    
    export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
    
  3. ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud service-directory namespaces create PRIVATE_NAMESPACE --location=REGION
    
  4. ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud service-directory services create PRIVATE_SERVICE \
    --namespace PRIVATE_NAMESPACE --location=REGION
    
  5. ๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ์—์„œ VM์˜ IP ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    export INTERNAL_IP=$(gcloud compute instances describe --zone=ZONE \
    PRIVATE_SERVICE_INSTANCE --format='get(networkInterfaces[0].networkIP)')
    
  6. ๋‚ด๋ถ€ IP ์ฃผ์†Œ ๋ฐ ํฌํŠธ๊ฐ€ ํฌํ•จ๋œ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud service-directory endpoints create PRIVATE_ENDPOINT \
    --location=REGION --namespace=PRIVATE_NAMESPACE \
    --service=PRIVATE_SERVICE \
    --network=projects/$PROJECT_NUMBER/locations/global/networks/PRIVATE_CHECK_NETWORK \
    --address=$INTERNAL_IP --port=80
    

gcloud CLI - L4 ILB

์ด ๋ฌธ์„œ์—์„œ ์„œ๋น„์Šค, ๋„ค์ž„์ŠคํŽ˜์ด์Šค, ์—”๋“œํฌ์ธํŠธ์— ์‚ฌ์šฉ๋œ ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ gcloud service-directory ๋ช…๋ น์–ด ๊ทธ๋ฃน์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ์‚ฌ์šฉํ•ด์„œ L4 ILB์— ๋Œ€ํ•ด ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค์–ด L4 ๋‚ด๋ถ€ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ(ILB) ๊ฐ€์šฉ์„ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ L4 ILB๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์ œ๊ณต๋˜๋Š” ์ž๋™ ํ†ตํ•ฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ๋‚ด๋ถ€ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์ œ๊ณต๋˜๋Š” ์ž๋™ ํ†ตํ•ฉ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ƒ์„ฑ๋œ L4 ILB๊ฐ€ ์žˆ์œผ๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก Google Cloud CLI๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    gcloud config set project PROJECT_ID
    
  2. ํ”„๋กœ์ ํŠธ ID์™€ ํ”„๋กœ์ ํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    export PROJECT_ID=$(gcloud config get-value core/project)
    
    export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
    
  3. ๋ชจ๋“  ์—…ํƒ€์ž„ ๊ฒ€์‚ฌ๊ธฐ์—์„œ L4 ILB๋กœ์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ํ—ˆ์šฉํ•˜๋ ค๋ฉด ILB์— ๋Œ€ํ•ด ์ „์—ญ ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    gcloud compute forwarding-rules update ILB_FORWARDING_RULE_NAME \
    --region=ILB_REGION --allow-global-access
    

    L4 ILB์—์„œ ์ „์—ญ ์•ก์„ธ์Šค๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ILB_REGION์ด ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ผ ๋•Œ๋งŒ ์—…ํƒ€์ž„ ์ธก์ •ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • us-east4
    • us-central1
    • us-west1
    • europe-west1
    • southamerica-east1
    • asia-southeast1
  4. ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud service-directory namespaces create PRIVATE_NAMESPACE_FOR_ILB\
    --location=REGION
    
  5. ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud service-directory services create PRIVATE_SERVICE_FOR_ILB \
    --namespace PRIVATE_NAMESPACE_FOR_ILB --location=REGION
    
  6. ๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ์—์„œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์˜ IP ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    export INTERNAL_IP=$( gcloud compute forwarding-rules describe ILB_FORWARDING_RULE_NAME\
    --region=ILB_REGION --format='get(IPAddress)')
    
  7. ๋‚ด๋ถ€ IP ์ฃผ์†Œ ๋ฐ ํฌํŠธ๊ฐ€ ํฌํ•จ๋œ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud service-directory endpoints create PRIVATE_ENDPOINT_FOR_ILB \
    --location=ILB_REGION --namespace=PRIVATE_NAMESPACE_FOR_ILB \
    --service=PRIVATE_SERVICE_FOR_ILB \
    --network=projects/$PROJECT_NUMBER/locations/global/networks/PRIVATE_CHECK_NETWORK \
    --address=$INTERNAL_IP --port=80
    

์„œ๋น„์Šค ๊ณ„์ • ์Šน์ธ

์—…ํƒ€์ž„ ์ฒดํฌ๋Š” Monitoring ์†Œ์œ ์˜ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ณ„์ • ์ด๋ฆ„์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.

service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com

์ด ์„œ๋น„์Šค ๊ณ„์ •์ด ์—†์œผ๋ฉด ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๋งŒ๋“ค ๋•Œ Monitoring์—์„œ ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค ๊ณ„์ •์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

์ด ์„น์…˜์—์„œ๋Š” ๊ธฐ์กด ์„œ๋น„์Šค ๊ณ„์ •์— ํ•„์š”ํ•œ ์—ญํ• ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Google Cloud ์ฝ˜์†”

Google Cloud ์ฝ˜์†”์„ ์‚ฌ์šฉํ•  ๋•Œ ๋‚ด๋ถ€ IP๋ฅผ ์—…ํƒ€์ž„ ์ฒดํฌ์˜ ๋ฆฌ์†Œ์Šค ์œ ํ˜•์œผ๋กœ ์„ ํƒํ•˜๋ฉด ์„œ๋น„์Šค ๊ณ„์ •์„ ์Šน์ธํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

API: ๋ฒ”์œ„ ์ง€์ • ํ”„๋กœ์ ํŠธ

๊ธฐ์กด ์„œ๋น„์Šค ๊ณ„์ •์— ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์—ญํ• ์„ ๋ถ€์—ฌํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๋งŒ๋“ค Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก gcloud CLI๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    gcloud config set project PROJECT_ID
    
  2. ํ”„๋กœ์ ํŠธ ID์™€ ํ”„๋กœ์ ํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    export PROJECT_ID=$(gcloud config get-value core/project)
    
    export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
    
  3. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \
    --role='roles/servicedirectory.viewer'
    
    gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \
    --role='roles/servicedirectory.pscAuthorizedService'
    

    ์œ„ ๋ช…๋ น์–ด๋Š” ์„œ๋น„์Šค ๊ณ„์ •์— ๋‹ค์Œ ์—ญํ• ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

    • roles/servicedirectory.viewer
    • roles/servicedirectory.pscAuthorizedService

API: ๋ชจ๋‹ˆํ„ฐ๋ง ํ”„๋กœ์ ํŠธ

๊ธฐ์กด ์„œ๋น„์Šค ๊ณ„์ •์— ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์—ญํ• ์„ ๋ถ€์—ฌํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๋งŒ๋“ค Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก gcloud CLI๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    gcloud config set project PROJECT_ID
    
  2. ํ”„๋กœ์ ํŠธ ID์™€ ํ”„๋กœ์ ํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    export PROJECT_ID=$(gcloud config get-value core/project)
    
    export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
    
  3. ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค๊ฐ€ ์ •์˜๋œ ํ”„๋กœ์ ํŠธ์˜ ํ”„๋กœ์ ํŠธ ID๋ฅผ ์ €์žฅํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    export MONITORED_PROJECT_ID=MONITORED_PROJECT_ID
    

    ์ด ํ”„๋กœ์ ํŠธ๋Š” ์—…ํƒ€์ž„ ์ฒดํฌ ํ”„๋กœ์ ํŠธ์˜ ์ธก์ •ํ•ญ๋ชฉ ๋ฒ”์œ„์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  4. ๋„คํŠธ์›Œํฌ๊ฐ€ ์ •์˜๋œ ํ”„๋กœ์ ํŠธ์˜ ํ”„๋กœ์ ํŠธ ID๋ฅผ ์ €์žฅํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    export NETWORK_PROJECT_ID=NETWORK_PROJECT_ID
    

    ์ด ํ”„๋กœ์ ํŠธ๋Š” ์—…ํƒ€์ž„ ์ฒดํฌ ํ”„๋กœ์ ํŠธ์˜ ์ธก์ •ํ•ญ๋ชฉ ๋ฒ”์œ„์— ์žˆ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

  5. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud projects add-iam-policy-binding $MONITORED_PROJECT_ID \
    --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \
    --role='roles/servicedirectory.viewer'
    
    gcloud projects add-iam-policy-binding $NETWORK_PROJECT_ID \
    --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \
    --role='roles/servicedirectory.pscAuthorizedService'
    

    ์œ„ ๋ช…๋ น์–ด๋Š” ์„œ๋น„์Šค ๊ณ„์ •์— ๋‹ค์Œ ์—ญํ• ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

    • roles/servicedirectory.viewer: ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค๊ฐ€ ๊ตฌ์„ฑ๋œ ๋ชจ๋‹ˆํ„ฐ๋ง ํ”„๋กœ์ ํŠธ $SERVICE_MONITORED_PROJECT_ID์šฉ
    • roles/servicedirectory.pscAuthorizedService: ๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ๊ฐ€ ๊ตฌ์„ฑ๋œ ํ”„๋กœ์ ํŠธ $NETWORK_PROJECT_ID์šฉ

๋ฐฉํ™”๋ฒฝ ๊ทœ์น™ ๊ตฌ์„ฑ

๊ฒฝ๋กœ 35.199.192.0/19์—์„œ ์ธ๋ฐ”์šด๋“œ TCP ํŠธ๋ž˜ํ”ฝ์„ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋Š” ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 35.199.192.0/19์˜ ๊ฒฝ๋กœ๋Š” ๋น„๊ณต๊ฐœ ๋ผ์šฐํŒ…์„ ์‚ฌ์šฉํ•˜๋Š” ์ „๋‹ฌ ๋Œ€์ƒ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ VPC ๊ฒฝ๋กœ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Google Cloud ์ฝ˜์†”

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

gcloud CLI

๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•ด ๋ฐฉํ™”๋ฒฝ์„ ํ†ตํ•œ ์ธ๋ฐ”์šด๋“œ TCP ํŠธ๋ž˜ํ”ฝ์„ ํ—ˆ์šฉํ•˜๋Š” ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๋งŒ๋“ค Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก gcloud CLI๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    gcloud config set project PROJECT_ID
    
  2. ํ”„๋กœ์ ํŠธ ID์™€ ํ”„๋กœ์ ํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    export PROJECT_ID=$(gcloud config get-value core/project)
    
  3. ๋„คํŠธ์›Œํฌ ๊ทœ์น™์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud compute firewall-rules create PRIVATE_CHECK_NETWORK_HOPE_RULE \
    --network="PRIVATE_CHECK_NETWORK"  \
    --action=allow   --direction=ingress   --source-ranges="35.199.192.0/19" \
    --rules=tcp   --project="$PROJECT_ID"
    

    ์œ„ ๋ช…๋ น์–ด์—์„œ PRIVATE_CHECK_NETWORK๋Š” ์ด ๊ทœ์น™์ด ์—ฐ๊ฒฐ๋œ ๋„คํŠธ์›Œํฌ์ด๊ณ  PRIVATE_CHECK_NETWORK_HOPE_RULE์€ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์ด ๋‹จ๊ณ„์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋„คํŠธ์›Œํฌ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ตฌ์„ฑ์— ๊ด€๊ณ„์—†์ด SSL ์ธ์ฆ์„œ ๊ฒ€์ฆ์ด ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค.

๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋Š” ๋ฆฌ๋””๋ ‰์…˜์ด ํฌํ•จ๋œ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ

์ด ์„น์…˜์—์„œ๋Š” ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜ค๋ฅ˜์™€ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ ์‹คํŒจ

Google Cloud ํ”„๋กœ์ ํŠธ ์„ค์ •์œผ๋กœ ์ธํ•ด ์—…ํƒ€์ž„ ์ฒดํฌ์—์„œ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค ๊ณ„์ •์— ํ• ๋‹น๋œ ์—ญํ• ์ด ์ˆ˜์ •๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ๋Š” ์„œ๋น„์Šค ๊ณ„์ •์— ํ•„์š”ํ•œ ์—ญํ• ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Google Cloud ์ฝ˜์†”

Google Cloud ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ๋งŒ๋“ค๋ฉด Google Cloud ์ฝ˜์†”์—์„œ ์„œ๋น„์Šค ๊ณ„์ •์— ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์—ญํ• ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ณ„์ •์— ์—ญํ• ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์„œ๋น„์Šค ๊ณ„์ • ์Šน์ธ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

API: ๋ฒ”์œ„ ์ง€์ • ํ”„๋กœ์ ํŠธ

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

  • ํ”„๋กœ์ ํŠธ์—์„œ ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•ด ์ž๋™ ์—ญํ•  ๋ถ€์—ฌ๊ฐ€ ํ—ˆ์šฉ๋˜๋ฉด ์ฒซ ๋ฒˆ์งธ ์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ๊ฐ€ ์„ฑ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ณ„์ •์ด ์ƒ์„ฑ๋˜๊ณ  ํ•„์š”ํ•œ ์—ญํ• ์ด ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.

  • ํ”„๋กœ์ ํŠธ์—์„œ ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•ด ์ž๋™ ์—ญํ•  ๋ถ€์—ฌ๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ์ฒซ ๋ฒˆ์งธ ์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ณ„์ •์ด ์ƒ์„ฑ๋˜์ง€๋งŒ ์—ญํ• ์ด ๋ถ€์—ฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ์„œ๋น„์Šค ๊ณ„์ •์„ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ถŒํ•œ์ด ์ „ํŒŒ๋  ๋•Œ๊นŒ์ง€ ๋ช‡ ๋ถ„ ์ •๋„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
  3. ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ๋ฅผ ๋‹ค์‹œ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

API: ๋ชจ๋‹ˆํ„ฐ๋ง ํ”„๋กœ์ ํŠธ

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

์„œ๋น„์Šค ๊ณ„์ • ์Šน์ธ ๋ฐฉ๋ฒ•์€ ์‚ฌ์šฉ ์ค‘์ธ Google Cloud ํ”„๋กœ์ ํŠธ ์ˆ˜ ๋ฐ ๊ด€๊ณ„์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ตœ๋Œ€ 4๊ฐœ๊นŒ์ง€ ํ”„๋กœ์ ํŠธ๊ฐ€ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ๋ฅผ ์ •์˜ํ•œ ํ”„๋กœ์ ํŠธ
  • ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ํ”„๋กœ์ ํŠธ
  • VPC ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•œ ํ”„๋กœ์ ํŠธ
  • VM ๋˜๋Š” ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์™€ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ๋ฆฌ์†Œ์Šค๊ฐ€ ๊ตฌ์„ฑ๋œ ํ”„๋กœ์ ํŠธ. ์ด ํ”„๋กœ์ ํŠธ์—๋Š” ์—ฌ๊ธฐ์—์„œ ์„ค๋ช…๋œ ์„œ๋น„์Šค ๊ณ„์ • ์Šน์ธ์— ์—ญํ• ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ์„œ๋น„์Šค ๊ณ„์ •์„ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ถŒํ•œ์ด ์ „ํŒŒ๋  ๋•Œ๊นŒ์ง€ ๋ช‡ ๋ถ„ ์ •๋„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
  3. ๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ๋ฅผ ๋‹ค์‹œ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

์•ก์„ธ์Šค๊ฐ€ ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

VPC_ACCESS_DENIED ๊ฒฐ๊ณผ์™€ ํ•จ๊ป˜ ์—…ํƒ€์ž„ ์ฒดํฌ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฐ๊ณผ๋Š” ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ ๋˜๋Š” ์„œ๋น„์Šค ๊ณ„์ • ์Šน์ธ ์ค‘ ์ผ๋ถ€๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์—…ํƒ€์ž„ ์ฒดํฌ ๋งŒ๋“ค๊ธฐ ์‹คํŒจ์— ์„ค๋ช…๋œ ๋Œ€๋กœ ๋ฒ”์œ„ ์ง€์ • ํ”„๋กœ์ ํŠธ ๋˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„œ๋น„์Šค ๊ณ„์ •์ด ์Šน์ธ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋น„๊ณต๊ฐœ ๋„คํŠธ์›Œํฌ ์•ก์„ธ์Šค์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋„คํŠธ์›Œํฌ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ์˜ ๋น„์ •์ƒ ๊ฒฐ๊ณผ

์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค์— VM์ด ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๊ณ  ์„œ๋น„์Šค ๊ตฌ์„ฑ์— ์—ฌ๋Ÿฌ ์—”๋“œํฌ์ธํŠธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. VM ์ค‘ ํ•˜๋‚˜๋ฅผ ์ข…๋ฃŒํ•ด๋„ ์—…ํƒ€์ž„ ์ฒดํฌ๊ฐ€ ๊ณ„์† ์„ฑ๊ณต์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ตฌ์„ฑ์— ์—”๋“œํฌ์ธํŠธ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ํฌํ•จ๋œ ๊ฒฝ์šฐ ํ•˜๋‚˜๊ฐ€ ๋ฌด์ž‘์œ„๋กœ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•œ ์—”๋“œํฌ์ธํŠธ์™€ ์—ฐ๊ฒฐ๋œ VM์ด ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ VM ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋‹ค์šด๋˜์–ด๋„ ์—…ํƒ€์ž„ ์ฒดํฌ๋Š” ์„ฑ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ํ—ค๋”

์—…ํƒ€์ž„ ์ฒดํฌ๊ฐ€ ์˜ค๋ฅ˜ ๋˜๋Š” ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๋Š” ๊ธฐ๋ณธ ํ—ค๋” ๊ฐ’์„ ์žฌ์ •์˜ํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„๊ณต๊ฐœ ์—…ํƒ€์ž„ ์ฒดํฌ์— ๋Œ€ํ•ด ๋Œ€์ƒ ์—”๋“œํฌ์ธํŠธ๋กœ ์š”์ฒญ์ด ์ „์†ก๋  ๋•Œ ์š”์ฒญ์—๋Š” ๋‹ค์Œ ํ—ค๋” ๋ฐ ๊ฐ’์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

ํ—ค๋” ๊ฐ’
HTTP_USER_AGENT GoogleStackdriverMonitoring-UptimeChecks(https://cloud.google.com/monitoring)
HTTP_CONNECTION keep-alive
HTTP_HOST ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์—”๋“œํฌ์ธํŠธ์˜ IP
HTTP_ACCEPT_ENCODING gzip, deflate, br
CONTENT_LENGTH ์—…ํƒ€์ž„ ๊ฒŒ์‹œ ๋ฐ์ดํ„ฐ์—์„œ ๊ณ„์‚ฐ

์ด๋Ÿฌํ•œ ๊ฐ’์„ ์žฌ์ •์˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฉด ๋‹ค์Œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์—…ํƒ€์ž„ ์ฒดํฌ๊ฐ€ ์˜ค๋ฅ˜ ๋ณด๊ณ 
  • ์žฌ์ •์˜ ๊ฐ’์ด ์‚ญ์ œ๋˜๊ณ  ํ…Œ์ด๋ธ”์˜ ๊ฐ’์œผ๋กœ ๋Œ€์ฒด๋จ

ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์—†์Œ

์—…ํƒ€์ž„ ์ฒดํฌ๊ฐ€ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค์™€ ๋‹ค๋ฅธ Google Cloud ํ”„๋กœ์ ํŠธ์— ์žˆ์œผ๋ฉด ์—…ํƒ€์ž„ ์ฒดํฌ ๋Œ€์‹œ๋ณด๋“œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—…ํƒ€์ž„ ์ฒดํฌ๊ฐ€ ํฌํ•จ๋œ Google Cloud ํ”„๋กœ์ ํŠธ์—์„œ ์„œ๋น„์Šค ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค๊ฐ€ ํฌํ•จ๋œ Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋‹ˆํ„ฐ๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ๋‚˜์—ดํ•˜๊ณ  ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ์˜ ์ธก์ •ํ•ญ๋ชฉ ๋ฒ”์œ„ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

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