Skip to content

Deployment

Mr.GoodwaY edited this page Feb 3, 2024 · 3 revisions

๋ฐฐํฌ ์„ค๊ณ„ | AWS

ํด๋ผ์ด์–ธํŠธ ๋ฐฐํฌ

  • AWS S3
  • AWS CloudFront
  • AWS Route53
  • AWSย Certificate Manager(ACM)
    • https ํ†ต์‹ ์„ ์œ„ํ•œ SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰

์„œ๋ฒ„ ๋ฐฐํฌ

  • AWS EC2
  • AWS ALB(Application Load Balancer)
    • https ํ†ต์‹ ์„ ์œ„ํ•ด ์ ์šฉํ•จ
  • AWS Route53
    • ์„œ๋ธŒ๋„๋ฉ”์ธ์œผ๋กœ ์„œ๋ฒ„ ์ฃผ์†Œ ํ• ๋‹น

CI/CD | Gihub Actions

๋ฐฐํฌ์šฉ Access Token์„ ๋ฐœ๊ธ‰๋ฐ›๊ณ  Github secret์— ๋“ฑ๋ก ๋ฐฉ๋ฒ•

  1. Personal Access Token ์ƒ์„ฑ:
  • GitHub ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์˜ ํ”„๋กœํ•„ ์‚ฌ์ง„์„ ํด๋ฆญํ•˜๊ณ , "Settings"๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ์™ผ์ชฝ ๋ฉ”๋‰ด์—์„œ "Developer settings" ์•„๋ž˜์˜ "Personal access tokens"์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • "Generate token"์„ ํด๋ฆญํ•˜๊ณ  ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐฐํฌ์— ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์„ ํƒํ•ด์•ผ ํ•˜๋ฉฐ, worlflow, write:packages, delete:packages๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • ํ† ํฐ์„ ์ƒ์„ฑํ•˜๊ณ  ์•ˆ์ „ํ•œ ์žฅ์†Œ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  1. GitHub Secrets์— ๋“ฑ๋ก:
  • ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜์—ฌ "Settings"๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  • ์™ผ์ชฝ ๋ฉ”๋‰ด์—์„œ "Secrets"๋ฅผ ์„ ํƒํ•˜๊ณ , "New repository secret"์„ ํด๋ฆญํ•˜์—ฌ ์ƒˆ๋กœ์šด ์‹œํฌ๋ฆฟ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹œํฌ๋ฆฟ ์ด๋ฆ„(GHCR_TOKEN_์•„์ด๋””)์„ ์ง€์ •ํ•˜๊ณ , ์•ž์„œ ์ƒ์„ฑํ•œ Personal Access Token ๊ฐ’์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ ๋ฐฐํฌ ์ž๋™ํ™”

  • See .github > workflows > frontend-pipeline.yml
  • frontend ๋ธŒ๋žœ์น˜์— push๊ฐ€ ์ผ์–ด๋‚˜๋ฉด ๋ฐฐํฌ๊ฐ€ ์‹œ์ž‘๋จ
  • CI/CD
    1. Github container registry์—์„œ ์บ์‹œ ๋ฐ›์•„์˜ด
    2. Github secrets์— ์ €์žฅ๋œ ๊ฐ’์œผ๋กœ .envํŒŒ์ผ ์ƒ์„ฑ
    3. ๋ชจ๋“ˆ ์„ค์น˜ ํ›„ ๋นŒ๋“œ
    4. ๋นŒ๋“œ ํŒŒ์ผ s3 ํด๋ผ์ด์–ธํŠธ ๋ฐฐํฌ์šฉ ๋ฒ„์ผ“์— ์—…๋กœ๋“œ
    5. ์Šฌ๋ž™ ์•Œ๋ฆผ

์„œ๋ฒ„ ๋ฐฐํฌ ์ž๋™ํ™”

  • See .github > workflows > backend-pipeline.yml
  • backend ๋ธŒ๋žœ์น˜์— push๊ฐ€ ์ผ์–ด๋‚˜๋ฉด ๋ฐฐํฌ๊ฐ€ ์‹œ์ž‘๋จ
  • CI
    1. GitHub ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋กœ๊ทธ์ธ
    2. Github secrets์— ์ €์žฅ๋œ ๊ฐ’์œผ๋กœ .envํŒŒ์ผ ์ƒ์„ฑ
    3. bakcend>Dockerfile๋กœ Docker image ๋นŒ๋“œํ•˜๊ณ  Github container registry์— push
    4. ์Šฌ๋ž™ ์•Œ๋ฆผ
  • CD
    1. action runner๋กœ ๋“ฑ๋ก๋œ ec2์—์„œ ์‹คํ–‰๋จ
    2. Github container registry์— ๋กœ๊ทธ์ธ ํ›„ Docker image pull
    3. Docker container ์‹คํ–‰
      • --restart on-failure ์˜ต์…˜์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋์„ ๋•Œ ์ž๋™์œผ๋กœ ์žฌ์‹คํ–‰๋˜๋„๋ก ์„ค์ •
    4. ์Šฌ๋ž™ ์•Œ๋ฆผ