Google App Engine

Google App Engine

๊ตฌ๊ธ€ ์•ฑ ์—”์ง„ (Google App Engine,ย GAE)์€ย ๊ตฌ๊ธ€์—์„œ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ, ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ PHP ยท Python ยท Java ยท Go ยท Javascript ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ตฌ๊ธ€์˜ ์ธํ”„๋ผ์—์„œ ์‹คํ–‰ํ•˜๊ณ  ๋ฒ„์ „ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
์ถœ์‹œ์ผ์ด 2008๋…„์ด๋ผ ์ดˆ๊ธฐ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ ๋•Œ ๋…์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜์—ˆ๊ณ  ์•„์ง๊นŒ์ง€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ธฐ์—…๋„ ์žˆ๋‹ค.
GAE ๋‚ด ์„œ๋น„์Šค๋ณ„ ๋ฌด๋ฃŒ ํ• ๋‹น๋Ÿ‰์ด ์žˆ์–ด์„œ ์ดˆ๊ธฐ ์Šคํƒ€ํŠธ์—… ๋‹จ๊ณ„์—์„œ ์ €๋ ดํ•˜๊ฒŒ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
ย 
ํ˜„์žฌ๊นŒ์ง€๋Š” Python์œผ๋กœ Django ๋ฐฐํฌ์™€ Javascript nodejs ํ™˜๊ฒฝ์œผ๋กœ ํ”„๋ก ํŠธ ๋ฐฐํฌ๋ฅผ ํ•ด๋ดค๋‹ค.
ย 

๋ฐฐํฌ

๋ฐฐํฌ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ app.yaml ์œผ๋กœ YAML ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•œ ๋’ค gcloud app deploy ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๊ฐ€๋Šฅํ•˜๋‹ค.
์—ฌ๊ธฐ์—์„œ ์„ธ๋ถ€ CLI์— ๋Œ€ํ•ด ๋‚˜์˜จ๋‹ค.
ย 

ignore file

๋ฐฐํฌ ํ•  ๋•Œ ๋กœ์ปฌ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์ด ๋‹ค ํด๋ผ์šฐ๋“œ๋กœ ์—…๋กœ๋“œ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”์—†๋Š” ํŒŒ์ผ๋“ค์€ ignore ํŒŒ์ผ์— ๋„ฃ์–ด ๋ฌด์‹œ๋˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.
.gcloudignore ํŒŒ์ผ๋ช…์— ๋„ฃ๊ธฐ
ย 
๊ธฐํƒ€ CLI options ์ค‘ ์•Œ๋ฉด ์ข‹์€ ๊ฒƒ์€ no-promote์ด๋‹ค.
๊ธฐ๋ณธ๊ฐ’์€ promote(๋ฐฐํฌํ•˜์ž๋งˆ์ž ๋ฐ”๋กœ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ ์˜ฎ๊น€)์ธ๋ฐ no-promote๋กœ ํ•˜๋ฉด ํŠธ๋ž˜ํ”ฝ์€ ๊ธฐ์กด๊ณผ ์œ ์ง€ํ•œ ์ƒํƒœ๋กœ ์ƒˆ๋กœ์šด ๋ฒ„์ „์ด ์˜ฌ๋ผ๊ฐ„๋‹ค. ์ƒˆ๋กœ์šด ๋ฒ„์ „์œผ๋กœ ํ…Œ์ŠคํŠธ ํ•œ ๋‹ค์Œ ์ •์ƒ์ผ ๋•Œ ํŠธ๋ž˜ํ”ฝ ์˜ฎ๊ธฐ๊ณ  ์‹ถ๋‹ค๋ฉด ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
gcloud app deploy --no-promote
ย 

GAE console

Dashboard

๊ฒฐ์ œ ์ƒํƒœ, ํ˜„์žฌ ๋ถ€ํ•˜, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์˜ค๋ฅ˜, ์„œ๋ฒ„ ์˜ค๋ฅ˜, ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜ ํ™•์ธ ๊ฐ€๋Šฅํ•จ.
์ธ์Šคํ„ด์Šค๋กœ ์„ค์ •ํ•ด์„œ ์ฒญ๊ตฌ๋œ ์ธ์Šคํ„ด์Šค ์ถ”์ •๊ฐ’ ๋ณด๊ธฐ
์ธ์Šคํ„ด์Šค๋กœ ์„ค์ •ํ•ด์„œ ์ฒญ๊ตฌ๋œ ์ธ์Šคํ„ด์Šค ์ถ”์ •๊ฐ’ ๋ณด๊ธฐ
ย 
๋งŽ์ด ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ ํ™•์ธํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค.
ย 

Service

๋‹จ์ˆœํžˆ ๋ฐฐํฌ๋œ ์„œ๋น„์Šค ๋ชฉ๋ก์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€. ํ˜„์žฌ๊นŒ์ง€์˜ ๋ฐฐํฌ๋œ ๋ฒ„์ „ ์ˆ˜ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๊ณ  ๋””์ŠคํŒจ์น˜๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๋ฉด ์—ฌ๊ธฐ์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
ย 
Dispatch๋Š” dispatch.yaml ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๊ฐ€๋Šฅํ•จ.
๋งŒ์•ฝ datepop.co.kr์€ default ์„œ๋น„์Šค๋กœ ๊ฐ€๋Š”๋ฐ datepop.co.kr/ceo/๋Š” ๋‹ค๋ฅธ ์„œ๋น„์Šค(์˜ˆ. ceo)๋กœ ๋ณด๋‚ด๊ณ  ์‹ถ๋‹ค๋ฉด dispatch ์„ค์ •์„ ํ†ตํ•ด์„œ ๊ฐ€๋Šฅํ•˜๋‹ค.
์„œ๋น„์Šค๋ฅผ A, B, C, D๋งŒ๋“ค๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ€๋Šฅํ•จ.
๊ด€๋ จ ๋ฌธ์„œ โ–ผ
notion image

Version

๊ฐ ์„œ๋น„์Šค ๋ณ„ ์ถœ์‹œ๋œ ๋ฒ„์ „์„ ๋ณผ ์ˆ˜ ์žˆ์Œ. ๋ฒ„์ „๋ช…์€ ๋ฐฐํฌ ํ•  ๋•Œ ๋”ฐ๋กœ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์ž๋™์œผ๋กœ ๋‚ ์งœ์‹œ๊ฐ„์œผ๋กœ ๋งค๊ฒจ์ง.
ย 
ํ˜„์žฌ ํŠธ๋ž˜ํ”ฝ ํ• ๋‹น๋œ ๋ฒ„์ „ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๊ณ  ์ธ์Šคํ„ด์Šค ์ˆ˜๋„ ํ™•์ธ ๊ฐ€๋Šฅ. ์‹คํ–‰ ์ค‘์ด์ง€๋งŒ ์‹ค์ œ๋กœ ๋“ค์–ด์˜ค๋Š” ์œ ์ €๊ฐ€ ์—†๋‹ค๋ฉด ์ธ์Šคํ„ด์Šค๊ฐ€ 0์œผ๋กœ ํ‘œ์‹œ ๋  ์ˆ˜ ์žˆ์Œ.
ย 
ํ•ด๋‹น ๋ฒ„์ „์˜ ํฌ๊ธฐ๋„ ๋ณผ ์ˆ˜ ์žˆ์Œ. ignoreํŒŒ์ผ์„ ํ†ตํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ํŒŒ์ผ์„ ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ์ด๋ฏธ์ง€ ํŒŒ์ผ๋“ค์ด ๋„ˆ๋ฌด ํฐ ๊ฒฝ์šฐ๋Š” ์ด ํฌ๊ธฐ๊ฐ€ 1GB๊ฐ€ ๋„˜์„ ์ˆ˜๋„ ์žˆ์Œ.
notion image
ย 
๋ฒ„์ „ ์ฒดํฌํ•˜๊ณ  ํŠธ๋ž˜ํ”ฝ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํด๋ฆญํ•ด์„œ ์ด์ „ ๋ฒ„์ „์œผ๋กœ ํŠธ๋ž˜ํ”ฝ ์ด์ „๋„ ๊ฐ€๋Šฅํ•จ. ์ƒˆ๋กœ ๋ฐฐํฌํ•œ ๋ฒ„์ „์ด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์—ฌ๊ธฐ์„œ ํด๋ฆญ์œผ๋กœ ๊ฐ„๋‹จํžˆ ์ด์ „ ๋ฒ„์ „์œผ๋กœ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ์Œ.
notion image
ย 
ย 

Instance

Dashboard์™€ ๋™์ผํ•˜๊ฒŒ ์ธ์Šคํ„ด์Šค ํ†ต๊ณ„ ์ฐจํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ณ  ์•„๋ž˜์— ํ˜„์žฌ ์„œ๋น„์Šค์— ๋– ์žˆ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ณ  ์ฒดํฌํ•ด์„œ ์‚ญ์ œ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
notion image
ย 

Taskqueue

๋“ค์–ด๊ฐ€๋ฉด Cloud Tasks ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•จ.
์ด๋™ํ–ˆ์ง€๋งŒ GAE์—์„œ queue.yaml๋กœ ํƒœ์Šคํฌํ๋ฅผ ์ •์˜ํ•˜๊ณ  ๋ฐ˜์˜ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ๋™์ผํ•จ.
ย 
queue ํ•˜๋‚˜๋ฅผ ํด๋ฆญํ•ด์„œ ๋“ค์–ด๊ฐ€๋ฉด ์ธก์ •ํ•ญ๋ชฉ, ๋กœ๊ทธ, ํƒœ์Šคํฌ, ๊ตฌ์„ฑ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ.
ย 
ํšŒ์‚ฌ์—์„œ ํ™•์ธํ•œ๊ฒƒ์ธ๋ฐ 21๋…„๋„์— ์ƒ์„ฑ๋œ๊ฒŒ ๋ฌดํ•œ ์žฌ์‹œ๋„ ๋˜์–ด์„œ ์ง€๊ธˆ๊นŒ์ง€ 14000๋ฒˆ ๋„˜๊ฒŒ ์‹คํ–‰ ์ค‘์ธ๊ฒƒ์„ ๋ดค๋‹ค. 21๋…„ 3์›”์€ ๋‚ด๊ฐ€ ์ž…์‚ฌํ•˜๊ธฐ ์ด์ „์ด๋ผ ๋‹คํ–‰์ด๋‹ค.. ๋ฒ”์ธ์€ ๋ˆ„๊ตด๊นŒ?
์ด์ •๋„๋ฉด ๋งŽ์€ ์ผ์„ ํ–ˆ์œผ๋‹ˆ ์ด Task๋Š” ์•„์‰ฝ๊ฒŒ๋„ ์‚ญ์ œํ•ด์คฌ๋‹ค..
notion image
ย 

Cronjob

ย 
ย 

Firewall

ย 
ย 

Quota

ย 
ย 

Memcache

ย 
ย 
ย 

Settings

ย 
ย