์ด๋ฏธ์น๋ ๊ณ์ธต์ ์ผ๋ก ์ ์ฅ๋๋ค. (์ด๋ฏธ์ง ๋ ์ด์ด)์ด๋ฏธ์ง๋ฅผ ์ ๊ณตํ๋ ์ ์ฅ์๋ฅผ ๋ ์ง์คํธ๋ฆฌ๋ผ๊ณ ํ๋ค. ๋ฌด๋ฃ ๋ ์ง์คํธ๋ฆฌ๋ก ๋์ปค ํ๋ธ ์กด์ฌ --name ํ๋๊ทธ๋ฅผ ํตํด ์ปจํ
์ด๋์ ์ด๋ฆ์ ๋ถ์ด๊ณ , ์ด๋ฅผ ํตํด ์ปจํ
์ด๋๋ฅผ ์ง์นญํจ HTTP ์์ฒญ์ ๊ตฌ๊ธ๋ก ๋ณด๋ธ๋ค. ํ๊ฒฝ ๋ณ์๋ ์ด์์ฒด์ ์์ ์ ๊ณตํ๋ ํค-๊ฐ ์์ด๋ค. ๋์ปค ์ปจํ
์ด๋๋ ๋ณ๋์ ํ๊ฒฝ๋ณ์๋ฅผ ๊ฐ์ง ์ ์๋๋ฐ, ์ด์์ฒด์ ๊ฐ ์๋ ๋์ปค๊ฐ ๋ถ์ฌํด ์ค๋ค.ํธ์คํธ ์ปดํจํฐ์ ํ๊ฒฝ๋ณ์๋ ์ปจํ
์ด๋์ ๋ณ๊ฐ์ด๋ค. ์ปจํ
์ด๋๋ ์ค์ง ๋์ปค๊ฐ ๋ถ์ฌํ ํ๊ฒฝ๋ณ์๋ง์ ๊ฐ๋๋ค. ๋์ปค ์ด๋ฏธ์ง๋ ์ค์ ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ ํฌํจํด ํจํค์ง๋์ง๋ง, ์ปจํ
์ด๋๋ฅผ ์คํํ ๋ ์ด ์ค์ ๊ฐ์ ๋ฐ๊ฟ ์ ์์ด์ผ ํ๋ค.์ด๋ฅผ ํ๊ฒฝ๋ณ์๋ก ๊ตฌํํ๊ณ , ๋์ผํ ์ปจํ
์ด๋์ ์ ํ๋ฆฌ์ผ์ด์
์ด์ง๋ง, ์ค์ ๊ฐ์ ์ํด ๋์์ด ๋ฌ๋ผ์ง๋ ๊ฒ์ ๋ณผ ์ ์๋ค.Doc..
๐ณ์ธํ๋ผ
๋ก์ปฌ์ ์ด๋ฏธ์ง๊ฐ ์์ด์ unable to find image locally → ๋์ปค๊ฐ ํด๋น ์ด๋ฏธ์ง๋ฅผ ๋ด๋ ค๋ฐ์๋ด๋ ค๋ฐ๊ณ ํด๋น ์ด๋ฏธ์ง๋ก ์ปจํ
์ด๋๋ฅผ ์คํํ๋ค. ์ด ๊ณผ์ ์์ ๋์ปค ์ํฌํ๋ก ๊ณผ์ ์ดํด ๊ฐ๋ฅ (๋น๋-๊ณต์ -์คํ ์์ปคํ๋ก)์ ์์๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ์ปจํ
์ด๋์์ ์คํํ ์ ์๋๋ก ํจํค์งํ๊ณ ๊ณต์ ํ ๊ฒ์ ๋ด๊ฐ ๋ด๋ ค๋ฐ์์ ์คํํ๋ค.์ฌ์คํ ์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ฐ์ง ์๊ณ , ์ปจํ
์ด๋๋ง ์คํํ๋ค.์ถ๊ฐ๋ก, ์ปจํ
์ด๋๋ฅผ ๋ค์ ์คํํ๊ธฐ์, ์ปดํจํฐ ์ด๋ฆ์ด ๋ฐ๋๊ฒ์ ํ์ธ ๊ฐ๋ฅ ์ปจํ
์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ด๊ณ ์๋ ์์์ด๋ค.์ปจํ
์ด๋๋ ์๋ก ๋
๋ฆฝ์ ์ธ ํ๊ฒฝ์ ๊ฐ๊ณ , ํด๋น ์ปจํ
์ด๋๋ฅผ ์คํํ๋ ์ปดํจํฐ์ ์ด์์ฒด์ ๋ฅผ ๊ณต์ ํ๋ค.ํธ์คํธ๋ช
, IP์ฃผ์, ํ์ผ ์์คํ
๋ชจ๋ ๋์ปค๊ฐ ์์ฑํ ๊ฐ์ ๋ฆฌ์์ค์ด๋ค. ์ด๋ค์ด ์ฎ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ด ๋์ํ ์ ์๋ ํ๊ฒฝ์ด ๋ง..
๋์ปค๋ Paas์ ์ฅ์ ์ธ ์ด์๋น์ IaaS์ ์ฅ์ ์ธ ์ด์์ฑ์ ๋ชจ๋ ๋๋ฆด ์ ์๋ค.PaaS์ ์ด์ ํจ์จ์ฑ: ์ปจํ
์ด๋๋ ๊ฐ๋ฒผ์ด ๊ฐ์ํ ํ๊ฒฝ์ผ๋ก, ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ํฌํจํ๋ฏ๋ก ๋ฆฌ์์ค ์ฌ์ฉ์ด ํจ์จ์ ์ด๋ฉฐ, ์ด์์ฒด์ ๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ PaaS์ฒ๋ผ ์ด์๋น๋ฅผ ์ ๊ฐํ ์ ์๋ค.IaaS์ ์ด์์ฑ: Docker ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ผํ ํ๊ฒฝ์ ๋ค์ํ ํ๋ซํผ์์ ์คํํ ์ ์๊ณ , ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์ด์ ํ๊ฒฝ ๊ฐ์ ์ฐจ์ด๋ฅผ ์ ๊ฑฐํด “ํ ๋ฒ ๋น๋ํ๋ฉด ์ด๋์๋ ์คํ” ๊ฐ๋ฅํ๊ฒ ๋ง๋ ๋ค.์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ ์ปดํฌ๋ํธ๋ ์ปจํ
์ด๋์์ ๋์ํ๋ฉฐ, ๊ฐ์ ๋จธ์ ์ฒ๋ผ ๋
๋ฆฝ์ ์ด์ง๋ง ๊ฒฝ๋์ด๋ฉฐ PaaS์ ๋งค๋์ง๋ ์๋น์ค๋งํผ ํจ์จ์ ์ด๋ค. ๋์ปค๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด์ ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ์ฌ ๊ฐ๋ณ ์ปจํ
์ด๋๋ก ์คํํ ์ ์๊ณ , ์ด๋ฅผ ํตํด ..
์บก์คํค์์ SpringBoot, MongoDB๋ฅผ ์ฌ์ฉํด์ ๋ฐฑ์ค๋ ์๋ฒ ๊ฐ๋ฐ์ ํด์ผํ๋ค.๋ด๊ฐ ์ธํ๋ผ๋ฅผ ๋งก๊ธฐ๋ก ํด์ CI/CD๋ฐ ์ธํ๋ผ๋ฅผ ์๋ฃํ์๋ค.๊ธฐ๋กํ ๊ฒธ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋ณด์๋ค.EC2๋ MongoDB, SpringBoot ์ฌ์ฉํ ๊ฒ์ด๊ธฐ์, ์ถ๊ฐ๋ก 8080ํฌํธ์ 27017 ํฌํธ๋ฅผ ์ด์ด์ฃผ์๋ค.๊ทธ๋ฆฌ๊ณ t2.micro๋ง๊ณ t3a.small์ ์ฌ์ฉํ์๋ค. t2.micro๋ ๋๋ฌด ์๋ค...https://start.spring.io/์คํ ์ ๋๋ค.์ด์ ๊นํ๋ธ์ ์ฐ๊ฒฐํด์ฃผ์๋ ํฌ์งํ ๋ฆฌ ์์ฑํ๊ณ git initgit add README.mdgit commit -m "first commit"git branch -M maingit remote add origin git@github.com:seongjju/seongjju-web-..
3. Docker + ๋ฐฑ์๋(Spring Boot) ํ๋ก์ ํธ์ CI/CD ์ ์ฉํ๊ธฐ 2๊ฐ์ง ๋ฐฉ๋ฒ ์กด์ฌDocker: ์ปจํ
์ด๋ ๊ธฐ๋ฐ ํ๋ก์ ํธDocker, CodeDeploy: ์ปจํ
์ด๋ + ํ์ฅ์ฑ ๊ณ ๋ คํ ํ๋ก์ ํธ 1. Docker: ์ปจํ
์ด๋ ๊ธฐ๋ฐ ํ๋ก์ ํธ์ ์ฒด ํ๋ฆ์ฅ์ Docker ๊ธฐ๋ฐ ์๋น์ค ์ด์ ์, ๊ฐ๋จํ๊ฒ ๊ตฌ์ฑ ๊ฐ๋ฅํ ์ธํ๋ผ ๊ตฌ์กฐ๋จ์ ๋ฌด์ค๋จ ๋ฐฐํฌ ๊ตฌํ or ์ฌ๋ฌ EC2์ ๋ฐฐํฌํด์ผ ํ๋ค๋ฉด, ์ง์ Github Actions์ ์คํฌ๋ฆฝํธ ์์ฑ, ๊ตฌํ ํ์ -> ๋ณต์ก์ฌ์ฉ์ปจํ
์ด๋ ๊ธฐ๋ฐ ์ธํ๋ผ ๊ตฌ์ฑ ์์๊ท ๋ชจํ๋ก์ ํธ์ค์ต 1EC2์ Docker ์ค์น, ECR ์ธํ
Ubuntu์์ Docker, Docker Compose ์ค์น$ sudo apt-get update && \ sudo apt-get install -y apt-t..
1. CI/CD ๊ธฐ๋ณธ ๊ฐ๋
/ Github Actions ๊ธฐ๋ณธ ๊ฐ๋
1. CI/CDContinuous Integration, Continuous Deployment๋ฐฐ์ฐ๋ ์ด์ ์๋น์ค ์ด์ ์ ์๋ก์ด ๊ธฐ๋ฅ ํ์์ด์ ๋ฐ๋ผ, ์ฝ๋ ์์ฑ -> Commit -> Merge -> ๋ฐฐํฌ๋งค์ฐ ๊ท์ฐฎ๋ค -> ์ด๋ฐ ๋ฐ๋ณต์ ์ธ ๊ณผ์ ์ ์๋ํ 2. Github Actions์ ๋ฒ์ ์ ํจ์ค๋ฅผ ํ์ฉํ์๋๋ฐ, ์ด๋ฒ์๋ Github Actions๋ฅผ ๊ณต๋ถํด๋ณด์https://koreatstm.tistory.com/140๋ก์ง์ ์คํ์ํฌ ์ ์๋ ์ผ์ข
์ ์ปดํจํฐ์ ํจ์ค์ ๊ฒฝ์ฐ, ๋ณ๋ ์๋ฒ๊ฐ ํ์ํ์ง๋ง, Github Actions๋ ์๋ฒ ๊ตฌ์ถ ์์ด ๋ด์ฅ๋ Github Actions ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๋๋ค. ๋น์ฉ๋ ์ข๊ณ , ์
ํ
ํ๋๋ฐ ์๊ฐ๋ ์ ์ฝCI/CD ..
์ ๋ฒ ํฌ์คํ
์ ์ด์ด์ ๋์ปค์ ๋ํด ๋ง์ ์์๋ณด์https://koreatstm.tistory.com/195 ๋น์ ๊ณต์๋ ์ดํดํ ์ ์๋ Docker ์
๋ฌธ/์ค์ (1)1. Docker ๊ธฐ๋ณธ ๊ฐ๋
1. Docker๋ฅผ ์ ๋ฐฐ์ฐ๋ ๊ฑธ๊น?์ด์์ฑ ๋๋ฌธ์ด๋ค. ์ด์์ฑ: ํ๋ก๊ทธ๋จ์ ๋ค๋ฅธ๊ณณ์ผ๋ก ์ฝ๊ฒ ์ฎ๊ฒจ์ ์ค์นํ๊ณ ์คํํ ์ ์๋ ์ฑ์งex) ๊ฐ์ ํ๋ก๊ทธ๋จ์ด๋ผ๋ ๋ด ์ปดํจํฐ์ ๋ค๋ฅธ ์ฌ๋์ ์ปดkoreatstm.tistory.com4. Dockerfile ํ์ฉํด ์ด๋ฏธ์ง ์ง์ ๋ง๋ค๊ธฐ 1. Dockerfile์ด๋์ ๋ฒ ํฌ์คํ
์์ ๋์ปค ์ด๋ฏธ์ง๋ ๋์ปคํ๋ธ๋ฅผ ํตํด ๋ค์ด๋ฐ์์ ๋ณด์๋ค.๊ทธ๋ผ ์ด ๋์ปค ์ด๋ฏธ์ง๋ ๋๊ฐ ๋์ปค ํ๋ธ์ ์ฌ๋ ค๋์๊ฑธ๊น? ๊ทธ๋ฆฌ๊ณ ๋์ปค ์ด๋ฏธ์ง๋ ์ด๋ป๊ฒ ๋ง๋๋ ๊ฑธ๊น?Dockerfile: ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ฒ ํด์ฃผ๋ ํ์ผ๋์ปคํ์ผ์ ์ด..
1. Docker ๊ธฐ๋ณธ ๊ฐ๋
1. Docker๋ฅผ ์ ๋ฐฐ์ฐ๋ ๊ฑธ๊น?์ด์์ฑ ๋๋ฌธ์ด๋ค. ์ด์์ฑ: ํ๋ก๊ทธ๋จ์ ๋ค๋ฅธ๊ณณ์ผ๋ก ์ฝ๊ฒ ์ฎ๊ฒจ์ ์ค์นํ๊ณ ์คํํ ์ ์๋ ์ฑ์งex) ๊ฐ์ ํ๋ก๊ทธ๋จ์ด๋ผ๋ ๋ด ์ปดํจํฐ์ ๋ค๋ฅธ ์ฌ๋์ ์ปดํจํฐ์ OS , ํ๋ก๊ทธ๋จ ๋ฑ์ด ๋ค๋ฅด๊ธฐ์ ์ค์น๊ฐ ์๋ ์ ์๊ณ , ์ค์น๊ณผ์ ์ด ๋ณต์กํ ๊ฒฝ์ฐ ๋ฒ๊ฑฐ๋กญ๋ค. ์ด๋ฅผ ์ํด Docker๋ฅผ ์ฌ์ฉํ๋ค.์ถ๊ฐ์ ์ธ ์ฅ์ ์ค์น ๊ณผ์ ์ผ์ผ์ด ์ ๊ฑฐ์ณ๋ ๋๋ค.ํญ์ ์ผ๊ด๋๊ฒ ํ๋ก๊ทธ๋จ ์ค์น ๊ฐ๋ฅํ๋ก๊ทธ๋จ์ด ๋
๋ฆฝ์ ์ธ ํ๊ฒฝ์์ ์คํ -> ์ถฉ๋ x์ถ๊ฐ ๊ฐ๋
IP: ๋คํธ์ํฌ ์์์ ํน์ ์ปดํจํฐ๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฃผ์ํฌํธ: ํ ์ปดํจํฐ ๋ด์์ ์คํ๋๋ ํน์ ํ๋ก๊ทธ๋จ ์ฃผ์well-known port: 0~1023๊น์ง ๋ฏธ๋ฆฌ ์ ํด์ ธ ์๋ ํฌํธ ๋ฒํธex) 22(SSH), 80(HTTP), 443(HTTPS) 2...