[AWS] Lambda: ์ „์—ญ๋ณ€์ˆ˜

Lambda๋Š” ํ”„๋กœ์„ธ์Šค ๋‹จ์œ„๋กœ ๊ฒฉ๋ฆฌ๋œ ์‹คํ–‰์„ ๋ณด์žฅํ•˜๋Š” ์„œ๋ฒ„๋ฆฌ์Šค ์„œ๋น„์Šค๋‹ค.

์ €๋ ดํ•˜๋ฉด์„œ๋„ ํŽธ๋ฆฌํ•˜๊ณ , ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ž๋ž‘ํ•˜์ง€๋งŒ ์œ ์˜ํ•ด์•ผํ•  ์ ์ด ๋ช‡๊ฐ€์ง€ ์žˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ „์—ญ๋ณ€์ˆ˜๋‹ค.

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

์ผ๋ก€๋กœ, ์ด๋ ‡๊ฒŒ ๋žœ๋ค๊ฐ’์„ ์ „์—ญ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๊ณ  ์‹คํ–‰ํ•œ๋‹ค๋ฉด ๊ธฐ๋Œ€ํ•˜์ง€ ๋ชปํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

์ฒ˜์Œ์—๋Š” 54๊ฐ€ ๋‚˜์™”๋Š”๋ฐ

๊ทธ ๋‹ค์Œ์—๋„ ๋ช‡๋ฒˆ์„ ์‹คํ–‰ํ•ด๋„ 54๋กœ ๊ณ ์ •๋œ ์ฑ„๋กœ ์ถœ๋ ฅ์ด ๋๋‹ค.

๋ช‡์‹œ๊ฐ„์ด ์ง€๋‚˜๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•˜์ž ๋‹ค๋ฅธ ๊ฐ’์ธ 56์ด ๋‚˜์™”๋‹ค.

์ด๋ ‡๊ฒŒ ์ „์—ญ๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™”๊ฐ€ ๋ฐ”๋€Œ๋ ค๋ฉด ์‹œ๊ฐ„์ด ์ง€๋‚˜์„œ ํ™˜๊ฒฝ์ด ๋‚ด๋ ค๊ฐ€๊ฑฐ๋‚˜(cold start๊ฐ€ ๋ ๋•Œ), ๋ฐฐํฌ๋ฅผ ๋‹ค์‹œ ํ•ด์•ผํ•œ๋‹ค.

๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ „์—ญ๋ณ€์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ํ–‰์œ„๋„ ์ž์ œํ•ด์•ผ ํ•œ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ๋™์‹œ์— A์™€ B ์‹คํ–‰์ด c๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค๋ฉด, ๋งˆ์ง€๋ง‰์— write๋ฅผ ๋๋‚ธ ๋…€์„์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฎ์–ด์“ธ ๊ฒƒ์ด๋‹ค. data race๋‹ค. ๋”์ฐํ•œ ๋ฒ„๊ทธ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค.



์ฐธ์กฐ
https://docs.aws.amazon.com/lambda/latest/operatorguide/static-initialization.html
https://docs.aws.amazon.com/lambda/latest/operatorguide/global-scope.html