ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ NestJS + Kubernetes & ๋ง์ดํฌ๋ก์๋น์ค ๋ฐฐํฌ: ์ค์ ๊ฐ์ด๋ - NestJS ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ Docker๋ก ์ปจํ ์ด๋ํํ๊ธฐ
octo54 2025. 3. 31. 09:54๐ NestJS + Kubernetes & ๋ง์ดํฌ๋ก์๋น์ค ๋ฐฐํฌ: ์ค์ ๊ฐ์ด๋
2. NestJS ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ Docker๋ก ์ปจํ ์ด๋ํํ๊ธฐ
NestJS๋ก ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ๋ฅผ ๊ตฌํํ๋ค๋ฉด, ์ด์ ๋ ๊ฐ ์๋น์ค๋ฅผ Docker ์ปจํ
์ด๋๋ก ํจํค์งํ์ฌ ์ด์ ํ๊ฒฝ์ ์ฝ๊ฒ ๋ฐฐํฌํ ์ ์๋๋ก ์ค๋นํด์ผ ํฉ๋๋ค.
์ด๋ฒ ๊ธ์์๋ NestJS ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ Docker๋ก ์ปจํ
์ด๋ํํ๋ ์ค์ ๋ฐฉ๋ฒ, docker-compose๋ก ๋ก์ปฌ์์ ๋ค์ค ์๋น์ค ์คํ๊น์ง ์งํํฉ๋๋ค. ๐
โ ์ NestJS ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ Docker๋ก ์ปจํ ์ด๋ํํด์ผ ํ ๊น?
- ํ๊ฒฝ ์ผ๊ด์ฑ ํ๋ณด: OS์ ์๊ด์์ด ๋์ผํ ์คํ ํ๊ฒฝ ์ ๊ณต
- ๋ฐฐํฌ ์๋ํ ์ฉ์ด: CI/CD ํ์ดํ๋ผ์ธ ๊ตฌ์ถ์ ํ์
- ํ์ฅ์ฑ ๊ทน๋ํ: Kubernetes์ ๊ฐ์ ํ๋ซํผ์์ ํ์ฅ ๊ฐ๋ฅ
- ๋ง์ดํฌ๋ก์๋น์ค ๋ ๋ฆฝ ์คํ: ์๋น์ค ๋จ์๋ก ์ปจํ ์ด๋ ๋ถ๋ฆฌ ์คํ ๊ฐ๋ฅ
โ ๊ธฐ๋ณธ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ ๋ณต์ต
nestjs-microservices/
โโโ apps/
โ โโโ api-gateway/ # API Gateway
โ โโโ user-service/ # ์ฌ์ฉ์ ์๋น์ค
โโโ docker/
โ โโโ Dockerfile.api-gateway
โ โโโ Dockerfile.user-service
โโโ docker-compose.yml
โ Dockerfile ์์ฑ – API Gateway
๐ docker/Dockerfile.api-gateway
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
WORKDIR /app/apps/api-gateway
RUN npm run build
CMD ["node", "dist/main"]
โ Dockerfile ์์ฑ – User Service
๐ docker/Dockerfile.user-service
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
WORKDIR /app/apps/user-service
RUN npm run build
CMD ["node", "dist/main"]
โ docker-compose.yml ์์ฑ
๐ docker-compose.yml
version: '3.8'
services:
api-gateway:
build:
context: .
dockerfile: docker/Dockerfile.api-gateway
ports:
- '3000:3000'
depends_on:
- user-service
user-service:
build:
context: .
dockerfile: docker/Dockerfile.user-service
ports:
- '3001:3001'
โ ์คํํด๋ณด๊ธฐ
docker-compose up --build
๐ ์ดํ http://localhost:3000/users๋ก API ํธ์ถ ์, ๋ด๋ถ์์ TCP ํต์ ์ ํตํด user-service์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
โ .dockerignore ์ถ๊ฐ
๐ .dockerignore
node_modules
dist
.git
.env
๐ก ๋น๋ ์๋ ํฅ์๊ณผ ๋ณด์ ๊ฐํ๋ฅผ ์ํด ๋ถํ์ํ ํ์ผ์ ์ ์ธํฉ๋๋ค.
โ ๋ก์ปฌ ๊ฐ๋ฐ ์ ์ ์ฉํ ์ต์ ๋ค
- volumes๋ฅผ ํ์ฉํ ์ค์๊ฐ ์ฝ๋ ๋ฐ์ (Hot Reload์ ํจ๊ป ์ฌ์ฉ)
- environment๋ก ํ๊ฒฝ ๋ณ์ ์ฃผ์
- network_mode: bridge๋ก ์๋น์ค ๊ฐ ์ฐ๊ฒฐ ๋ช ํํ ๊ตฌ์ฑ ๊ฐ๋ฅ
โ ์๋น์ค ๊ฐ ํต์ ํ์ธ
API Gateway → User Service๋ก TCP ์์ฒญ์ ๋ณด๋ด๋ ๊ตฌ์กฐ๋ฅผ ๋ค์์ฒ๋ผ ํ ์คํธํฉ๋๋ค:
curl http://localhost:3000/users
์๋ต:
[
{ "id": 1, "name": "Alice" },
{ "id": 2, "name": "Bob" }
]
๐ ์ฑ๊ณต์ ์ผ๋ก Docker ๊ธฐ๋ฐ์ผ๋ก NestJS ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ปจํ ์ด๋ํํ์ต๋๋ค!
โ ๊ฒฐ๋ก : Docker๋ก NestJS ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ํจ์จ์ ์ผ๋ก ํจํค์งํ๊ธฐ
โ
NestJS์ ๊ฐ ์๋น์ค๋ฅผ ๋
๋ฆฝ๋ Docker ์ด๋ฏธ์ง๋ก ๋ถ๋ฆฌ
โ
docker-compose๋ฅผ ํตํด ์ ์ฒด ์์คํ
์ ํ๋์ ๋ช
๋ น์ด๋ก ์คํ
โ
Kubernetes ๋ฐฐํฌ๋ฅผ ์ํ ์ค๋น ๋จ๊ณ ์๋ฃ
๋ค์ ๊ธ์์๋ ์ด Docker ๊ธฐ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ Kubernetes ํด๋ฌ์คํฐ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋ด ๋๋ค.
๐ ๋ค์ ๊ธ ์๊ณ : NestJS ๋ง์ดํฌ๋ก์๋น์ค Kubernetes ํด๋ฌ์คํฐ ๋ฐฐํฌ ์ค์ต
๐ ๋ค์ ํธ: 3. NestJS ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ Kubernetes์ ๋ฐฐํฌํ๊ธฐ
'study > ๋ฐฑ์๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
- Total
- Today
- Yesterday
- fastapi
- App Router
- ์ค๋งํธ ์ปจํธ๋ํธ
- Webpack
- Docker
- PostgreSQL
- Ktor
- Next.js
- rag
- AI ์๋ํ
- ๊ฐ๋ฐ๋ธ๋ก๊ทธ
- gatsbyjs
- ๊ด๋ฆฌ์
- ์น๊ฐ๋ฐ
- SEO์ต์ ํ
- ํ๋ก ํธ์๋
- Prisma
- LangChain
- github
- ๋ฐฑ์๋๊ฐ๋ฐ
- CI/CD
- nodejs
- nextJS
- REACT
- seo ์ต์ ํ 10๊ฐ
- llm
- ๋ฐฑ์๋
- NestJS
- kotlin
- AI์ฑ๋ด
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |