AWS 인프라 재분석 · 옵저버빌리티 구축 · FinOps 비용 최적화

Project Detail

AWS 인프라 재분석 · 옵저버빌리티 구축 · FinOps 비용 최적화

운영 중이던 AWS 아키텍처를 처음부터 재분석해 다이어그램과 실제 리소스의 불일치를 드러내고, 옵저버빌리티(CloudWatch+알람)·보안·가용성·비용 문제를 단계적으로 개선했다. 모니터링 부재로 묻혀 있던 누적 에러 22.6만 건을 표면화하고, 유휴 NAT·중복 Redis·불필요한 외부(LLM) 호출로 새던 비용을 차단했다.

(기간 작성 예정)인프라 재분석 · DevOps · 옵저버빌리티 · FinOps · 부하테스트김남해

Headline Result

22.6만

표면화한 누적 에러 건

기간
(기간 작성 예정)
역할
인프라 재분석 · DevOps · 옵저버빌리티 · FinOps · 부하테스트
참여 멤버
김남해

결과 지표

  • 22.6만표면화한 누적 에러 건
  • 고정비 절감 추정 ~$80+/월 (NAT 1 + Redis 노드 1)
  • NAT 데이터 처리 비용 누수 차단
  • 공개 노출 EC2 1대 → 사설화

Problem → Solution → Outcome

Problem

문서상 다이어그램과 실제 운영 구조가 달랐고, 옵저버빌리티가 없어 장애·에러가 표면화되지 않았다. release용 EC2가 퍼블릭 서브넷에 공인 IP로 직접 노출돼 공격 표면이 컸고, AZ 1a의 NAT Gateway는 아무도 쓰지 않으면서 과금되고 있었다. main Redis는 트래픽 대비 과한 다중 노드였고, NAT를 통한 불필요한 외부 LLM 호출로 데이터 처리 비용이 새고 있었다.

Solution

  • 재분석 — 다이어그램과 실제 리소스를 1:1 대조해 운영 구조를 다시 도식화. main/release 환경 분리, 서브넷·NAT·RDS(Multi-AZ vs Single-AZ)·Redis 노드 구성·egress 경로를 실측
  • 옵저버빌리티 구축 — CloudWatch 대시보드 + 알람(EC2 memory/disk·RDS·Redis 지표)을 SNS 이메일로 연동. 그동안 드러나지 않던 누적 에러 22.6만 건을 표면화·추적 기반 확보
  • 백엔드 이슈 추적 — 모니터링으로 노출된 에러 로그를 분석해 백엔드 버그·비효율 호출 패턴을 식별
  • NAT 비용 누수 차단 — NAT를 경유하던 불필요한 외부 LLM 호출을 발견·제거해 NAT 데이터 처리 비용 절감
  • 응급처치 — 유휴 NAT(nat-a) 삭제, 중복 main Redis 레플리카 삭제·단일 노드화, release EC2 egress를 NAT 경유로 정리(공인 IP 노출 축소), ALB 2AZ·RDS Multi-AZ failover로 가용성 유지
  • 부하 테스트 — k6로 서버 부하·한계를 측정해 인스턴스 사이징/오토스케일링 근거 확보
  • FinOps — 리소스 태깅·Cost Explorer 기반으로 환경별(main/release) 비용을 가시화하고 지속 최적화 체계화

Outcome

  • 옵저버빌리티 부재로 묻혀 있던 누적 에러 22.6만 건 표면화 → 추적·해소 기반 마련
  • 유휴 NAT Gateway·중복 Redis 노드 제거로 월 고정비 절감 (추정 ~$80+/월, 연 ~$1,000+ · 실측 교체 예정)
  • NAT 경유 불필요 LLM 호출 제거로 데이터 처리 비용 누수 차단
  • release EC2 퍼블릭 노출(공인 IP) 제거로 공격 표면 축소
  • k6 부하테스트로 사이징 근거 확보 → 과/저 프로비저닝 방지
  • ALB 2AZ·RDS Multi-AZ 자동 failover로 단일 AZ 장애 대비 가용성 유지

기술 스택

DB / Infra

AWSRDS PostgreSQLElastiCache RedisGitHub ActionsDocker

Etc

VPCEC2 (Graviton t4g)ALBNAT GatewayAuto ScalingDynamoDBSESSSMCloudWatchSNSTerraformk6

아키텍처 다이어그램

Mermaid로 작성 · 아래에서 직접 편집해 미리볼 수 있어요

① 재분석 — 실제 운영 구조

다이어그램과 실제 리소스를 대조해 다시 그린 운영 구조. main/release 환경, AZ 1a·1c, NAT·RDS·Redis 구성과 egress 경로를 실측.

다이어그램 렌더링 중…

② 발견한 문제점

환경 분리 후 드러난 문제: release EC2의 공인 IP 직접 노출, 아무도 쓰지 않는 idle NAT-a, 트래픽 대비 과한 main Redis 2노드.

다이어그램 렌더링 중…

③ 응급처치 + 옵저버빌리티 + FinOps

idle NAT·중복 Redis 제거, release egress를 NAT-c로 통합, CloudWatch 대시보드/알람→SNS 구성. ALB 2AZ·RDS Multi-AZ failover는 유지.

다이어그램 렌더링 중…
✎ Mermaid 직접 편집해보기
미리보기
렌더러 불러오는 중…
← 홈으로 돌아가기모든 프로젝트 보기 →