Devops/AWS

AWS Lambda์™€ AWS DevOps ํ†ตํ•ฉํ•˜์—ฌ ์„œ๋ฒ„๋ฆฌ์Šค ๋ฐฐํฌ

develkbh 2025. 4. 9. 16:08

 


๐Ÿ“ฃ AWS Lambda์™€ AWS DevOps ํ†ตํ•ฉํ•˜์—ฌ ์„œ๋ฒ„๋ฆฌ์Šค ๋ฐฐํฌ

๐Ÿงญ ์™œ AWS Lambda์™€ DevOps ํ†ตํ•ฉ์ด ์ค‘์š”ํ•œ๊ฐ€?
AWS Lambda์™€ AWS DevOps์˜ ํ†ตํ•ฉ์€ ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ฐฐํฌํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฆฌ์Šค๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์„œ๋ฒ„ ๊ด€๋ฆฌ์˜ ๋ณต์žกํ•จ ์—†์ด ์ฝ”๋“œ ์‹คํ–‰์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ฝ”๋“œ ์—…๋ฐ์ดํŠธ๋‚˜ ๋ฐฐํฌ ๊ณผ์ •์—์„œ๋„ ์ž๋™ํ™”์™€ ์ง€์†์ ์ธ ํ†ตํ•ฉ(CI) ๋ฐ ์ง€์†์ ์ธ ๋ฐฐํฌ(CD)์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. AWS DevOps์™€ Lambda๋ฅผ ํ†ตํ•ฉํ•˜๋ฉด ์„œ๋ฒ„๋ฆฌ์Šค๋ฅผ ์œ„ํ•œ ์ž๋™ํ™”๋œ ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


โœ… 1. AWS Lambda๋ž€?

AWS Lambda๋Š” ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ… ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•  ํ•„์š” ์—†์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AWS Lambda๋Š” ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์ž๋™์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž๋Š” ์„œ๋ฒ„๋‚˜ ์ธํ”„๋ผ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

  • ์ฃผ์š” ํŠน์ง•:
    • ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์‹คํ–‰
    • ์ž๋™ ํ™•์žฅ ๋ฐ ์ž๋™ ๊ด€๋ฆฌ
    • ์‚ฌ์šฉํ•œ ๋งŒํผ๋งŒ ์š”๊ธˆ ์ง€๋ถˆ

๐Ÿ“ฉ 2. AWS Lambda์™€ DevOps ํŒŒ์ดํ”„๋ผ์ธ ํ†ตํ•ฉํ•˜๊ธฐ

โ–ถ ๋ฐฉ๋ฒ•: AWS Lambda์™€ AWS DevOps(CodePipeline, CodeBuild ๋“ฑ)๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž๋™ํ™”๋œ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐํฌ ๊ณผ์ • ์„ค์ •

  1. ์†Œ์Šค ์ฝ”๋“œ ๊ด€๋ฆฌ: GitHub ๋˜๋Š” AWS CodeCommit์—์„œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  2. CI (์ง€์†์  ํ†ตํ•ฉ): AWS CodeBuild๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Lambda ํ•จ์ˆ˜๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
  3. CD (์ง€์†์  ๋ฐฐํฌ): AWS CodePipeline์„ ์‚ฌ์šฉํ•˜์—ฌ Lambda ํ•จ์ˆ˜์˜ ์ž๋™ ๋ฐฐํฌ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Lambda ๋ฐฐํฌ ์˜ˆ์‹œ:


[yaml]

 

version: 0.2
phases:
  build:
    commands:
      - echo "Building the Lambda Function"
      - npm install
      - zip -r function.zip .
artifacts:
  files:
    - function.zip


์œ„ ์˜ˆ์‹œ์—์„œ๋Š” Lambda ํ•จ์ˆ˜๋ฅผ ๋นŒ๋“œํ•˜๊ณ  .zip ํŒŒ์ผ๋กœ ์••์ถ•ํ•˜์—ฌ AWS์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ’ฌ 3. CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•œ ์ž๋™ํ™”๋œ ๋ฐฐํฌ

โ–ถ ๋ฐฉ๋ฒ•: AWS CodePipeline์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž๋™ํ™”๋œ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์ž๋™ํ™”๋œ ๋ฐฐํฌ ํ๋ฆ„:

  1. GitHub์— ์ฝ”๋“œ ํ‘ธ์‹œ: ์ƒˆ๋กœ์šด ์ฝ”๋“œ๊ฐ€ GitHub์— ํ‘ธ์‹œ๋ฉ๋‹ˆ๋‹ค.
  2. AWS CodeBuild: CodeBuild๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋นŒ๋“œํ•˜์—ฌ Lambda ํ•จ์ˆ˜๋ฅผ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค.
  3. AWS CodeDeploy: CodeDeploy๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Lambda ํ•จ์ˆ˜๋ฅผ AWS์—์„œ ์ž๋™์œผ๋กœ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
  4. AWS Lambda: ์ƒˆ ๋ฒ„์ „์˜ Lambda ํ•จ์ˆ˜๊ฐ€ ๋ฐฐํฌ๋˜์–ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

โœจ ์‹ค์ „ ์˜ˆ: AWS Lambda์™€ DevOps๋ฅผ ์ด์šฉํ•œ ์„œ๋ฒ„๋ฆฌ์Šค ๋ฐฐํฌ

  1. GitHub์— ์ฝ”๋“œ ์ปค๋ฐ‹
  2. AWS CodePipeline์—์„œ ์ž๋™์œผ๋กœ ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ ์‹œ์ž‘
  3. Lambda์— ์ƒˆ ๋ฒ„์ „์˜ ํ•จ์ˆ˜ ์ž๋™ ๋ฐฐํฌ
  4. ์ž๋™ ํ™•์žฅ์œผ๋กœ ์ˆ˜์š”์— ๋งž์ถฐ Lambda ์ธ์Šคํ„ด์Šค ์ž๋™ ํ™•์žฅ

โœ… ์ด ๊ณผ์ •์„ ํ†ตํ•ด ์„œ๋ฒ„๋ฆฌ์Šค๋ฅผ ์œ„ํ•œ ๋ฐฐํฌ ์ž๋™ํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง€๊ณ , ์—…๋ฐ์ดํŠธ ๋ฐ ๋กค๋ฐฑ๋„ ์ˆ˜์›”ํ•˜๊ฒŒ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.


๐Ÿ” ๋งˆ๋ฌด๋ฆฌ

AWS Lambda์™€ AWS DevOps์˜ ํ†ตํ•ฉ์€ ์„œ๋ฒ„๋ฆฌ์Šค๋ฅผ ์œ„ํ•œ ํšจ์œจ์ ์ธ ๋ฐฐํฌ์™€ ์ž๋™ํ™”๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
โœ”๏ธ ์„œ๋ฒ„ ๊ด€๋ฆฌ์—์„œ ๋ฒ—์–ด๋‚˜ ์ฝ”๋“œ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,
โœ”๏ธ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ๋ฐฐํฌ ์ฃผ๊ธฐ๋ฅผ ๋‹จ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โœ”๏ธ Lambda์˜ ์ž๋™ ํ™•์žฅ์„ ํ†ตํ•ด ํŠธ๋ž˜ํ”ฝ ๋ณ€ํ™”์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DevOps์™€ ์„œ๋ฒ„๋ฆฌ์Šค์˜ ๊ฒฐํ•ฉ์œผ๋กœ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋†’์ด๊ณ , ๋ฐฐํฌ์˜ ํšจ์œจ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜Š