2023๋…„ 7์›” 29์ผยท4๋ถ„ ์ฝ๊ธฐ

AWS ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋ธ(SAM) ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ธฐ

AWS ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋ธ(SAM), ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ, ์„œ๋ฒ„๋ฆฌ์Šค ์•ฑ ๊ฐœ๋ฐœ์„ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•, SAM์„ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ ๋”ฐ๋ผ์•ผ ํ•  ๋ชจ๋ฒ” ์‚ฌ๋ก€์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์‹ญ์‹œ์˜ค.

AWS ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋ธ(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๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์„ค์ •์ด ์™„๋ฃŒ๋˜๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์ƒˆ ํ”„๋กœ์ ํŠธ ํด๋” ๋งŒ๋“ค๊ธฐ: ํ„ฐ๋ฏธ๋„(๋˜๋Š” ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ)์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์ƒˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•˜๋ ค๋ฉด ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜์‹ญ์‹œ์˜ค.
  2. AWS SAM ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ดˆ๊ธฐํ™”: ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
 ์ƒ˜ ์ดˆ๊ธฐํ™”

์ด ๋ช…๋ น์€ ์ƒˆ SAM ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ดˆ๊ธฐํ™”ํ•˜์—ฌ template.yaml ํŒŒ์ผ๊ณผ ์˜ˆ์ œ Lambda ํ•จ์ˆ˜๊ฐ€ ์žˆ๋Š” ์ฝ”๋“œ ํด๋”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ง€์ •๋œ ์˜ต์…˜(์˜ˆ: Node.js, Python , Go)์—์„œ ์„œ๋ฒ„๋ฆฌ์Šค ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋Ÿฐํƒ€์ž„์„ ์„ ํƒํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ํ…œํ”Œ๋ฆฟ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์ƒ์„ฑ๋œ ํŒŒ์ผ ํƒ์ƒ‰: ์„ ํ˜ธํ•˜๋Š” ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ์—์„œ ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ์—ด๊ณ  ์ƒ์„ฑ๋œ ํŒŒ์ผ์„ ๊ฒ€ํ† ํ•˜์—ฌ ํ…œํ”Œ๋ฆฟ ๊ตฌ์กฐ์™€ Lambda ํ•จ์ˆ˜๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.
  2. ์ถ”๊ฐ€ ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ ๋ฐ ๊ตฌ์„ฑ: template.yaml ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ API, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์ด๋ฒคํŠธ์™€ ๊ฐ™์ด ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ œ Lambda ํ•จ์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ๊ณ ์œ ํ•œ ๋…ผ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋กœ์ปฌ์—์„œ ํ…Œ์ŠคํŠธ: AWS SAM CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ AWS ํด๋ผ์šฐ๋“œ์— ๋ฐฐํฌํ•˜๊ธฐ ์ „์— ๋กœ์ปฌ์—์„œ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋””๋ฒ„๊ทธํ•˜์‹ญ์‹œ์˜ค. ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
 ์ƒ˜ ๋กœ์ปฌ ํ˜ธ์ถœ

์ด ๋ช…๋ น์€ ์„œ๋ฒ„๋ฆฌ์Šค ๊ธฐ๋Šฅ์„ ํ˜ธ์ถœํ•˜๊ณ  ์ถœ๋ ฅ์„ ํ‘œ์‹œํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋””๋ฒ„๊น…ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

  1. ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋กœ์ปฌ์—์„œ ํ…Œ์ŠคํŠธํ•œ ํ›„ ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ 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

ํŒ€์ด ์‹ ๋ขฐํ•˜๋Š” API ๋งŒ๋“ค๊ธฐ
OpenAPI ๋ฌธ์„œ๊ฐ€ ํฌํ•จ๋œ ๊น”๋”ํ•œ ๋ฐฑ์—”๋“œ๋ฅผ ์ƒ์„ฑํ•ด SAM ์„œ๋น„์Šค์˜ ํ†ตํ•ฉ์„ ๋” ๋น ๋ฅด๊ฒŒ ํ•˜์„ธ์š”.
API ๊ตฌ์ถ•

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 ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ
์„œ๋ฒ„๋ฆฌ์Šค ํŠธ๋ฆฌ๊ฑฐ๋‚˜ ์ด๋ฒคํŠธ๊ฐ€ ํ•„์š”ํ•  ๋•Œ AppMaster ์•ฑ์„ AWS ์„œ๋น„์Šค์™€ ์—ฐ๋™ํ•˜์„ธ์š”.
AWS ์—ฐ๋™

AWS SAM์„ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ค€์ˆ˜ํ•˜๋ฉด ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํšจ์œจ์ ์ธ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌ๊ฐ€ ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋ช‡ ๊ฐ€์ง€ ๊ถŒ์žฅ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

  1. ํ•จ์ˆ˜ ๋ฐ ํ…œํ”Œ๋ฆฟ ๋ชจ๋“ˆํ™”

    ๊ฐ ๊ธฐ๋Šฅ ๋˜๋Š” ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋ณ„๋„์˜ Lambda ํ•จ์ˆ˜ ๋ฐ ํ…œํ”Œ๋ฆฟ์„ ์ƒ์„ฑํ•˜์—ฌ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ๋” ์‰ฌ์›Œ์ง€๊ณ  ๋ฌธ์ œ๋ฅผ ๋” ์ž˜ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. AWS SAM ์ •์ฑ… ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ

    AWS SAM์€ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ IAM ์ •์ฑ…์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์‚ฌ์ „ ์ •์˜๋œ ์ •์ฑ… ํ…œํ”Œ๋ฆฟ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ…œํ”Œ๋ฆฟ์„ ํ™œ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ˆ์ „ํ•˜๊ณ  ์ผ๊ด€๋œ ๊ถŒํ•œ ์ง‘ํ•ฉ์„ ๋ณด์žฅํ•˜์‹ญ์‹œ์˜ค.

  3. ์ข…์†์„ฑ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ

    npm ๋˜๋Š” pip์™€ ๊ฐ™์€ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋” ๋‚˜์€ ๋ฒ„์ „ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ณ  ์ข…์†์„ฑ ์ถฉ๋Œ ์œ„ํ—˜์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

  4. ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฒ€์ฆ ๋ฐ ํ…Œ์ŠคํŠธ

    AWS SAM CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ AWS ํด๋ผ์šฐ๋“œ์— ๋ฐฐํฌํ•˜๊ธฐ ์ „์— ๋กœ์ปฌ์—์„œ ๊ฒ€์ฆํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ์กฐ๊ธฐ์— ์‹๋ณ„ํ•˜๊ณ  ๋” ์›ํ™œํ•œ ๋ฐฐํฌ๋ฅผ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  5. ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฐ ๋น„์šฉ ์ ˆ๊ฐ

    AWS X-Ray ๋ฐ Amazon CloudWatch์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ๋ถ„์„ํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. Lambda ํ•จ์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ, ์ œํ•œ ์‹œ๊ฐ„ ๋ฐ ๋™์‹œ์„ฑ ์„ค์ •์„ ๊ตฌ์„ฑํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

AWS SAM๊ณผ AppMaster.io์˜ ํ†ตํ•ฉ

ํ•„์ˆ˜ ๊ธฐ๋Šฅ ํฌํ•จ ์ถœ์‹œ
์ธ์ฆ ๊ฐ™์€ ์ค€๋น„๋œ ๋ชจ๋“ˆ๋กœ ์‹œ์ž‘ํ•ด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์ง‘์ค‘ํ•˜์„ธ์š”.
์ธ์ฆ ์ถ”๊ฐ€

๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๋…ธ์ฝ”๋“œ ํ”Œ๋žซํผ์ธ AppMaster.io๋ฅผ AWS SAM๊ณผ ํ†ตํ•ฉํ•˜์—ฌ ์„œ๋ฒ„๋ฆฌ์Šค ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster.io๋ฅผ AWS SAM๊ณผ ์—ฐ๊ฒฐํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋งŽ์€ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. AppMaster.io๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„

    AppMaster.io์˜ ์‹œ๊ฐ์  ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด AWS SAM์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋ฐ API endpoints ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ์ž๋™ ์ƒ์„ฑ ๋ฌธ์„œ์˜ ์ด์ 

    ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค๊ณ„ํ•˜๋Š” ๋™์•ˆ AppMaster.io๋Š” ์„œ๋ฒ„ endpoints ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ Swagger(OpenAPI) ๋ฌธ์„œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด AWS SAM API๋กœ ์ž‘์—…ํ•  ๋•Œ ์›ํ™œํ•œ ๊ฒฝํ—˜์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

  3. ๋™์ ์ธ ๋Œ€ํ™”ํ˜• ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ

    AppMaster.io์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด AWS SAM๊ณผ ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ์™„์ „ํ•œ ๋Œ€ํ™”ํ˜• ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ํšจ์œจ์ ์ด๋ฉฐ ๋น„์šฉ ํšจ์œจ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. 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 SAM์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

AWS Serverless Application Model(SAM)์€ AWS ํด๋ผ์šฐ๋“œ์—์„œ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

AWS SAM์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ผ๋ถ€ ์ฃผ์š” ๊ธฐ๋Šฅ์—๋Š” ๋‹จ์ผ ๋ฐฐํฌ ๊ตฌ์„ฑ, ๋กœ์ปฌ ํ…Œ์ŠคํŠธ ๋ฐ ๋””๋ฒ„๊น…, ๊ธฐ๋ณธ ์ œ๊ณต ๋ชจ๋ฒ” ์‚ฌ๋ก€, ์ •์ฑ… ํ…œํ”Œ๋ฆฟ ๋ฐ ๋‹ค์–‘ํ•œ AWS ์„œ๋น„์Šค ์ง€์›์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

AWS SAM์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์ด์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด์ ์—๋Š” ๋‹จ์ˆœํ™”๋œ ๋ฐฐํฌ, ๊ฐœ๋ฐœ ์‹œ๊ฐ„ ๋‹จ์ถ•, ์ผ๊ด€๋œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ, ๋น„์šฉ ํšจ์œจ์„ฑ ๋ฐ ์‚ฌ์šฉ์ž ์ง€์ • ์ฝ”๋“œ๋กœ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

AWS SAM CLI๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

AWS SAM CLI๋Š” AWS SAM ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑ, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.

AWS SAM ํ…œํ”Œ๋ฆฟ ๊ตฌ์กฐ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

AWS SAM ํ…œํ”Œ๋ฆฟ์€ ํ•จ์ˆ˜, API ๋ฐ ์ด๋ฒคํŠธ์™€ ๊ฐ™์€ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ •์˜ํ•˜๋Š” YAML ๋˜๋Š” JSON ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

AWS SAM์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

AWS SAM CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AWS SAM ํ…œํ”Œ๋ฆฟ์„ ์ƒ์„ฑํ•˜๊ณ  AWS CloudFormation์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์€ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฆฌ์†Œ์Šค์™€ ์†์„ฑ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

AWS SAM ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋ชจ๋ฒ” ์‚ฌ๋ก€์—๋Š” ํ•จ์ˆ˜ ๋ฐ ํ…œํ”Œ๋ฆฟ ๋ชจ๋“ˆํ™”, AWS ์ •์ฑ… ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ, ํšจ์œจ์ ์ธ ์ข…์†์„ฑ ๊ด€๋ฆฌ, ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฒ€์ฆ ๋ฐ ํ…Œ์ŠคํŠธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

AWS SAM์„ AppMaster.io์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ, AppMaster.io์˜ no-code ํ”Œ๋žซํผ์€ ์ ์ ˆํ•œ API endpoints ์™€ AWS SAM ์ƒ์„ฑ ์ด๋ฒคํŠธ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AWS SAM๊ณผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‰ฌ์šด ์‹œ์ž‘
๋ฉ‹์ง„๋งŒ๋“ค๊ธฐ

๋ฌด๋ฃŒ ์š”๊ธˆ์ œ๋กœ AppMaster๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.
์ค€๋น„๊ฐ€ ๋˜๋ฉด ์ ์ ˆํ•œ ๊ตฌ๋…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๋‹ค
AWS ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋ธ(SAM) ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ธฐ | AppMaster