항목내용
기간2026.01 ~ 2026.04
유형팀 프로젝트 (KTCloud TechUp 연합)
인원16명
역할DevOps / Infrastructure Engineer
서비스playball.one
GitHub330-playball-infra
발표자료발표 장표 (Google Drive)
트러블슈팅전체 목록

프로젝트 소개#

야구 티켓 예매 플랫폼 PlayBall의 인프라 전반을 설계하고 운영했습니다. 빠른 개발환경 구축, 비용 효율, 운영 추적성, 보안, 트래픽 집중 — 5가지 특성을 고려하여 인프라를 구성했습니다.


환경 구성#

환경실행 기반외부 진입데이터 계층역할
Devkubeadm (2-node 온프렘)Cloudflare + Istio GatewayPostgreSQL Pod, Redis Pod기능 개발, 초기 통합 검증
StagingAWS EKS (Multi-AZ, Spot)CloudFront + ALBRDS, ElastiCacheQA, 부하 테스트, 보안 검증
ProdAWS EKS (Multi-AZ, On-Demand)CloudFront + ALBRDS, ElastiCache실서비스 운영

사용 기술#

영역기술
클라우드AWS EKS 1.35, RDS PostgreSQL 16, ElastiCache Redis 7, CloudFront, ALB, Route53, ACM
컨테이너/메쉬Kubernetes (kubeadm / EKS), Istio 1.29.1, Cilium (Dev CNI)
IaCTerraform (stacks + environments 분리)
CI/CDTeamCity (빌드) → ECR (이미지) → ArgoCD (GitOps 배포)
스케일링KEDA 2.19.0 (Cron Scaler + HPA), Karpenter 1.11.1
시크릿/권한External Secrets Operator, IRSA, AWS IAM Identity Center SSO
관측성Prometheus, Loki, Tempo, Thanos, Grafana, OpenTelemetry Collector
정책/보안Kyverno, Policy Reporter, CloudTrail
알림EventBridge + Lambda → Discord

레포 구성 (3-레포 분리)#

인프라 준비 → 클러스터 부트스트랩 → 선언형 배포를 독립적으로 관리합니다.

레포담당주요 내용
301 Terraform프로비저닝AWS 리소스 (VPC, EKS, RDS, Redis, CDN, IAM) 선언적 관리
302 Bootstrap클러스터 초기 설치ESO, Karpenter, ArgoCD, Root App, DB 초기화 1회성 주입
303 HelmGitOps 배포Helm 차트 + ArgoCD Application + argocd-sync/* 브랜치 기반 지속 배포

부하 검증은 별도 레포(304-k6-operators)에서 k6-operator 기반 분산 부하 테스트로 수행했습니다.


CI/CD 파이프라인#

소스 코드 병합부터 클러스터 배포까지 자동화된 흐름입니다.

소스 코드 Push/Merge
  → TeamCity: 빌드 & 테스트 → ECR 이미지 Push
    → Helm values 이미지 태그 갱신 → argocd-sync/* 브랜치 Push
      → ArgoCD: 변경 감지 → 클러스터 자동 동기화 (배포)
환경배포 브랜치비고
Devargocd-sync/dev
Stagingargocd-sync/staging → ca-stagingSSO(IAM Identity Center) 도입 후 분리
Prodargocd-sync/prod → ca-prodSSO 도입 후 분리

모니터링 스택#

메트릭, 로그, 트레이스를 Grafana 기준으로 통합 확인합니다. Loki/Tempo/Thanos의 데이터는 S3 Object Storage에 적재합니다 (PVC 방식이 아닌 S3 오브젝트 스토리지 방식).

도구역할
Prometheus + Thanos메트릭 수집 + 장기 보관 (S3)
Loki로그 수집 (S3 적재)
Tempo분산 트레이싱 (S3 적재)
Grafana통합 대시보드
OpenTelemetry Collector앱 트레이스/메트릭 수집
CloudTrailAWS API 감사 추적
Policy ReporterKyverno 정책 위반 확인
DiscordEventBridge + Lambda 알림 전파

티켓팅 특성 × 인프라 대응#

특성인프라 대응
트래픽 집중KEDA Cron Scaler 선제 확장 + CPU/Memory HPA + Karpenter 노드 확장 + CloudFront 캐싱
가용성Multi-AZ EKS/RDS/Redis + ArgoCD GitOps 재배포 + RDS PITR + PDB
보안7축 보안 체계 + IAM Identity Center SSO + CloudTrail 감사 + 침투테스트
비용 효율Staging Spot + Graviton(ARM) 인스턴스 + Loki/Tempo S3 lifecycle + Organizations 통합 빌링
운영 추적성3 시그널 통합 관측 (Metrics/Logs/Traces) + CloudTrail + Policy Reporter

7축 보안 체계#

매크로/봇 공격, L7 공격에 대응하기 위해 클라이언트부터 앱까지 트래픽 흐름 순서대로 7개 레이어로 보안을 구성했습니다.

Client → ① 프론트 → ② CDN/WAF → ③ ALB SG → ④ Istio WAF/RL → ⑤ ext_authz → ⑥ AI → ⑦ App
Layer계층구성
① 프론트엔드 보안X-Bot-Token + CSPCloudflare Turnstile 토큰 검증, CSP Report-Only 도입
② CDN + AWS WAFCloudFront + WAF Rate-based RuleDDoS 방어, Rate-based Rule, Bot Control, IP Reputation
③ ALB SGHTTPS only + Security GroupCloudFront PL + 특정 팀원 IP만 허용, 직접 접근 차단
④ Istio L7 방어EnvoyFilter WAF (Lua) + Rate Limiting헤더/경로/바디 기반 10종 탐지 + CDN X-Origin-Verify 검증 + Rate Limit (Global+Redis/Local)
⑤ ext_authzAuthz Adapter (Go)실시간 봇 판정 게이트웨이, Critical API 필터링
⑥ AI DefenseAI 행동 분석 엔진 (Python)세션 행동 분석 + fingerprint + VQA 챌린지, 자동 차단
⑦ 앱 보안Spring GatewayJWT 검증 + Redis blacklist

이 중 ②~⑥ 인프라 보안 구간을 설계/구축했습니다:

  • ② CDN + WAF: CloudFront Distribution 생성, WAF WebACL 설정 (Terraform)
  • ③ ALB SG: CloudFront Prefix List 기반 접근 제한 (Terraform)
  • ④ Istio WAF/RL: EnvoyFilter Lua 스크립트 작성, 경로별 Rate Limit 설계 (Helm)
  • ⑤ ext_authz: Go gRPC 서버 개발, Istio EnvoyFilter 연동
  • ⑥ AI Defense: AI 팀에 Istio ext_authz 방식 제안, 배포 인프라(Helm/IRSA) 구성

주요 성과#

  • Dev(온프렘 kubeadm) / Staging(AWS EKS) / Prod(AWS EKS) 3환경 인프라 설계 및 운영
  • TeamCity + ArgoCD 기반 GitOps CI/CD 파이프라인 구축
  • OpenTelemetry + Prometheus + Loki + Tempo + Thanos + Grafana 통합 관측성 구축
  • Istio EnvoyFilter 기반 7-Layer 보안 체계 구축 (Lua WAF, Rate Limiting, ext_authz, mTLS STRICT)
  • Kyverno + Policy Reporter 정책 관리 체계 구축
  • 침투테스트 인프라 취약점 조치