[GCP] Google Cloud Functions

[์›๋ณธ ๋งํฌ]

Google Cloud Functions๋Š” GCP์—์„œ ์ œ๊ณตํ•˜๋Š” ์„œ๋ฒ„๋ฆฌ์Šค ์„œ๋น„์Šค๋‹ค.

์„œ๋ฒ„๋ฆฌ์Šค๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€ ํ•˜๋ฉด, ์ •๋ง ์„œ๋ฒ„๊ฐ€ ์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์„œ๋ฒ„ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค.
์ง„์งœ ์„œ๋ฒ„๊ฐ€ ์—†๋Š” ๊ฑด ์•„๋‹ˆ๊ณ , ์„œ๋ฒ„์˜ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋Š” ๋œป์ด๋‹ค. ํ„ฐ์ง€๊ฑฐ๋‚˜ ๋‚ด๋ ค๊ฐ€๋Š” ์ผ๋„ ์—†๊ณ , ์‹คํ–‰์„ ํด๋ผ์šฐ๋“œ ์‹œ์Šคํ…œ์—์„œ ๊ด€๋ฆฌํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋”ฑ ํ˜ธ์ถœํ•œ ์‹œ๊ฐ„์ด๋‚˜ ํšŸ์ˆ˜๋งŒํผ๋งŒ ๋น„์šฉ์„ ๋‚ด๋ฉด ๋œ๋‹ค.

๊ด€๋ฆฌ๊ฐ€ ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ํŽธํ•œ ๋Œ€์‹ , ์ผ๋‹จ์ ์ธ ์„œ๋ฒ„ ํ™˜๊ฒฝ์— ๋น„ํ•ด ๋น„์šฉ์ด ์กฐ๊ธˆ ๋” ๋‚˜์˜ค๋Š” ํŽธ์ด๋‹ค.




๋น„์šฉ

๋‹น์—ฐํžˆ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ์ด์•ผ๊ธฐํ•˜๋ฉด, ๋น„์šฉ์„ ๋นผ๋†“์„ ์ˆ˜๊ฐ€ ์—†๋‹ค.

https://cloud.google.com/functions/pricing
์ž์„ธํ•œ ๊ฒƒ์€ ์œ„ ์‚ฌ์ดํŠธ์—์„œ ๋ณด๋ฉด ๋œ๋‹ค.

๊ทผ๋ฐ ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ, ์†Œ๊ทœ๋ชจ ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ์—๋Š” ๋น„์šฉ์ด ๊ฑฐ์˜ ๋‚˜๊ฐ€์ง€ ์•Š๋Š”๋‹ค๊ณ  ๋ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค.

์ผ๋‹จ ํ•œ๋‹ฌ๋งˆ๋‹ค 200๋งŒ๊ฑด์˜ ๋ฌด๋ฃŒ ํ˜ธ์ถœ ์ˆ˜๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค.

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


https://console.cloud.google.com/flows/enableapi?apiid=cloudfunctions%2Ccloudbuild.googleapis.com&%3Bredirect=https%3A%2F%2Fcloud.google.com%2Ffunctions%2Fquickstart&hl=ko&_ga=2.260432712.416842739.1638104972-21838808.1620313187&_gac=1.95310574.1638106095.Cj0KCQiA7oyNBhDiARIsADtGRZYoPuuKxyI9b2k23-FQVRmAzcvLJxafFensU3F-CyYiT4gqgMeG2fEaAiw0EALw_wcB









ํ•จ์ˆ˜ ์ƒ์„ฑ

์ด์ œ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด๋ณด์ž.

ํ•จ์ˆ˜ ํŽ˜์ด์ง€๋กœ ๋“ค์–ด๊ฐ€์„œ "ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ" ๋ฒ„ํŠผ์„


์ด๋ฆ„์„ ์ทจํ–ฅ๊ป ์ž˜ ์ง€์–ด์ค€๋‹ค.
์ €์žฅ ๋ฒ„ํŠผ์„ ๊ผญ ๋ˆŒ๋Ÿฌ์•ผ ํ•จ์— ์œ ์˜ํ•œ๋‹ค. ์ €๊ฑธ ๋ชป๋ด์„œ ์ž ์‹œ๊ฐ„ ํ—ค๋งธ๋‹ค.


๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ๊ฐ™์€๊ฑด ํ•„์š”์— ๋”ฐ๋ผ ์กฐ์ •ํ•ด๋„ ๋˜๊ณ , ๊ธฐ๋ณธ์„ค์ •์œผ๋กœ ๋Œ€์ถฉ ์จ๋„ ๋œ๋‹ค.


๊ทธ๋Ÿผ ์ด์ œ ๋Ÿฐํƒ€์ž„์˜ ์„ ํƒ์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.


์ œ๊ณต๋˜๋Š” ์–ธ์–ด ๋Ÿฐํƒ€์ž„์œผ๋ก  ๋‹ท๋„ท์ฝ”์–ด, Go, ์ž๋ฐ”, ๋…ธ๋“œ, PHP, Python, ๋ฃจ๋น„ ์ •๋„๊ฐ€ ์žˆ๋‹ค.
๋ฉ”์ด์ €ํ•œ ๊ฒƒ๋“ค์€ ๋Œ€๋ถ€๋ถ„ ์ง€์›ํ•˜๊ธด ํ•˜๋Š”๋ฐ, ์ปค์Šคํ…€ ๋Ÿฐํƒ€์ž„์ด ์—†์–ด์„œ C++์ด๋‚˜ Rust ๋“ฑ ๊ธฐํƒ€ ์–ธ์–ด๋“ค์„ ์˜ฌ๋ฆฌ์ง€ ๋ชปํ•œ๋‹ค๋Š” ๊ฒƒ์€ ํฐ ๋‹จ์ ์ธ ๊ฒƒ ๊ฐ™๋‹ค.

๋‚˜๋Š” ์ผ๋‹จ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ–ˆ๋‹ค.

๊ทธ๋Ÿผ ์ด๋Ÿฐ ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ด์ค„ ๊ฒƒ์ด๋‹ค.
req๋Š” ์š”์ฒญ ๊ฐ’, res๋Š” ์‘๋‹ต ๊ฐ’์ด๋‹ค. express์˜ ํ˜•ํƒœ๋กœ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ •์˜ํ•œ๋‹ค.


๋ณ„๋‹ค๋ฅธ ์ด๊ฒฌ์ด ์—†๋‹ค๋ฉด ๋ฐฐํฌ๋กœ ์˜ฌ๋ฆฌ๋ฉด ๋œ๋‹ค.


๋ฐฐํฌ๊ฐ€ ์ž˜ ์˜ฌ๋ผ๊ฐ”๋‹ค๋ฉด, ์ƒ์„ฑ๋œ ํŠธ๋ฆฌ๊ฑฐ ์—”๋“œํฌ์ธํŠธ๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด์งˆ ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ.



ํ•จ์ˆ˜ ํ…Œ์ŠคํŠธ

๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์ฝ˜์†” ๊ธฐ๋Šฅ๋„ ์žˆ๋‹ค.
์ƒ์„ธ์ฐฝ์—์„œ ํ…Œ์ŠคํŠธ ํƒญ์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ,


์ € ํ•จ์ˆ˜ ํ…Œ์ŠคํŠธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค.


ํŒŒ๋ผ๋ฏธํ„ฐ๋„ ๋„˜๊ธธ ์ˆ˜ ์žˆ๋‹ค.

๊ทผ๋ฐ ์‹คํ–‰๋„ ๊ทธ๋ ‡๊ณ  ํŠนํžˆ, ๋กœ๊ทธ ๋œจ๋Š” ์†๋„๊ฐ€ ์ƒ๋‹นํžˆ ๋А๋ฆฐ ๊ฒƒ ๊ฐ™๋‹ค.




ํ•จ์ˆ˜ ์ˆ˜์ •

๋ญ”๊ฐ€๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋ฉด ์ˆ˜์ •ํ•  ์ˆ˜๋„ ์žˆ์–ด์•ผ ํ•˜์ง€ ์•Š๊ฒ ๋Š”๊ฐ€

์ด๋Ÿฐ์ €๋Ÿฐ ์„ค์ •์˜ ์ˆ˜์ •์ด๋‚˜ ์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ์€ ์ €๊ธฐ ์ˆ˜์ • ๋ฒ„ํŠผ์œผ๋กœ ์ˆ˜์ •์ฐฝ์— ๋“ค์–ด๊ฐ€๋ฉด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿผ ์•„๊นŒ ์ƒ์„ฑํ• ๋•Œ์™€ ๋™์ผํ•œ UI๋กœ ์ˆ˜์ •์‚ฌํ•ญ๋“ค์ด ํ‘œ์‹œ๋  ๊ฒƒ์ด๋‹ค.

์†Œ์Šค๋„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. ๋‚˜๋Š” ์—ฌ๊ธฐ์„œ ๊ธฐ๋ณธ ๋ฉ”์„ธ์ง€๋ฅผ 'Hello'๋กœ ์ค„์—ฌ๋ดค๋‹ค.

์ˆ˜์ •ํ•ด์„œ ๋ฐฐํฌ๋ฅผ ๋‹ค์‹œ ์˜ฌ๋ฆฐ๋‹ค๋ฉด, ๊ทธ๋•Œ๋Š” ์ƒˆ๋กœ์šด ๋ฒ„์ „์˜ ํ•จ์ˆ˜๊ฐ€ ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์งˆ ๊ฒƒ์ด๋‹ค.

๋”ฐ๋‹จ

๊ทผ๋ฐ ์ข€ ์ด์ƒํ•œ ๊ฒŒ,
๋ฐฐํฌํ• ๋–„๋งˆ๋‹ค ๋ฒ„์ „์„ ์˜ฌ๋ ค์„œ ์˜ฌ๋ฆฌ๊ธด ํ•˜๋Š”๋ฐ, ๋ฒ„์ „ ๋กค๋ฐฑ์ด๋‚˜ ์Šค์œ„์นญ ๊ธฐ๋Šฅ ๊ฐ™์€๊ฒŒ ๋”ฐ๋กœ ์ œ๊ณต๋˜์ง€ ์•Š๋Š”๋‹ค.
์™œ์ง€...?

๊ฐœ์ธ์ ์œผ๋กœ ์•„๋งˆ์กด์˜ Lambda์— ๋น„ํ•ด ๊ธฐ๋Šฅ์ด๋‚˜ ์‚ฌ์šฉ์„ฑ์ด ๋’ค์ณ์ง€๋Š” ๋А๋‚Œ์ด ์žˆ๋‹ค.