์ธ์Šคํ„ด์Šค ๊ด€๋ฆฌ ๋ฐฉ์‹

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

App Engine์€ ํŠธ๋ž˜ํ”ฝ ๋ณ€๋™์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ ํŠธ๋ž˜ํ”ฝ ์–‘๊ณผ ๊ด€๊ณ„์—†์ด ์‹คํ–‰๋  ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๊ณผ ์‹œ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋ ค๋ฉด ์•ฑ์˜ ํ™•์žฅ ์œ ํ˜•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ™•์žฅ ์„ค์ •์€ app.yaml ํŒŒ์ผ์˜ ์ผ๋ถ€๋กœ App Engine ๋ฒ„์ „ ์ˆ˜์ค€์—์„œ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ™•์žฅ ์œ ํ˜•

App Engine์€ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๋ฐฉ์‹๊ณผ ์‹œ๊ธฐ๋ฅผ ์ œ์–ดํ•˜๋Š” ๋‹ค์Œ ํ™•์žฅ ์œ ํ˜•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ์ž๋™(๊ธฐ๋ณธ๊ฐ’)
  • ๊ธฐ๋ณธ
  • ์ˆ˜๋™

์•ฑ์˜ app.yaml์—์„œ ํ™•์žฅ ์œ ํ˜•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์•ฑ์€ ์ž๋™ ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ App Engine์—์„œ ์œ ํœด ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

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

๊ธฐ๋Šฅ ์ž๋™ ํ™•์žฅ ๊ธฐ๋ณธ ํ™•์žฅ ์ˆ˜๋™ ํ™•์žฅ
์š”์ฒญ ์ œํ•œ ์‹œ๊ฐ„ HTTP ์š”์ฒญ ๋ฐ ํƒœ์Šคํฌ ํ ์ž‘์—…์˜ ๊ฒฝ์šฐ 10๋ถ„ ์•ฑ์ด ์ด ์ œํ•œ ์‹œ๊ฐ„ ๋‚ด์— ์š”์ฒญ์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์œผ๋ฉด App Engine์€ ์š”์ฒญ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ค‘๋‹จํ•˜๊ณ  ์ฝ”๋“œ๊ฐ€ ์ฒ˜๋ฆฌํ•  ์˜ค๋ฅ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด ๋Ÿฐํƒ€์ž„(์ž๋ฐ” 8, PHP 5, Python 2):

  • ํƒœ์Šคํฌ ํ ์ž‘์—… ๋ฐ ํฌ๋ก  ์ž‘์—…์˜ ์š”์ฒญ ์ œํ•œ ์‹œ๊ฐ„์€ 10๋ถ„์ž…๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ HTTP ์š”์ฒญ ์ œํ•œ ์‹œ๊ฐ„์€ 1๋ถ„์ž…๋‹ˆ๋‹ค.
HTTP ์š”์ฒญ ๋ฐ ํƒœ์Šคํฌ ํ ์ž‘์—…์— 24์‹œ๊ฐ„. ์•ฑ์ด ์ด ์ œํ•œ ์‹œ๊ฐ„ ๋‚ด์— ์š”์ฒญ์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์œผ๋ฉด App Engine์€ ์š”์ฒญ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ค‘๋‹จํ•˜๊ณ  ์ฝ”๋“œ๊ฐ€ ์ฒ˜๋ฆฌํ•  ์˜ค๋ฅ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ํ™•์žฅ ์ธ์Šคํ„ด์Šค๋Š” /_ah/start๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  HTTP ์‘๋‹ต ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ณ  ์žฅ์‹œ๊ฐ„ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ํ™•์žฅ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ(์ž๋ฐ”๋งŒ ํ•ด๋‹น) ํ—ˆ์šฉ๋˜์ง€ ์•Š์Œ ํ—ˆ์šฉ๋จ ํ—ˆ์šฉ๋จ
์ฃผ๊ฑฐ์ง€ ์ธ์Šคํ„ด์Šค๋Š” ์‚ฌ์šฉ๋Ÿ‰ ํŒจํ„ด์— ๋”ฐ๋ผ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋Š” idle_timeout ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋”ฐ๋ผ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด idle_timeout์„ ์ดˆ๊ณผํ•  ๋•Œ๊นŒ์ง€ ์š”์ฒญ์ด ์ˆ˜์‹ ๋˜์ง€ ์•Š์•„ ์œ ํœด ์ƒํƒœ๊ฐ€ ๋œ ์ธ์Šคํ„ด์Šค๋Š” ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์œ ์ง€๋˜๊ณ  ์ƒํƒœ๋Š” ์š”์ฒญ ๊ฐ„์— ๋ณด์กด๋ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๊ฐ€ ์ค‘์ง€๋˜๋ฉด /_ah/stop ์š”์ฒญ์ด ๋กœ๊ทธ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

/_ah/stop ํ•ธ๋“ค๋Ÿฌ ๋˜๋Š” ๋“ฑ๋ก๋œ ์ข…๋ฃŒ ํ›„ํฌ(์ž๋ฐ”, Python)๊ฐ€ ์žˆ์œผ๋ฉด 30์ดˆ๊ฐ€ ์ง€๋‚œ ํ›„ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
์‹œ์ž‘ ๋ฐ ์ข…๋ฃŒ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์ƒ์„ฑ๋˜์–ด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์œ ํœด ์ƒํƒœ๊ฐ€ ๋˜๋ฉด ์ž๋™์œผ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. idle_timeout ๊ตฌ์„ฑ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋”ฐ๋ผ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์ƒ์„ฑ๋˜์–ด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์œ ํœด ์ƒํƒœ๊ฐ€ ๋˜๋ฉด ์ž๋™์œผ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์ˆ˜๋™์œผ๋กœ ์ค‘์ง€๋œ ์ธ์Šคํ„ด์Šค์—๋Š” ๊ฐ•์ œ ์ข…๋ฃŒ๋˜๊ธฐ ์ „์— ์š”์ฒญ ์ฒ˜๋ฆฌ๋ฅผ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ๋„๋ก 30์ดˆ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. App Engine์€ ์‹œ์ž‘ ์š”์ฒญ์„ /_ah/start์— ๋Œ€ํ•œ ๋นˆ GET ์š”์ฒญ์˜ ํ˜•ํƒœ๋กœ ์ธ์Šคํ„ด์Šค์—์„œ ์ž๋™์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ™•์žฅ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ˆ˜๋™์œผ๋กœ ์ค‘์ง€๋œ ์ธ์Šคํ„ด์Šค์—๋Š” ๊ฐ•์ œ ์ข…๋ฃŒ๋˜๊ธฐ ์ „์— ์š”์ฒญ ์ฒ˜๋ฆฌ๋ฅผ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ๋„๋ก 30์ดˆ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
์ธ์Šคํ„ด์Šค ์ฃผ์†Œ ์ง€์ • ์ธ์Šคํ„ด์Šค๊ฐ€ ์ต๋ช…์ž…๋‹ˆ๋‹ค. ์„œ๋น„์Šค 's'์˜ ๋ฒ„์ „ 'v'์— ๋Œ€ํ•œ ์ธ์Šคํ„ด์Šค 'i'๋Š” https://i-dot-v-dot-s-dot-app_id.REGION_ID.r.appspot.com๊ณผ ๊ฐ™์€ URL๋กœ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค์Šคํ…€ ๋„๋ฉ”์ธ์— ์™€์ผ๋“œ ์นด๋“œ ํ•˜์œ„ ๋„๋ฉ”์ธ ๋งคํ•‘์„ ์„ค์ •ํ•˜๋ฉด https://s.domain.com ๋˜๋Š” https://i.s.domain.com ํ˜•์‹์˜ URL์„ ํ†ตํ•ด ์„œ๋น„์Šค ๋˜๋Š” ์ธ์Šคํ„ด์Šค์˜ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ธ์Šคํ„ด์Šค์˜ ์ƒํƒœ๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์บ์‹œํ•˜๊ณ  ํ›„์† ์š”์ฒญ์—์„œ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ™•์žฅ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
ํ™•์žฅ App Engine์—์„œ ์ฒ˜๋ฆฌ๋Ÿ‰์— ๋”ฐ๋ผ ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฐ์œจ์€ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ๋ฒ„์ „ ๋‹จ์œ„๋กœ ์ œ๊ณต๋˜๋Š” automatic_scaling ์„ค์ •์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค๋Š” basic_scaling ์„ค์ •์˜ max_instances ๋งค๊ฐœ๋ณ€์ˆ˜์— ์žˆ๋Š” ์ตœ๋Œ€ ์ธ์Šคํ„ด์Šค ์ˆ˜ ์„ค์ •์„ ํ†ตํ•ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ์ธ์Šคํ„ด์Šค ์ˆ˜๋Š” ์ฒ˜๋ฆฌ๋Ÿ‰์— ๋”ฐ๋ผ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์„œ๋น„์Šค์˜ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ๊ฐ ๋ฒ„์ „์˜ ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ธ์Šคํ„ด์Šค ์ˆ˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์œ ์ง€๋˜๋Š” ๋ฐ์ดํ„ฐ ์„ธํŠธ ํฌ๊ธฐ ๋˜๋Š” ์›ํ•˜๋Š” ์˜คํ”„๋ผ์ธ ์ž‘์—… ์ฒ˜๋ฆฌ๋Ÿ‰์— ๋Œ€์‘ํ•ฉ๋‹ˆ๋‹ค.

๋™์  ์ธ์Šคํ„ด์Šค ํ™•์žฅ

๊ธฐ๋ณธ ๋˜๋Š” ์ž๋™ ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜๋Š” App Engine ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ˆ˜์‹ ๋˜๋Š” ์š”์ฒญ ๋ณผ๋ฅจ์— ๋”ฐ๋ผ ์ง€์ •๋œ ์‹œ๊ฐ„์— ์—ฌ๋Ÿฌ ๋™์  ์ธ์Šคํ„ด์Šค๋ฅผ ํ†ตํ•ด ๊ตฌ๋™๋ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์š”์ฒญ์ด ์ฆ๊ฐ€ํ•˜๋ฉด ๋™์  ์ธ์Šคํ„ด์Šค ์ˆ˜๋„ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ์•ฑ

๊ธฐ๋ณธ ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ˆ˜์‹  ์š”์ฒญ ๋ณผ๋ฅจ ์ฆ๊ฐ€์— ๋”ฐ๋ผ ์ง€์—ฐ ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚˜๋”๋ผ๋„ App Engine์€ ๋น„์šฉ์„ ๋‚ฎ๊ฒŒ ์œ ์ง€ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์‹  ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์กด ์ธ์Šคํ„ด์Šค๊ฐ€ ์—†์œผ๋ฉด App Engine์€ ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•œ ํ›„์—๋„ ์ƒˆ ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹œ์ž‘ ํ”„๋กœ์„ธ์Šค๋ฅผ ์™„๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์ผ๋ถ€ ์š”์ฒญ์„ ํ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๋ ค๋ฉด ์ž๋™ ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฏธ๋ฆฌ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ž๋™ ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ์•ฑ

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

์›ํ•˜๋Š” ์„ฑ๋Šฅ๊ณผ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋น„์šฉ ๊ฐ„์˜ ๊ท ํ˜•์„ ์ด๋ฃจ๋„๋ก ์ž๋™ ํ™•์žฅ ์„ค์ •์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์„ค์ •์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ž๋™ ํ™•์žฅ ์„ค์ • ์„ค๋ช…
๋Œ€์ƒ CPU ์‚ฌ์šฉ๋ฅ  CPU ์‚ฌ์šฉ๋ฅ  ๊ธฐ์ค€์„ ์„ค์ •ํ•ด ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ๋Š˜๋ฆฌ๊ธฐ ์‹œ์ž‘ํ•  CPU ์‚ฌ์šฉ๋Ÿ‰ ๊ธฐ์ค€์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
๋Œ€์ƒ ์ฒ˜๋ฆฌ๋Ÿ‰ ์‚ฌ์šฉ๋ฅ  ๊ธฐ์ค€ ๋„๋‹ฌ ํ›„ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ๋Š˜๋ฆฌ๊ธฐ ์‹œ์ž‘ํ•  ๋™์‹œ ์š”์ฒญ ์ˆ˜์˜ ์ฒ˜๋ฆฌ๋Ÿ‰ ๊ธฐ์ค€์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์ตœ๋Œ€ ๋™์‹œ ์š”์ฒญ ์ˆ˜ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์ „์— ์ธ์Šคํ„ด์Šค๊ฐ€ ์ˆ˜๋ฝํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋™์‹œ ์š”์ฒญ ์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

App Engine ์Šค์ผ€์ค„๋Ÿฌ ์„ค์ • ๋™์˜์ƒ์„ ํ†ตํ•ด ์ด ์„ค์ •์˜ ํšจ๊ณผ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

์ถ•์†Œ

์š”์ฒญ ๋ณผ๋ฅจ์ด ๊ฐ์†Œํ•˜๋ฉด App Engine์—์„œ๋Š” ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ถ•์†Œ๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ˜„์žฌ ์ธ์Šคํ„ด์Šค ๋ชจ๋‘ ์ตœ์ ์˜ ํšจ์œจ์„ฑ๊ณผ ๋น„์šฉ ํšจ๊ณผ์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

์ž๋™ ํ™•์žฅ์—์„œ ์ถ•์†Œ

์•ฑ์—์„œ ์ž๋™ ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์•ฝ 15๋ถ„ ๋™์•ˆ ๋น„ํ™œ์„ฑ ์ƒํƒœ๊ฐ€ ์ง€์†๋˜๋ฉด ์œ ํœด ์ธ์Šคํ„ด์Šค ์ข…๋ฃŒ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์œ ํœด ์ธ์Šคํ„ด์Šค ํ•˜๋‚˜ ์ด์ƒ์„ ๊ณ„์† ์‹คํ–‰ํ•˜๋ ค๋ฉด min_idle_instances ๊ฐ’์„ 1 ์ด์ƒ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์š”์ฒญ์˜ ํ™•์žฅ ๋ฐ ์ผ๊ด„ ์ฒ˜๋ฆฌ

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

์ธ์Šคํ„ด์Šค ์ˆ˜๋ช… ์ฃผ๊ธฐ

์ธ์Šคํ„ด์Šค ์ƒํƒœ

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

์‹œ์ž‘

๊ฐ ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค๋Š” /_ah/start์— ๋Œ€ํ•œ ๋นˆ HTTP GET ์š”์ฒญ์ธ ์‹œ์ž‘ ์š”์ฒญ์— ๋”ฐ๋ผ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. App Engine์€ ์ด ์š”์ฒญ์„ ์ „์†กํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์ง€๋งŒ ์‚ฌ์šฉ์ž๋Š” /_ah/start์— ์š”์ฒญ์„ ์ „์†กํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ˆ˜๋™ ๋ฐ ๊ธฐ๋ณธ ํ™•์žฅ ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹œ์ž‘ ์š”์ฒญ์— ์‘๋‹ตํ•ด์•ผ ๋‹ค๋ฅธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘ ์š”์ฒญ์€ ๋‘ ๊ฐ€์ง€ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ถ”๊ฐ€ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•˜์ง€ ์•Š๊ณ  ๋ฌด๊ธฐํ•œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘
  • ์ถ”๊ฐ€ ํŠธ๋ž˜ํ”ฝ์„ ์ˆ˜์‹ ํ•˜๊ธฐ ์ „์— ์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™”

์ˆ˜๋™, ๊ธฐ๋ณธ, ์ž๋™ ํ™•์žฅ ์ธ์Šคํ„ด์Šค๋Š” ๊ฐ๊ฐ ๋‹ค๋ฅด๊ฒŒ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ˆ˜๋™ ํ™•์žฅ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด App Engine์€ ์ฆ‰์‹œ ๊ฐ ์ธ์Šคํ„ด์Šค์— /_ah/start ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ™•์žฅ ์„œ๋น„์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด App Engine์€ ์ด ์ธ์Šคํ„ด์Šค๊ฐ€ ํŠธ๋ž˜ํ”ฝ์„ ์ˆ˜๋ฝํ•˜๋„๋ก ํ—ˆ์šฉํ•˜์ง€๋งŒ /_ah/start ์š”์ฒญ์€ ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ์ž ์š”์ฒญ์„ ์ˆ˜์‹ ํ•  ๋•Œ๊นŒ์ง€ ์ธ์Šคํ„ด์Šค๋กœ ์ „์†ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ธฐ๋ณธ ํ™•์žฅ ์ธ์Šคํ„ด์Šค๋Š” ์ฆ๊ฐ€๋œ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ž๋™ ํ™•์žฅ ์ธ์Šคํ„ด์Šค๋Š” /_ah/start ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ธ์Šคํ„ด์Šค๊ฐ€ /_ah/start ์š”์ฒญ์— HTTP ์ƒํƒœ ์ฝ”๋“œ 200โ€“299 ๋˜๋Š” 404๋กœ ์‘๋‹ตํ•˜๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ์‹œ์ž‘ํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด ์ถ”๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด App Engine์€ ์ธ์Šคํ„ด์Šค๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜๋™ ํ™•์žฅ ์ธ์Šคํ„ด์Šค๋Š” ์ฆ‰์‹œ ๋‹ค์‹œ ์‹œ์ž‘๋˜๋Š” ๋ฐ˜๋ฉด ๊ธฐ๋ณธ ํ™•์žฅ ์ธ์Šคํ„ด์Šค๋Š” ํŠธ๋ž˜ํ”ฝ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

์ข…๋ฃŒ

์ข…๋ฃŒ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์˜ˆ์ •๋˜๊ฑฐ๋‚˜ ์˜ˆ์ •๋˜์ง€ ์•Š์€ ๋‹ค์–‘ํ•œ ์ด๋ฒคํŠธ์— ์˜ํ•ด ํŠธ๋ฆฌ๊ฑฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ธ์Šคํ„ด์Šค๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๊ณ  ์•ฑ ์š”์ฒญ(ํŠธ๋ž˜ํ”ฝ)์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ˆ˜๋™์œผ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์—…๋ฐ์ดํŠธ๋œ ๋ฒ„์ „์„ ์„œ๋น„์Šค์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
  • ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ตฌ์„ฑ๋œ instance_class์˜ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ดˆ๊ณผํ•ฉ๋‹ˆ๋‹ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ธ์Šคํ„ด์Šค ์‹œ๊ฐ„ ํ• ๋‹น๋Ÿ‰์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ ์ค‘์ธ ํ˜„์žฌ ๋จธ์‹ ์ด ๋‹ค์‹œ ์‹œ์ž‘๋˜์—ˆ๊ฑฐ๋‚˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ์„ ํ–ฅ์ƒ์‹œํ‚ค๋„๋ก App Engine์ด ์ธ์Šคํ„ด์Šค๋ฅผ ์ด๋™์‹œ์ผœ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋‹ค๋ฅธ ๋จธ์‹ ์œผ๋กœ ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถ•์†Œ์—์„œ ์ด์ „์— ์„ค๋ช…ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ App Engine ํ‘œ์ค€ ํ™˜๊ฒฝ์˜ 'ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ์ง€๋ถˆ' ํ”Œ๋žซํผ์˜ ์ด์  ์ค‘ ํ•˜๋‚˜๋Š” ํŠธ๋ž˜ํ”ฝ์ด ์—†์„ ๋•Œ ์‹œ์Šคํ…œ์ด ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ 0๊นŒ์ง€ ์ž๋™ ์กฐ์ •ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์š”์ฒญ์„ ์—ฐ์†์œผ๋กœ ์ˆ˜์‹ ํ•˜์ง€ ์•Š๋Š” ์ž‘์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ์—๋„ App Engine์„ ๋น„์šฉ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋ฅผ ์ข…๋ฃŒํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ƒˆ๋กœ ์ถ”๊ฐ€๋˜๋Š” ์š”์ฒญ์€ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค(์žˆ๋Š” ๊ฒฝ์šฐ)๋กœ ๋ผ์šฐํŒ…๋˜๊ณ  ํ˜„์žฌ ์ฒ˜๋ฆฌ ์ค‘์ธ ์š”์ฒญ์„ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

App Engine์€ ์ผ๋ฐ˜์ ์œผ๋กœ STOP(SIGTERM) ์‹ ํ˜ธ๋ฅผ ์•ฑ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์ด ์ด ์ด๋ฒคํŠธ์— ์‘๋‹ตํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋˜๊ธฐ ์ „์— ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ์ •๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •์ƒ ์กฐ๊ฑด์—์„œ ์‹œ์Šคํ…œ์€ ์•ฑ์ด ์ค‘์ง€ํ•  ๋•Œ๊นŒ์ง€ ์ตœ๋Œ€ 2์ดˆ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ ํ›„ KILL(SIGKILL) ์‹ ํ˜ธ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์—์„œ SIGTERM ์‹ ํ˜ธ๊ฐ€ ํฌ์ฐฉ๋˜์ง€ ์•Š์œผ๋ฉด ์ธ์Šคํ„ด์Šค๊ฐ€ ์ฆ‰์‹œ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

ํ‘œ์‹œ๋˜๋Š” ์ผ๋ถ€ ์ธ์Šคํ„ด์Šค ์ข…๋ฃŒ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

[start] Quitting on terminated signal
[INFO] Handling signal: term
[INFO] Worker exiting (pid: 21)
[INFO] Worker exiting (pid: 24)
[INFO] Shutting down: Master
[start] Start program failed: termination triggered by nginx exit

์ด๋Ÿฌํ•œ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋Š” ์˜ค๋ฅ˜ ์กฐ๊ฑด์ด ์•„๋‹Œ ์ •์ƒ์ ์ธ ์ธ์Šคํ„ด์Šค ์ข…๋ฃŒ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋กœ๊ทธ์˜ [start] ๋ฐ Start๋Š” start๋ผ๋Š” ํ”Œ๋žซํผ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ์ธ์Šคํ„ด์Šค ๋˜๋Š” ์•ฑ ์‹œ์ž‘๊ณผ ์•„๋ฌด ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋กœ๋“œ ์š”์ฒญ

App Engine์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค๋ฉด ์ด ์ธ์Šคํ„ด์Šค๋Š” ๋จผ์ € ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ ์ค‘์— ์ง„ํ–‰๋˜๋ฉฐ, ์ด๋ฅผ ๋กœ๋“œ ์š”์ฒญ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋กœ๋“œ ์š”์ฒญ ์ค‘์—๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ดˆ๊ธฐํ™”๋˜๋ฏ€๋กœ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๊ถŒ์žฅ์‚ฌํ•ญ์„ ๋”ฐ๋ฅด๋ฉด ๋กœ๋“œ ์š”์ฒญ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ค€๋น„ ์š”์ฒญ

์ค€๋น„ ์š”์ฒญ์€ ์‹ค์‹œ๊ฐ„ ์š”์ฒญ์— ์•ž์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ๋ฏธ๋ฆฌ ์ธ์Šคํ„ด์Šค์— ๋กœ๋“œํ•˜๋Š” ํŠน์ • ์œ ํ˜•์˜ ๋กœ๋“œ ์š”์ฒญ์ž…๋‹ˆ๋‹ค. ์ˆ˜๋™ ๋˜๋Š” ๊ธฐ๋ณธ ํ™•์žฅ ์ธ์Šคํ„ด์Šค๋Š” /_ah/warmup ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

์ธ์Šคํ„ด์Šค ์—…ํƒ€์ž„

App Engine์€ ์ˆ˜๋™ ๋ฐ ๊ธฐ๋ณธ ํ™•์žฅ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฌด๊ธฐํ•œ์œผ๋กœ ์‹คํ–‰ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ˜„์žฌ ์ˆ˜๋™ ๋ฐ ๊ธฐ๋ณธ ํ™•์žฅ ์ธ์Šคํ„ด์Šค์˜ ์—…ํƒ€์ž„์€ ๋ณด์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

App Engine ํ‘œ์ค€ ํ™˜๊ฒฝ์˜ NTP

App Engine ํ‘œ์ค€ ํ™˜๊ฒฝ์—๋Š” Google NTP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋„คํŠธ์›Œํฌ ์‹œ๊ฐ„ ํ”„๋กœํ† ์ฝœ(NTP) ์„œ๋น„์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ NTP ์„œ๋น„์Šค๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ด€๋ฆฌ

์ธ์Šคํ„ด์Šค์˜ ํ™•์žฅ ์œ ํ˜•์— ๋”ฐ๋ผ Google Cloud ์ฝ˜์†”์ด๋‚˜ Google Cloud CLI์—์„œ ์„œ๋น„์Šค์™€ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒ„์ „ ์ค‘์ง€

App Engine์˜ ๊ฐ ๋ฒ„์ „์€ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๊ตฌ์„ฑํ•œ ํŠธ๋ž˜ํ”ฝ ์–‘์— ๋”ฐ๋ผ ์ธ์Šคํ„ด์Šค ํ•˜๋‚˜ ์ด์ƒ ๋‚ด์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์„ ํƒํ•œ ๋„๊ตฌ ์‚ฌ์šฉ์— ๊ด€ํ•œ ์•ˆ๋‚ด๋ฅผ ๋ณด๋ ค๋ฉด ํ•ด๋‹น ํƒญ์„ ํด๋ฆญํ•˜์„ธ์š”.

์ฝ˜์†”

์„œ๋น„์Šค์˜ ๋ฒ„์ „์„ ์ค‘์ง€ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

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

    Versions๋กœ ์ด๋™

  2. ํ‘œ์—์„œ ๋ฒ„์ „์„ ์„ ํƒํ•˜๊ณ  ์ค‘์ง€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  gcloud app versions stop --service=SERVICE VERSION

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • SERVICE๋ฅผ ์„œ๋น„์Šค ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  • VERSION์„ ์„œ๋น„์Šค์˜ ๋ฒ„์ „ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

์„œ๋น„์Šค ์‚ญ์ œ

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

์„ ํƒํ•œ ๋„๊ตฌ ์‚ฌ์šฉ์— ๊ด€ํ•œ ์•ˆ๋‚ด๋ฅผ ๋ณด๋ ค๋ฉด ํ•ด๋‹น ํƒญ์„ ํด๋ฆญํ•˜์„ธ์š”.

์ฝ˜์†”

์„œ๋น„์Šค๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

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

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

  2. ํ‘œ์—์„œ ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•˜๊ณ  ์‚ญ์ œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  gcloud app services delete SERVICE

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • SERVICE๋ฅผ ์„œ๋น„์Šค ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.