์ด ๊ธฐ์ฌ์ ๋ฒ์ญ์ ์ฝ์ค์ ํ์๋ค์ ์ํด ํน๋ณํ ์ค๋น๋์์ต๋๋ค.
ํ์ฅ์ฑ, ์ฑ๋ฅ, ๋น์ฉ ์ ๊ฐ, ๋งค์ ์๋ฐฑ๋ง ๋๋ ์ฌ์ง์ด ์์กฐ ๊ฑด์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ ๋ฅ๋ ฅ์ ์ํด AWS Lambda๋ก ์ ํํ๋ ์ฌ๋๋ค์ด ๋์ด๋๊ณ ์์ต๋๋ค. ์ด๋ฅผ ์ํด ์๋น์ค๊ฐ ์คํ๋๋ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ ํ์ฅ์ ์ฌ์ฉํ๋ฉด ์ด๋น ์์ฒ ๊ฐ์ ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. AWS Lambda๋ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ AWS ์๋น์ค ์ค ํ๋๋ผ๊ณ ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
AWS ๋๋ค
AWS Lambda๋ ์๋ฒ๋ฅผ ํ๋ก๋น์ ๋ํ๊ฑฐ๋ ๊ด๋ฆฌํ์ง ์๊ณ ๋ ์ฝ๋๋ฅผ ์คํํ๊ณ ์ฌ์ฉ์ ์ง์ ๋ก์ง์ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ AWS ์๋น์ค๋ฅผ ํ์ฅํ ์ ์๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์๋ฒ๋ฆฌ์ค ์ปดํจํ ์๋น์ค์ ๋๋ค. Lambda๋ Amazon API Gateway๋ฅผ ํตํ HTTP ์์ฒญ, Amazon S3 ๋ฒํท ๋๋ Amazon DynamoDB ํ ์ด๋ธ์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ๊ณผ ๊ฐ์ ๋ค์ํ ์ด๋ฒคํธ(ํธ๋ฆฌ๊ฑฐ๋ผ๊ณ ํจ)์ ์๋์ผ๋ก ์๋ตํฉ๋๋ค. ๋๋ AWS SDK๋ฅผ ์ฌ์ฉํ API ํธ์ถ๊ณผ AWS Step Functions์ ์ํ ์ ํ์ ํตํด ์ฝ๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
Lambda๋ ๊ณ ๊ฐ์ฉ์ฑ ์ปดํจํ ์ธํ๋ผ์์ ์ฝ๋๋ฅผ ์คํํ๋ฉฐ ์๋ฒ ๋ฐ ์ด์ ์ฒด์ ์ ์ง ๊ด๋ฆฌ, ๋ฆฌ์์ค ํ๋ก๋น์ ๋, ์๋ ํฌ๊ธฐ ์กฐ์ , ์ฝ๋ ๋ชจ๋ํฐ๋ง ๋ฐ ๋ก๊น ์ ํฌํจํ ๊ธฐ๋ณธ ํ๋ซํผ ๊ด๋ฆฌ๋ฅผ ์ ๋ดํฉ๋๋ค. ์ฆ, ์ฝ๋๋ฅผ ์ ๋ก๋ํ๊ณ ์คํ ๋ฐฉ๋ฒ๊ณผ ์๊ธฐ๋ฅผ ๊ตฌ์ฑํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์๋น์ค๋ ์ถ์๋ฅผ ๊ด๋ฆฌํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ณ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
์ธ์ Lambda๋ก ์ ํํด์ผ ํฉ๋๊น?
AWS Lambda๋ ์ฝ๋์ ์ธ์ด์ ๋ฐํ์์ด ์๋น์ค์์ ์ง์๋๋ ํ ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก์ ์ ํฉํ ํธ๋ฆฌํ ์ปดํจํ ํ๋ซํผ์ ๋๋ค. ํฉ๋ฆฌ์ ์ธ ๋น์ฉ์ผ๋ก ์๋ฒ ์ ์ง ๊ด๋ฆฌ, ํ๋ก๋น์ ๋ ๋ฐ ํ์ฅ์ ์์์์ฑํ๋ฉด์ ์ฝ๋์ ๋น์ฆ๋์ค ๋ก์ง์ ์ง์คํ๊ณ ์ถ๋ค๋ฉด AWS Lambda๊ฐ ํ์คํ ์ข์ ์ ํ์ ๋๋ค.
Lambda๋ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค ์์ฑ์ ์ด์์ ์ด๋ฉฐ, API Gateway์ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋น์ฉ์ ํฌ๊ฒ ์ ๊ฐํ๊ณ ์ถ์ ๊ธฐ๊ฐ์ ๋จ์ถํ ์ ์์ต๋๋ค. ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด Lambda ๊ธฐ๋ฅ๊ณผ ์ต์ ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ค์ํฉ๋๋ค. ๋๊ตฌ๋ ์์ ์ ๋ชฉํ์ ๋ฐ๋ผ ์ ํฉํ ๊ฒ์ ์ ํํ ์ ์์ต๋๋ค.
Lambda๋ฅผ ์ฌ์ฉํ๋ฉด ๊ด๋ฒ์ํ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ CloudWatch ์ง์ ๋๋ถ์ ์ง์ฐ๋ ์์ ์ ์์ฑํ๊ณ ๊ฐ๋ณ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ ์ ์์ต๋๋ค. ์๋น์ค ์ฌ์ฉ์ ์ฑ๊ฒฉ๊ณผ ๊ฐ๋์๋ ์ ํ์ด ์์ผ๋ฉฐ(๋ฉ๋ชจ๋ฆฌ ์๋น ๋ฐ ์๊ฐ์ด ๊ณ ๋ ค๋จ) Lambda ๊ธฐ๋ฐ์ ๋ณธ๊ฒฉ์ ์ธ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์์ ํ๋ ๋ฐ ๋ฐฉํด๊ฐ ๋๋ ๊ฒ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ง์์ ์ผ๋ก ์คํ๋์ง ์๋ ์๋น์ค ์งํฅ ์์ ์ ์์ฑํ ์ ์์ต๋๋ค. ๋ํ์ ์ธ ์๊ฐ ์ด๋ฏธ์ง ์ค์ผ์ผ๋ง์ ๋๋ค. ๋ถ์ฐ ์์คํ ์ ๊ฒฝ์ฐ์๋ Lambda ๊ธฐ๋ฅ์ ๊ด๋ จ์ฑ์ ์ ์งํฉ๋๋ค.
๋ฐ๋ผ์ ์ปดํจํ ๋ฆฌ์์ค ํ ๋น ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ถ์ง ์๋ค๋ฉด AWS Lambda๋ฅผ ์ฌ์ฉํด ๋ณด์ญ์์ค. ๋ฌด๊ฒ๊ณ ๋ฆฌ์์ค ์ง์ฝ์ ์ธ ๊ณ์ฐ์ด ํ์ํ์ง ์๋ค๋ฉด AWS Lambda๋ ์ฌ์ฉํด ๋ณด์ธ์. ์ฝ๋๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ์คํ๋๋ค๋ฉด AWS Lambda๋ฅผ ์ฌ์ฉํด ๋ณด์์ผ ํฉ๋๋ค.
ะะตะทะพะฟะฐัะฝะพััั
์์ง๊น์ง ์์ ์ ๋ํ ๋ถ๋ง์ ์์ต๋๋ค. ๋ฐ๋ฉด, ์ด ๋ชจ๋ธ์ ๋ง์ ๋ด๋ถ ํ๋ก์ธ์ค์ ๊ตฌํ ๊ธฐ๋ฅ์ AWS Lambda ๊ด๋ฆฌํ ๋ฐํ์ ํ๊ฒฝ ์ฌ์ฉ์์๊ฒ ์จ๊ฒจ์ ธ ์์ผ๋ฏ๋ก ์ผ๋ฐ์ ์ผ๋ก ํ์ฉ๋๋ ํด๋ผ์ฐ๋ ๋ณด์ ๊ท์น ์ค ์ผ๋ถ๋ ๋ถ์ ์ ํด์ง๋๋ค.
๋๋ถ๋ถ์ AWS ์๋น์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก Lambda๋ AWS์ ๊ณ ๊ฐ ๊ฐ์ ๊ณต์ ๋ณด์ ๋ฐ ๊ท์ ์ค์ ๊ธฐ๋ฐ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค. ํธ์คํธ ์ด์ ์ฒด์ ์ ๊ฐ์ํ ๊ณ์ธต๋ถํฐ ์ธํ๋ผ ์์ฐ์ ๋ฌผ๋ฆฌ์ ๋ณด์์ ์ด๋ฅด๊ธฐ๊น์ง ์๋น์ค ๊ตฌ์ฑ ์์๋ฅผ ์ ์ง ๊ด๋ฆฌ, ๊ด๋ฆฌ ๋ฐ ๋ชจ๋ํฐ๋งํ๋ ์์ ์ AWS๊ฐ ์ํํ๋ฏ๋ก ์ด ์์น์ ๊ณ ๊ฐ์ ์ด์ ๋ถ๋ด์ ์ค์ฌ์ค๋๋ค.
ํนํ AWS Lambda์ ๋ํด ๋งํ๋ฉด AWS๋ ๊ธฐ๋ณธ ์ธํ๋ผ, ๊ด๋ จ ๊ธฐ๋ณธ ์๋น์ค, ์ด์ ์ฒด์ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ซํผ์ ๊ด๋ฆฌํ๋ ์ญํ ์ ๋ด๋นํฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์์ ์ ์ฝ๋ ๋ณด์, ๊ธฐ๋ฐ ๋ฐ์ดํฐ ์ ์ฅ, ์ฝ๋ ์ก์ธ์ค ์ ์ด, ์ฌ์ฉ๋ ๊ธฐ๋ฅ ํ๋ ๋ด์์ Lambda ์๋น์ค ๋ฐ ๋ฆฌ์์ค(Identity and Access Management, IAM)์ ๋ํ ์ฑ ์์ ์ง๋๋ค.
์๋ ๋ค์ด์ด๊ทธ๋จ์ AWS Lambda์ ์ ์ฉ๋๋ ๊ณต๋ ์ฑ ์ ๋ชจ๋ธ์ ๋ณด์ฌ์ค๋๋ค. AWS ์ฑ ์์ ์ฃผํฉ์์ด๊ณ ๊ณ ๊ฐ ์ฑ ์์ ํ๋์์ ๋๋ค. ๋ณด์๋ค์ํผ AWS๋ ์๋น์ค์ ๋ฐฐํฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํด ๋ ๋ง์ ์ฑ ์์ ์ง๋๋ค.
AWS Lambda์ ์ ์ฉํ ์ ์๋ ์ฑ ์ ๊ณต์ ๋ชจ๋ธ
๋๋ค ๋ฐํ์
Lambda์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ์ฌ์ฉ์๋ฅผ ๋์ ํ์ฌ ๊ธฐ๋ฅ์ ์ํํจ์ผ๋ก์จ ์๋น์ค ์์ฒด๊ฐ ํ์ํ ๋ฆฌ์์ค๋ฅผ ํ ๋นํ๋ค๋ ๊ฒ์ ๋๋ค. ์์คํ ๊ด๋ฆฌ์ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ๋ญ๋นํ์ง ์๊ณ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ์ฝ๋ฉ์ ์ง์คํ ์ ์์ต๋๋ค.
Lambda ์๋น์ค๋ ๋ ๊ฐ์ ํ๋ฉด์ผ๋ก ๋๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ๋ ์ ์ด ํ๋ฉด์ ๋๋ค. Wikipedia์ ๋ฐ๋ฅด๋ฉด ์ ์ด ํ๋ฉด์ ์ ํธ ํธ๋ํฝ ์ ์ก ๋ฐ ๋ผ์ฐํ ์ ๋ด๋นํ๋ ๋คํธ์ํฌ์ ์ผ๋ถ์ ๋๋ค. ์ํฌ๋ก๋ ํ๋ก๋น์ ๋, ์๋น์ค ๋ฐ ๋ฐฐํฌ์ ๋ํ ์ ๋ฐ์ ์ธ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์์ ๋๋ค. ๋ํ ์ปจํธ๋กค ํ๋ ์ธ์ ํธ๋ํฝ ๋ผ์ฐํ ๋ฐ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ๋ ์๋ฃจ์ ๊ณต๊ธ์์ ๋คํธ์ํฌ ํ ํด๋ก์ง ์ญํ ์ ํฉ๋๋ค.
๋ ๋ฒ์งธ ํ๋ฉด์ ๋ฐ์ดํฐ ํ๋ฉด์ ๋๋ค. ์ปจํธ๋กค ํ๋ ์ธ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์์ฒด ์์ ์ด ์์ต๋๋ค. ์ ์ด ํ๋ ์ธ์ ํจ์(CreateFunction, UpdateFunctionCode) ๊ด๋ฆฌ๋ฅผ ์ํ API๋ฅผ ์ ๊ณตํ๊ณ Lambda๊ฐ ๋ค๋ฅธ AWS ์๋น์ค์ ํต์ ํ๋ ๋ฐฉ์์ ์ ์ดํฉ๋๋ค. ๋ฐ์ดํฐ ํ๋ ์ธ์ Lambda ํจ์๋ฅผ ์คํํ๋ Invoke API๋ฅผ ์ ์ดํฉ๋๋ค. ํจ์๊ฐ ํธ์ถ๋ ํ ์ปจํธ๋กค ํ๋ ์ธ์ ํด๋น ํจ์์ ๋ํด ์ฌ์ ์ค๋น๋ ๊ธฐ์กด ๋ฐํ์ ํ๊ฒฝ์ ํ ๋นํ๊ฑฐ๋ ์ ํํ ๋ค์ ๊ทธ ์์์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
AWS Lambda๋ ํด๋น ๋ฐํ์ ํ๊ฒฝ์ ํตํด Java 8, Python 3.7, Go, NodeJS 8, .NET Core 2 ๋ฑ์ ํฌํจํ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ง์ํฉ๋๋ค. AWS๋ ์ด๋ฌํ ํ๊ฒฝ์ ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๊ณ ๋ณด์ ํจ์น๋ฅผ ๋ฐฐํฌํ๋ฉฐ ๊ธฐํ ์ ์ง ๊ด๋ฆฌ ํ๋์ ์ํํฉ๋๋ค. Lambda๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ ํ ๋ฐํ์์ ์ง์ ๊ตฌํํ๋ค๋ฉด ๋ค๋ฅธ ์ธ์ด๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์์ ๋ชจ๋ํฐ๋ง์ ํฌํจํ์ฌ ์ ์ง ๊ด๋ฆฌ๋ฅผ ๊ด๋ฆฌํด์ผ ํฉ๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋ฉฐ ์๋น์ค๊ฐ ๊ทํ์ ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ์ํํฉ๋๊น?
๊ฐ ๊ธฐ๋ฅ์ ํ๋ ์ด์์ ์ ์ฉ ํ๊ฒฝ์์ ์คํ๋๋ฉฐ, ํด๋น ํ๊ฒฝ์ ํด๋น ๊ธฐ๋ฅ์ ์๋ช ๋์๋ง ์กด์ฌํ๊ณ ์ดํ์๋ ์ ๊ฑฐ๋ฉ๋๋ค. ๊ฐ ํ๊ฒฝ์ ํ ๋ฒ์ ํ๋์ ํธ์ถ๋ง ์ํํ์ง๋ง ๋์ผํ ํจ์์ ๋ํ ์ฌ๋ฌ ์ง๋ ฌ ํธ์ถ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฌ์ฉ๋ฉ๋๋ค. ๋ชจ๋ ๋ฐํ์ ํ๊ฒฝ์ ํ๋์จ์ด ๊ฐ์ํ(์์ microVM)๊ฐ ์ ์ฉ๋ ๊ฐ์ ๋จธ์ ์์ ์คํ๋ฉ๋๋ค. ๊ฐ microVM์ ํน์ AWS ๊ณ์ ์ ํ ๋น๋๋ฉฐ ํ๊ฒฝ์์ ์ฌ์ฌ์ฉ๋์ด ํด๋น ๊ณ์ ๋ด์์ ๋ค์ํ ๊ธฐ๋ฅ์ ์ํํ ์ ์์ต๋๋ค. MicroVM์ AWS๊ฐ ์์ ํ๊ณ ์ด์ํ๋ Lambda Worker ํ๋์จ์ด ํ๋ซํผ์ ๋น๋ฉ ๋ธ๋ก์ผ๋ก ํจํค์ง๋ฉ๋๋ค. ๋์ผํ ๋ฐํ์์ ๋ค๋ฅธ ๊ธฐ๋ฅ์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ microVM์ด ๋ค๋ฅธ AWS ๊ณ์ ์ ๊ณ ์ ํ์ง๋ ์์ต๋๋ค.
AWS Lambda ๊ฒฉ๋ฆฌ ๋ชจ๋ธ
๋ฐํ์ ํ๊ฒฝ ๊ฒฉ๋ฆฌ๋ ์ฌ๋ฌ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ๊ตฌํ๋ฉ๋๋ค. ๊ฐ ํ๊ฒฝ์ ์ต์์ ์์ค์๋ ๋ค์ ๊ตฌ์ฑ ์์์ ๋ณ๋ ๋ณต์ฌ๋ณธ์ด ์์ต๋๋ค.
- ๊ธฐ๋ฅ ์ฝ๋
- ํจ์์ ๋ํด ์ ํ๋ ๋ชจ๋ Lambda ๊ณ์ธต
- ํจ์ ์คํ ํ๊ฒฝ
- Amazon Linux ๊ธฐ๋ฐ์ ์ต์ ์ฌ์ฉ์ ๊ณต๊ฐ
๋ค์ ๋ฉ์ปค๋์ฆ์ ๋ค์ํ ์คํ ํ๊ฒฝ์ ๊ฒฉ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- cgroups - ๊ฐ ๋ฐํ์ ํ๊ฒฝ์ CPU, ๋ฉ๋ชจ๋ฆฌ, ์คํ ๋ฆฌ์ง ๋ฐ ๋คํธ์ํฌ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํฉ๋๋ค.
- ๋ค์์คํ์ด์ค - Linux ์ปค๋์์ ๊ด๋ฆฌํ๋ ํ๋ก์ธ์ค ID, ์ฌ์ฉ์ ID, ๋คํธ์ํฌ ์ธํฐํ์ด์ค ๋ฐ ๊ธฐํ ๋ฆฌ์์ค๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค. ๊ฐ ๋ฐํ์์ ์์ฒด ๋ค์์คํ์ด์ค์์ ์คํ๋ฉ๋๋ค.
- seccomp-bpf - ๋ฐํ์์ ์ฌ์ฉํ ์ ์๋ ์์คํ ํธ์ถ์ ์ ํํฉ๋๋ค.
- iptables ๋ฐ ๋ผ์ฐํ ํ ์ด๋ธ - ์คํ ํ๊ฒฝ์ ์๋ก ๊ฒฉ๋ฆฌํฉ๋๋ค.
- chroot - ๊ธฐ๋ณธ ํ์ผ ์์คํ ์ ๋ํ ์ ํ๋ ์ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
AWS ๋ ์ ๊ฒฉ๋ฆฌ ๊ธฐ์ ๊ณผ ๊ฒฐํฉ๋ ์ด๋ฌํ ๋ฉ์ปค๋์ฆ์ ์์ ์ ์ธ ๋ฐํ์ ๋ถ๋ฆฌ๋ฅผ ๋ณด์ฅํฉ๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์ ๋ค๋ฅธ ํ๊ฒฝ์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๊ฑฐ๋ ์์ ํ ์ ์์ต๋๋ค.
๋์ผํ AWS ๊ณ์ ์ ์ฌ๋ฌ ๋ฐํ์์ด ๋จ์ผ microVM์์ ์คํ๋ ์ ์์ง๋ง ์ด๋ค ๊ฒฝ์ฐ์๋ ์๋ก ๋ค๋ฅธ AWS ๊ณ์ ๊ฐ์ microVM์ ๊ณต์ ํ ์ ์์ต๋๋ค. AWS Lambda๋ microVM์ ๊ฒฉ๋ฆฌํ๊ธฐ ์ํด EC2 ์ธ์คํด์ค์ Firecracker๋ผ๋ ๋ ๊ฐ์ง ๋ฉ์ปค๋์ฆ๋ง ์ฌ์ฉํฉ๋๋ค. EC2 ์ธ์คํด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ Lambda์ ๊ฒ์คํธ ๊ฒฉ๋ฆฌ๋ 2015๋ ๋ถํฐ ์ด๋ฃจ์ด์ก์ต๋๋ค. Firecracker๋ AWS๊ฐ ์๋ฒ๋ฆฌ์ค ์ํฌ๋ก๋๋ฅผ ์ํด ํน๋ณํ ์ค๊ณํ๊ณ 2018๋ ์ ์ถ์ํ ์๋ก์ด ์คํ ์์ค ํ์ดํผ๋ฐ์ด์ ์ ๋๋ค. microVM์ ์คํํ๋ ๋ฌผ๋ฆฌ์ ํ๋์จ์ด๋ ์ฌ๋ฌ ๊ณ์ ์ ์ํฌ๋ก๋ ๊ฐ์ ๊ณต์ ๋ฉ๋๋ค.
ํ๊ฒฝ ๋ฐ ํ๋ก์ธ์ค ์ํ ์ ์ฅ
Lambda ๋ฐํ์์ ๋ค์ํ ํจ์๋ง๋ค ๊ณ ์ ํ์ง๋ง ๋์ผํ ํจ์๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ํธ์ถํ ์ ์์ต๋๋ค. ์ฆ, ๋ฐํ์์ ์๋ฉธ๋๊ธฐ ์ ์ ๋ช ์๊ฐ ๋์ ์ ์ง๋ ์ ์์ต๋๋ค.
๊ฐ Lambda ๋ฐํ์์๋ /tmp ๋๋ ํฐ๋ฆฌ๋ฅผ ํตํด ์ก์ธ์คํ ์ ์๋ ์ฐ๊ธฐ ๊ฐ๋ฅํ ํ์ผ ์์คํ ๋ ์์ต๋๋ค. ํด๋น ๋ด์ฉ์ ๋ค๋ฅธ ๋ฐํ์์์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ํ๋ก์ธ์ค ์ํ ์ง์์ฑ๊ณผ ๊ด๋ จํ์ฌ /tmp์ ๊ธฐ๋ก๋ ํ์ผ์ ๋ฐํ์ ํ๊ฒฝ์ ์ ์ฒด ์๋ช ์ฃผ๊ธฐ ๋์ ์กด์ฌํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ๋ฌ ํธ์ถ์ ๊ฒฐ๊ณผ๋ฅผ ๋์ ํ ์ ์์ผ๋ฉฐ, ์ด๋ ๊ธฐ๊ณ ํ์ต ๋ชจ๋ธ ๋ก๋์ ๊ฐ์ ๋น์ฉ์ด ๋ง์ด ๋๋ ์์ ์ ํนํ ์ ์ฉํฉ๋๋ค.
ํตํ ๋ฐ์ดํฐ ์ ์ก
Invoke API๋ ์ด๋ฒคํธ ๋ชจ๋์ ์์ฒญ-์๋ต ๋ชจ๋์ ๋ ๊ฐ์ง ๋ชจ๋๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฒคํธ ๋ชจ๋์์๋ ๋์ค์ ์คํํ๊ธฐ ์ํด ํธ์ถ์ด ๋๊ธฐ์ด์ ์ถ๊ฐ๋ฉ๋๋ค. ์์ฒญ-์๋ต ๋ชจ๋์์๋ ์ ๊ณต๋ ํ์ด๋ก๋๋ฅผ ์ฌ์ฉํ์ฌ ํจ์๊ฐ ์ฆ์ ํธ์ถ๋ ํ ์๋ต์ด ๋ฐํ๋ฉ๋๋ค. ๋ ๊ฒฝ์ฐ ๋ชจ๋ ํจ์๋ Lambda ํ๊ฒฝ์์ ์คํ๋์ง๋ง ํ์ด๋ก๋ ๊ฒฝ๋ก๋ ๋ค๋ฆ ๋๋ค.
์์ฒญ-์๋ต ํธ์ถ ์ค์ ํ์ด๋ก๋๋ AWS API Gateway ๋๋ AWS SDK์ ๊ฐ์ ์์ฒญ ์ฒ๋ฆฌ API(API ํธ์ถ์)์์ ๋ก๋ ๋ฐธ๋ฐ์๋ก ์ด๋ํ ๋ค์ Lambda ํธ์ถ ์๋น์ค(Invoke Service)๋ก ํ๋ฆ ๋๋ค. ํ์๋ ํจ์ ์คํ์ ์ ํฉํ ํ๊ฒฝ์ ๊ฒฐ์ ํ๊ณ ๊ฑฐ๊ธฐ์ ํ์ด๋ก๋๋ฅผ ์ ๋ฌํ์ฌ ํธ์ถ์ ์๋ฃํฉ๋๋ค. ๋ก๋ ๋ฐธ๋ฐ์๋ ์ธํฐ๋ท์ ํตํด TLS๋ก ๋ณดํธ๋๋ ํธ๋ํฝ์ ์์ ํฉ๋๋ค. ๋ก๋ ๋ฐธ๋ฐ์ ์ดํ์ Lambda ์๋น์ค ๋ด ํธ๋ํฝ์ ํน์ AWS ์ง์ญ์ ๋ด๋ถ VPC๋ฅผ ํต๊ณผํฉ๋๋ค.
AWS Lambda ํธ์ถ ์ฒ๋ฆฌ ๋ชจ๋ธ: ์์ฒญ-์๋ต ๋ชจ๋
์ด๋ฒคํธ ํธ์ถ์ ์ฆ์ ์ํ๋๊ฑฐ๋ ๋๊ธฐ์ด์ ์ถ๊ฐ๋ ์ ์์ต๋๋ค. ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋๊ธฐ์ด์ ๋ด๋ถ ํด๋ฌ ํ๋ก์ธ์ค๋ฅผ ํตํด Lambda ํธ์ถ ์ดํ ์๋น์ค์ ํธ์ถ์ ์ ๋ฌํ๋ Amazon SQS(Amazon Simple Queue Service)๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ๋ฉ๋๋ค. ์ ์ก๋ ํธ๋ํฝ์ TLS๋ก ๋ณดํธ๋๋ฉฐ Amazon SQS์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ์ถ๊ฐ๋ก ์ํธํ๋์ง ์์ต๋๋ค.
์ด๋ฒคํธ ํธ์ถ์ ์๋ต์ ๋ฐํํ์ง ์์ต๋๋ค. Lambda ์์ ์๋ ๋ชจ๋ ์๋ต ์ ๋ณด๋ฅผ ๋ฌด์ํฉ๋๋ค. Amazon S3, Amazon SNS, CloudWatch ๋ฐ ๊ธฐํ ์์ค์ ์ด๋ฒคํธ ๊ธฐ๋ฐ ํธ์ถ์ ์ด๋ฒคํธ ๋ชจ๋์์ Lambda์ ์ํด ์ฒ๋ฆฌ๋ฉ๋๋ค. Amazon Kinesis ๋ฐ DynamoDB ์คํธ๋ฆผ, SQS ๋๊ธฐ์ด, Application Load Balancer ๋ฐ API Gateway ํธ์ถ์ ํธ์ถ์ ์์ฒญ-์๋ต ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
๋ชจ๋ํฐ๋ง
๋ค์์ ํฌํจํ ๋ค์ํ AWS ๋ฉ์ปค๋์ฆ๊ณผ ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ Lambda ํจ์๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ๊ฐ์ฌํ ์ ์์ต๋๋ค.
์๋ง์กด ํด๋ผ์ฐ๋ ์์น
์์ฒญ ํ์, ์์ฒญ ๊ธฐ๊ฐ, ์คํจํ ์์ฒญ ํ์ ๋ฑ ๋ค์ํ ํต๊ณ๋ฅผ ์์งํฉ๋๋ค.
์๋ง์กด ํด๋ผ์ฐ๋ํธ๋ ์ผ
AWS ์ธํ๋ผ์ ๊ด๋ จ๋ ๊ณ์ ํ๋ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๊ณ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ ์ ์ง ๊ด๋ฆฌํ ์ ์์ต๋๋ค. AWS Management Console, AWS SDK, ๋ช
๋ น์ค ๋๊ตฌ ๋ฐ ๊ธฐํ AWS ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ ์์
์ ์ ์ฒด ๊ธฐ๋ก์ ๊ฐ๊ฒ ๋ฉ๋๋ค.
AWS ์์ค๋ ์ด
๋ด๋ถ ๊ตฌ์ฑ ์์ ๋งต์ ๊ธฐ๋ฐ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ ์์ฒญ ์ฒ๋ฆฌ์ ๋ชจ๋ ๋จ๊ณ์ ๋ํ ์๋ฒฝํ ๊ฐ์์ฑ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ๋ฐ ๋ฐ ํ๋ก๋์
ํ๊ฒฝ์์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ถ์ํ ์ ์์ต๋๋ค.
AWS ๊ตฌ์ฑ
Lambda ํจ์ ๊ตฌ์ฑ(์ญ์ ํฌํจ) ๋ฐ ๋ฐํ์, ํ๊ทธ, ํธ๋ค๋ฌ ์ด๋ฆ, ์ฝ๋ ํฌ๊ธฐ, ๋ฉ๋ชจ๋ฆฌ ํ ๋น, ์ ํ ์๊ฐ ์ค์ ๋ฐ ๋์์ฑ ์ค์ ์ ๋ฌผ๋ก Lambda IAM ์คํ ์ญํ , ์๋ธ๋ท ๋ฐ ๋ณด์ ๊ทธ๋ฃน ๋ฐ์ธ๋ฉ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ ์ ์์ต๋๋ค. .
๊ฒฐ๋ก
AWS Lambda๋ ์์ ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. AWS Lambda์ ๋ง์ ๋ณด์ ๋ฐ ๊ท์ ์ค์ ๊ดํ์ ์์ธ๊ฐ ์์ง๋ง ๋ค๋ฅธ AWS ์๋น์ค์ ๋์ผํฉ๋๋ค. 2019๋ 1์ ํ์ฌ Lambda๋ SOC 2, SOC 3, SOC XNUMX, PCI DSS, HIPAA(๊ฑด๊ฐ ๋ณดํ ์ด๋์ฑ ๋ฐ ์ฑ ์๋ฒ) ๊ท์ ๋ฐ ๊ธฐํ ๊ท์ ์ ์ค์ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌํ์ ๊ณ ๋ คํ ๋ AWS Lambda ์๋น์ค๋ฅผ ๊ณ ๋ คํด๋ณด์ธ์. ์ด ์๋น์ค๊ฐ ๊ทํ์ ์์ ์ ๊ฐ์ฅ ์ ํฉํ ์ ์์ต๋๋ค.
์ถ์ฒ : habr.com