Skip to content

환경별 리소스

truloop은 DevProd 두 개의 환경을 운영합니다. 두 환경은 동일한 VPC CIDR(10.0.0.0/16)과 서브넷 레이아웃을 사용하지만, 리소스 규모와 가용성 구성에서 차이가 있습니다.

환경 비교

네트워킹

항목
VPCvpc-0ddd834af5d7924a5
ALBtruloop-dev-alb
Service Discoverytruloop-dev.local

ECS Cluster

  • 클러스터명: truloop-dev
  • 서비스:
    • truloop-core-dev (메인 API)
    • chatter-dev (AI 비서)
    • truloop-ai-server-fastapi-dev (AI 서버)
    • truloop-ai-server-celery-worker-dev (비동기 워커)
    • truloop-media-service-dev (미디어 처리)
    • prometheus (메트릭 수집)
    • grafana (모니터링 대시보드)

데이터베이스

항목구성
RDS Auroratruloop-dev (단일 인스턴스)
ElastiCache Redistruloop-dev-redis-single (단일 노드)

스토리지

버킷이름
Maintruloop-dev-bucket
Configstruloop-configs-dev
Imagestruloop-images-dev
Assetstruloop-assets-dev

DNS

  • API: dev-api.truloop.app → ALB
  • Assets CDN: assets-dev.truloop.app → CloudFront
  • Teaser: teaser-dev.truloop.app → Vercel

Pulumi ESC

  • 환경: truloop/infra-dev
  • Secrets Manager: dev/truloop-core 시크릿

핵심 차이점 요약

항목DevProd
RDS 인스턴스1개 (단일)2개 (Writer + Reader)
Redis 구성단일 노드복제 노드
모니터링 서비스Prometheus + Grafana없음 (별도 운영)
S3 버킷 수4개2개
API 도메인dev-api.truloop.appapi.truloop.app
Assets CDNassets-dev.truloop.appassets.truloop.app

ECS 서비스 설정 Convention

ECS 서비스의 설정은 "Convention over Configuration" 원칙을 따릅니다.

Convention Rules

규칙기본 동작Override
Service Discovery서비스명에서 -dev/-prod 제거하여 자동 추론serviceDiscovery: "custom-name" 또는 false
Load BalancertargetGroup 필드 존재 시 자동 감지-
Capacity ProvidercapacityProviderStrategy (AWS 권장)launchType: FARGATE
Desired CountPulumi가 관리하지 않음 (AWS가 현재 값 유지)desiredCount: 3
Config 예시

최소 설정 (권장):

yaml
truloop-core-dev:
  containerPort: 8080
  targetGroup: core
  # loadBalancer: 자동 감지 (targetGroup 존재)
  # serviceDiscovery: 자동 추론 ("truloop-core")
  # capacityProvider: 기본값 사용

모니터링 서비스 (Override):

yaml
prometheus:
  containerPort: 9090
  launchType: FARGATE        # capacityProvider 대신 launchType 사용
  serviceDiscovery: false    # Service Discovery 비활성화

프로덕션 (명시적 제어):

yaml
truloop-core-prod:
  containerPort: 8080
  targetGroup: core
  desiredCount: 3            # 명시적 인스턴스 수 제어

Security Group 매핑

용도Security Group ID
ALBsg-0668e16f2ff7b0ea2
ECSsg-02cee9929dc1af15a
RDSsg-02a7ccda5264d90aa
Redissg-0668e16f2ff7b0ea2

주의

ALB Security Group만 truloop-infra에서 관리합니다. ECS, RDS, Redis Security Group은 truloop-core의 서비스별 인프라에서 관리하며, ingress/egress 규칙은 AWS 콘솔에서 별도로 관리합니다.

변경 이력

날짜변경 내용
2026-03-10소스 코드 검증: ECS 서비스 목록에 truloop-media-service 추가 (Dev/Prod)