1. 인프라 / 서버 사양
TL;DR
기존 시험 환경 사양서 v1.0 의 권장 가정값(Caddy / Ubuntu / t3.large)을 운영 실측치(nginx + Cloudflare Origin / Amazon Linux 2023 / t4g.xlarge ARM64)로 정정했습니다. 라이브러리 버전도 권장 하한 → pip freeze 실측치(torch 2.11, transformers 5.8 등)로 교체, deploy_id 도 실제 운영 SHA로 갱신.
1.1 호스트 (EC2)
- Instance ID
i-0407fb88ae762654a- Type
- t4g.xlarge (Graviton2 ARM64 · 4 vCPU · 16 GiB RAM · 5 Gbps)
- OS
- Amazon Linux 2023 (kernel 6.18.25 aarch64)
- EBS
- 50 GB gp3 (12 GB 사용 · 24 %)
- 호스트 RAM 가용
- 14 GiB / 15 GiB (swap 없음)
- AZ
- ap-northeast-2a · Public 3.38.72.133 · Private 172.31.4.101
- SSH Key
fingu-tips-key.pem(~/Downloads/ 보관)- 가동 시간
- 2026-05-15 03:15 UTC 이후 연속 4 일 4 시간 healthy
- DeprovisionAfter
- 2026-05-21
1.2 네트워크 / 보안
| 포트 | 출처 | 비고 |
|---|---|---|
| 80 | Cloudflare 15 CIDR | HTTP — CF proxy 경유 |
| 443 | Cloudflare 15 CIDR | HTTPS — CF Origin Certificate (nginx 종단) |
| 22 | 0.0.0.0/0 | SSH 전세계 오픈 정책 검토 권장 |
외부 도메인: https://fingu.grinda.ai (Cloudflare orange-cloud → 3.38.72.133:443). nginx 종단 TLS 1.2/1.3, HTTP/2 활성, access log masked (token query 유출 차단).
1.3 컨테이너 토폴로지 (compose project: fingu)
| 서비스 | 이미지 | 포트 | 리소스 | 헬스 |
|---|---|---|---|---|
fingu-tips-api | Python 3.12-slim · uvicorn 1 worker · --no-access-log (1.36 GB) | 8001 internal | mem 6 GB / res 256 MB | /api/health · Up 16h |
fingu-tips-web | nginx 1.27-alpine multi-stage build (57.3 MB) | 80, 443 | mem 128 MB | /healthz · Up 16h |
볼륨
api_results→/app/results(측정 결과 영속)hf_cache→/root/.cache/huggingface(5~7 GB HF 모델 영속, 재배포 cold-start 단축)
네트워크
fingu-net bridge. web → api (depends_on healthy). nginx upstream api:8001 keepalive 32.
1.4 실측 자원 사용량 (스냅샷)
| 컨테이너 | CPU | 메모리 | 한도 대비 |
|---|---|---|---|
fingu-tips-api | 1.10 % | 88.8 MiB | 1.4 % of 6 GiB |
fingu-tips-web | 0.17 % | 5.7 MiB | 4.5 % of 128 MiB |
1.5 시크릿 흐름 + 환경변수
deploy.sh → infisical export --env=beta --path=/fingu-tips --format=dotenv → /opt/fingu/.env → docker compose env_file → 컨테이너 환경변수.
관측된 키 (값 마스킹)
ADMIN_LOG_TOKEN=*** ANTHROPIC_API_KEY=*** OPENAI_API_KEY=*** ENABLE_REAL_PIPELINE=*** ENABLE_FINETUNED_PIPELINE=*** FINETUNED_KPI2_API_URL=*** FINETUNED_KPI3_API_URL=*** DEPLOY_ID=***
1.6 운영 헬스체크 응답 실측 (2026-05-19 04:51 UTC)
{
"status": "ok",
"kpi_count": 7,
"results_dir": "/app/results",
"results_dir_writable": false,
"enable_real_pipeline": "true",
"enable_api_pipeline": "false",
"enable_finetuned_pipeline": "true",
"finetuned_kpi2_url_set": true,
"finetuned_kpi3_url_set": true,
"deploy_id": "f531aa5a2e3715c81406e8b1c4f340e74f1644b0",
"agent_available": true,
"agent_model": "claude-sonnet-4-5"
}
1.7 v1.0 → v1.1 정정 요약 (PR #61)
| 항목 | v1.0 (가정) | v1.1 (실측) |
|---|---|---|
| 리버스 프록시 | Caddy 2 | nginx (HTTP/2 · masked log) |
| TLS 인증서 | Let's Encrypt | Cloudflare Origin Certificate |
| 인스턴스 | t3.large 권장 | t4g.xlarge (Graviton2 16 GiB) |
| OS | Ubuntu 22.04 LTS | Amazon Linux 2023 (kernel 6.18.25) |
| EBS | 20 GB+ | 50 GB gp3 (24 % 사용) |
| Docker | 24.x | 25.0.14 + Compose 25.0.14 |
| 라이브러리 버전 | 권장 하한 (torch 2.2+) | pip freeze 실측 (torch 2.11, transformers 5.8, sentence-transformers 5.4.1, fastapi 0.136.1, anthropic 0.101.0, openai 2.36.0) |
| deploy_id | 13fce43 예시 | f531aa5... 실 운영 |