brunch

Cost Explorer에서 EC2 비용 따라잡기

by 멘토사피엔스

Cost Explorer에서 EC2 비용을 정확히 읽는 법,

생각보다 훨씬 간단합니다.


이 글은 “EC2 인스턴스 비용”만 딱 골라서

어떤 항목이, 얼마나, 왜 비용을 만들고 있는지

구체적으로 찾아내는 방법을 빠르게 정리합니다.

AWS 비용이 터무니없이 나온다는 느낌이 들었다면,

이제는 근거를 가지고 줄일 수 있는 방법을 갖게 될 것입니다.


먼저 Cost Explorer에서 서비스를 EC2로 필터한 다음 사용량 유형을 검색하면 여러 분류로 비용이 나눠진 것을 볼 수 있습니다.

각 비용이 어떻게 지출되는지 드릴다운해서 확인할 수 있다면 개별적인 비용절감 전략을 수립할 수 있습니다. 아래에 각 용어에 대한 설명과 함께 중요도를 표시했습니다.


스크린샷 2025-04-27 오후 8.17.56.png


EC2 및 데이터 전송 관련 사용량 유형


APN2-BoxUsage:c6i.2xlarge (★★★★★)

비용: 시간당 약 $0.3400 (서울 리전 기준)


비용은 서울 리전(APN2)에서 c6i.2xlarge 인스턴스를 온디맨드로 사용한 시간당 요금입니다.


EC2 인스턴스 사용은 대부분의 AWS 비용에서 큰 비중을 차지하므로, 인스턴스 유형과 사용 시간을 정확히 파악하는 것이 중요합니다. Savings Plan을 사용하게 되는 경우 해당 항목의 비용은 Savings Plan 항목으로 넘어가서 비용이 표시되지 않으니 주의해야 합니다.


EC2 사용에 대한 전체 비용을 계산하려면 아래와 같이 서비스 항목에서 Amazon Elastic Compute Cloud와 Savings Plans for AWS Compute usage 2개를 합쳐서 봐야 합니다.

스크린샷 2025-05-11 오후 5.16.46.png


APN2-SpotUsage:c5.xlarge (★★)

비용: 스팟 인스턴스 시간당 약 0.15~0.20 USD (변동, 서울 리전 기준)


서울 리전에서 c5.xlarge 인스턴스를 스팟 인스턴스로 사용한 시간당 요금입니다. 스팟 인스턴스는 온디맨드 대비 최대 90% 저렴하지만 중간에 인스턴스가 회수될 수 있어 운영 전략이 필요합니다.


보통은 개발환경 등 사용이 순간적으로 중지될 수 있어도 문제 없을 경우 사용하는게 좋습니다.


APN2-DataTransfer-Regional-Bytes (★★★★)

비용: AZ 간 데이터 전송량 GB당 약 0.01 USD


서울 리전 내 가용영역(AZ) 간 데이터 전송량입니다. EC2 인스턴스 간 트래픽이 다른 AZ를 오가면 별도 요금이 발생하며, 빈번할 경우 비용이 누적될 수 있습니다.


APN2-DataTransfer-Out-Bytes (★★★)

비용: 인터넷 아웃바운드 트래픽 GB당 약 0.126 USD


서울 리전에서 인터넷으로 나가는 데이터 전송량에 대한 과금입니다. AWS 비용 중 가장 빠르게 비용이 증가할 수 있는 요소 중 하나로, 데이터 아웃바운드를 줄이는 구조적 개선이 매우 중요합니다.


VPC를 private으로 구성한 경우, Elastic Load Balancer에서 public으로 데이터를 내보내는 역할을 담당하게 됩니다. 따라서 이 경우 DataTransfer-Out-Bytes는 EC2가 아닌 ELB에서 나갈 수 있음을 주의합니다.


Q. APN2-DataTransfer-Regional-Bytes vs APN2-DataTransfer-Out-Bytes, 2 항목의 차이점

APN2-DataTransfer-Regional-Bytes는 EC2 → 같은 리전 내 다른 AZ(Availability Zone)로 데이터 전송한 양입니다. 이는 같은 리전이지만 AZ가 다를 때 발생, GB당 약 0.01 USD 입니다. APN2-DataTransfer-Out-Bytes는 EC2 → 인터넷 방향으로 나가는 데이터 전송량입니다. 인터넷으로 나갈 때만 발생하고, GB당 약 0.126 USD 입니다.


저희는 VPC로 private 네트워크로 통신하기 때문에 EC2의 APN2-DataTransfer-Out-Bytes는 거의 비용지출이 되지 않습니다. 다만 ELB를 통해서 DataTransfer-Out-Bytes 비용이 전수 발생하고 있습니다. 이는 한마디로 서버가 외부와 철저하게 분리되었음을 의미하며 외부(인터넷)와 네트워크가 단절된 구조인 경우입니다.


APN2-DataTransfer-Regional-Bytes 비용이 많이 나가는 이유는 고가용성(HP) 목적으로 가용존이 분리된 EC2 인스턴스가 AZ-a, AZ-c에 분산되어 있고, 이 인스턴스들 사이에서 API 통신이나 데이터 동기화가 매우 빈번하기 때문입니다. 즉 내부 통신이 극도로 많은 상황입니다.


주의할 점이 있는데 EC2와 RDS 간 통신입니다. EC2간 통신과 달리 EC2와 RDS 인스턴스의 통신은 동일한 리전 내에서 서로 다른 AZ에 위치해 있을 경우에도, 데이터 전송은 무료입니다.


APN2-DataTransfer-Regional-Bytes 비용이 많이 발생할 경우 가용존을 통일해서 통신하도록 방법을 강구할 필요가 있습니다. 더불어 서비스 간 통신량 자체를 캐싱 등을 통해서 줄일 수 있습니다.


Q. 스팟 인스턴스가 온디맨드 대비 80-90% 저렴하면 써야 되지 않을까요

AWS 스팟 인스턴스(Spot Instance)는 AWS가 가진 남는 EC2 인프라를 할인된 가격에 경매식으로 제공하는 모델입니다. 온디맨드 가격 대비 최대 70%~90% 저렴한 경우도 있습니다. 하지만 AWS가 필요할 때는 예고 후(2분 전) 인스턴스를 강제로 회수(terminate)할 수 있다는 조건이 붙습니다. 즉, 안정적인 운영이 어렵습니다.


비용 절감은 압도적이지만 프로덕션 환경에서 24시간 운영할 시에 적합하진 않습니다. 심지어 스팟 인스턴스를 요청해도 Capacity Insufficient 오류로 요청 실패할 수 있습니다. 실시간으로 중요한 트랜잭션이 일어나는 서버에서는 대응 전략이 있다고 하더라도 사용하지 않는 것이 좋습니다.


다만, Auto Scaling Group을 사용해 스팟과 온디맨드를 혼합 구성하고 스팟 중단 알림을 받으면 새로운 인스턴스를 자동으로 프로비저닝 하는 등 스팟 인터럽트 발생 시 대체 전략을 미리 준비하여 사용할 수는 있습니다. 개발 환경에 적용해보고 대응 전략을 고도화해가면서 무리 없이 쓸 수 있는지 검토가 필요합니다.


EBS 관련 사용량 유형


APN2-EBS:VolumeUsage.gp3 (★★★★)

비용: EBS gp3 볼륨 GB당 월 약 0.08 USD


gp3 타입의 EBS 볼륨 사용량입니다. EC2의 루트 디스크나 추가 저장소로 사용되며, 스토리지 크기가 커지면 장기적으로 상당한 비용이 발생할 수 있습니다.


APN2-EBS:VolumeP-Throughput.gp3 (★)

비용: 추가 Throughput GB/s 초과시 요금 발생


gp3 볼륨에서 기본 제공 Throughput(125MiB/s)을 초과하여 설정한 처리량에 대한 과금입니다. 필요 이상으로 Throughput을 설정할 경우 불필요한 비용이 발생할 수 있습니다.


APN2-EBS:VolumeIOUsage (★)

비용: io1, io2 볼륨 기준 Provisioned IOPS 수에 따른 요금


고성능 IOPS를 요구하는 io1, io2 볼륨에서 I/O 요청량에 따른 과금입니다. 고성능을 위해 IOPS를 많이 설정하면 그만큼 비용도 급격히 증가합니다. gp3의 경우 기본 제공 IOPS(3000) 이내면 별도 I/O 과금 없습니다. 즉, EBS의 기본적인 사용만으로는 VolumeIOUsage 비용이 거의 발생하지 않습니다. 범용적으로 쓸 경우 거의 발생하지 않는 비용입니다.


gp3는 기본 제공 3000 IOPS 처리량이 무료입니다. IOPS를 4000, 5000으로 설정할 경우 비용이 발생하게 됩니다.


APN2-EBS:SnapshotUsage (★★)

비용: 스냅샷 저장 GB당 월 약 0.05 USD


EBS 볼륨의 스냅샷 저장 비용입니다. 증분 백업 방식으로 효율적이지만 스냅샷이 오래 쌓이면 상당한 비용을 초래할 수 있으므로 주기적인 관리가 필요합니다.


Q. APN2-EBS:VolumeP-Throughput.gp3과 APN2-EBS:VolumeIOUsage의 비용 발생 이유

두 항목은 GP3의 경우 설정하지 않으면 비용이 발생하지 않습니다. 즉 해당 비용이 조금이라도 발생하고 있다면 Throughput이나 IOPS를 허용기준 이상으로 설정했기 때문입니다. 그러나 예전에 사용된 Standard 모델은 I/O 비용이 설정과 관계없이 백만 요청당 $0.05가 발생합니다.


Q. gp3 말고 EBS 볼륨 타입은 어떤 종류가 있나요

AWS EBS 볼륨은 크게 5가지로 분류할 수 있습니다.

gp3는 현재 범용 워크로드에서는 사실상 디폴트 볼륨 타입입니다. 비용 절감과 성능을 동시에 만족할 수 있기 때문입니다.

gp3: 범용 SSD (General Purpose SSD, 최신형)

gp2: 범용 SSD (General Purpose SSD, 구형)

io1/io2: 고성능 IOPS SSD (Provisioned IOPS SSD)

st1: 처리량 최적화 HDD (Throughput Optimized HDD)

sc1: 콜드 HDD (Cold HDD, 아카이브용)


Q. Standard 볼륨 타입은 뭔가요?

AWS EC2에서 EBS 볼륨을 꽤 오래 운영하고 있었다면 Standard 타입을 쓰고 있을 수도 있습니다. standard는 이전 세대 마그네틱 HDD 볼륨으로, 성능과 가격 측면에서 성격이 매우 다릅니다. Deprecated된 타입으로 생각하면 되고 특별한 예외(예: 테스트, 극저비용, 비중요 로그 저장 등)를 제외하고는 gp3가 사실상 기본 선택지입니다.


스크린샷 2025-05-11 오후 5.37.24.png


gp3 vs gp2

gp3가 무조건 상위 호환입니다.

가격이 더 저렴한데 성능도 뛰어납니다.

IOPS와 처리량을 따로 설정할 수 있어서 튜닝도 가능합니다.

과거 gp2를 썼다면 무조건 gp3로 마이그레이션하는 게 이득입니다.


gp3 vs io1/io2

gp3는 고정 IOPS가 필요 없는 범용 워크로드에 적합합니다.

io1/io2는 초당 수천 번 이상 디스크 접근이 필요한 미션 크리티컬 워크로드에만 필요합니다.

DB나 SAP HANA 같은 아주 무거운 서비스만 io1/io2를 고려합니다.


gp3 vs st1/sc1

gp3는 SSD고, st1/sc1은 HDD 기반입니다.

st1, sc1은 싸지만 지연(latency)과 IOPS 성능이 매우 낮습니다.

데이터 접근 속도가 중요하지 않지만 저장이 많은 백업용 데이터에만 st1/sc1을 사용합니다.


NAT Gateway 및 기타 사용량 유형


APN2-NatGateway-Hours (★★★★)

비용: NAT Gateway 시간당 약 0.045 USD


NAT Gateway 인스턴스가 생성되어 활성화된 시간당 요금입니다. 운영 비용이라고 생각하면 됩니다. 존재하는 것만으로 비용이 발생하기 때문에, 필요 최소한의 NAT Gateway만 운영하는 것이 비용 절감에 중요합니다.


APN2-NatGateway-Bytes (★★★★)

비용: NAT Gateway 아웃바운드 트래픽 GB당 약 0.045 USD


NAT Gateway를 통해 외부로 나가는 트래픽에 대한 과금입니다. 외부 서비스 호출이 빈번하거나 대용량 전송이 발생할 경우, 트래픽 비용이 크게 증가할 수 있습니다.


APN2-CPUCredits:t3 (★)

비용: 초과 CPU 크레딧 사용량 vCPU당 약 0.05 USD/시간


t3 시리즈 인스턴스에서 CPU 사용량이 기본 크레딧을 초과할 경우 발생하는 추가 요금입니다. Unlimited 모드 사용 시 자동으로 크레딧을 구매하게 되어 예상 외 요금이 발생할 수 있습니다.


Q. APN2-NatGateway-Bytes 비용이 증가할 경우

S3에 대량 파일 업로드/다운로드이 일어났을 가능성이 있습니다. 퍼블릭 S3 엔드포인트를 경유하면 NAT를 거치게 됩니다. 하루 수십 GB만 넘어가도 수백 달러가 청구될 수 있습니다.

EC2 서버에서 외부 API를 빈번히 호출할 경우일 수 있습니다. 환율 API, 결제 API 등 외부 서비스를 호출할 때마다 NAT를 통해 트래픽이 발생합니다.

외부 소스를 다운로드하는 경우입니다. 소프트웨어 패키지, 보안 패치, 컨테이너 이미지 등을 외부에서 지속적으로 다운로드하면 NAT 트래픽 비용이 누적됩니다.


NAT Gateway 최적화 방법


1) VPC 엔드포인트 활용:

S3, DynamoDB 같은 AWS 서비스는 VPC 엔드포인트를 생성하면 NAT를 거치지 않고 내부망으로 통신할 수 있습니다. 트래픽 비용을 획기적으로 줄일 수 있습니다. 특히 S3는 기본적으로 퍼블릭 서비스입니다. EC2 인스턴스가 S3에 접근할 때, 아무 설정을 안 하면 퍼블릭 S3 주소로 나가게 됩니다. 이는 그대로 NAT Gateway 비용으로 이어집니다.


2) NAT Gateway 최소화:

모든 AZ에 NAT를 두지 않고, 하나의 AZ에만 NAT Gateway를 생성하고 다른 AZ에서는 경유하도록 설정할 수 있습니다. 고가용성(HA)을 포기하는 대신 비용을 줄이는 방법입니다.


결론


AWS에서 EC2를 운영할 때, 서버 시간당 요금만 보고 있으면 절대 안 됩니다.


Cost Explorer를 통해

서버 사용 시간(APN2-BoxUsage)

데이터 전송 비용(APN2-DataTransfer-Regional-Bytes, APN2-DataTransfer-Out-Bytes)

스토리지 비용(APN2-EBS:VolumeUsage.gp3, SnapshotUsage)

네트워크 통신 비용(NAT Gateway Hours/Bytes)

CPU 추가 사용 비용(APN2-CPUCredits:t3)

을 각각 구분해서 읽어야만 전체 비용 구조를 정확히 이해할 수 있습니다.


특히 주의해야 할 포인트는

AZ간 데이터 전송량이 누적될 수 있다는 점

NAT Gateway가 설치만 되어도 시간당 과금된다는 점

CPU 크레딧 초과로 예상치 못한 비용이 나올 수 있다는 점입니다.


이 글을 읽고 각 용어를 이해할 수 있다면

AWS EC2 인프라에서 어디서 돈이 새는지 명확하게 파악하고,

구체적인 절감 전략을 세울 수 있게 될 것입니다.








FinOps 커뮤니티에 함께 하실래요?


저는 최근 48%, $36000의 AWS 비용절감을 달성했습니다.

클라우드 비용을 효율화하고 싶은 분들, 비슷한 고민을 나누고 싶다면 제가 운영 중인 AWS-FINOPS-KR Slack 커뮤니티에 참여하세요. 실제 절감 사례, 질문, 전략 공유를 나누실 수 있습니다.


⇒ [FinOps Slack 참여하기]

keyword
매거진의 이전글AWS EC2 인스턴스 이름 이해하기