projects/awsome-ai-gateway · ARCHITECTURE.md 기준
Claude Code, Codex, Cowork는 OIDC로 로그인한 뒤 Virtual Key(VK) 하나로 게이트웨이를 호출합니다. 게이트웨이는 사용자·팀 예산과 Rate Limit을 확인하고, routing_profiles 테이블에 따라 클라이언트별로 다른 계정·리전의 Bedrock으로 요청을 보냅니다. 비용은 응답 경로를 막지 않도록 Redis Stream을 거쳐 비동기로 Aurora에 쌓입니다.
VK 발급은 최초 로그인이나 VK 만료 때만 일어납니다. 그 뒤 호출에서 게이트웨이는 DB를 거치지 않고 Valkey에서 VK와 예산을 확인합니다. 비용은 응답이 끝날 때 스트림에 한 줄을 넣는 것(약 1–2ms)으로 끝나고, Aurora 적재는 cost-recorder가 배치로 처리합니다.
지금 이 EC2에 올라가 있는 docker-compose 환경은 같은 서비스 코드를 쓰고, 관리형 서비스만 컨테이너로 바꿔 둔 구성입니다.
| 구성 요소 | AWS 배포 | 이 EC2 (docker-compose) |
|---|---|---|
| 실행 환경 | EKS Fargate · Helm (6 Deployment + migration Job) | docker compose 컨테이너 |
| IdP | Amazon Cognito | Keycloak :8088 · realm dslg |
| DB | Aurora PostgreSQL | pgvector/pg16 :5432 |
| 캐시 · 스트림 | ElastiCache Valkey | Redis :6379 |
| Bedrock 자격증명 | 워크로드별 IRSA + STS AssumeRole | EC2 인스턴스 역할 · cross-account 실패 시 in-account 폴백 |
| 관측 | CloudWatch · CloudTrail | OTel Collector · Prometheus · Loki · Grafana :3001 |
| BI 에이전트 | AgentCore Runtime | 구성하지 않음 |
| 접속 | ALB Ingress | gateway :8000 · admin-api :8080 · admin-ui /absproxy/3000/ |
출처: 레포의 ARCHITECTURE.md와 README.md. 계정 ID는 문서의 placeholder 대신 역할 이름(메인 · Claude Code · Cowork 계정)으로 표기했습니다.