-
AWS 비용 계산(2차 버전)클라우드 2025. 5. 30. 00:46
목표 아키텍처
AWS 목표 아키텍처 사용 비용 요약표
서비스사용 항목 / 조건월 예상 비용비고
S3 스토리지 100GB + 요청 110만건 + Select 110GB $3.53 Standard, PUT/GET/Select 포함 CloudFront 300GB 사용자 전송 / 오리진 30GB $1.80 캐시 미스율 10%, 아태 리전 VPC Peering 리전 내 30GB + 아웃바운드 300GB $38.40 Spring→AI 통신 포함 OpenVPN 2명 동시접속, 9~18시 EC2 $0.00 Free Tier, AMI 포함 2명 무료 CodeDeploy EC2 배포 (온프레미스 없음) $0.00 무료 ECR 500MB 미만 이미지 1개 $0.00 리전 내 EC2 Pull, 스프링 전용 Route53 1개 퍼블릭 호스팅 존 + 15만 DNS 요청 $0.50 쿼리 100만건 프리 티어 내 ALB 1개 ALB + 요청 트래픽 (LCU < 1) $18.18 LCU 비용 $1.75 + 시간당 $16.43 NAT Instance Prod(t3.small 24/7) + Dev(t2.micro 9h) $13.50 On-demand 기준 ASG t3a.small 2개 + 스팟(t3.small) 2개 (72% 할인) $42.00 온디맨드 $34 + 스팟 $10 예상 DB(Master) t3.medium + EBS 30GB $41.00 8GB RAM, 2vCPU, gp3 DB(Slave) t3.small + EBS 30GB $22.00 읽기 전용 Query 용 DB(Dev) t2.micro 9h/일 $3.94 1GB RAM Redis(Prod) t3a.small 24/7 $17.00 2GB 메모리 기준 Redis(Dev) t2.micro 9h/일 $3.94 1GB 메모리 Kafka(Prod) t3a.small 24/7 $17.00 메모리 절감 후 2GB 기준 Kafka(Dev) t2.micro 9h/일 $3.94 1GB 메모리 Prometheus + Grafana t3.small + 30GB gp3 $20.00 2vCPU, 2GB RAM, 시계열 수집 CloudWatch 3GB 로그 수집 + S3 전송 $3.82 프리티어 초과분 수집 총합: $250.55 /월
사용 비용 산정 과정
이건 1000명 사용자를 기준으로 스펙을 잡았던 첫번째 버전에서 가격이 예산에 맞지 않는 문제가 발생해 EC2의 스펙을 한단계씩 다운 그레이드 한 버전입니다.
이걸로 서비스를 배포 하였을 때, 모니터링을 통해 스펙이 부족한 부분을 파악하고, Scale-up 하는 것을 생각하였습니다.
1단계에서 달라진 주요 변경사항
주요 변경 사항은 다음과 같습니다.
- Transit Gateway 사용 ❌, VPC Peering 사용 ✅
- ALB Prod에서만 사용, Dev는 Nginx로 진행
- NAT Instance 스펙 다운그레이드 (t3.small → t3.micro)
- Spring Blue, Green 인스턴스 스펙 다운그레이드(t3a.medium → t3a.small)
- Master DB 다운그레이드(t3.large → t3.medium, EBS gp3 100GB → 30GB)
- Slave DB 다운그레이드(t3.medium → t3.small, EBS gp3 100GB → 30GB)
- Redis(Prod) 다운그레이드(t3.medium → t3.small)
- Kafka(Prod) 다운그레이드(t3.medium → t3.small)
- Prometheus + Grafana 다운그레이드(t3.medium → t3.small, EBS gp3 100GB → 30GB)
S3
스토리지 용량 : 100GB
S3 Standard에 대한 PUT, COPY, POST, LIST 요청 : 100,000
S3 Standard의 GET, SELECT 및 기타 모든 요청 : 1,000,000
S3 Select에 의해 반환된 데이터 : 10GB
S3 Select에 의해 스캔된 데이터 : 100GB
→ 3.53 USD Per Month
Tiered price for: 100 GB 100 GB x 0.025 USD = 2.50 USD 총 티어 비용 = 2.50 USD (S3 Standard 스토리지 비용) 100,000 S3 Standard 스토리지에 대한 PUT 요청 x 0.0000045 USD 요청당 = 0.45 USD (S3 Standard PUT 요청 비용) 1,000,000 한 달 동안의 GET 요청 x 0.00000035 USD 요청당 = 0.35 USD (S3 Standard GET 요청 비용) 10 GB x 0.0008 USD = 0.008 USD (S3 Select 반환 비용) 100 GB x 0.00225 USD = 0.225 USD (S3 Select 스캔 비용) 2.50 USD + 0.35 USD + 0.45 USD + 0.008 USD + 0.225 USD = 3.53 USD(총 S3 Standard 스토리지, 데이터 요청, S3 선택 비용) S3 Standard 비용 (월별): 3.53 USD
CloudFront
S3 저장 데이터 100GB라고 하고, 1인당 평균 다운로드 양 10MB, 1000명이 사용한다고 가정했을 때
전송 데이터 양: 10MB X 1000명 X 30일 → 300,000MB → 300GB
사용자에게 전송되는 데이터는 300GB
캐시 미스율 10%로 가정했을 때 오리진 전송 30GB
HTTPS 요청은 (1000명 X 10건/일 * 30일) = 300,000요청 → 무료
→ 1.8 USD Per Month (아시아태평양만)
인터넷으로 데이터 전송 비용: 0 USD 30 GB x 0.06 USD = 1.80 USD(아시아 태평양에서 오리진으로 데이터 전송) 오리진으로 데이터 전송 비용: 1.80 USD 요청 비용: 0 USD CloudFront 가격 아시아 태평양 (월별): 1.80 USD
❗️VPC Peering(수정)
하루 3번 배포한다고 가정했을 때, 트래픽 양
항목크기하루 3회 기준한 달 (30일 기준)
프론트 50MB 150MB 4.5GB 백엔드 100MB 300MB 9.0GB AI 서버 200MB 600MB 18.0GB 합계 - 1.05GB/일 31.5GB/월 외부로 나가는 트래픽 양 Spring → AI 퍼블릭 통신 한다고 가정해서 월 300GB 전송
인바운드: Internet: 300 GB x 0 USD 기준 GB = 0.00 USD 리전 내: (30 GB x 0.01 USD 기준 GB 아웃바운드) + (30 GB x 0.01 USD 기준 GB 인바운드) = 0.60 USD 아웃바운드: Amazon CloudFront: 50 GB x 0 USD 기준 GB = 0.00 USD Internet: 300 GB x 0.126 USD 기준 GB = 37.80 USD 데이터 전송 비용 (월별): 38.40 USD
→ 38.40 USD Per Month
OpenVPN
AWS 프리티어라면 EC2 월 750시간 무료.
OpenVPN은 개발자가 배포할 때만 접근하면 되므로 러프하게 잡아서 9 to 6 가동 → 하루 9시간
EC2요금 : 9*20 → 180시간
750시간 > 180시간 → 무료로 사용 가능
OpenVPN AMI 라이선스 비용
항목내용
무료 사용자 수 2명 동시 접속까지 제한 사항 2명 넘으면 추가 접속 차단됨 (자동), 또는 라이선스 요구 라이선스 키 없이도 작동 가능 (기본 내장된 2유저 무료 정책) 유료 전환 시 라이선스 구매 → UI 또는 CLI에서 적용 2명 동시 접속까지 무료 → 무료로 사용 가능
CodeDeploy
온프레미스 인스턴스로 배포를 진행할 경우에만 비용이 부과됨
우리 프로젝트는 온프레미스로 배포되는 서비스가 없기 때문에 무료
→ 무료로 사용 가능
Elastic Container Registry
비용 부과 표
단계요금 여부비고
Build → ECR Push ❌ 대부분 무료 네트워크 Outbound 없음 ECR 저장 ✅ 500MB 초과 시 $0.10/GB/월 ECR → EC2 Pull (같은 리전) ❌ 리전 내 트래픽 무료 ECR → EC2 Pull (다른 리전) ✅ $0.09/GB 이상 ECR → 외부 전송 (퍼블릭 다운로드) ✅ $0.15/GB 이상 500MB 이상 저장할 경우
다른 리전에 있는 EC2 pull 하는 일이 없기 때문에 비용 부과되지 않음
프론트엔드는 정적 파일을 S3에 배포하기 때문에 이미지 빌드가 필요하지 않음
현재 스프링부트 이미지는 366MB 이를 멀티 스테이지 빌드등 다양한 전략을 사용하면 500MB 아래로 유지 가능함.
AI는 GCP에서 배포할 예정이라 AWS ECR에는 이미지가 저장되지 않아 스프링만 저장해두면 됨
→ 500MB 이하일 경우는 무료
→ 10GB가 초과되더라도 1USD per month
Route53
사용자 수(1000명) 에 따른 DNS 요청 수
항목가정
사용자 수 1000명 사용자 1명당 평균 접속 횟수 하루 5회 하루 총 DNS 요청 수 1000 × 5 = 5,000건/일 월 총 DNS 요청 수 5,000 × 30일 = 150,000건/월 = 0.15백만 쿼리 항목프리티어초과 시 요금
퍼블릭 호스팅 존 ❌ 없음 → $0.50/월 DNS 쿼리 요청 ✅ 매월 1백만 건 무료 $0.40 / 백만 건 퍼블릭 호스팅 존 1개당 0.5 USD
→ 0.5 USD Per Month
❗️Application Load Balancer(수정)
켜두기만 하면 나오는 비용(1개 기준)
1 로드 밸런서 x 0.0225 시간당 USD x 730 시간(1달 기준) = 16.43 USD Application Load Balancer 시간당 고정 요금 (월별): 16.43 USD
→ 16.43 USD Per Month
사용자 수(1000명)에 따른 ALB 월간 요청량
항목예상 사용량LCU 기준
요청 수 2~3건/sec ≪ 25,000 처리 데이터 수 MB/시간 ≪ 1GB 연결 수 1/sec 이하 ≪ 6,000/sec 평균 연결 유지 3초 ≪ 3,000 concurrent LCU는 1개 이하
0.30 시간당 GB / 1 대상 EC2 인스턴스 및 IP 주소에 대한 LCU당 시간당 처리된 바이트(GB) = 0.30 대상 EC2 인스턴스 및 IP 주소에 대한 처리된 바이트 LCU 1 초당 새 연결 / 25 LCU당 초당 새 연결 = 0.04 새 연결 LCU 1 초당 새 연결 x 3 초 = 3 활성 연결 3 활성 연결 / 3000 LCU당 연결 = 0.001 활성 연결 LCU Max (0 USD, 0 USD) = 0.00 요청당 유료 규칙 Max (0.3 처리된 바이트 LCU , 0.04 새 연결 LCU , 0.001 활성 연결 LCU , 0 규칙 평가 LCU ) = 0.30 최대 LCU 1 로드 밸런서 x 0.30 LCU x 0.008 시간당 LCU 가격 x 730 월별 시간 = 1.75 USD Application Load Balancer LCU 사용 요금 (월별): 1.75 USD
→ 1.75 USD Per Month
→ 16.43 + 1.75 → 18.18 USD Per Month
❗️NAT Instance(수정)
Prod 환경 : t3.micro 인스턴스 24/7 사용
1 instances x 0.013 USD On Demand hourly cost x 730 hours in a month = 9.490000 USD 온디맨드 인스턴스(월별): 9.490000 USD
Dev 환경 : t2.mircro 하루 9시간 사용
1 instances x 0.0144 USD On Demand hourly cost x 273.75 hours in a month = 3.942000 USD 온디맨드 인스턴스(월별): 3.942000 USD
9.5 + 4 → 13.5 USD Per Month
❗️Auto Scaling Group(수정)
Blue, Green 메인 EC2 → t3a.small
트래픽이 몰려 scale-out 해야할 때 스팟인스턴스 t3.small로 올리기
t3.small 인스턴스 2개 (24/7)
2 instances x 0.0234 USD On Demand hourly cost x 730 hours in a month = 34.164000 USD 온디맨드 인스턴스(월별): 34.164000 USD
t3.small 인스턴스 2개(72% 할인으로 가정)
스팟 할인: 72/100 = 0.72 요금 계산 2 인스턴스 x 0.026 USD 온디맨드 시간당 비용 x 월 730시간 = 37.960000 USD 37.960000 USD – (37.960000 USD x 0.72) = 10.628800 USD 스팟 인스턴스(월별): 10.628800 USD
34 USD + 10USD → 42 USD Per Month
DB
PostgreSQL을 EC2에서 운영하면서 Master-Slave 구성(CQRS 포함)을 고려한다면, CPU와 메모리 용량은 다음 기준에 따라 결정하면 안정적입니다
추천 용량
항목추천 사양 (초기 규모 기준)
CPU (vCPU) 최소 2 vCPU, 추천 4 vCPU 이상 메모리 (RAM) 최소 8GB, 추천 16GB 스토리지 (EBS) gp3 100GB 이상 (위에서 확정) 목적최소 사양추천 사양
Master DB t3.large (8GB) ✅ t3.xlarge or m6i.xlarge Slave DB (Query) t3.medium ✅ r6i.large (RAM 중심) → 서비스 확장 전까지는 이 정도면 충분히 안정적이고, 필요 시 수평 확장도 가능합니다.
❗️Master DB(PostGreSQL)(수정)
t3.medium 온디맨드 가격
1 instances x 0.052 USD On Demand hourly cost x 730 hours in a month = 37.960000 USD 온디맨드 인스턴스(월별): 37.960000 USD
EBS gp3 30GB 사용 요금
730 총 EC2 시간 / 730 시간(1달 기준) = 1.00 월별 인스턴스 30 GB x 1.00 월별 인스턴스 x 0.0912 USD = 2.74 USD (EBS 스토리지 비용) EBS 스토리지 비용: 2.74 USD 총 Amazon Elastic Block Store(EBS) 비용 (월별): 2.74 USD
→ 38 + 3 → 41 USD Per Month
❗️Slave DB(PostGreSQL)(수정)
t3.small 온디맨드 가격
1 instances x 0.026 USD On Demand hourly cost x 730 hours in a month = 18.980000 USD 온디맨드 인스턴스(월별): 18.980000 USD
EBS gp3 30GB 사용 요금
730 총 EC2 시간 / 730 시간(1달 기준) = 1.00 월별 인스턴스 30 GB x 1.00 월별 인스턴스 x 0.0912 USD = 2.74 USD (EBS 스토리지 비용) EBS 스토리지 비용: 2.74 USD 총 Amazon Elastic Block Store(EBS) 비용 (월별): 2.74 USD
19 USD + 3USD → 22USD Per Month
PostGreSQL(Dev)
t2.micro(MEM 1GB), 하루 9시간 진행
1 instances x 0.0144 USD On Demand hourly cost x 273.75 hours in a month = 3.942000 USD 온디맨드 인스턴스(월별): 3.942000 USD
→ 3.94 USD Per Month
❗️Redis(Prod)(수정)
필요한 사용량 : Mem 4GB → t3a.medium
비용 절감 수정 : Mem 4GB → Mem 2GB
1 instances x 0.0234 USD On Demand hourly cost x 730 hours in a month = 17.082000 USD 온디맨드 인스턴스(월별): 17.082000 USD
→ 17 USD Per Month
Redis(Dev)
t2.micro(MEM 1GB), 하루 9시간 진행
1 instances x 0.0144 USD On Demand hourly cost x 273.75 hours in a month = 3.942000 USD 온디맨드 인스턴스(월별): 3.942000 USD
→ 3.94 USD Per Month
❗️Kafka(Prod)(수정)
필요한 사용량 : Mem 4GB → t3a.medium
비용 절감 : Mem 4GB → 2GB
1 instances x 0.0234 USD On Demand hourly cost x 730 hours in a month = 17.082000 USD 온디맨드 인스턴스(월별): 17.082000 USD
→ 17 USD Per Month
Kafka(Dev)
t2.micro(MEM 1GB), 하루 9시간 진행
1 instances x 0.0144 USD On Demand hourly cost x 273.75 hours in a month = 3.942000 USD 온디맨드 인스턴스(월별): 3.942000 USD
→ 3.94 USD Per Month
모니터링 툴
항목CloudWatchPrometheus + Grafana
주요 역할 AWS 리소스 로그/지표 수집 애플리케이션/시스템 메트릭 수집 수집 대상 AWS 서비스 로그, 인프라 지표 (EC2, ALB, RDS 등) 주로 앱 레벨 메트릭 (HTTP 요청, DB 상태 등) 수집 방식 PUSH 기반 (CloudWatch Agent 등) PULL 기반 (Prometheus가 주기적으로 수집) 보관/쿼리 로그 저장, 쿼리 가능 (Logs Insights) 시계열 메트릭 저장, 시계열 쿼리 시각화 CloudWatch Dashboard Grafana (대시보드 전용 도구) 알람/이벤트 CloudWatch Alarm + EventBridge Prometheus Alertmanager (알람 직접 구성) AWS와 통합 ✅ 매우 강력 (ALB, Lambda, ECS, API GW 등) ❌ 수동 설정 필요 (Cloud Exporter 등 별도 구성) SaaS 가능 여부 ✅ AWS 관리형 ✅ Grafana Cloud or 직접 호스팅 커스터마이징 제한적 (포맷 고정) 매우 유연 (라벨, 쿼리, 룰 자유롭게 정의) ❗️Prometheus + Grafana(수정)
항목권장 스펙비고
vCPU 2개 이상 (t3.medium) Prometheus는 다중 타임라인 병렬 처리 시 CPU 사용 메모리 4GB 이상 (8GB 권장) 시계열 데이터 캐싱 + Grafana 시각화 디스크 gp3 SSD, 50~100GB Prometheus TSDB가 디스크를 주기적으로 write 네트워크 일반 네트워크 OK 주로 내부 통신 (Node Exporter, Redis Exporter 등) 비용 절감 t3.small(Mem 2GB)
1 instances x 0.0234 USD On Demand hourly cost x 730 hours in a month = 17.082000 USD 온디맨드 인스턴스(월별): 17.082000 USD
EBS gp3 30GB
730 총 EC2 시간 / 730 시간(1달 기준) = 1.00 월별 인스턴스 30 GB x 1.00 월별 인스턴스 x 0.0912 USD = 2.74 USD (EBS 스토리지 비용) EBS 스토리지 비용: 2.74 USD 총 Amazon Elastic Block Store(EBS) 비용 (월별): 2.74 USD
17 USD + 3USD → 20 USD
CloudWatch
항목월 무료 제공량
Logs (수집) 5GB 데이터 수집 Logs (저장) 5GB 저장 Logs (아웃바운드) 0.5GB (로그 검색 및 스트리밍) 지표 (Custom Metrics) 10개 지표 (Basic EC2 Metrics) 항상 무료 지표 API 호출 1,000,000건 Dashboard 3개 사용자 1000명 기준 로그 수집시 예상 요금
- EC2 인스턴스 1~3대 (Spring Boot, DB, Redis 포함)
- /var/log/syslog, application.log, nginx.log 등 수집
항목수치 예시
하루 생성량 100MB (모든 서버 합산) 월간 생성량 100MB × 30일 = 3,000MB = ~3GB 프리티어 5GB 보다 작기 때문에 무료
항목요금
로그 수집 초과 $0.50 / GB 로그 저장 초과 $0.03 / GB·월 로그 검색 (Insights) $0.005 / GB (1GB 검색 시 $0.005) 경보(Alert) 표준 알람 $0.10/개·월 (프리티어 외) 10GB 수집한다고 치면 5GB 초과
수집한 로그는 하루 한번 Lambda를 통해 S3로 전송하는 방식으로 진행할 예정
CloudWatch Logs 수집 및 스토리지 비용 (월별): 3.82
→ 3.82 USD Per Month
'클라우드' 카테고리의 다른 글
Github 브랜치 별로 다른 리뷰어 할당 파이프라인 설정하는 법 (0) 2025.05.31 React CI/CD 파이프라인 분리 (0) 2025.05.30 AWS 비용 계산(초기) (1) 2025.05.28 Nginx 배포 시 Spring Swagger 안나오는 버그 해결 (0) 2025.05.27 S3 + CloudFront 연동시 이미지 나오지 않는 문제 해결 (0) 2025.05.26