프로젝트 소개
AWS Cost Calculator는 인스턴스 유형이나 노드 수를 미리 알지 못해도 "이 아키텍처의 월 비용은 얼마인가?"라는 질문에 답해주는 웹 도구입니다. 전체 아키텍처를 먼저 요구하는 기존의 가격 계산기와 달리, 트래픽 수준, MVP 또는 프로덕션과 같은 단계, 서비스 형태 등 대략적인 서비스 설명을 입력받아 권장 AWS 아키텍처와 USD 및 KRW 기준 월 예상 비용을 반환합니다.
두 가지 입력 모드를 지원합니다. 서비스 기반 흐름은 설명을 통해 아키텍처를 제안하며, 수동 빌더는 사용자가 ECS, RDS, Redis, ALB, S3, Lambda, DynamoDB, CloudFront와 같은 리소스를 직접 드래그하여 해당 스택의 가격을 산출할 수 있게 합니다.
이 프로젝트의 핵심 설계 선택은 확정적 비용 엔진(deterministic cost engine)입니다. 모든 달러 수치는 실제 AWS Price List Bulk API 데이터를 기반으로 리소스 유형별 메서드를 가진 `CostEngine` 컴포넌트에서 산출됩니다. 리전별 가격은 데이터베이스 테이블에서 읽고 클래스패스 JSON 스냅샷을 폴백으로 사용하는 `PricingService`를 통해 해결됩니다. AI 제공업체는 이미 계산된 가격을 설명하도록 요청받을 뿐, 직접 가격을 계산하지 않습니다.
평문 설명, 비용 최적화 제안, 아키텍처 추천과 같은 AI 기반 기능은 일관된 패턴을 따릅니다. 설정된 제공업체(Claude API, Gemini API 또는 개발용 로컬 `codex` CLI)를 먼저 시도하고, 실패하거나 설정이 잘못된 경우 규칙 기반 구현으로 폴백합니다. 이를 통해 사용자는 오류 대신 품질이 낮은 답변을 받게 됩니다. 최적화 제안은 크레딧 기반으로 제한되며, Graviton 도입, RDS/Redis 다운사이징, NAT Gateway 또는 CloudFront 조정과 같은 규칙 기반 팁이 포함됩니다.
계산 결과는 저장 시점의 가격 스냅샷으로 저장되므로, 저장된 계산서는 현재 요금으로 재계산되지 않고 견적 당시의 상태 그대로 다시 볼 수 있습니다. 결과는 PDF 카드로 내보낼 수 있습니다.
기술 스택은 Next.js 16 / React 19 / TypeScript / Tailwind CSS 4 프론트엔드와 Spring Boot / Java 21 백엔드 및 PostgreSQL 16을 결합하였습니다. 인증은 Google 및 Kakao OAuth2와 로컬 이메일/비밀번호 로그인을 지원하며, 상태 없는 JWT를 사용합니다. 로컬 설정은 데이터베이스를 위한 `docker compose up -d`, 8080 포트의 API를 위한 `./mvnw spring-boot:run`, 3000 포트의 프론트엔드를 위한 `npm run dev`로 구성됩니다. 쉘 스크립트를 통해 AWS 가격 스냅샷을 갱신하며 `curl`과 `jq`가 필요합니다. 백엔드 테스트는 Maven을 통해 실행되며, 프론트엔드는 별도의 테스트 프레임워크 없이 린트(lint)와 빌드로 UI 변경 사항을 확인합니다.
README에는 몇 가지 제한 사항이 명시되어 있습니다. 저장된 계산서는 링크 공유가 불가능하며(PDF 내보내기만 가능), 계정 생성 전 만들어진 프로젝트 행은 소유자가 없어 히스토리에 나타나지 않습니다. 로컬 이메일 가입은 SMTP 또는 SES 연동이 없어 `emailVerified`는 OAuth 제공업체에 의해서만 설정됩니다. 또한 AI 최적화 항목에는 서버 측에서 모두 재합산되지 않은 모델 추정 절감액이 포함될 수 있습니다. 로드맵에는 OG 미리보기가 포함된 공유 가능한 계산 URL, 예산 기반 아키텍처 역추천, 그리고 교차 계정 IAM 역할을 통해 실제 AWS 계정을 읽기 전용으로 연결하여 실제 지출에 최적화 규칙을 적용하는 2단계 계획이 포함되어 있습니다. MIT 라이선스로 제공됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.