Playball Logo

Command Palette

Search for a command to run...

목차 열기

인프라 아키텍처

Playball 인프라는 프로비저닝, 클러스터 부트스트랩, GitOps 배포, 부하 검증을 저장소 단위로 분리했습니다. 한 저장소에 모든 작업을 섞지 않고, 변경 책임과 복구 기준이 분명하도록 역할을 나눴습니다.


전체 구성

다이어그램 렌더링 중...

저장소 역할 분리

저장소역할운영 의미
301 Terraformenvironments/common, dev, staging, prod 폴더 기준으로 AWS 리소스를 프로비저닝기반 인프라를 코드로 관리하고 재생성 가능하도록 유지
302 BootstrapESO, Karpenter, ArgoCD, Root App, DB 초기화 등 클러스터 초기 구성새 클러스터를 운영 가능한 상태로 빠르게 부트스트랩
303 Helm / ArgoCD환경별 values, 인프라 차트, 애플리케이션 배포 정의선언형 배포와 환경별 운영 설정의 기준점
304 k6 / 305 k6-operator단일/분산 부하 테스트와 운영 검증티켓 오픈 시나리오 기준의 병목 검증과 확장 전략 검증

역할을 분리해 두면 장애 시에도 "어느 레이어를 어떤 기준으로 복구해야 하는지"가 분명해집니다. 예를 들어 AWS 리소스 이상은 Terraform 기준으로, 클러스터 초기화 문제는 Bootstrap 기준으로, 배포 상태 이상은 GitOps 기준으로 추적합니다.


환경별 차이

항목DevStagingProd
클러스터kubeadm (MiniPC 2대)AWS EKSAWS EKS Multi-AZ
용도개발, 기능 테스트QA, 부하, 운영 검증실제 운영
DBPostgreSQL PodRDS PostgreSQLRDS PostgreSQL Multi-AZ
캐시Redis PodElastiCache RedisElastiCache Redis
TLScert-manager + Let's EncryptACMACM
외부 진입NodePort + DDNSALB + External DNSALB + External DNS
노드 확장수동KarpenterKarpenter
시크릿 연동개발용 분리 관리ESO + IRSAESO + IRSA

Staging은 단순 테스트 환경이 아니라, 운영과 같은 AWS 구성에서 배포와 복구 기준을 검증하는 환경입니다. Prod는 같은 구조를 고가용성 기준으로 운영합니다.


운영 계층 구성

1. 네트워크 진입 계층

  • CloudFront로 외부 트래픽을 받고 정적 캐싱과 기본 진입점을 통합합니다.
  • ALB가 Kubernetes Ingress 진입점 역할을 수행합니다.
  • Istio IngressGateway가 내부 서비스 라우팅의 기준점입니다.

2. 애플리케이션 실행 계층

  • 백엔드 서비스는 Kubernetes Pod로 운영합니다.
  • 서비스 설정, replica, 인프라 의존성은 Helm values로 선언형 관리합니다.
  • 장애 시 Pod는 백업 복원이 아니라 재스케줄링과 재배포로 복구합니다.

3. 데이터 계층

  • 운영 데이터는 RDS PostgreSQL을 기준으로 관리합니다.
  • 세션성/고빈도 접근 데이터는 ElastiCache Redis로 분리합니다.
  • 복구 기준은 RDS Automated Backup + PITRpg_dump -> S3 보조 백업입니다.

4. 관측 계층

  • Prometheus가 메트릭을 수집합니다.
  • Loki가 운영 로그를 수집합니다.
  • Tempo가 분산 추적 데이터를 수집합니다.
  • Grafana가 운영 대시보드의 단일 진입점 역할을 합니다.

운영 접근과 감사

항목운영 방식
운영 접근AWS IAM Identity Center SSO와 IAM Role 전환 기준으로 접근 권한을 관리합니다.
시크릿 주입External Secrets Operator와 IRSA를 사용해 클러스터 내부에 시크릿을 안전하게 주입합니다.
감사 이벤트CloudTrail 이벤트를 EventBridge와 Lambda로 전달해 운영 변경 이력을 추적합니다.
접속 기록관리자/운영자 접근 기록은 별도 감사 로그 경로로 장기 보관합니다.
운영 알림AWS 리소스 경로와 EKS 내부 경로를 분리하되, 최종 전파 채널은 Discord로 통합합니다.

운영 책임 범위

영역실제 운영 항목
배포 기반ArgoCD Root App, Helm values, 환경별 배포 브랜치 (303)
확장 기반HPA, KEDA, Karpenter
외부 연동ALB, Route53, External DNS, ACM
시크릿/권한 연동External Secrets Operator, IRSA 기반 Secret 접근
정책 검증Kyverno 기반 리소스 검증 정책
관측성Prometheus, Loki, Tempo, Grafana, Alertmanager
감사/추적CloudTrail, EventBridge, Lambda 기반 감사 이벤트 전파
복구 기준RDS PITR, 수동 스냅샷, pg_dump -> S3, GitOps 선언형 복구