๋ฐฑ์๋ ์ธํ๋ผ #1 ์๊ฐ ๋ฐ ํ ์คํธ ์๋ฒ๋ง๋ค๊ธฐ
by JiwonDevํด๋น๊ธ์ ์นด์นด์ค ๊ฐ๋ฐ์ ํธ์ ํจ๊ปํ๋ ๋ฐฑ์๋ ์์คํ ์ค๋ฌด๋ฅผ ์ ์ ๋ง๋๋ก ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
๐ ๊ฐ๋ฐ๊ณผ ์ธํ๋ผ
๊ฐ๋ฐ๊ณต๋ถ๋ฅผ ํ๋ค๋ณด๋ฉด, ๊ฐ์ฒด์งํฅ๊ณผ ์ข์ ์ํคํ ์ฒ์ ๊ดํด์๋ ์์ฐ์ค๋ฝ๊ฒ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
ํ์ง๋ง ์ค์ ์๋น์ค์์๋ ๋ง์ดํ๋ ๋๋ถ๋ถ์ ๋ฌธ์ ๋ ๊ฐ์ฒด๋ฅผ ์ด๋ป๊ฒ ๋ง๋ค์๋์ง, ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ์์ฑํ๋์ง ๋ณด๋ค๋ ์๋ฒ ๋ฐฐํฌ, ์ธ๋ถ API ํธ์ถ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์์ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
A Chain is only as strong as its weakest link
์ฒด์ธ๐์ ์๋ฌด๋ฆฌ ํผํผํ ์ฌ๋ฃ๋ก ๋๋ฐฐํ๋ค๊ณ ํ๋ค, ์ ์ผ ์ฝํ ๊ณ ๋ฆฌ๊ฐ ๋์ด์ง๋ฉด ์ ์ฒด๊ฐ ๋์ด์ง๊ฒ ๋ฉ๋๋ค.
๋ฐฑ์๋ ๊ฐ๋ฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์๋ฒ ์ฝ๋๊ฐ ์๋ฒฝํ๋ค๊ณ ํด๋ ์๋น์ค ๋ฐฐํฌ, ์ธํ๋ผ ๊ตฌ์ฑ์ด ์ ๋๋ก ๋์ด์์ง ์๋ค๋ฉด ์๋ฌด๋ฐ ์๋ฏธ๊ฐ ์์ต๋๋ค.
์ฅ์ ์๋ ์์คํ ์ ๋ง๋ค ์๋ ์์ต๋๋ค. ๊ธฐ์ ์ ์ผ๋ก ์ต๊ณ ๋ผ๊ณ ๋ถ๋ฆฌ์ฐ๋ ๊ตฌ๊ธ, ํ์ด์ค๋ถ ๊ฐ์ ๋๊ธฐ์ ๋ ๋งค๋ ๋ช ๋ฒ์ ํฌ๊ณ ์์ ์ฅ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
๐ ๋ฌด์์ ๋ฐฐ์ฐ๋๊ฐ
๋ฐฑ์๋ ์ธํ๋ผ๋ ์๋น์ค๋ง๋ค ๊ตฌ์ฑ์ด ๋ค ๋ค๋ฅด๋ฉฐ ์๋น์ค๊ฐ ํ์ฅํด๊ฐ๋ฉฐ ์ ์ ๋ ๋ณต์กํด์ง๋๋ค.
์ฆ ๋ค๋ฅธ ์๋น์ค์ ๊ตฌ์ฑ์ ๋ณด๊ณ ๊ทธ๋๋ก ๋ฐ๋ผ ๋ง๋๋ ๊ฑด ๋ณ ๋์์ด ๋์ง ์์ต๋๋ค. ๊ฐ ๋๊ตฌ๋ค๊ณผ ์ปดํฌ๋ํธ๋ค์ ์ญํ ์ด ๋ฌด์์ด๊ณ , ์ ์ฌ์ฉํ๋์ง๋ฅผ ๋ฐฐ์์ผํฉ๋๋ค.
๐ ์ธ์ ๊ณต๋ถํด์ผ ํ ๊น์?
๋ฐฑ์๋ ๊ฐ๋ฐ์๋ ์ฐธ ๋ฐฐ์ธ ๊ฒ๋ ๋ง์ต๋๋ค. ๋น์ฅ ๋ฐฑ์๋ ์๋น์ค๋ฅผ ๋ง๋ค๊ธฐ๋ ๋ฐ์๋ฐ, ์ธํ๋ผ๋ ์ธ์ ๋ฐฐ์ฐ๋๊ฒ ๋ง์๊น์?
์ฌ๊ธฐ์ ๋ํด ์ด์ง ํํธ๋ฅผ ๋๋ฆฌ์๋ฉด, ๊ฐ๋ฐ ๊ณต๋ถํ์๋ค ์๋์ ๊ฐ์ ๊ถ๊ธ์ฆ์ด ์๊ธด๋ค๋ฉด ์ธํ๋ผ๋ฅผ ๋ฐฐ์ฐ๊ธฐ ์์ํด์ผ ํฉ๋๋ค.
- ์น ์๋น์ค์ ๋๊ท๋ชจ ํธ๋ํฝ์ ๊ฐ๋นํ๊ฒ ๋ง๋ค๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ๋์ง ๊ถ๊ธํ ๊ฒฝ์ฐ
- ๋ฌด์ค๋จ ๋ฐฐํฌ, ๋ฐฐํฌ ์๋ํ๋ฅผ ์๋น์ค์ ์ ์ฉํด๋ณด๊ณ ์ถ์ ๊ฒฝ์ฐ
- ์๋น์ค์ ๊ฒ์์์ง์ ์ ์ฉํด๋ณด๊ณ ์ถ์ ๊ฒฝ์ฐ
- ์ฅ์ ์๋ ์์คํ ์ ๋ชฉํ๋ก ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด๋ณด๊ณ ์ ํ๋ ๊ฒฝ์ฐ
๐ ํ ์คํธ์ฉ ์๋ฒ ๋ง๋ค๊ธฐ
์ธํ๋ผ๋ฅผ ํ ์คํธ ํด๋ณด๋ ค๋ฉด, ๋จผ์ ์น ์๋น์ค๊ฐ ์์ด์ผ๊ฒ ์ฃ ? ์๋์ ์์ ์ ๋ฐ๋ผ ์ฒ์ฒํ ๋ง๋ค์ด์ฃผ์ธ์.
1. GCP (Google Cloud Platform) ๊ณ์ ๋ฐ ์๋ฒ ์ธ์คํด์ค ์์ฑ
2. Docker ์๋ฒ ๋์ฐ๊ธฐ
๋ด PC๊ฐ ์๋์ฐ ํ๊ฒฝ์ด๋ผ๋ฉด ๋์ปค๋ฅผ ์ฝ๊ฒ ์ฌ์ฉ ํ ์ ์๋๋ก Docker Destop์ ์ค์นํ๋ ๊ฑธ ๊ถ์ฅํฉ๋๋ค.
๋ค๋ง ์๋์ฐ์ ๊ฒฝ์ฐ WSL2๋ฅผ ์ค์นํ๋ฉฐ ๋ค์ํ ์ค๋ฅ(...)๊ฐ ์๊ธธ ์ ์์ด์ ์๋๋ฉด ๊ตณ์ด ์ค์น์ํด๋ ์งํ์ ๊ฐ๋ฅํฉ๋๋ค๐
๊ทธ๋ฆฌ๊ณ ์์์ ์ค์นํ GCP ์ฝ์์ ๋ค์ด๊ฐ ์๋ฒ์ docker๋ฅผ ์ค์นํด์ฃผ์ธ์.
CentosOS7 ๊ธฐ์ค ๋ช ๋ น์ด๋ ์๋์ ๊ฐ์ต๋๋ค.
sudo yum install docker (๋์ปค ์ค์น)
sudo systemctl start docker (๋์ปค ์คํ)
sudo docker run -d -p 80:80 docker/getting-started (์๋ ์ด๋ฏธ์ง์ ์ค๋ช )
Docker Destop = Docker + GUI
https://www.docker.com/products/docker-desktop
์ค์นํ๋๋ฐ 3๋ถ์ ๋ ๊ฑธ๋ฆฝ๋๋ค. ์ค์น๋ฅผ ๋๋ฌ๋๊ณ ์๋ ์ค๋ช ์ ๊ฐ๋จํ๊ฒ ์ฝ์ด๋ณด์๋ฉด ๋ ๋ฏํฉ๋๋ค.
๐ Docker๋ 1์ด๋ง์ ์๋ก์ด ๋ฆฌ๋ ์ค๋ฅผ ๋์ธ ์ ์๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ์ ๊ฐ์ํ ๋๊ตฌ์ ๋๋ค.
ํ์ํ ์์คํ ์ด๋ ์๋ฒ์ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ณ , ๊ทธ ์ด๋ฏธ์ง๋ฅผ ์ปจํ ์ด๋์ ๋ด์ ๊ฐ์๋จธ์ (VM)์ ์คํํ๋๋ก ๋ง๋ญ๋๋ค.
์คํ ์ค์ธ ํ๊ฒฝ์ ์๊ด์์ด ์ธ์ ๋ ๋์ผํ๊ฒ ์คํ ๋ ์ ์๋ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค์ด์ค๋๋ค.
๊ธฐ์กด์ ์๋ ๊ฐ์ํ(VMware)๋ณด๋ค Docker๊ฐ ์ฃผ๋ชฉ ๋ฐ๋ ์ด์ ์, [ํ๋ก์ธ์ค ์์ ๊ฐ์OS]๋ฅผ ๋ง๋๋๊ฒ ์๋๋ผ ์์ ์์คํ OS ์์ค์ผ๋ก ๊ฐ์ํํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋์ ๊ฐ ์ปจํ ์ด๋์ ๊ฒฉ๋ฆฌ ๋ ๋ฒจ์ด ๋๊ณ OS์ ๊ณตํต๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ปจํ ์ด๋๋ง๋ค ์๋ก ๋ง๋ค์ง ์๊ณ ๊ณต์ ํ์ฌ ์ฌ์ฉํฉ๋๋ค.
๐ Docker Image๋ ์๋น์ค ์ด์์ ํ์ํ ๋ชจ๋ ํ๋ก๊ทธ๋จ, ์ฝ๋, ์คํํ์ผ์ ๋ชจ์ ๊ฒ์ ์๋ฏธํฉ๋๋ค. (MB~GB ํฌ๊ธฐ)
๋์ปค ์ด๋ฏธ์ง์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ์ด๋ฏธ ์กด์ฌํ๋ ์ด๋ฏธ์ง๋ ์๋กญ๊ฒ ๋ง๋ค ํ์๊ฐ ์๋ค๋ ๊ฒ์
๋๋ค. Image Layer ๊ฐ๋
์ ๋์
ํด ์ปจํ
์ด๋๋ค์ ์ฝ๊ธฐ์ ์ฉ ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํ์ฌ (ubuntu -> nginx -> web app) ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋์ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ต์ํ์ผ๋ก ๋ง๋ค ์ ์๊ณ ์ด๋ฏธ์ง ์์ฒด๋ฅผ ๋ฐฐํฌํ๊ธฐ๋ ์ฝ์ต๋๋ค.
3. ์๋ฐ ์น ์๋ฒ ๋์ฐ๊ธฐ
์คํ๋ง๋ถํธ๋ฅผ ์ฌ์ฉํ๋ฉด Tomcat ์น ์๋ฒ๋ฅผ ๋ด์ฅํ ์๋ฐ ์์ถ ํ์ผ(JAR)๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
Gradle์ด๋ Maven์ ์ฌ์ฉ์ค์ด๋ผ๋ฉด ์์ฝ๊ฒ ๋ฐฐํฌ์ฉ JARํ์ผ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ ต์ง ์์ผ๋ ์ง์ ์ฐพ์๋ณด๊ธธ ๋ฐ๋์.
๊ทธ๋ฆฌ๊ณ ๋ง๋ค์ด์ง JAR๋ ์๋์ ๊ฐ์ ๋ช ๋ น์ด๋ก JVM์์ ์คํ ๊ฐ๋ฅํฉ๋๋ค.
java -jar MyProjcet.jar
์์์ Docker ์๋ฒ๋ฅผ ๋์ ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก GCP ์ธ์คํด์ค๋ฅผ ํ๋ ๋ ๋ง๋ค์ด์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ wget๊ณผ java๋ฅผ ์ค์นํด์ฃผ๋ฉด ๋ฉ๋๋ค.
sudo yum install wget
sudo yum install java
๋ง๋ค์ด์ง JAR ํ์ผ์ 1. GCP ์น ์๋ฒ๋ก ์ฎ๊ธฐ๋๊ฒ ๊น๋ค๋ก์ธ ์ ์๋๋ฐ, ์ด๋ Github์ ์ ๋ก๋ํ๊ณ wget์ผ๋ก jar ๋งํฌ๋ฅผ ๋ค์ด๋ก๋ ๋ฐ์ผ๋ฉด ์ฝ๊ฒ ๊ณต์ ๊ฐ๋ฅํฉ๋๋ค. ์ด ๊ธ์์๋ ๊ฐ์์์ ๋์จ ์๋์ ์์ ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
wget https://github.com/lleellee0/class101-files/raw/main/cpu-0.0.1-SNAPSHOT.jar
java -jar ๋ค์ด๋ฐ์ํ์ผ.jar ( ls ๋ช ๋ น์ด๋ก ํ์ฌ ์์น์ ํ์ผ์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.)
์ด๋ ๊ฒ JAR ํ์ผ์ ์คํ์ํค๋ฉด ๋ก์ปฌ๊ณผ ๋๊ฐ์ด ์คํ๋ฉ๋๋ค. GCP ์์ ์ ๊ณตํ๋ ์ธ๋ถ ์์ดํผ๋ก ์ ์ ๊ฐ๋ฅํฉ๋๋ค.
* ํฌ๋กฌ์ ๊ธฐ๋ณธ์ ์ผ๋ก HTTPS๋ก ์ ์ํ๋๋ก ๋์ด์์ต๋๋ค. ํฌํธ๋ฅผ 80์ ์ฌ์ฉํ๋ค๋ฉด ์ฃผ์๋ฅผ HTTP๋ก ๋ฐ๊ฟ์ฃผ์ธ์.
'๐ฑBackend > CI & CD' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์๋ ์ธํ๋ผ #2 Artillery ๋ฅผ ์ด์ฉํด์ ์น ์ฑ๋ฅ ํ ์คํธํ๊ธฐ (0) | 2021.10.19 |
---|
๋ธ๋ก๊ทธ์ ์ ๋ณด
JiwonDev
JiwonDev