Full_Stack developer

AWS CodeBuild๋กœ ๋นŒ๋“œ ์ž๋™ํ™”ํ•˜๊ธฐ ๋ณธ๋ฌธ

Devops/AWS

AWS CodeBuild๋กœ ๋นŒ๋“œ ์ž๋™ํ™”ํ•˜๊ธฐ

develkbh 2025. 4. 8. 13:53


๐Ÿ”ง AWS CodeBuild๋กœ ๋นŒ๋“œ ์ž๋™ํ™”ํ•˜๊ธฐ

์ง€๋‚œ ๊ธ€์—์„œ๋Š” AWS CodePipeline์„ ํ™œ์šฉํ•ด์„œ
CI/CD์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด๋ดค์ฃ .

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๊ทธ ์ค‘ ๋นŒ๋“œ(Build) ๋‹จ๊ณ„๋ฅผ ๋งก๋Š” ํ•ต์‹ฌ ์„œ๋น„์Šค์ธ
AWS CodeBuild๋ฅผ ์‚ฌ์šฉํ•ด์„œ,
์ฝ”๋“œ ๋ณ€๊ฒฝ → ์ž๋™ ๋นŒ๋“œ → ๋ฐฐํฌ ํ๋ฆ„์„ ๋งŒ๋“ค์–ด์š”!


๐Ÿงฉ CodeBuild๋ž€?

AWS CodeBuild๋Š” AWS์—์„œ ์ œ๊ณตํ•˜๋Š”
์™„์ „ ๊ด€๋ฆฌํ˜• ๋นŒ๋“œ ์„œ๋น„์Šค์˜ˆ์š”.

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


๐Ÿš€ ์–ธ์ œ CodeBuild๋ฅผ ์‚ฌ์šฉํ• ๊นŒ?

์˜ˆ๋ฅผ ๋“ค์–ด:

  • React ์•ฑ์„ npm run build ํ•ด์„œ ๋ฒˆ๋“ค๋งํ•  ๋•Œ
  • Java ํ”„๋กœ์ ํŠธ๋ฅผ maven build ํ•  ๋•Œ
  • Python ํ”„๋กœ์ ํŠธ๋ฅผ ํ…Œ์ŠคํŠธ + zip์œผ๋กœ ํŒจํ‚ค์ง•ํ•  ๋•Œ

๐Ÿ’ก ์ด ๋ชจ๋“  ๊ณผ์ •์„ ์‚ฌ๋žŒ์ด ์†์œผ๋กœ ํ•˜์ง€ ์•Š๊ณ ,
์ปค๋ฐ‹๋งŒ ํ•ด๋„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒŒ CodeBuild์˜ ์—ญํ• !


๐Ÿ› ๏ธ ์‹ค์Šต: React ์•ฑ ์ž๋™ ๋นŒ๋“œ ๊ตฌ์„ฑํ•˜๊ธฐ

๋ชฉํ‘œ: GitHub์— ํ‘ธ์‹œํ•˜๋ฉด React ์•ฑ์ด ์ž๋™์œผ๋กœ ๋นŒ๋“œ๋˜๊ณ  S3์— ๋ฐฐํฌ๋˜๋„๋ก!


1. ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— buildspec.yml ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ


 

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 18
    commands:
      - npm install
  build:
    commands:
      - npm run build

artifacts:
  files:
    - '**/*'
  base-directory: build


์ด ํŒŒ์ผ์€ CodeBuild๊ฐ€ ๋ฌด์—‡์„ ์–ด๋–ป๊ฒŒ ๋นŒ๋“œํ• ์ง€ ์ •์˜ํ•˜๋Š” ์„ค์ • ํŒŒ์ผ์ด์—์š”.

 


2. S3 ๋ฒ„ํ‚ท ์ƒ์„ฑ (์ •์  ์›น ํ˜ธ์ŠคํŒ…์šฉ)

  • React ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ(build ํด๋”)์„ ์˜ฌ๋ฆด ๋ฒ„ํ‚ท์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

3. CodeBuild ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

๐Ÿ‘‰ ์ด๋ฆ„ ์„ค์ •

์˜ˆ: react-auto-build

๐Ÿ‘‰ ์†Œ์Šค ์ œ๊ณต์ž ์„ ํƒ

  • GitHub ๋˜๋Š” CodeCommit
  • ์ €์žฅ์†Œ ์—ฐ๊ฒฐ ๋ฐ ๋ธŒ๋žœ์น˜ ์ง€์ •

๐Ÿ‘‰ ํ™˜๊ฒฝ ์„ค์ •

  • ์šด์˜์ฒด์ œ: Ubuntu
  • ๋Ÿฐํƒ€์ž„: Managed Image (Standard)
  • ๋Ÿฐํƒ€์ž„ ๋ฒ„์ „: Node.js 18 ํฌํ•จ๋œ ์ด๋ฏธ์ง€ ์„ ํƒ
  • ์„œ๋น„์Šค ์—ญํ• : ์ƒˆ๋กœ ์ƒ์„ฑ or ๊ธฐ์กด IAM ์‚ฌ์šฉ

๐Ÿ‘‰ buildspec.yml ์‚ฌ์šฉ ์ฒดํฌ


4. CodePipeline๊ณผ ์—ฐ๋™ํ•˜๊ธฐ (์„ ํƒ)

  • CodePipeline์˜ Build ๋‹จ๊ณ„์— ์œ„์—์„œ ๋งŒ๋“  CodeBuild ํ”„๋กœ์ ํŠธ ์—ฐ๊ฒฐํ•˜๋ฉด
    Source → Build → Deploy ์ „์ฒด ํ๋ฆ„ ์™„์„ฑ!

โœ… ์ „์ฒด ํ๋ฆ„ ์š”์•ฝ

  1. GitHub์— ์ปค๋ฐ‹
  2. CodePipeline์ด ๋ณ€๊ฒฝ ๊ฐ์ง€
  3. CodeBuild๊ฐ€ npm install & npm run build ์‹คํ–‰
  4. ๊ฒฐ๊ณผ๋ฌผ(build ํด๋”)์ด S3์— ์ž๋™ ์—…๋กœ๋“œ
  5. ์‚ฌ์šฉ์ž: ๋ฐฐํฌ๋œ ์ตœ์‹  ์›น ํ™•์ธ!

์‹ค๋ฌด ํ™œ์šฉ ํŒ

  • test ๋‹จ๊ณ„๋„ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ (npm test ๋“ฑ)
  • ๋นŒ๋“œ ์‹คํŒจ ์‹œ ์•Œ๋ฆผ: SNS, Slack, ์ด๋ฉ”์ผ ์—ฐ๋™ ๊ฐ€๋Šฅ
  • Docker ์ด๋ฏธ์ง€๋กœ ์ปค์Šคํ…€ ๋นŒ๋“œ ํ™˜๊ฒฝ๋„ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ
  • IAM ๊ถŒํ•œ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •ํ•ด์„œ ๋ณด์•ˆ ๊ฐ•ํ™”

๋งˆ๋ฌด๋ฆฌ ๐ŸŽฏ

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

ํŠนํžˆ React, Vue, Angular ๊ฐ™์ด ์ •์  ํŒŒ์ผ ๋นŒ๋“œ๊ฐ€ ํ•„์š”ํ•œ ํ”„๋กœ์ ํŠธ์— ์ •๋ง ์ž˜ ์–ด์šธ๋ ค์š”.