DevOps/โ›“๏ธ CI&CD

DevOps/โ›“๏ธ CI&CD

[โ›“๏ธCI/CD] GitHub Actions - AWS CodeDeploy & S3 ์ด์šฉํ•ด์„œ ๋ฐฐํฌ

์ด์ „ ๊ธ€์—์„œ GitHub Actions๋ฅผ CI์˜ ์šฉ๋„๋กœ ์‚ฌ์šฉํ–ˆ๊ณ , ์ฝ”๋“œ์˜ ์ž๋™ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ AWS CodeDeploy๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ๋‹ค. GitHub Actions๋ฅผ ์‚ฌ์šฉํ•ด์„œ CI๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , AWS CodeDeploy๋กœ CD๋ฅผ ๊ตฌ์ถ•ํ•ด ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ์ž๋™ ๋ฐฐํฌํ•  ๊ฒƒ์ด๋‹ค. ๊ฐ„๋‹จ ์š”์•ฝ GitHub์— pushํ•˜๋ฉด GitHub Actions๊ฐ€ ์ž๋™์œผ๋กœ ์‹คํ–‰ ๐Ÿ‘‰ gradlew build ๋ช…๋ น์–ด๋กœ ๋นŒ๋“œํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” jar ํŒŒ์ผ ์ƒ์„ฑ ๋ฐฐํฌ์— ํ•„์š”ํ•œ jar ํŒŒ์ผ๊ณผ shell script ํŒŒ์ผ์€ ์••์ถ•ํ•ด์„œ zip ํŒŒ์ผ์„ AWS S3๋กœ ์—…๋กœ๋“œ EC2์— ์„ค์น˜๋˜์–ด ์žˆ๋Š” CodeDeploy Agent๊ฐ€ S3์— ์—…๋กœ๋“œ๋œ zip ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์„œ ๋ฐฐํฌ CodeDeploy Agent๋Š” S3์—์„œ zip ํŒŒ์ผ์„ ๋‚ด๋ ค๋ฐ›๊ณ , appsp..

DevOps/โ›“๏ธ CI&CD

[โ›“๏ธ CI/CD] CI/CD์™€ GitHub Actions ํ™œ์šฉ๋ฒ•

Jenkins์™€ GitHub Actions์˜ ์ฐจ์ด์ ์„ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ ์ž๋™ํ™”๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค. (Jenkins์™€ ๊ด€๋ จ๋œ ๊ธ€๋„ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์œผ๋‚˜ ์›Œ๋‚™ ์ถ”๊ฐ€ํ•  ๋‚ด์šฉ์ด ๋งŽ๋‹ค๋ณด๋‹ˆ ์ž„์‹œ์ €์žฅ์†Œ์— ๋ฌปํžŒ์ง€ ์˜ค๋ž˜๋‹ค.. ) GitHub Actions์€ Jenkins ๋ณด๋‹ค ๊ฐ„๋‹จํ–ˆ๋‹ค. ์‚ฌ์šฉ๋ฒ•์„ ๊ธฐ๋กํ•˜๊ณ  ๋‘˜์˜ ์ฐจ์ด์ ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ธฐ๋กํ•˜๊ณ ์ž ํ•œ๋‹ค. โ›“๏ธ CI/CD์™€ GitHub Actions CI/CD ๊ฐœ๋…์€ Jenkins์™€ ๊ด€๋ จ๋œ ๊ธ€์„ ์ž‘์„ฑํ•˜๋ฉด์„œ ์–ธ๊ธ‰ํ•˜๊ธด ํ–ˆ์—ˆ๋‹ค. CI/CD(์ง€์†์  ํ†ตํ•ฉ / ์ง€์†์  ๋ฐฐํฌ)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค. ๊ถ๊ทน์ ์œผ๋กœ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋น ๋ฅด๊ฒŒ ์ตœ์‹  ํ”„๋กœ์ ํŠธ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๊ธฐ๋„ ํ•˜๋‹ค. ์ง€์†์  ํ†ตํ•ฉ - CI (Continuous Integra..

DevOps/โ›“๏ธ CI&CD

[โ›“๏ธ CI/CD] Jenkins๋ฅผ ์ด์šฉํ•ด ๋ฐฐํฌํ•˜๊ธฐ 2 - ๋‹ค๋ฅธ ์„œ๋ฒ„

๋‹ค๋ฅธ ์„œ๋ฒ„์— ๋ฐฐํฌํ•˜๊ธฐ - ๊ตฌ์กฐ๋„ ์ด์ „์—๋Š” ๋กœ์ปฌ์—์„œ Tomcat ์„œ๋ฒ„์— hello-world.war ํŒŒ์ผ์„ ๋ฐฐํฌํ–ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๋‹ค๋ฅธ ์„œ๋ฒ„์— ๊ฒฐ๊ณผ๋ฌผ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ด์„œ ๋ฐฐํฌํ•ด๋ณผ ๊ฒƒ์ด๋‹ค. ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๋‹ค๋ฅธ ์„œ๋ฒ„(์„œ๋ฒ„2)๋กœ VM์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ Docker์— ๊ฐ€์ƒ ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•œ๋‹ค. ๐Ÿ‘‰ ๋‚˜๋Š” ๋„์ปค์— ssh ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•œ ์ด๋ฏธ์ง€ ์‚ฌ์šฉํ•ด์„œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ํ˜•ํƒœ๋กœ ๊ธฐ๋™ํ•  ์˜ˆ์ • ! ์„œ๋ฒ„2์— ๋„์ปค ์—”์ง„์„ ์„ค์น˜ํ•œ๋‹ค. (๋„์ปค ์•ˆ์— ๋„์ปค๊ฐ€ ์žˆ๋Š” ํ˜•ํƒœ = Docker in Docker) ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ์ง€ ์ƒ์„ฑ โž” Dockerfile + *.warํŒŒ์ผ๋กœ ์ด๋ฏธ์ง€ ์ƒ์„ฑ ์ด๋ฏธ์ง€๋Š” Tomcat ์„œ๋ฒ„์™€ warํŒŒ์ผ์„ ํฌํ•จ ์ด๋ฏธ์ง€๋กœ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์‹œํ‚ด. ssh ์„œ๋ฒ„์— ์ ‘์†ํ•ด์„œ docker๋ฅผ ์‹คํ–‰์‹œ์ผœ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. โœจ Je..

DevOps/โ›“๏ธ CI&CD

[โ›“๏ธ CI/CD] Jenkins๋ฅผ ์ด์šฉํ•ด ๋ฐฐํฌํ•˜๊ธฐ 1 - ๋กœ์ปฌ ์„œ๋ฒ„

Git, Maven ์„ค์ • ๋ฐ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ Jenkins ๊ด€๋ฆฌ ํƒญ โž” Plugins์— ๋“ค์–ด๊ฐ€์„œ Github๊ณผ Maven plugin์„ ์„ค์น˜ํ•œ๋‹ค. Gradle๋กœ ์ง„ํ–‰ ์‹œ์—๋„ plugin์„ ์„ค์น˜ํ•˜๊ณ  ์ž‘์—… ํ”„๋กœ์ ํŠธ๋ฅผ Freestyle project๋กœ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค. ์ƒˆ๋กœ์šด item(project)๋ฅผ ๋งŒ๋“ค๊ณ  ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ฌ github ๋งํฌ๋ฅผ ๊ธฐ์ž…ํ•œ๋‹ค. Maven๊ณผ ๊ด€๋ จ๋œ ์„ค์ • ํŒŒ์ผ์ธ pom.xml์„ ๊ธฐ๋ฐ˜์œผ๋กœ buildํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ  build ์˜ต์…˜์„ clean, compile, package๋กœ ์ง€์ •ํ•œ๋‹ค. clean : ๊ธฐ์กด์— buildํ•œ ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด ์ง€์šด๋‹ค. compile : ์ปดํŒŒ์ผํ•œ๋‹ค. package : pom.xml์— ๋“ฑ๋ก๋œ package ํ˜•์‹(jar or war)์— ๋”ฐ๋ผ ํŒจํ‚ค์ง•ํ•œ๋‹ค. build๋ฅผ ์„ฑ..

DevOps/โ›“๏ธ CI&CD

[โ›“๏ธ CI/CD] CI/CD์™€ Jenkins

CI/CD๋Š” ๊ฐœ๋ฐœ ๊ฒฐ๊ณผ๋ฌผ์— ๋Œ€ํ•ด ์ง€์†์ ์ธ ํ†ตํ•ฉ๊ณผ ์ง€์†์ ์ธ ๋ฐฐํฌ๋ฅผ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ด๋ฉฐ ํ†ตํ•ฉ, ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ์ „ ๊ณผ์ •์— ๋Œ€ํ•œ ์ž๋™ํ™”๋ฅผ ๊ฑฐ์นœ๋‹ค. CI์—์„œ๋Š” ์ปดํŒŒ์ผ, ํ…Œ์ŠคํŠธ, ํŒจํ‚ค์ง• ์ž‘์—…์ด ํฌํ•จ๋˜๊ณ  CD๋Š” CI์— ์˜ํ•ด ํŒจํ‚ค์ง•๋œ ๊ฒƒ์„ ๋ฐฐํฌํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ํŠนํžˆ ๋ถ„์‚ฐ๋œ ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋Š” MSA ํ™˜๊ฒฝ์—์„œ์˜ ์ž๋™ํ™” ๋ฐฐํฌ๋Š” ๋ณด๋‹ค ํšจ์œจ์ ์ธ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. CI/CD WorkFlow ๊ฐœ๋ฐœ์ž๊ฐ€ git commit์„ ํ•œ๋‹ค. CI/CD ๋„๊ตฌ(Jenkins)๊ฐ€ SCM(git)์— ์ €์žฅ๋œ ์ฝ”๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค. CI/CD ๋„๊ตฌ๊ฐ€ ์†Œ์Šค์ฝ”๋“œ์˜ build, test, package๋ฅผ ์ผ๊ด„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์‹คํŒจ ์‹œ fail, ์„ฑ๊ณต ์‹œ pass ์„œ๋ฒ„์— ๋ฐฐํฌํ•œ๋‹ค. ์•ž์œผ๋กœ ์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์„ ์‹คํ–‰ํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค ! Jenkins..

soogoori
'DevOps/โ›“๏ธ CI&CD' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก