Deploy Infrastructure - Genie-Uss/genieus GitHub Wiki
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ฅผ AWS ํด๋ผ์ฐ๋์ ๋ฐฐํฌํ์ฌ ํ์ฅ์ฑ๊ณผ ์์ ์ฑ์ ๋ณด์ฅํ๋ ์์คํ ์ ๊ตฌ์ถํ์ต๋๋ค.
๋ง์ดํฌ๋ก์๋น์ค ๊ฐ ํต์ ๋ฐ ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ
๋คํธ์ํฌ ๋ณด์ ๋ฐ ์ธ๋ถ ์ ๊ทผ ์ ์ด
SSL ์ธ์ฆ์ ์๋ํ ๋ฐ ๋๋ฉ์ธ ๊ด๋ฆฌ
์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๋ฐ ํ๊ฒฝ๋ณ ๋ฐฐํฌ
"ํผ๋ธ๋ฆญ-ํ๋ผ์ด๋น ๋คํธ์ํฌ ๊ฐ ํต์ ์ ์ด๋ป๊ฒ ์์ ํ๊ฒ ๊ตฌ์ฑํ ๊ฒ์ธ๊ฐ?"
์ด๊ธฐ์๋ API Gateway๋ฅผ ํผ๋ธ๋ฆญ ์๋ธ๋ท์ ๋ฐฐ์นํ์ผ๋, Docker ๋ด๋ถ IP ์ ๊ทผ ๋ถ๊ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋ฐ๋ผ์ NGINX๋ฅผ ๋จ์ผ ์ง์ ์ ์ผ๋ก ํ๊ณ ๋ชจ๋ ์๋น์ค๋ฅผ ํ๋ผ์ด๋น ๋คํธ์ํฌ์ ๋ฐฐ์นํ์ฌ, ๋ณด์๊ณผ ์ ๊ทผ์ฑ์ ๊ท ํ์ ์ ์งํ๋ ๋ฐฉํฅ์ผ๋ก ์ค๊ณํ์ต๋๋ค.
๋ณด์์ด ์ค์ํ ์๋น์ค ๋ฐฐ์น์ ์ธ๋ถ ์ ๊ทผ์ฑ์ ๋ชจ๋ ํ๋ณดํฉ๋๋ค.
ํผ๋ธ๋ฆญ ์๋ธ๋ท
- NGINX Reverse Proxy: ์ธ๋ถ ํธ๋ํฝ์ ๋จ์ผ ์ง์ ์
- SSL ํฐ๋ฏธ๋ค์ด์ : Let's Encrypt ์๋ ์ธ์ฆ์ ๊ฐฑ์
- ๋๋ฉ์ธ ๋ผ์ฐํ : ์๋น์ค๋ณ ๊ฒฝ๋ก ๊ธฐ๋ฐ ๋ผ์ฐํ
ํ๋ผ์ด๋น ์๋ธ๋ท
- ๋ชจ๋ ๋ง์ดํฌ๋ก์๋น์ค: ์ธ๋ถ ์ง์ ์ ๊ทผ ์ฐจ๋จ
- ์ธํ๋ผ ์๋น์ค: MySQL, Redis, Kafka ๋ฑ
- ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ: Eureka ๊ธฐ๋ฐ ๋ด๋ถ ํต์
ํ๊ฒฝ๋ณ ๋ฐฐํฌ์ ์๋น์ค ๊ฐ ์์กด์ฑ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํฉ๋๋ค.
๊ฐ๋ฐ/์ด์ ํ๊ฒฝ ๋ถ๋ฆฌ
# docker-compose.prod.yml
services:
api-gateway:
image: genieus/api-gateway:${VERSION}
environment:
- SPRING_PROFILES_ACTIVE=prod
- EUREKA_HOST=${EUREKA_HOST}
networks:
- genieus-network
auth-service:
image: genieus/auth-service:${VERSION}
environment:
- SPRING_PROFILES_ACTIVE=prod
- DB_HOST=${DB_HOST}
- REDIS_HOST=${REDIS_HOST}
ํ๊ฒฝ๋ณ ์ค์ ๊ด๋ฆฌ
- Local: Docker Compose๋ก ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ
- Dev: AWS EC2 ๊ธฐ๋ฐ ๊ฐ๋ฐ ์๋ฒ
- Prod: ์ด์ ํ๊ฒฝ ์ต์ ํ ์ค์
์๋ํ๋ ๋น๋/๋ฐฐํฌ๋ก ๊ฐ๋ฐ ํจ์จ์ฑ์ ๋์ ๋๋ค.
๋ณ๊ฒฝ ๊ฐ์ง ๋น๋
# ๋ณ๊ฒฝ๋ ์๋น์ค๋ง ๋น๋
- name: Detect Changes
run: |
echo "auth_changed=$(git diff --name-only HEAD~1 | grep -q 'auth-service' && echo 'true' || echo 'false')" >> $GITHUB_ENV
echo "product_changed=$(git diff --name-only HEAD~1 | grep -q 'product-service' && echo 'true' || echo 'false')" >> $GITHUB_ENV
- NGINX Reverse Proxy ์ค์
- ํ๊ฒฝ๋ณ ์ค์ ๊ด๋ฆฌ
- Environment Variables: ๋ฏผ๊ฐ ์ ๋ณด ๋ถ๋ฆฌ
- Profile ๊ธฐ๋ฐ ๋ถ๋ฆฌ: local/dev/prod ํ๊ฒฝ ์ค์
- ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ ์ต์ ํ: Eureka ํด๋ผ์ด์ธํธ ์๋ ์๋น์ค ๋ฑ๋ก/ํด์
- ๋คํธ์ํฌ ๊ฒฉ๋ฆฌ: ํ๋ผ์ด๋น ์๋ธ๋ท ๊ธฐ๋ฐ ์๋น์ค ๋ณดํธ
- SSL ์ ์ฉ: ๋ชจ๋ ์ธ๋ถ ํต์ ์ํธํ
- ์ ๊ทผ ์ ์ด: NGINX ๊ธฐ๋ฐ ์ค์ ์ง์ค ๋ณด์ ์ ์ฑ
- ์๋น์ค๋ณ ๋ ๋ฆฝ ๋ฐฐํฌ: ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ ์์กด์ฑ ์ต์ํ
์น์ | ๋ด์ฉ |
---|---|
MSA ํ๊ฒฝ์์ API Gateway ์ฐ๊ฒฐ ํธ๋ฌ๋ธ์ํ | MSA ํ๊ฒฝ์์ API Gateway ์ฐ๊ฒฐ ํธ๋ฌ๋ธ์ํ |