AWS ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ธ(SAM) ์์ธํ ์ดํด๋ณด๊ธฐ
AWS ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ธ(SAM), ๊ฐ๋ ฅํ ๊ธฐ๋ฅ, ์๋ฒ๋ฆฌ์ค ์ฑ ๊ฐ๋ฐ์ ๊ฐ์ํํ๋ ๋ฐฉ๋ฒ, SAM์ ์ฌ์ฉํ๋ ๋์ ๋ฐ๋ผ์ผ ํ ๋ชจ๋ฒ ์ฌ๋ก์ ๋ํด ์์ธํ ์์๋ณด์ญ์์ค.

AWS ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ธ ์๊ฐ
AWS ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ธ(SAM)์ AWS ํด๋ผ์ฐ๋์์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ, ๊ด๋ฆฌ ๋ฐ ๋ฐฐํฌ๋ฅผ ๋จ์ํํ๋๋ก ์ค๊ณ๋ ์คํ ์์ค ํ๋ ์์ํฌ์ ๋๋ค. AWS CloudFormation์ ํ์ฅํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ AWS Lambda ํจ์, Amazon API Gateway API ๋ฐ Amazon DynamoDB ํ ์ด๋ธ๊ณผ ๊ฐ์ ์๋ฒ๋ฆฌ์ค ๋ฆฌ์์ค๋ฅผ ๊ฐ์ํ๋ ๋ฐฉ์์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค. AWS SAM์๋ ๋ฆฌ์์ค๋ฅผ ์ ์ํ๊ณ ์๋ฒ๋ฆฌ์ค ๋ฆฌ์์ค๊ฐ ์๋์ผ๋ก ์์ฑ ๋ฐ ์ฐ๊ฒฐ๋๋๋ก ํ๊ธฐ ์ํ YAML ๋๋ JSON ํ์์ ํ ํ๋ฆฟ ์ฌ์์ด ํฌํจ๋์ด ์์ต๋๋ค.
๊ฐ๋ฐ์๋ AWS SAM์ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง ์์ฑ์ ๋ ์ง์คํ ์ ์์ต๋๋ค. ๋ํ AWS SAM์ ๋ค๋ฅธ AWS ์๋น์ค ๋ฐ ๊ฐ๋ฐ์ ๋๊ตฌ์ ์ํํ๊ฒ ํตํฉ๋๋ฏ๋ก ํ์ด ์ผ๊ด๋ ํ๊ฒฝ์์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ฝ๊ฒ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. ๋ํ ๊ฐ๋ฐ์๋ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก์ปฌ ๋๋ ์๊ฒฉ์ผ๋ก ํ ์คํธ, ๋๋ฒ๊ทธ ๋ฐ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
AWS SAM์ ์ฃผ์ ๊ธฐ๋ฅ
AWS SAM์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋ณด๋ค ํจ์จ์ ์ด๊ณ ๋ฒ๊ฑฐ๋กญ์ง ์๊ฒ ๋ง๋๋ ์ผ๋ จ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๊ณผ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค.
- ๋จ์ผ ๋ฐฐํฌ ๊ตฌ์ฑ: AWS SAM์ ๊ฐ๋ฐ์๊ฐ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ฆฌ์์ค๋ฅผ ๋จ์ผ ํ ํ๋ฆฟ ํ์ผ๋ก ์ ์ํ ์ ์๋๋ก ํ์ฌ ์๋ฒ๋ฆฌ์ค ๋ฐฐํฌ๋ฅผ ๊ฐ์ํํฉ๋๋ค. AWS CloudFormation์ ํ ํ๋ฆฟ์ด ๋ฐฐํฌ๋ ๋ ํ์ํ ๋ฆฌ์์ค๋ฅผ ์๋์ผ๋ก ํ๋ก๋น์ ๋ํ๊ณ ๊ตฌ์ฑํฉ๋๋ค.
- ๋ก์ปฌ ํ ์คํธ ๋ฐ ๋๋ฒ๊น : ๊ฐ๋ฐ์๋ AWS SAM CLI๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ํด๋ผ์ฐ๋์ ๋ฐฐํฌํ๊ธฐ ์ ์ ๋ก์ปฌ์์ ์คํํ๊ณ ๋๋ฒ๊น ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ค์ ํ๊ฒฝ์ผ๋ก ํธ์๋๊ธฐ ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ ผ๋ฆฌ ๋ฐ ๋ฆฌ์์ค ๊ตฌ์ฑ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํฉ๋๋ค.
- ๊ธฐ๋ณธ ์ ๊ณต ๋ชจ๋ฒ ์ฌ๋ก: AWS SAM ํ ํ๋ฆฟ์๋ ๋จ์ํ๋ ๊ตฌ๋ฌธ, CORS ๋ฐ ํ๋ ์๋ฅด๊ธฐ ์ง์, ๋ฆฌ์์ค ์ ์ฑ ์๋ ๊ด๋ฆฌ์ ๊ฐ์ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ์ ๊ณต ๋ชจ๋ฒ ์ฌ๋ก๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ๋ชจ๋ฒ ์ฌ๋ก๋ ๊ฐ๋ฐ์๊ฐ AWS ์ง์นจ์ ๋ฐ๋ฅด๊ณ ์ผ๋ฐ์ ์ธ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ์ ์ฑ ํ ํ๋ฆฟ: AWS SAM์๋ ๊ฐ๋ฐ์๊ฐ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฆฌ์์ค ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ ์ฑ ํ ํ๋ฆฟ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ด๋ฌํ ์ ์ฑ ํ ํ๋ฆฟ์ ์ฌ์ฉํ๋ฉด ๋ณด์ ๋ชจ๋ฒ ์ฌ๋ก๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํฌํจ๋์ด IAM ์ ์ฑ ์์ฑ ๋ฐ ๊ด๋ฆฌ๊ฐ ํฌ๊ฒ ๊ฐ์ํ๋ฉ๋๋ค.
- ๋ค์ํ AWS ์๋น์ค ์ง์: AWS SAM ํ ํ๋ฆฟ์ Lambda, API Gateway, DynamoDB, CloudWatch Events ๋ฐ SNS(Simple Notification Service)์ ๊ฐ์ ์๋ง์ AWS ์๋น์ค์ ๋ํ ๋ฆฌ์์ค๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ์ด ์ง์์ ๋ค์ํ ์๋น์ค์ ํตํฉ์ ์ฉ์ดํ๊ฒ ํ์ฌ ๋ณต์กํ๊ณ ๊ธฐ๋ฅ์ด ํ๋ถํ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํฉ๋๋ค.
์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ AWS SAM์ ์ฌ์ฉํ ๋์ ์ด์
AWS SAM์ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ฉด ๊ฐ๋ฐ์์ ์กฐ์ง์ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ์ด ์์ต๋๋ค.
- ๋จ์ํ๋ ๋ฐฐํฌ: AWS SAM์ ๋จ์ผ ํ ํ๋ฆฟ ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ํ ๋ฆฌ์์ค๋ฅผ ์๋์ผ๋ก ํ๋ก๋น์ ๋ํ๊ณ ๊ตฌ์ฑํ์ฌ ์๋ฒ๋ฆฌ์ค ๋ฐฐํฌ์ ๋ณต์ก์ฑ์ ์ค์ ๋๋ค. ์ด๋ฌํ ๋จ์ํ๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์ธํ๋ผ ๊ด๋ฆฌ๊ฐ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง ์์ฑ์ ์ง์คํ ์ ์์ต๋๋ค.
- ๊ฐ๋ฐ ์๊ฐ ๋จ์ถ: AWS SAM์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๊ฐ์ํ๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์ ๊ณตํ์ฌ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๋ ์ฐ์ ์์ ์ค์ํ ๊ฐ๋ฐ ์ฃผ๊ธฐ์ ๋ณด๋ค ํจ์จ์ ์ธ ๋ฆฌ์์ค ์ฌ์ฉ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- ์ผ๊ด๋ ๊ฐ๋ฐ ํ๊ฒฝ: AWS SAM์ ๋ค์ํ AWS ์๋น์ค, ๋๊ตฌ ๋ฐ IDE์ ํตํฉ๋์ด ์์ฑ ๋ฐ ํ ์คํธ์์ ์ง์์ ์ธ ํตํฉ ๋ฐ ๋ฐฐํฌ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ค์ํ ๊ฐ๋ฐ ํ ๋ฐ ๋จ๊ณ์์ ์ผ๊ด๋ ์ํฌํ๋ก์ฐ๋ฅผ ์ง์ํฉ๋๋ค.
- ๋น์ฉ ํจ์จ์ฑ: AWS SAM์ผ๋ก ๊ฐ๋ฐ๋ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ AWS์ ์ข ๋์ ์๊ธ ๋ชจ๋ธ์ ํ์ฉํ์ฌ ์ธํ๋ผ ๋น์ฉ์ ๋ฎ์ถ ์ ์์ต๋๋ค. ์ฌ์ฉ์๋ ์ฌ์ ํ ๋น๋ ๋ฆฌ์์ค๊ฐ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉํ ์ค์ ๋ฆฌ์์ค์ ๋ํด์๋ง ๋น์ฉ์ ์ง๋ถํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ์ฌ์ฉ์ ์ง์ ์ฝ๋๋ก ๊ธฐ๋ฅ ํ์ฅ: AWS SAM์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๋ ๋์์ ์ฌ์ฉ์ ์ง์ ์ฝ๋๋ก ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์๋ ์ ์ฐ์ฑ์ ์ ๊ณตํ๋ฏ๋ก ๊ฐ๋ฐ์๊ฐ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์กฐ์ ํ ์ ์์ต๋๋ค.

AWS SAM์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋จ์์ฑ, ํจ์จ์ฑ ๋ฐ ๋น์ฉ ์ ๊ฐ์ ์ ๊ณตํฉ๋๋ค. ์๋ฒ๋ฆฌ์ค ์ปดํจํ ์ ์ ์ฌ๋ ฅ์ ๊ทน๋ํํ์ฌ ๊ฐ๋ฐ์๊ฐ ์ธํ๋ผ ๊ด๋ฆฌ๋ณด๋ค ํ์์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ๋ฐ ๋ ์ง์คํ ์ ์๋๋ก ํฉ๋๋ค.
AWS SAM ์์ํ๊ธฐ
AWS Serverless Application Model(SAM) ์ฌ์ฉ์ ์์ํ๋ ค๋ฉด AWS ๊ณ์ ์ด ์์ด์ผ ํ๊ณ ์์คํ ์ AWS CLI ๋ฐ AWS SAM CLI๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค. ๊ณ์ํ๊ธฐ ์ ์ ์๊ฒฉ ์ฆ๋ช ์ผ๋ก AWS CLI๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. ๋ชจ๋ ์ค์ ์ด ์๋ฃ๋๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ์ํํ ์ ์์ต๋๋ค.
- ์ ํ๋ก์ ํธ ํด๋ ๋ง๋ค๊ธฐ: ํฐ๋ฏธ๋(๋๋ ๋ช ๋ น ํ๋กฌํํธ)์ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค. ์ค์น๋ฅผ ์งํํ๋ ค๋ฉด ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ์ญ์์ค.
- AWS SAM ์ ํ๋ฆฌ์ผ์ด์ ์ด๊ธฐํ: ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค.
์ ์ด๊ธฐํ
์ด ๋ช ๋ น์ ์ SAM ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๊ธฐํํ์ฌ template.yaml ํ์ผ๊ณผ ์์ Lambda ํจ์๊ฐ ์๋ ์ฝ๋ ํด๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ง์ ๋ ์ต์ (์: Node.js, Python , Go)์์ ์๋ฒ๋ฆฌ์ค ๊ธฐ๋ฅ์ ๋ํ ๋ฐํ์์ ์ ํํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ํ ํ๋ฆฟ์ ์ ํํ ์ ์์ต๋๋ค.
- ์์ฑ๋ ํ์ผ ํ์: ์ ํธํ๋ ์ฝ๋ ํธ์ง๊ธฐ์์ ํ๋ก์ ํธ ํด๋๋ฅผ ์ด๊ณ ์์ฑ๋ ํ์ผ์ ๊ฒํ ํ์ฌ ํ ํ๋ฆฟ ๊ตฌ์กฐ์ Lambda ํจ์๋ฅผ ๋ ์ ์ดํดํฉ๋๋ค.
- ์ถ๊ฐ ๋ฆฌ์์ค ์์ฑ ๋ฐ ๊ตฌ์ฑ: template.yaml ํ์ผ์ ์ฌ์ฉํ์ฌ API, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ์ด๋ฒคํธ์ ๊ฐ์ด ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ๋ฆฌ์์ค๋ฅผ ์ ์ํฉ๋๋ค. ์์ Lambda ํจ์๋ฅผ ์์ ํ์ฌ ๊ณ ์ ํ ๋ ผ๋ฆฌ๋ฅผ ๊ตฌํํ ์๋ ์์ต๋๋ค.
- ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก์ปฌ์์ ํ ์คํธ: AWS SAM CLI๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ AWS ํด๋ผ์ฐ๋์ ๋ฐฐํฌํ๊ธฐ ์ ์ ๋ก์ปฌ์์ ํ ์คํธํ๊ณ ๋๋ฒ๊ทธํ์ญ์์ค. ํฐ๋ฏธ๋์์ ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค.
์ ๋ก์ปฌ ํธ์ถ
์ด ๋ช ๋ น์ ์๋ฒ๋ฆฌ์ค ๊ธฐ๋ฅ์ ํธ์ถํ๊ณ ์ถ๋ ฅ์ ํ์ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ฒ๊น ํ๊ณ ํ ์คํธํ ์ ์๋๋ก ํฉ๋๋ค.
- ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ: ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก์ปฌ์์ ํ ์คํธํ ํ ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ AWS CloudFormation์ ํจํค์งํ๊ณ ๋ฐฐํฌํฉ๋๋ค.
์ ํจํค์ง --s3-bucket your-s3-bucket-name
sam ๋ฐฐํฌ --ํ
ํ๋ฆฟ-ํ์ผ template.yaml --์คํ-์ด๋ฆ ์คํ-์ด๋ฆ --capabilities CAPABILITY_IAM
<i>your-s3-bucket-name</i> , <i>template.yaml</i> ๋ฐ <i>your-stack-name</i> ์ ์ ํ ๊ฐ์ผ๋ก ๋ฐ๊ฟ๋๋ค. CAPABILITY_IAM์ ์ฌ์ฉํ๋ฉด AWS CloudFormation์์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์
์ ํ์ํ IAM ์ญํ ์ ์์ฑํ ์ ์์ต๋๋ค.
์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐฐํฌ๋๋ฉด AWS CloudFormation์ template.yaml ํ์ผ์ ์ ์๋ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ํ๋ก๋น์ ๋ํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ฉ์ ์์ํ ์ ์์ต๋๋ค.
AWS SAM CLI
AWS Serverless Application Model ๋ช ๋ น์ค ์ธํฐํ์ด์ค(SAM CLI)๋ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ, ํ ์คํธ ๋ฐ ๋ฐฐํฌํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ํ๋ถํ ๋ช ๋ น ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ค์์ ์์ฃผ ์ฌ์ฉ๋๋ ๋ช ๊ฐ์ง AWS SAM CLI ๋ช ๋ น์ ๋๋ค.
- sam init: template.yaml ํ์ผ ๋ฐ ์์ Lambda ํจ์๋ก ์ฌ์ ๊ตฌ์ฑ๋ ์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๊ธฐํํฉ๋๋ค.
- sam build: ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ํ๊ณ Lambda ํจ์ ์ฝ๋ ๋ฐ ํด๋น ์ข ์์ฑ์ ํจํค์งํฉ๋๋ค.
- sam local invoke: ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก์ปฌ์์ ํธ์ถํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธํ๊ณ ๋๋ฒ๊ทธํ ์ ์์ต๋๋ค.
- sam local start-api: ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ฉ ๋ก์ปฌ API ๊ฒ์ดํธ์จ์ด๋ฅผ ์์ํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ API๋ฅผ ํ ์คํธํ ์ ์์ต๋๋ค.
- sam ํจํค์ง: ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋์ ์ข ์์ฑ์ ํจํค์งํ๊ณ Amazon S3 ๋ฒํท์ ์ ๋ก๋ํฉ๋๋ค.
- sam deploy: ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ AWS CloudFormation์ ๋ฐฐํฌํ์ฌ template.yaml ํ์ผ์ ์ ์๋ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ํ๋ก๋น์ ๋ํฉ๋๋ค.
- sam logs: Lambda ํจ์์์ ๋ก๊ทธ ์ด๋ฒคํธ๋ฅผ ๊ฒ์ํ๊ณ ํ์ํฉ๋๋ค.
- sam validate: template.yaml ํ์ผ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ์ฌ ํ์์ด ์ฌ๋ฐ๋ฅด๊ณ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋์ง ํ์ธํฉ๋๋ค.
์ด๋ฌํ ๋ช ๋ น์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋จ์ํํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๊ตฌ์ถ, ํ ์คํธ ๋ฐ AWS ํด๋ผ์ฐ๋์ ๋ฐฐํฌํ ์ ์๋๋ก ํฉ๋๋ค.
AWS SAM ํ ํ๋ฆฟ ๊ตฌ์กฐ
AWS SAM ํ ํ๋ฆฟ์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ์์ค, ์์ฑ ๋ฐ ๊ตฌ์ฑ์ ์ ์ํ๋ YAML ๋๋ JSON ํ์ผ์ ๋๋ค. ํ ํ๋ฆฟ์ ์ ํ๋ฆฌ์ผ์ด์ ์ธํ๋ผ์ ์ฒญ์ฌ์ง ์ญํ ์ ํ๋ฏ๋ก ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๋ฒ์ ํ, ๋ณต์ ๋ฐ ๊ณต์ ํ ์ ์์ต๋๋ค. ๋ค์์ ์ผ๋ฐ์ ์ธ AWS SAM ํ ํ๋ฆฟ์ ์ฃผ์ ๊ตฌ์ฑ ์์์ ๋ํ ๊ฐ์์ ๋๋ค.
- AWSTemplateFormatVersion: ์ฌ์ฉ ์ค์ธ ํ ํ๋ฆฟ ํ์ ๋ฒ์ ์ ๋๋ค(์ ํ ์ฌํญ).
- ๋ณํ: AWS SAM ํ ํ๋ฆฟ ๋ฒ์ ์ ๋๋ค. ์ด ์์ฑ์๋ "AWS::Serverless-2016-10-31"์ ์ฌ์ฉํ์ญ์์ค.
- ๋ฆฌ์์ค: ์๋ฒ๋ฆฌ์ค ๋ฆฌ์์ค ๋ฐ ํด๋น ์์ฑ์ ๋๋ค. ์ด ์น์ ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ AWS Lambda ํจ์, API ๊ฒ์ดํธ์จ์ด ๋ฐ ๊ธฐํ ์ข ์ AWS ๋ฆฌ์์ค๋ฅผ ์ ์ํฉ๋๋ค. ๊ฐ ๋ฆฌ์์ค์๋ ๋ ผ๋ฆฌ์ ๋ฆฌ์์ค ์ด๋ฆ์ด ํ ๋น๋๋ฉฐ ํ ํ๋ฆฟ์ ๋ค๋ฅธ ๋ถ๋ถ์์ ์ด๋ฆ์ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
- ๋งค๊ฐ๋ณ์: ํ ํ๋ฆฟ์์ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ค๋ ์ ๋ ฅ ๋งค๊ฐ๋ณ์ ์ธํธ์ ๋๋ค(์ ํ ์ฌํญ).
- ์ถ๋ ฅ: ๋ค๋ฅธ AWS SAM ํ ํ๋ฆฟ ๋๋ AWS CloudFormation ์คํ(์ ํ ์ฌํญ)์ ๋ ธ์ถํ๋ ค๋ ์ถ๋ ฅ ๊ฐ ์ธํธ์ ๋๋ค.
- ์ ์ญ: ํ ํ๋ฆฟ์ ๋ชจ๋ AWS::Serverless::Function ๋ฆฌ์์ค์ ๋ํ ์ ์ญ ์ค์ ์ ์ ์ํ ์ ์๋ ์น์ ์ ๋๋ค(์ ํ ์ฌํญ).
- ์กฐ๊ฑด: ์ ๋ ฅ ๋งค๊ฐ ๋ณ์ ๋๋ ๊ธฐ์กด ๋ฆฌ์์ค(์ ํ ์ฌํญ)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฆฌ์์ค ์์ฑ์ ์ฌ์ฉ์ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์กฐ๊ฑด ์งํฉ์ ๋๋ค.
๋ฆฌ์์ค๋ฅผ ์ ์ํ ๋ ๋ค์๊ณผ ๊ฐ์ ๋ค์ํ AWS ๊ด๋ จ ๋ฆฌ์์ค ์ ํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- AWS::์๋ฒ๋ฆฌ์ค::ํจ์
- AWS::์๋ฒ๋ฆฌ์ค::API
- AWS::์๋ฒ๋ฆฌ์ค::์ฌํํ ์ด๋ธ
- AWS::์๋ฒ๋ฆฌ์ค::HttpApi
๋ํ ํ์ฌ AWS SAM ํ์ฅ์์ ์ ๊ณตํ๋ ์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค ์ ํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ ํ๋ฆฟ์ AWS CloudFormation์์ ์ฝ๊ณ ํด์ํ ๋ค์ ์ ์ธ์ ๋ฐ๋ผ ํ์ํ ๋ฆฌ์์ค๋ฅผ ํ๋ก๋น์ ๋ํฉ๋๋ค.
์ด์ AWS SAM ํ ํ๋ฆฟ ๊ตฌ์กฐ๋ฅผ ๋ ์ ์ดํดํ์ผ๋ฏ๋ก template.yaml ํ์ผ ์์ ์ ์งํํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๋ฆฌ์์ค, ์์ฑ ๋ฐ ๊ตฌ์ฑ์ ์ ์ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด AWS ๋ชจ๋ฒ ์ฌ๋ก์ ๋ฐ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถ, ํ ์คํธ ๋ฐ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
AWS SAM ํ ํ๋ฆฟ ๋ฆฌ์์ค
AWS SAM์์ ํ ํ๋ฆฟ์ AWS Lambda ํจ์, Amazon API Gateway API ๋ฐ Amazon DynamoDB ํ ์ด๋ธ์ ํฌํจํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ์์ค๋ฅผ ์ ์ํฉ๋๋ค. ํ ํ๋ฆฟ์ AWS CloudFormation์ ์ฌ์ฉํ์ฌ ๋ฐฐํฌํ ์ ์๋ JSON ๋๋ YAML ํ์ผ์ ๋๋ค. AWS SAM์ ๋ค์๊ณผ ๊ฐ์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ค์ํ ๋ฆฌ์์ค ์ ํ์ ์ ๊ณตํฉ๋๋ค.
AWS::์๋ฒ๋ฆฌ์ค::ํจ์
์ด ๋ฆฌ์์ค ์ ํ์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ Lambda ํจ์๋ฅผ ๋ํ๋ ๋๋ค. ๋ฐํ์, ํธ๋ค๋ฌ, ์ฝ๋ ์์ค ๋ฐ ๊ด๋ จ ์ด๋ฒคํธ์ ๊ฐ์ ์์ฑ์ ์ ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด:
Resources: LambdaFunction: Type: AWS::Serverless::Function Properties: Runtime: nodejs14.x Handler: index.handler CodeUri: ./src Events: Api: Type: Api Properties: Path: /example Method: GET
AWS::์๋ฒ๋ฆฌ์ค::API
์ด ๋ฆฌ์์ค ์ ํ์ API Gateway REST API ๋ฅผ ๋ํ๋ ๋๋ค. ๋จ๊ณ ์ด๋ฆ, ์ธ์ฆ ๋ฐ ๋ฉ์๋ ์ค์ ๊ณผ ๊ฐ์ ์์ฑ์ ์ ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด:
Resources: ApiGatewayApi: Type: AWS::Serverless::Api Properties: StageName: prod EndpointConfiguration: REGIONAL
AWS::์๋ฒ๋ฆฌ์ค::HTTPApi
์ด ๋ฆฌ์์ค ์ ํ์ API Gateway HTTP API๋ฅผ ๋ํ๋ ๋๋ค. HTTP API๋ฅผ ์ฌ์ฉํ๋ฉด WebSocket์ ํฌํจํ์ฌ ๋๊ธฐ ์๊ฐ์ด ์งง๊ณ ๋น์ฉ ํจ์จ์ ์ธ API๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด:
Resources: HttpApi: Type: AWS::Serverless::HTTPApi Properties: StageName: prod
AWS::์๋ฒ๋ฆฌ์ค::์ฌํํ ์ด๋ธ
์ด ๋ฆฌ์์ค ์ ํ์ DynamoDB ํ ์ด๋ธ์ ๋ํ๋ ๋๋ค. ๊ธฐ๋ณธ ํค ๋ฐ ์์ฑ ์ ์์ ๊ฐ์ ์์ฑ์ ์ ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด:
Resources: DynamoDbTable: Type: AWS::Serverless::SimpleTable Properties: PrimaryKey: Name: id Type: String
๋ค๋ฅธ AWS SAM ๋ฆฌ์์ค์๋ AWS::Serverless::StateMachine(AWS Step Functions), AWS::Serverless::Application(์ค์ฒฉ ์ ํ๋ฆฌ์ผ์ด์ ) ๋ฐ AWS::Serverless::LayerVersion(Lambda ๊ณ์ธต)์ด ํฌํจ๋ฉ๋๋ค.
AWS SAM ์ฌ์ฉ ๋ชจ๋ฒ ์ฌ๋ก
AWS SAM์ ์ฌ์ฉํ๋ ๋์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํ๋ฉด ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ์จ์ ์ธ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ๊ฐ ๋ณด์ฅ๋ฉ๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ๊ถ์ฅ ์ฌํญ์ ๋๋ค.
-
ํจ์ ๋ฐ ํ ํ๋ฆฟ ๋ชจ๋ํ
๊ฐ ๊ธฐ๋ฅ ๋๋ ์๋น์ค์ ๋ํด ๋ณ๋์ Lambda ํจ์ ๋ฐ ํ ํ๋ฆฟ์ ์์ฑํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ ์ง ๊ด๋ฆฌ๊ฐ ๋ ์ฌ์์ง๊ณ ๋ฌธ์ ๋ฅผ ๋ ์ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค.
-
AWS SAM ์ ์ฑ ํ ํ๋ฆฟ ์ฌ์ฉ
AWS SAM์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ IAM ์ ์ฑ ์ ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ด ๋๋ ์ฌ์ ์ ์๋ ์ ์ฑ ํ ํ๋ฆฟ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ํ ํ๋ฆฟ์ ํ์ฉํ์ฌ ๋ฆฌ์์ค์ ๋ํ ์์ ํ๊ณ ์ผ๊ด๋ ๊ถํ ์งํฉ์ ๋ณด์ฅํ์ญ์์ค.
-
์ข ์์ฑ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ
npm ๋๋ pip์ ๊ฐ์ ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ์ฌ ์ข ์์ฑ์ ํจ๊ณผ์ ์ผ๋ก ๊ตฌ์ฑํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ ๋์ ๋ฒ์ ์ ์ด๊ฐ ๊ฐ๋ฅํ๊ณ ์ข ์์ฑ ์ถฉ๋ ์ํ์ด ์ค์ด๋ญ๋๋ค.
-
์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๊ฒ์ฆ ๋ฐ ํ ์คํธ
AWS SAM CLI๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ AWS ํด๋ผ์ฐ๋์ ๋ฐฐํฌํ๊ธฐ ์ ์ ๋ก์ปฌ์์ ๊ฒ์ฆํ๊ณ ํ ์คํธํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ์กฐ๊ธฐ์ ์๋ณํ๊ณ ๋ ์ํํ ๋ฐฐํฌ๋ฅผ ๋ณด์ฅํ ์ ์์ต๋๋ค.
-
์ฑ๋ฅ ์ต์ ํ ๋ฐ ๋น์ฉ ์ ๊ฐ
AWS X-Ray ๋ฐ Amazon CloudWatch์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ๋ถ์ํ๊ณ ๋ชจ๋ํฐ๋งํฉ๋๋ค. Lambda ํจ์์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ, ์ ํ ์๊ฐ ๋ฐ ๋์์ฑ ์ค์ ์ ๊ตฌ์ฑํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํํฉ๋๋ค.
AWS SAM๊ณผ AppMaster.io์ ํตํฉ
๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋ ธ์ฝ๋ ํ๋ซํผ์ธ AppMaster.io๋ฅผ AWS SAM๊ณผ ํตํฉํ์ฌ ์๋ฒ๋ฆฌ์ค ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ต๋๋ค. AppMaster.io๋ฅผ AWS SAM๊ณผ ์ฐ๊ฒฐํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ง์ ์ด์ ์ด ์์ต๋๋ค.
-
AppMaster.io๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ค๊ณ
AppMaster.io์ ์๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ํตํด AWS SAM์ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค. ์ฝ๋๋ฅผ ์์ฑํ์ง ์๊ณ ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ, ๋น์ฆ๋์ค ๋ก์ง ๋ฐ API endpoints ์์ฑํ ์ ์์ต๋๋ค.
-
์๋ ์์ฑ ๋ฌธ์์ ์ด์
์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๊ณํ๋ ๋์ AppMaster.io๋ ์๋ฒ endpoints ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์คํฌ๋ฆฝํธ์ ๋ํ Swagger(OpenAPI) ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์์ฑํฉ๋๋ค. ์ด๋ฅผ ํตํด AWS SAM API๋ก ์์ ํ ๋ ์ํํ ๊ฒฝํ์ ๋ณด์ฅํฉ๋๋ค.
-
๋์ ์ธ ๋ํํ ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ง๋ค๊ธฐ
AppMaster.io์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด AWS SAM๊ณผ ์ํํ๊ฒ ์๋ํ๋ ์์ ํ ๋ํํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ํ์ฅ ๊ฐ๋ฅํ๊ณ ํจ์จ์ ์ด๋ฉฐ ๋น์ฉ ํจ์จ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
-
AWS Lambda ์ด๋ฒคํธ ํธ๋ฆฌ๊ฑฐ ํตํฉ
AppMaster.io๋ฅผ ์ฌ์ฉํ๋ฉด AWS SAM์์ ์์ฑ๋ Lambda ์ด๋ฒคํธ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์๋ฒ๋ฆฌ์ค ๊ธฐ๋ฅ์ AppMaster.io์ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ํํ๊ณ ํจ์จ์ ์ผ๋ก ์คํ๋ฉ๋๋ค.

AppMaster.io๋ฅผ AWS SAM๊ณผ ํตํฉํ๋ฉด ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ๊ตฌ์ถํ๊ณ ๋ฐฐํฌํ์ฌ ๊ถ๊ทน์ ์ผ๋ก ์๊ฐ๊ณผ ๊ฐ๋ฐ ๋น์ฉ์ ์ ์ฝ ํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
AWS ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ธ(SAM)์ AWS ํด๋ผ์ฐ๋์์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ๋ฅผ ๊ฐ์ํํ๋ ํ์ ํ๋ ์์ํฌ์ ๋๋ค. ๊ฐ๋ฐ์๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๊ธฐ๋ณธ ์๋ฒ ์ธํ๋ผ์ ๋ํ ๊ฑฑ์ ์์ด ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ๋ฐฐํฌ๋ฅผ ๊ฐ์ํํ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค. AWS CloudFormation ๋ฐ AWS SAM CLI์์ ํตํฉ์ ๊ฐ๋ฐ์์๊ฒ ํฌ๊ด์ ์ด๊ณ ์ผ๊ด๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. Lambda, API Gateway ๋ฐ DynamoDB์ ๊ฐ์ ๋ค์ํ AWS ์๋น์ค์ ํจ๊ป ์๋ํ๋ ๊ธฐ๋ฅ์ ์ ์ฐ์ฑ๊ณผ ์ ์์ฑ์ ๋์ฑ ํฅ์์ํต๋๋ค. AWS SAM์ ์ฌ์ฉํ ๋ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ํตํฉํ๋ฉด ๋ณด๋ค ํจ์จ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ด์ด์ ธ ๊ถ๊ทน์ ์ผ๋ก ๋น์ฉ์ ์ ๊ฐํ๊ณ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๋ํ AppMaster.io no-code ํ๋ซํผ์ AWS SAM๊ณผ ์ํํ๊ฒ ์๋ํ์ฌ no-code ๊ฐ๋ฐ๊ณผ ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ์ ์ด์ ์ ์๋ฒฝํ๊ฒ ๊ฒฐํฉํฉ๋๋ค. ์ด๋ฌํ ํตํฉ์ ํตํด ๋น์ฆ๋์ค๋ ์๊ตฌ ์ฌํญ์ด ๋ณํํจ์ ๋ฐ๋ผ ๋ฏผ์ฒฉ์ฑ์ ์ ์งํ๋ฉด์ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ์๊ฐ์ ๋จ์ถํ ์ ์์ต๋๋ค. ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ๊ฐ ์ ์ ๋ ์ค์ํด์ง์ ๋ฐ๋ผ ๊ฐ๋ฐ์๊ฐ ์ต์ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ฐ์ ์์ ๊ฒฝ์๋ ฅ์ ์ ์งํ๋ ค๋ฉด AWS SAM ํ๋ ์์ํฌ์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊น์ด ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
AWS Serverless Application Model(SAM)์ AWS ํด๋ผ์ฐ๋์์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ๋ฅผ ๊ฐ์ํํ๋ ์คํ ์์ค ํ๋ ์์ํฌ์ ๋๋ค.
์ผ๋ถ ์ฃผ์ ๊ธฐ๋ฅ์๋ ๋จ์ผ ๋ฐฐํฌ ๊ตฌ์ฑ, ๋ก์ปฌ ํ ์คํธ ๋ฐ ๋๋ฒ๊น , ๊ธฐ๋ณธ ์ ๊ณต ๋ชจ๋ฒ ์ฌ๋ก, ์ ์ฑ ํ ํ๋ฆฟ ๋ฐ ๋ค์ํ AWS ์๋น์ค ์ง์์ด ํฌํจ๋ฉ๋๋ค.
์ด์ ์๋ ๋จ์ํ๋ ๋ฐฐํฌ, ๊ฐ๋ฐ ์๊ฐ ๋จ์ถ, ์ผ๊ด๋ ๊ฐ๋ฐ ํ๊ฒฝ, ๋น์ฉ ํจ์จ์ฑ ๋ฐ ์ฌ์ฉ์ ์ง์ ์ฝ๋๋ก ๊ธฐ๋ฅ์ ํ์ฅํ๋ ๊ธฐ๋ฅ์ด ํฌํจ๋ฉ๋๋ค.
AWS SAM CLI๋ AWS SAM ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑ, ํ ์คํธ ๋ฐ ๋ฐฐํฌํ๊ธฐ ์ํ ๋ช ๋ น์ค ์ธํฐํ์ด์ค์ ๋๋ค.
AWS SAM ํ ํ๋ฆฟ์ ํจ์, API ๋ฐ ์ด๋ฒคํธ์ ๊ฐ์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ์์ค๋ฅผ ์ ์ํ๋ YAML ๋๋ JSON ํ์ผ์ ๋๋ค.
AWS SAM CLI๋ฅผ ์ฌ์ฉํ์ฌ AWS SAM ํ ํ๋ฆฟ์ ์์ฑํ๊ณ AWS CloudFormation์ ๋ฐฐํฌํฉ๋๋ค. ํ ํ๋ฆฟ ํ์ผ์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ์์ค์ ์์ฑ์ ์ ์ํฉ๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก์๋ ํจ์ ๋ฐ ํ ํ๋ฆฟ ๋ชจ๋ํ, AWS ์ ์ฑ ํ ํ๋ฆฟ ์ฌ์ฉ, ํจ์จ์ ์ธ ์ข ์์ฑ ๊ด๋ฆฌ, ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๊ฒ์ฆ ๋ฐ ํ ์คํธ๊ฐ ํฌํจ๋ฉ๋๋ค.
์, AppMaster.io์ no-code ํ๋ซํผ์ ์ ์ ํ API endpoints ์ AWS SAM ์์ฑ ์ด๋ฒคํธ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ฌ์ฉํ์ฌ AWS SAM๊ณผ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.


