Jenkins ์ธ๋ฏธ๋
์์ํ๋ฉฐ
ํ์๋ถ๊ป์ ํ์ฌ ๋ด๊ฐ ์ฐธ์ฌํ๊ณ ์๋ ์ ๊ท ํ๋ก์ ํธ์ ๊ธฐ์กด ๊ตฌ์ถ๋์ด ์๋ ํ๋ก์ ํธ์ AWS ์ปจํ ์ด๋ ์๋น์ค๋ค์ ์ฌ์ฉํ๊ณ Jenkins๋ฅผ ํตํด ๋ฐฐํฌ๋ฅผ ์งํํ๋ ์์ ์ ์งํํ์ จ๋ค. ์ด์ ๋ํ ๊ฒฝํ์ ๊ณต์ ํ๊ธฐ ์ํ ์ธ๋ฏธ๋ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณด์!
์ฌ์ ์ค๋ช
โ์ด๋ฐ๊ฒ ์๊ตฌ๋โ ํ๊ณ ๋์ด๊ฐ๋ ๋ด์ฉ
- ELB ๋ณด๋ค Cluster๊ฐ ์ฐ์ ์ ๋๋ค.
ELB TargetGroup์ด 3๊ฐ๋ก ์ง์ ๋์ด ์์ด๋, Cluster๊ฐ 2๊ฐ๋ก ์ง์ ๋์ด ์์ผ๋ฉด 2๊ฐ์ ์ธ์คํด์ค๋ง ์ฌ์ฉ๋๋ค.
- EC2 ์ธ์คํด์ค ์์๋ Amazon Agent, Application ๋ ๊ฐ์ ์ปจํ ์ด๋๊ฐ ์๋ค.
- Cluster๋ก ์ง์ ๋์ง ์์ spare ์ปจํ ์ด๋๊ฐ N๊ฐ ์กด์ฌํ๋ค.
spare ์ปจํ ์ด๋๊ฐ ๋ง์ ์๋ก ์ฑ๋ฅ์ด ์ข์ ๊ฒ์ผ๋ก ์์
spare ์ปจํ ์ด๋์์ ๋ฐฐํฌ๊ฐ ์์๋๋๋ฐ 1๊ฐ์์ ์์ํ๋ ๊ฒ๋ณด๋ค 2๊ฐ ์ด์์์ ๋์์ ๋ฐฐํฌ๋๋ ๊ฒ์ด ์๋๊ฐ ๋น ๋ฅด๊ธฐ ๋๋ฌธ.
- Jenkins ๋ฐฐํฌ ์คํ ์ spare ์ปจํ ์ด๋์ ๋ฐฐํฌ๊ฐ ์์๋๊ณ , Cluster๋ก ์ง์ ๋ ์ธ์คํด์ค๋ฅผ ํด์ ํ๋ ์์ผ๋ก ๋ฐฐํฌ๊ฐ ์งํ๋๋ค.
- Cluster์์ ์ ์ธ๋ ์ธ์คํด์ค๋ drain ์ํ๋ก ์ ํ๋๋ค.
Jenkins
์ฌ์ ์ค๋ช ์ ๋จ๊ณ๋๋ก ์ง์ ๋ Pipeline Job์ ์ํด ๋ฐฐํฌ ๊ณผ์ ์ด ์งํ๋๋ค.
- ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ branch๋ฅผ ํธ๋ํนํด์ ๋ณ๊ฒฝ ๋ด์ฉ์ ์ฐพ์๋ธ๋ค.
- drain ์ํ์ ์ธ์คํด์ค๋ฅผ ์ฐพ์ ๋ฐฐํฌ๊ฐ ์์๋๋ค.
- ๋ฐฐํฌ๋ ์ธ์คํด์ค๋ค๋ก Cluster๋ฅผ ์ฌ๊ตฌ์ฑํ๊ณ ๋ฐฐํฌ ์ดํ ์์ ๋ค(Jira ์ ๋ฐ์ดํธ ๋ฑ)์ด ์งํ๋๋ค.
์ด ๊ณผ์ ์ค ํ ๊ณณ์ด๋ผ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด Jenkins ๋ฐฐํฌ๊ฐ ์คํจํ๋ค.
๋ง์น๋ฉฐ
Jenkins์ AWS ์ฌ์ฉ์ด ํ์ํ๋ฅผ ๋์ด์ ๊ธฐ๋ณธ์ด ๋๊ณ ์๋ ์์ฆ, ์ด ๋ถ๋ถ์ ๋ํ ์ง์์ด ๋ง์ด ๋ถ์กฑํ๋ค๊ณ ๋๊ผ๋ค. ์ด๋ฒ ์ธ๋ฏธ๋๋ฅผ ํตํด ๋ ๊ณต๋ถํด์ผ๊ฒ ๋ค๋ ์์ง๋ฅผ ๊ฐ๊ฒ ๋์๋ค. (์ ๋ฐ ํ๋๊ฑฐ์ผ ..)