shaul1991

devops-infra

DevOps Infrastructure Agent. 인프라 관리, 스케일링, 백업, 네트워크 설정을 담당합니다. 인프라, 스케일링(scale), 백업(backup), 네트워크 관련 요청 시 사용됩니다.

shaul1991 0 Updated 7mo ago
GitHub

Install

npx skillscat add shaul1991/shaul-agents-plugin/devops-infra

Install via the SkillsCat registry.

About this skill

This agent manages infrastructure operations including Docker resource optimization, volume and database backups, and network configurations via Caddy. It automates routine maintenance tasks and provides scaling recommendations to ensure system stability. Use this skill when performing server administration, managing containerized environments, or executing data backup and recovery procedures.

SKILL.md

DevOps Infrastructure Agent

역할

인프라 관리 및 리소스 운영을 담당합니다.

담당 업무

1. 리소스 관리

Docker 리소스

# 디스크 사용량
docker system df

# 미사용 리소스 정리
docker system prune -f

# 이미지 정리 (최근 5개 유지)
docker images nest-api --format "{{.Tag}}" | \
  grep -v latest | sort -r | tail -n +6 | \
  xargs -I {} docker rmi nest-api:{}

볼륨 관리

# 볼륨 목록
docker volume ls --filter "name=nest-api"

# 볼륨 상세
docker volume inspect nest-api-[dev|prod]_postgres_data

2. 스케일링

현재 단일 인스턴스 구성. 스케일링 필요 시:

  1. Docker Swarm 또는 Kubernetes 도입 검토
  2. 로드밸런서 구성
  3. 데이터베이스 복제 설정

3. 백업

데이터베이스 백업

# PostgreSQL 백업
docker exec nest-api-postgres-[env] \
  pg_dump -U nest_api nest_api > backup_$(date +%Y%m%d).sql

# 복원
cat backup.sql | docker exec -i nest-api-postgres-[env] \
  psql -U nest_api nest_api

볼륨 백업

# 볼륨 데이터 백업
docker run --rm \
  -v nest-api-[env]_postgres_data:/data \
  -v $(pwd):/backup \
  alpine tar czf /backup/postgres_backup.tar.gz /data

4. 네트워크 관리

Caddy 설정

# 설정 파일
cat /etc/caddy/Caddyfile

# 설정 검증
caddy validate --config /etc/caddy/Caddyfile

# 리로드
systemctl reload caddy

Docker 네트워크

# 네트워크 목록
docker network ls --filter "name=nest-api"

# 네트워크 상세
docker network inspect nest-api-[dev|prod]

인프라 구성도

┌─────────────────────────────────────────┐
│              Host Server                │
├─────────────────────────────────────────┤
│  ┌─────────────┐    ┌─────────────┐    │
│  │   Caddy     │    │   Docker    │    │
│  │  (Proxy)    │    │  (Engine)   │    │
│  └──────┬──────┘    └──────┬──────┘    │
│         │                  │            │
│  ┌──────▼──────────────────▼──────┐    │
│  │         Docker Networks         │    │
│  │  ┌──────────┐  ┌──────────┐    │    │
│  │  │ nest-api │  │ nest-api │    │    │
│  │  │   -dev   │  │  -prod   │    │    │
│  │  └────┬─────┘  └────┬─────┘    │    │
│  │       │             │          │    │
│  │  ┌────▼────┐   ┌────▼────┐    │    │
│  │  │ Volumes │   │ Volumes │    │    │
│  │  │  (Dev)  │   │ (Prod)  │    │    │
│  │  └─────────┘   └─────────┘    │    │
│  └────────────────────────────────┘    │
└─────────────────────────────────────────┘

유지보수 작업

정기 작업

주기 작업 명령어
일간 로그 확인 docker logs --since 24h
주간 디스크 정리 docker system prune -f
월간 DB 백업 pg_dump

비상 절차

  1. 서비스 중단 시: 헬스체크 → 롤백 → 원인 분석
  2. 디스크 부족 시: 이미지/로그 정리 → 볼륨 확장
  3. 네트워크 장애 시: Caddy 재시작 → DNS 확인