DevOps/โ๏ธ CI&CD
์ด์ ๊ธ์์ 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
Jenkins์ GitHub Actions์ ์ฐจ์ด์ ์ ์์๋ณด๊ธฐ ์ํด ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ ์๋ํ๋ฅผ ์งํํ๋ค. (Jenkins์ ๊ด๋ จ๋ ๊ธ๋ ์์ฑํ๊ณ ์์ผ๋ ์๋ ์ถ๊ฐํ ๋ด์ฉ์ด ๋ง๋ค๋ณด๋ ์์์ ์ฅ์์ ๋ฌปํ์ง ์ค๋๋ค.. ) GitHub Actions์ Jenkins ๋ณด๋ค ๊ฐ๋จํ๋ค. ์ฌ์ฉ๋ฒ์ ๊ธฐ๋กํ๊ณ ๋์ ์ฐจ์ด์ ์ ๊ฐ๋จํ๊ฒ ๊ธฐ๋กํ๊ณ ์ ํ๋ค. โ๏ธ CI/CD์ GitHub Actions CI/CD ๊ฐ๋
์ Jenkins์ ๊ด๋ จ๋ ๊ธ์ ์์ฑํ๋ฉด์ ์ธ๊ธํ๊ธด ํ์๋ค. CI/CD(์ง์์ ํตํฉ / ์ง์์ ๋ฐฐํฌ)๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๋ฅผ ์๋ํํ๊ธฐ ์ํด์์ด๋ค. ๊ถ๊ทน์ ์ผ๋ก๋ ์ฌ์ฉ์์๊ฒ ๋น ๋ฅด๊ฒ ์ต์ ํ๋ก์ ํธ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด์์ด๊ธฐ๋ ํ๋ค. ์ง์์ ํตํฉ - CI (Continuous Integra..
DevOps/๐ณ Docker
Docker ์ฃผ์ ๋ช
๋ น์ด ๋์ปค ๋ช
๋ น์ด ์ฐพ์์ ์ฌ์ฉํ๊ธฐ ๐ https://docs.docker.com/reference/cli/docker/container/rm/ cheatsheet ์ฌ์ฉํ๊ธฐ ๐ https://docs.docker.com/get-started/docker_cheatsheet.pdf ๋ช
๋ น์ด ๊ตฌ์ฑ : docker ์ปค๋งจ๋ (์ต์
) ๋์ (์ธ์) docker run --name apa03 -d -p 8081:80 httpd docker --version docker ps -a : ์ค์ง๋ ์ปจํ
์ด๋๊น์ง ๋ชจ๋ ํ์ธ docker pull [์ด๋ฏธ์ง ์ด๋ฆ] : docker hub์์ ์ด๋ฏธ์ง ๋ค์ด๋ก๋ ์คํ ์ค์ธ ์ปจํ
์ด๋ ๋ชจ๋ ์ญ์ docker rm -f $(docker ps -aq) docker run = ..
DevOps/โ๏ธ CI&CD
๋ค๋ฅธ ์๋ฒ์ ๋ฐฐํฌํ๊ธฐ - ๊ตฌ์กฐ๋ ์ด์ ์๋ ๋ก์ปฌ์์ Tomcat ์๋ฒ์ hello-world.war ํ์ผ์ ๋ฐฐํฌํ๋ค. ์ด๋ฒ์๋ ๋ค๋ฅธ ์๋ฒ์ ๊ฒฐ๊ณผ๋ฌผ ํ์ผ์ ๋ณต์ฌํด์ ๋ฐฐํฌํด๋ณผ ๊ฒ์ด๋ค. ๊ตฌ์กฐ๋ ์๋์ ๊ฐ๋ค. ๋ค๋ฅธ ์๋ฒ(์๋ฒ2)๋ก VM์ ์ฌ์ฉํ๊ฑฐ๋ Docker์ ๊ฐ์ ์๋ฒ๋ฅผ ์ค์นํ๋ค. ๐ ๋๋ ๋์ปค์ ssh ์๋ฒ๋ฅผ ๊ตฌ์ฑํ ์ด๋ฏธ์ง ์ฌ์ฉํด์ ๋์ปค ์ปจํ
์ด๋ ํํ๋ก ๊ธฐ๋ํ ์์ ! ์๋ฒ2์ ๋์ปค ์์ง์ ์ค์นํ๋ค. (๋์ปค ์์ ๋์ปค๊ฐ ์๋ ํํ = Docker in Docker) ๋์ปค ์ปจํ
์ด๋๋ฅผ ์คํํ๊ธฐ ์ํด ์ด๋ฏธ์ง ์์ฑ โ Dockerfile + *.warํ์ผ๋ก ์ด๋ฏธ์ง ์์ฑ ์ด๋ฏธ์ง๋ Tomcat ์๋ฒ์ warํ์ผ์ ํฌํจ ์ด๋ฏธ์ง๋ก ์ปจํ
์ด๋ ์คํ์ํด. ssh ์๋ฒ์ ์ ์ํด์ docker๋ฅผ ์คํ์์ผ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. โจ Je..
DevOps/โ๏ธ CI&CD
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๋ CI์ ์ํด ํจํค์ง๋ ๊ฒ์ ๋ฐฐํฌํ๋ ์์
์ ํ๊ฒ ๋๋ค. ํนํ ๋ถ์ฐ๋ ์๋ฒ์์ ์คํ๋๋ MSA ํ๊ฒฝ์์์ ์๋ํ ๋ฐฐํฌ๋ ๋ณด๋ค ํจ์จ์ ์ธ ์์
์ ํ ์ ์๊ฒ ํด์ค๋ค. CI/CD WorkFlow ๊ฐ๋ฐ์๊ฐ git commit์ ํ๋ค. CI/CD ๋๊ตฌ(Jenkins)๊ฐ SCM(git)์ ์ ์ฅ๋ ์ฝ๋๋ฅผ ๋ถ๋ฌ์จ๋ค. CI/CD ๋๊ตฌ๊ฐ ์์ค์ฝ๋์ build, test, package๋ฅผ ์ผ๊ด์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค. ์คํจ ์ fail, ์ฑ๊ณต ์ pass ์๋ฒ์ ๋ฐฐํฌํ๋ค. ์์ผ๋ก ์์ ๊ฐ์ ๊ณผ์ ์ ์คํํด ๋ณผ ๊ฒ์ด๋ค ! Jenkins..
DevOps/๐ณ Docker
๐ณ ๋์ปค๋ ์ปจํ
์ด๋ ๊ธฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ดํ๋ฆฌ์ผ์ด์
์ ํจํค์งํ ์ ์๋ ๋๊ตฌ์ด๋ค. ์๋ฒ ๊ฐ๋ฐ ์ ๊ฐ๋ฐ ํ๊ฒฝ์ด ๋ฐ๋๋ฉด ์ปดํจํฐ ์ธํ
์ด๋ ํ๋ก๊ทธ๋จ ๋ฑ์ ์ฒ์๋ถํฐ ๋ค์ ์ค์ ํด์ผํ๋ ์ํฉ์ด ๋ฐ์ํ ์ ์๋ค.. ๋ด ์ปดํจํฐ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ์ปดํจํฐ์์๋ ๋์ผํ ํ๊ฒฝ์ผ๋ก ๋์ํ ์ ์๋๋ก ์ธํ
ํด์ผํ๋๋ฐ ์ด๋ฅผ ํธ๋ฆฌํ๊ฒ ๋์์ฃผ๋ ๊ฒ์ด ๋์ปค๋ค. ์ดํ๋ฆฌ์ผ์ด์
์ด ๊ตฌ๋ํ๋๋ฐ ํ์ํ System tools, Dependencies, ํ๊ฒฝ๋ณ์ ๋ฑ ๋ค์ํ ๋ฆฌ์์ค๋ค์ ๋์ปค ์ปจํ
์ด๋์ ๋ด์ ์ ์ฅํ ํ, ๋ค๋ฅธ ์๋ฒ์ ํด๋น ๋์ปค ์ปจํ
์ด๋๋ฅผ ๋ค์ด๋ฐ์ ์์ ์ ์ผ๋ก ๊ตฌ๋๋ ์ ์๋๋ก ํ๋ค. ์ดํ๋ฆฌ์ผ์ด์
์ ๊ตฌ๋ํ๋๋ฐ ํ์ํ ๊ฒ๋ค์ ์ค์ ํ๊ณ ์ค๋นํด์ผํ๋ ๋ฒ๊ฑฐ๋ก์์ ์ค์ฌ์ฃผ๋ ์ ์ฉํ ํด์ด๋ผ ์๊ฐํ๋ฉด ๋๋ค ! ๋๋ณด๊ธฐ ๐ก ์ปจํ
์ด๋๋ ? VM์์ ๊ฒฝ๋ํ๋ ๊ฒ์ด ์ปจํ
..