Home - hoho4190/aws-ec2-cicd-with-github-actions GitHub Wiki

AWS EC2 CI/CD

AWS์™€ GitHub Actions์„ ์ด์šฉํ•˜์—ฌ AWS EC2์— CI/CD ์ ์šฉํ•˜๊ธฐ

GitHub ์ €์žฅ์†Œ์— ์†Œ์Šค๋ฅผ Pushํ•˜๋ฉด test, build ํ›„ ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„์— ๋ฐฐํฌํ•˜๊ณ  ์„œ๋น„์Šค ์žฌ์‹œ์ž‘ํ•˜๊ธฐ

ํ๋ฆ„

GitHub ์ €์žฅ์†Œ์˜ main ๋ธŒ๋Ÿฐ์น˜์— Push๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด GitHub Actions์—์„œ ์•„๋ž˜์˜ ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ์‹คํ–‰๋จ

  1. gradle build ์‹คํ–‰

  2. AWS IAM ์‚ฌ์šฉ์ž ์—‘์„ธ์Šค ํ‚ค๋กœ AWS ์ธ์ฆ

  3. AWS S3์— ํŒŒ์ผ์„ ์••์ถ•ํ•˜์—ฌ ์—…๋กœ๋“œ

  4. AWS CodeDeploy๋กœ S3์˜ ํŒŒ์ผ์„ EC2์— ๋ฐฐํฌ

    • hook์„ ์ด์šฉํ•˜์—ฌ App ์žฌ์‹œ์ž‘ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰

์‚ฌ์ „ ์ค€๋น„

  • ๋ฐฐํฌํ•  ์•ฑ

    • http://IP:8080/์œผ๋กœ ์•ฑ ๋นŒ๋“œ ๋ฒ„์ „์„ ๋ฆฌํ„ดํ•˜๋Š” ๊ฐ„๋‹จํ•œ REST API ์„œ๋ฒ„
    • Spring boot, Gradle, java 1.8
  • AWS EC2

    • OS: Amazon linux 2
    • ๋ฆฌ์ „: ap-northeast-2(์„œ์šธ)
    • user: ec2-user(๊ธฐ๋ณธ ์‚ฌ์šฉ์ž /home/ec2-user ๊ทธ๋Œ€๋กœ)
    • ๋ณด์•ˆ ๊ทธ๋ฃน: REST API TCP ํฌํŠธ 18080(local)๋ฒˆ, 8080(prod)๋ฒˆ ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์— ์ถ”๊ฐ€

์œ„์ฒ˜๋Ÿผ ์ƒ์„ฑํ•˜์˜€๋‹ค๋Š” ๊ฐ€์ • ํ•˜์— ์„ค์ • ์ง„ํ–‰ํ•  ์˜ˆ์ •

์„ค์ •

์•„๋ž˜ ์„ค์ • ๊ณผ์ •์—์„œ

  • [์ธ์Šคํ„ด์Šค ์ด๋ฆ„]์„ cicd๋ผ๊ณ  ํ•˜๊ฒ ์Œ
  • [์•ฑ ์ด๋ฆ„]์„ cicd๋ผ๊ณ  ํ•˜๊ฒ ์Œ
  1. EC2 ์„ค์ •
  2. S3 ์„ค์ •
  3. CodeDeploy ์„ค์ •
  4. Github Actions์—์„œ ์‚ฌ์šฉํ•  IAM ์‚ฌ์šฉ์ž ์„ค์ •
  5. (REST API ์„œ๋ฒ„ ๊ตฌ๋™์„ ์œ„ํ•œ EC2 ์‚ฌ์ „ ์ž‘์—…)
  6. CodeDeploy AppSpec ํŒŒ์ผ ์„ค์ •
  7. Github Actions ์„ค์ •
  8. ํ™•์ธ
  9. Issue