CI/CD
- Continuous Integration (CI) - ex) github์์ ์ง์ pullํ์ฌ์ ์์ ์ฌํญ์ด ์๋ฃ๋๋ฉด ์๋์ผ๋ก ์๋ฒ์ ์ฐ๋
- Continuous Delivery/Deployment (CD) ex) github actions๋ก ์๋์ผ๋ก ์์ ์ฌํญ์ ์๋ฒ์ ๋ฐ์ํ๋ค.
์ ์์ผ ๋ฐฉ์
์ผ๋จ ์์ด๋์ด ๊ฐ๋ฐ๋จ๊ณ๊น์ง์ ์๊ฐ์ ์ถ์์ํค๊ณ , ๋ฐฐํฌํ ํ์ ์์ , ๊ฐ์ ์ฌํญ์ ๋ฐ๋ก๋ฐ๋ก ๋ฐ์ํ๋ ๊ฒ์ผ๋ก,
CD๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ์ ์์ผ ๋ฐฉ์์ ๋์ฑ ๊ฐํธํ๊ฒ ์ถ๊ตฌํ ์ ์๋ค.
๊นํ๋ธ ์ก์ ์ฆํ repository๋ฅผ ์ ํํ๊ณ ,
Settings๋ฅผ ํด๋ฆญ
์ผ์ชฝ ๋ฉ๋ด์ฐฝ์์ Secrets and variables -> Actions๋ก ์ด๋ํ๋ค.
New repository secret ๋ฒํผ์ ๋๋ฅธ๋ค.
(1) Name์ HOST๋ก ์ ๋ ฅ,
Secret ๋ถ๋ถ์๋ IPv4 ์ฃผ์๋ฅผ ๋ณต์ฌํด์ ์ ๋ ฅํ๋ฉด ๋๋ค.
EC2 ์๋ฒ๋ฅผ ์ฌ๋ ๋ฐฉ๋ฒ์ ์๋๋ฅผ ์ฐธ์กฐ
https://codebunny99.tistory.com/58
(2) Name์ SSH_PRIVATE_KEY๋ก ์ ๋ ฅ,
Secret ๋ถ๋ถ์๋ PuTTy(๋ง์ฐฌ๊ฐ์ง๋ก ์์ ๊ธ Streamlit) EC2๋ก ์ฌ๋ฌ ๊ฐ์ ์นํ์ด์ง ์คํํ๊ธฐ, Potty(ํธํฐ) ์ฉ์ด ์ ๋ฆฌ ์ฐธ๊ณ )
๋ฅผ ์ค์ ํ๋ฉด key.ppk ํ๋๊ฐ ๋์ค๊ฒ ๋๋๋ฐ, key.ppk -> key.pem์ผ๋ก ๋ณํํด์ผ ํ๋ค.
PuTTy๋ฅผ ์ค์นํ๋ฉด ์๋์ผ๋ก PuTTYgen๋ ํจ๊ป ์ค์น๋๋๋ฐ, PuTTYgen์ ํตํด .ppk๋ฅผ .pem์ผ๋ก ๋ณํ ๊ฐ๋ฅํ๋ค.
Load๋ฅผ ๋๋ฌ์ key.ppk๋ฅผ ์ ํํ๊ณ ,
Conversions์์ Export OpenSSH key๋ฅผ ์ ํํ๊ณ ,
์(Y)๋ฅผ ๋๋ฅด๊ณ
.pem์ผ๋ก ํ์ฌ ์ ์ฅํ๋ค
๋ค์ Actions๋ก ๋์์์, Secret ๋ถ๋ถ์ key.pem ํ์ผ์ ๋์ด๋ค๊ฐ ๋์ผ๋ฉด
์๋ก์ด ์นํ์ด์ง์ ์ฝ๋๊ฐ ์ด๋ฆฌ๋๋ฐ, ์ปจํธ๋กค+a ํ์ฌ ๋ชจ๋ ๋ณต์ฌํ์ฌ Secret๋ถ๋ถ์ ๋ถ์ฌ๋ฃ์ผ๋ฉด ๋๋ค.
(3) Name์ USER๋ก ์ ๋ ฅ,
putty์์ ec2-user์ ์น๊ณ ๋ก๊ทธ์ธํ๋ฏ๋ก, USER์ Secret์ ec2-user๋ผ๊ณ ์์ฑํด์ค๋ค.
(4) Actions New workflow ๋ง๋ค๊ธฐ
Actions -> New workflow ๋ฒํผ์ ํด๋ฆญํ๋ค.
set up a workflow yourself ๋ฅผ ํด๋ฆญํ๋ค.
๋ค์๊ณผ ๊ฐ์ด ์์ฑํ๋ค.
** ์ค์ **
Script์๋ ์์ ์ Githubํ์ผ์ด ์๋ ์ฌ๋ฐ๋ฅธ ๊ฒฝ๋ก๋ก ์ง์ ํด์ฃผ๋ฉด ๋๋ค.
๋๋ Github์ commitํ ๋ด์ฉ์ด ๋ด ๋ฌธ์/Github/project310/ ํด๋์ ์์๊ธฐ ๋๋ฌธ์, ๊ฒฝ๋ก๋ฅผ ์ด ๊ณณ์ผ๋ก ์ง์ ํ์๋ค.
์ฝ๋๋ ์๋ txt์์ ๋ค์ด๋ฐ์์ ์ฌ์ฉํ๋ฉด ๋๋ค.
์๋์ผ๋ก ๋ฐ์๋์๋์ง ํํฉ์ Github Actions ๋ฉ์ธํ๋ฉด์์ ํ์ธํ๋ฉด ๋๋ค.
์ด ๊ณผ์ ์ ๊ฑฐ์น๋ฉด
๊ธฐ์กด์๋ PuTTy์์ git pullํ์ฌ ์๋ก ์๋ฒ๋ฅผ ๊ตฌ๋ํ๋ ์์ ์ ๊ฑฐ์ณ์ผํ์ง๋ง,
๊ทธ ๊ณผ์ ์ ๊ฑฐ์น์ง ์๊ณ ๋ Github Desktop์์ git pull ๋ฒํผ์ ๋๋ฅด๋ ๊ฒ๋ง์ผ๋ก๋
๊ตฌ๋์ค์ธ ์๋ฒ์ ์์ ์ฌํญ์ ์ค์๊ฐ์ผ๋ก ์๋ฒ์ ๋ฐ์ํ ์ ์๋ค.