DevOps 작업을 위한 효과적인 프롬프트 패턴을 알아봅니다.
DevOps 프롬프트 구조
Docker
Dockerfile
Next.js 애플리케이션을 위한 Dockerfile을 작성해줘.
요구사항:
- 멀티스테이지 빌드
- 작은 이미지 크기
- 보안 고려 (non-root user)
- 캐시 최적화
- 환경 변수 처리
포함:
- 개발용 Dockerfile
- 프로덕션용 Dockerfile
- .dockerignore
Docker Compose
풀스택 애플리케이션을 위한 docker-compose.yml을 작성해줘.
서비스:
- Frontend (Next.js)
- Backend (Node.js)
- Database (PostgreSQL)
- Cache (Redis)
- Reverse Proxy (Nginx)
요구사항:
- 네트워크 분리
- 볼륨 설정
- 환경 변수
- 헬스체크
- 의존성 관리
CI/CD
GitHub Actions
GitHub Actions CI/CD 워크플로우를 작성해줘.
프로젝트: Next.js + TypeScript
워크플로우:
1. PR 생성 시
- 린트
- 타입 체크
- 테스트
- 빌드
2. main 푸시 시
- 위 모든 것 + 배포
요구사항:
- 캐싱 (node_modules, .next)
- 병렬 실행
- 환경 변수 (Secrets)
- 배포 (Vercel/AWS)
배포 파이프라인
프로덕션 배포 파이프라인을 설계해줘.
환경:
- Development
- Staging
- Production
단계:
1. 빌드
2. 테스트 (Unit, Integration, E2E)
3. 보안 스캔
4. 스테이징 배포
5. 승인 게이트
6. 프로덕션 배포
7. 스모크 테스트
8. 롤백 계획
인프라 코드
Terraform
AWS 인프라를 Terraform으로 정의해줘.
리소스:
- VPC (서브넷, IGW, NAT)
- ECS Fargate 클러스터
- RDS PostgreSQL
- ElastiCache Redis
- ALB
- S3 + CloudFront
- Route 53
요구사항:
- 모듈화
- 환경별 변수
- 상태 관리 (S3 backend)
- 보안 그룹
Kubernetes
Kubernetes 매니페스트를 작성해줘.
애플리케이션: Node.js 웹 서비스
리소스:
- Deployment
- Service
- Ingress
- ConfigMap
- Secret
- HPA (Auto Scaling)
- PDB
요구사항:
- 리소스 제한
- 프로브 설정
- 환경 변수
- 롤링 업데이트
모니터링
로깅 설정
중앙 집중식 로깅을 설정해줘.
스택:
- 애플리케이션 로그 (Winston/Pino)
- 컨테이너 로그
- 수집 (Fluentd/Fluent Bit)
- 저장/검색 (Elasticsearch/Loki)
- 시각화 (Kibana/Grafana)
요구사항:
- 구조화된 로그 (JSON)
- 로그 레벨
- 상관관계 ID
- 보존 정책
메트릭 수집
애플리케이션 메트릭 수집을 설정해줘.
수집 대상:
- HTTP 요청 (latency, count, errors)
- 리소스 사용량 (CPU, Memory)
- 비즈니스 메트릭
스택:
- Prometheus
- Grafana
- AlertManager
요구사항:
- 커스텀 메트릭 정의
- 대시보드 설정
- 알림 규칙
배포 전략
Blue-Green 배포
Blue-Green 배포 설정을 만들어줘.
환경: AWS ECS
요구사항:
- 두 환경 유지
- 트래픽 전환
- 롤백 계획
- 헬스 체크
- DNS 또는 ALB 기반
스크립트/설정 파일 포함
Canary 배포
Canary 배포 전략을 구현해줘.
환경: Kubernetes
단계:
1. 5% 트래픽으로 시작
2. 메트릭 확인
3. 점진적 증가 (25%, 50%, 100%)
4. 문제 시 자동 롤백
요구사항:
- Istio 또는 Nginx Ingress
- 메트릭 기반 판단
- 자동화 스크립트
환경 관리
환경 변수
환경 변수 관리 전략을 제안해줘.
환경:
- Local
- Development
- Staging
- Production
요구사항:
- 민감 정보 분리
- 기본값 처리
- 타입 검증
- 문서화
도구:
- dotenv
- AWS Secrets Manager
- HashiCorp Vault
설정 관리
12-Factor App 기반 설정 관리를 구현해줘.
요구사항:
- 환경별 설정 분리
- 코드와 설정 분리
- 기본 설정 파일
- 오버라이드 방식
- 검증 로직
실전 프롬프트
완전한 CI/CD
완전한 CI/CD 파이프라인을 설정해줘.
프로젝트:
- Frontend: Next.js (Vercel)
- Backend: Node.js (AWS ECS)
- Database: PostgreSQL (RDS)
요구사항:
1. PR 워크플로우
- 코드 품질 체크
- 테스트
- Preview 배포
2. Main 워크플로우
- 스테이징 자동 배포
- E2E 테스트
- 프로덕션 수동 승인
3. 롤백 프로세스
GitHub Actions + Terraform 사용
컨테이너화 마이그레이션
기존 애플리케이션을 컨테이너화해줘.
현재:
- PM2로 관리되는 Node.js
- 단일 서버 배포
- 수동 배포
목표:
- Docker 컨테이너화
- Kubernetes 배포
- GitOps 기반 CI/CD
- 자동 스케일링
마이그레이션 단계와 필요한 파일들 제공
팁
| 팁 | 설명 |
|---|---|
| 기술 스택 명시 | 클라우드, 도구 이름 |
| 환경 정보 | dev/staging/prod |
| 규모 언급 | 트래픽, 팀 크기 |
| 제약 조건 | 예산, 기존 시스템 |
| 보안 요구 | 규정 준수 |
DevOps는 개발과 운영의 연결입니다.