๋์ปค(Docker)๊ฐ ๋์จ์ง๋ ์ค๋ ๋์์ง๋ง, ์ ๋ ์ต๊ทผ์์์ผ ์๊ฒ ๋์์ต๋๋ค.
์คํฐ๋์์ ๋ผ๋ผ๋ฒจ(laravel)์ ๊ณต๋ถํ๊ฒ ๋๋ฉด์ ๋์ปค๋ฅผ ๋ฌด์์ ์ฌ์ฉํ๊ฒ ๋์๊ณ , ์ด๊ณณ ์ ๊ณณ์์ ๋์ปค์ ๋ํด ์กฐ๊ธ์ฉ ๋ฃ๊ฒ ๋๋ฉด์ ์ข๋ ๊ณต๋ถ๋ฅผ ํ๊ฒ ๋์๊ณ ... ์ด์ ์ง๊ธ์ ๋์ปค์๊ฒ ๋ง์์ ๋นผ์๊ฒจ ๋ฒ๋ ธ์ต๋๋ค.
๊ทธ ๊ฒฐ๊ณผ๋ก ๋ช์ฃผ ๋์ ์ ๊ฐ ๋ง๋ ๋ชจ๋ ์น์ฌ์ดํธ๋ค์ ๋ชจ๋ ๋์ปค ๊ธฐ๋ฐ์ผ๋ก ๋ฐ๊พธ๋ ์์ ์ ํ์์ต๋๋ค.
๊ทธ ์์ ์ ์ํด ํ๋์ docker-compose.yml๋ก ํ๋์ ํด๋ผ์ฐ๋ ์๋ฒ์ ์๋์ ๊ฐ์ด ๊ตฌ์ฑ์ ํ๊ฒ ๋์์ต๋๋ค.
Docker+ Nginx_proxy(front)+Nginx(back) 5๊ฐ+Apache(back)+php8.x+php7.x+php5.x+mysql8.x+mysql5.x+phpmyadmin+vnstat +ssl(Letsencrypt wild ์ธ์ฆ์) |
๊ทธ๋ฆฌ๊ณ , ์ ๋ชจ๋ ์์ ์ ๋ก์ปฌ PC์์ ์์ ํ Github์ push ํ๋ฉด, ์๋ฒ์ ์๋ ๋ฐฐํฌ๊ฐ ๋๋๋ก github action ์ ์ด์ฉํ์ฌ ๊ตฌํํ์์ต๋๋ค.
์ ๋ฌธ๊ฐ ์ ์ฅ์์๋ ์ ๊ฐ ๋ง๋ ์ ๊ตฌ์ฑ์ด ์์ฃผ ์ข์ง ๋ชปํ, ๋๋ ๋ฌด๋ชจํ ์์ ์ด๋ผ ์๊ฐ์ ํ์ค์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง,
์ด์จ๋ ์ ์๊ฒ๋ ๊ผญ ํ์ํด์, ๊ทธ๋ฆฌ๊ณ ๋์ปค๋ฅผ ์ข๋ ์ ์ดํดํ๊ธฐ ์ํ ์์คํ ์์ ์ด์์ต๋๋ค.
์ด์ ์ ์ค์ค๋ก ๋ง๊ฐํ์ง ์๊ธฐ ์ํด, ๊ทธ๋ฆฌ๊ณ ์ ์ฒ๋ผ ์๋ฑํ ๋์ ์ ํ์ค ๋ถ์ด ์์๊น ์ถ์ด ๊ทธ ์์ ๊ณผ์ ์ ๊ธฐ๋ก์ผ๋ก ๋จ๊ฒจ๋ด ๋๋ค.
๊ทธ ์ฒซ๋ฒ์งธ๋ก ์ ๋ง์์ ๊ฐ์ ธ๊ฐ ๋์ปค๋ก ์์ ๊ฐ์ด ๊ตฌ์ฑํ ์ด์ ๋ฅผ ์ ์ด๋ด ๋๋ค.
1. ์ฌ๋ฌ๊ฐ์ ์น์๋ฒ
์ ์๊ฒ๋ cafe24๋ฅผ ๋น๋กฏํ์ฌ ์ฌ๊ธฐ์ ๊ธฐ ํฉ์ด์ ธ์๋ ์ฌ๋ฌ๊ฐ์ ์น์๋ฒ๋ค์ด ์์์ต๋๋ค.
์ฌ์ฉ๋์ ๊ทนํ ์ ์๊ธฐ์ ์์ฃผ ์์ ๋์ ๋งค๋ฌ ์ฌ์ฉ๋ฃ๋ก ์ง๋ถํ๋ฉด์ ๊ด๋ฆฌํ๊ณ ์์์ง์.
์ด ์๋ฒ๋ค์ด ์ฌ๊ธฐ์ ๊ธฐ ๋ง์์ง๋ฉด์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ๋๋ฌด ๊ท์ฐฎ์์ต๋๋ค.
๊ทธ๋์ ๋ ์ด๊ฒ๋ค์ ํ๋์ ์๋ฒ์ ๋ชจ์ผ๋ ๋ฐฉ๋ฒ์ ์์๊น ์๊ฐ๋ง ํ๊ณ ์์์ง์.
๊ทธ๋ฐ๋ฐ, ๋์ปค๋ฅผ ์๊ฒ ๋๋ฉด์ ๊ทธ๊ฒ์ด ๊ฐ๋ฅํด ์ก์ต๋๋ค.
2. ๋๋ ค์ด ์๋ฒ ์ด์
๋ช ๋ ์ ์ฏค ์์ฃผ ์ค๋์ ์ ๋ง๋ค์๋ ์น ํ๋ก๊ทธ๋จ์ ๋ค๋ฅธ ์๋ฒ๋ก ์ฎ๊ธฐ๋ ์์ ์ ํ๊ฒ ๋์์ต๋๋ค. ์งง์ ์ง์์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ์์ฃผ ์ฝ๊ฒ ์๊ฐํ๊ณ ์์ ์ ํ๋๋ฐ, ์์ฒญ๋ ์ค๋ฅ๋ค์ ๋ณด๊ฒ ๋์์ต๋๋ค. php ๋ฒ์ ์ด ๋ง์ง ์์ ์๊ธฐ๋ ์ค๋ฅ๋ค.
๊ทธ๋์ ์ php ๋ฒ์ ์ ๋ง์ถฐ ํ๋ก๊ทธ๋จ์ ์์ ํด๋ณด๋ ค ํ์๋๋ฐ, ์๊ฐ๋ ์์ฒญ ๊ฑธ๋ฆฌ๊ณ , ๋น์์ฐ์ ์ธ ์ผ์ด๋ผ๋ ์๊ฐ์ด ๋ค์ด ์์ฒญ ์ง์ฆ์ด ๋๋ ๊ฒฝํ์ ํ๊ฒ ๋์์ต๋๋ค.
๋ค๋ฅธ ๋ถ๋ค๋ ๊ทธ๋ฌ์ค์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์ ์๊ฒ๋ ์๋ก์ด ๊ฒ์ ๋ง๋๋ ๊ฒ์ ์ฐธ ์ฌ๋ฏธ์๋ ์ผ์ธ๋ฐ, ๊ธฐ์กด ํ๋ก๊ทธ๋จ์ ๋ฒ๊ทธ๋ฅผ ์ก์๋ด๊ฑฐ๋ ๊ฐ์ ํ๋ ์ผ์ ์ ๋ง ์ฌ๋ฏธ์๋ ์ผ์ด๋ผ๊ณ ์๊ฐ์ด ๋๋ค์.
์ด์จ๋ ๊ทธ ์ดํ๋ก ์ ๋๋ก php ๋ฒ์ ์ ๋ง๊ฒ ์์ค๋ฅผ ์์ ํ๋ ์ผ์ ํ์ง ์์ต๋๋ค.
๋์ ์น ํ๋ก๊ทธ๋จ์ ๋ง๋ php ๋ฒ์ ์ ์ค์นํ๋ ๊ฒ์ผ๋ก ๋์ ํ์์ง์.
๊ทธ๋ฌ๋ค ๋ณด๋ ํ ์๋ฒ๋ก ๋ชจ์๋ค๋ ๊ฒ์ ๋ฐฉ๋ฒ๋ ์ ๋ชจ๋ฅด๊ณ , ๋๋ ค์ด ์ผ์ด๋ฉฐ, ์ฌ๋ฌ ์๋ฒ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ๋ณด๋ค ๋ ๊ท์ฐฎ์ ์ผ์ด์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ, ๋์ปค๋ฅผ ์๊ฒ ๋๋ฉด์ ๊ทธ๊ฒ์ด ๊ฐ๋ฅํด ์ก์ต๋๋ค.
3. ๋ชจ๋ ๋จ๊ฒจ๋๊ณ ์ถ๋ค
์๋ ์ aws ํด๋ผ์ฐ๋์ ํ๋ฆฌํฐ์ด ์๋น์ค๋ฅผ ์๊ฒ ๋์๊ณ , ๊ทธ๊ณณ์ ์๋ด ์์ฝ ์นํ๋ก๊ทธ๋จ์ ์ด์ํ๊ฒ ๋์์ต๋๋ค. 1๋ ์ด๋ผ๋ ๋ฌด๋ฃ ๊ธฐ๊ฐ์ผ๋ก ์ ํ์ฉํ๊ณ ์์ผ๋ฉฐ, ์ถํ ์ ๋ฃ๋ก ์ ํํ ์๊ฐ์ ํ๊ณ ์์์ต๋๋ค.
ํ์ง๋ง, ๊ทธํ ์ค๋ผํด, ๊ตฌ๊ธ ๋ฑ์์๋ ํ๋ฆฌํฐ์ด ์๋น์ค๋ฅผ ์๊ฒ ๋์๊ณ , ๊ทธ๋์ ๋ชจ๋ ๊ณณ์ ๋ฌด๋ฃ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ณ ๊ณต๋ถํ๋๋ฐ ํ์ฉํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค๋ผํด์ ๋ฌด๋ฃ ์๋น์ค๊ฐ ๋๋๋ฉด ์๋ด ์์ฝ ์นํ๋ก๊ทธ๋จ์ ๋ค๋ฅธ ๋ฌด๋ฃ ์๋ฒ๋ก ์ฎ๊ธฐ๋ ค ํ๊ณ ์์ง์.
ํ์ง๋ง, ๊ธฐ์กด์ ๊ณต๋ถํ๋ฉด์ ์ฌ๋ ค๋์๋ ๊ฒ๋ค์ ์ญ์ ํ์ง ์๊ณ ์ถ์์ต๋๋ค.
์ง๋ ๋ฐฉํ๋ ์ํ์ด ์ฝ๋ฉ์ ์ํ ์นํดํน ๊ณต๋ถ๋ฅผ ํ๊ฒ ๋๋ฉด์ ์ ๊ฐ ๋ง๋ ์นํ๋ก๊ทธ๋จ์ ํ์ฉํ๊ธฐ ์ํด ๋ช๊ฐ์ง๋ฅผ ๊ณ ์ณ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ , ๊ทธ๊ฒ์ผ๋ก ์คํฐ๋ ๊ทธ๋ฃน์์ ์ ํ์ฉํ์์ง์.
ํ์ง๋ง, ๋ค๋ฅธ ๊ณต๋ถ ๋๋ฌธ์ ์ด์ฉ์ ์์ด ์ง์ฐ๊ฒ ๋์์ต๋๋ค.
์ด๊ฒ๋ค์ ์ง์ฐ์ง ์๊ณ ์ ์น ํ๋ก๊ทธ๋จ์ ๊ฐ์ด ๋์ฐ๋ ๋ฐฉ๋ฒ์ ์์๊น?
๋ฐฉ๋ฒ์ ์์์ต๋๋ค.
๋ฐ๋ก ๋์ปค๊ฐ ๊ทธ๊ฒ์ ๋ํ ํด๋ต์ ์ฃผ์์ง์.
4. ๋น๋ถ๊ฐ์ ๋ฉ๋๊ธฐ๋ก ์ด์๊ฐ ์๊ฐ์ ๋๋ค.
ํ์ฌ aws์ ํ๋ฆฌํฐ์ด ์๋น์ค๋ฅผ ์ด์ฉํ๊ณ ์๊ณ , ๋ฌด๋ฃ ๊ธฐ๊ฐ์ด ๋๋๋ฉด ์ด์ฌ๋ฅผ ํ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ , ํน์ ๋ค๋ฅธ ๋ฌด๋ฃ ํด๋ผ์ฐ๋ ์๋น์ค๋ ์ข ๋ฃ๋๋ค๋ฉด...
๋ ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ด์ฌ๋ฅผ ๊ฐ๊ฒ ์ง์.
์์ ์๋ ๊ฐ์ธ ๋์ ์ง๋ถํ๋ฉด์ ์๋ฒ๋ฅผ ์ด์ํ์์ง๋ง,
์ ์น ์๋ฒ ์ ์์๋ ์ ์๋์ด ์ ์ด ์์ง์ ๋ฌด๋ฃ ์๋น์ค๋ก๋ ์ถฉ๋ถํ๊ธฐ์
๋ฌด๋ฃ ์๋น์ค๊ฐ ์กด์ฌํ๋ ํ ๋น๋ถ๊ฐ์ ๋ฌด๋ฃ๋ง์ ์ฐพ์๋ค๋๋ฉด์ ์ด์์ ํ๋ ค ํฉ๋๋ค.
์์ ์๋ ์์์ ๋ฐํ ์ด์ ๋ก ์๋ฒ ์ด์ ์ ์๊ฐ๋ ํ์ง ์์์ต๋๋ค.
ํ์ง๋ง, ๋์ปค๋ผ๋ ๊ฒ ๋๋ถ์ ์ด์ ๋ ์๋ฒ ์ด์ ์ ๊ฑฑ์ ์ด ์์ต๋๋ค.
๋ค๋ฅธ ํด๋ผ์ฐ๋ ์๋ฒ์ ์ ๋ชจ๋ ์๋น์ค๋ฅผ ๋๊ฐ์ด ๋์ฐ๋ ์์ ์ด ๋จ 10๋ถ์ด๋ฉด ๋๊ธฐ์
์ ๋ ๋์ปค๋ฅผ ์ฌ๋ํ๊ฒ ๋์์ต๋๋ค.
5. SSL ์๋น์ค
ssl๋ aws ํ๋ฆฌํฐ์ด ์๋น์ค๋ก ์ ์ด์ํ๊ณ ์์ต๋๋ค.
๋ค๋ง, ์๋ฒ๋ฅผ ์ด์ ํ๋ฉด ์ด๋ป๊ฒ ํ ๊น ๊ณ ๋ฏผ์ค์ ์์์ง์.
๊ทธ๋ฆฌ๊ณ , ์น์๋น์ค๊ฐ ์ฌ๋ฌ๊ฐ ์ด๊ธฐ ๋๋ฌธ์ ์์ผ๋ ์ธ์ฆ์๋ฅผ ๊ณ ๋ฏผํ๊ณ ์์๋๋ฐ,
์ค์น๋ถํฐ ๊ฐฑ์ ๊ฑฑ์ ๊น์ง ๋์ปค๊ฐ ๋ชจ๋ ํด๊ฒฐํด ์ฃผ์์ต๋๋ค.
6. vnstat
vnstat๋ผ๋ ๊ฒ์ ์์๋์?
๋ฌด๋ฃ ์๋น์ค๋ฅผ ํ์ฉํ๋ฉด์ ํธ๋ํฝ์ด ์ผ๋ง๋ ๋๋์ง ๋ ๊ถ๊ธํ๊ณ ๊ฑฑ์ ์ด ๋๊ธฐ๋ ํ์ง์.
๊ทธ๋์ ๋งค๋ฒ ํด๋ผ์ฐ๋ ํํ์ด์ง์ ๋ก๊ทธ์ธํด์ ํ์ธํด๋ณด๊ณ ์๋๋ฐ ์ด๊ฒ๋ ์กฐ๊ธ ๊ท์ฐฎ์ต๋๋ค.
๊ทธ๋์ ์ ์น์๋น์ค๋ก ํธ๋ํฝ์ ๋ณผ ์ ์์๊น ์ถ์ด ์ฐพ์๋ณด๋ค ์๊ฒ๋ ํ๋ก๊ทธ๋จ์ด์ง์.
์ด๊ฒ์ ์ค์นํด๋ณด๋ ค ๋ง์ ์๋๋ฅผ ํด๋ณด์์ง๋ง, ์๋ฒ ์ฝ์์์ ๋ณด๋ ๊ฒ์ ์ฝ๊ฒ ์ฑ๊ณตํ์ง๋ง
์น์ผ๋ก ๋ณด๋ ๊ฒ์ ๋ฅ๋ ฅ์ด ๋ถ์กฑํด์ ๋ชจ๋ ์คํจํ์์ต๋๋ค.
๊ทธ๋์, ์์ฝ์ง๋ง vnstat๋ฅผ ํฌ๊ธฐํ์๋๋ฐ...
์ผ๋ง์ vnstat๋ ๋์ปค ์ด๋ฏธ์ง๋ก ์กด์ฌํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์๊ณ , ์ ๋ง ์์ฝ๊ฒ ์ค์น๋ฅผ ์๋ฃํ์๋ต๋๋ค.
๋์ปค์ผ. ๊ณ ๋ง๋ค.
๐บ๐บ ์์ ํ ๋ชจ๋ ์์ค๋ ์๋ ๋งํฌ์์ ํ์ธํ์ค ์ ์์ต๋๋ค. ๐บ๐บ
https://github.com/mmssem/progstudy
GitHub - mmssem/progstudy
Contribute to mmssem/progstudy development by creating an account on GitHub.
github.com
๐บ ๋ชฉ์ฐจ ๐บ(๋ณด์๋ ค๋ฉด ์๋ ๋๋ณด๊ธฐ ๋ฅผ ๋๋ฌ์ฃผ์ธ์.)
1. Docker๋ฅผ ์ฌ๋ํ๊ฒ ๋ ์ด์ (Docker+Nginx_proxy+SSL+Github action)
2. Docker ์ค์น (Docker+Nginx_proxy+SSL+Github action)
3. MobaXterm (Docker+Nginx_proxy+SSL+Github action)
5. ๋ก์ปฌ์ nginx(์น์๋ฒ) ์ค์นํด๋ณด๊ธฐ (Docker+Nginx_proxy+SSL+Github action)
6. ์๋ฒ ์๋ ๋ฐฐํฌ (1) ๋ก์ปฌ => github (Docker+Nginx_proxy+SSL+Github action)
7. ์๋ฒ ์๋ ๋ฐฐํฌ (2) ์๋ฒ์ ์๋ ๋ฐฐํฌ๋ฅผ ์ํ runner ์ค์น
8. ์๋ฒ ์๋ ๋ฐฐํฌ (3) ๋ก์ปฌ ์์ค -> git push -> github -> ์๋ฒ ์๋ ๋ฐฐํฌ ํ์ธ
9. (tip) git Add, Commit, push ํ๋ฒ์ ํ๊ธฐ
10. ์๋ฒ ์๋ ๋ฐฐํฌ (4) ๋ฐฐํฌ์ ์๋ฒ์์ docker-compose.yml ์๋ ์คํ
11. ์๋ฒ์ vnstat ์ค์น (docker-compose.yml ์ด์ฉ)
12. ์๋ฒ์ ๋์ปค ์ค์น์ network ์ค์ ๋ณ๊ฒฝ ์ฌํญ ํ์ธํ๊ธฐ
13. nginx + php + mysql + phpmyadmin ์ค์นํ๊ธฐ
14. Nginx - Reverse Proxy, Load Balancing ๊ธฐ๋ฅ ํ์ฉ
15. ๋ก์ปฌ์์ ์์ดํผ ๋์ ๋๋ฉ์ธ๋ช ์ฌ์ฉํ๊ธฐ(hosts ์์ )
16. https๋ฅผ ์ฐ๊ธฐ ์ํด ๋ก์ปฌ์์ SSL ํ ์คํธ ํ๊ธฐ (with mkcert)
17. ์๋ฒ์ SSL ์ ์ฉํ๊ธฐ (docker + Let's Encrypt + wildcard ์ธ์ฆ์ + Cloudflare)
18. ์์ผ๋์นด๋ ์ธ์ฆ์ ์๋ ๊ฐฑ์ (docker + Let's Encrypt + wildcard ์ธ์ฆ์ + crontab)