이 페이지 쓰는 법

금액 없이 판단하는 법

금액을 몰라도 판단할 수 있는 이유는, AWS 요금이 서비스마다 정해진 몇 개의 축으로만 매겨지기 때문입니다. 어떤 설계 변경이 어느 축을 건드리는지 알면 방향은 결정됩니다. "이 구성은 무엇으로 과금되는가"가 비용 문항의 유일한 질문입니다.

비용 문항에서 답을 고르는 세 단계
단계 확인할 것 이 단계에서 소거되는 선택지
1. 제약을 위반하는가 가용성 · 지연 · 규정 요구를 깨는 안인지 운영 데이터베이스를 스팟 인스턴스에 올리는 안, 규정을 어기고 리전을 옮기는 안
2. 어느 과금 축을 줄이는가 가동 시간 · 저장 용량 · 요청 수 · 처리 데이터 · 데이터 전송 · 프로비저닝 용량 중 무엇인지 이미 무료인 축을 줄이는 안 (예: "업로드 비용을 줄인다")
3. 그 축을 실제로 줄이는가 경로를 바꿔 장치를 아예 지나지 않게 하는지, 단가만 낮추는지 쓰지 않아도 될 자원을 약정으로 싸게 사는 안

과금 축 여섯 가지

대표적인 과금 축과 그 축을 줄이는 설계 행동
과금 축 대표 예 이 축을 줄이는 행동
가동 시간 EC2 인스턴스 시간, NAT 게이트웨이 시간, 인터페이스 엔드포인트 시간, RDS 인스턴스 시간, 로드 밸런서 시간 쓰지 않을 때 끄기, 항상 켜 둘 필요가 없는 구성 요소를 없애기, 서버리스로 대체하기
저장 용량 S3 저장량, EBS 볼륨 크기, 스냅샷, 백업 보관 수명 주기 규칙으로 계층 이동과 만료, 쓰지 않는 볼륨과 스냅샷 삭제
요청 · 호출 수 S3 요청, Lambda 호출, API Gateway 요청, KMS 호출 캐싱, 배치 처리, 호출을 묶는 기능
처리 데이터 양 NAT 게이트웨이 처리량, 인터페이스 엔드포인트 처리량, 로드 밸런서 처리 단위 트래픽 경로 자체를 바꿔서 그 장치를 지나지 않게 하기
데이터 전송 인터넷 송신, 가용 영역 간, 리전 간 캐싱, 압축, 배치 조정, 경로 변경
프로비저닝된 용량 프로비저닝된 IOPS, DynamoDB 프로비저닝 용량, 예약된 동시성 실사용에 맞춰 라이트사이징하거나 온디맨드 모드로 전환

서비스별로 어느 축이 붙는가

대표 서비스의 과금 축과 비용 문항에서의 함의
서비스 주된 과금 축 비용 문항에서의 함의
Amazon EC2 가동 시간 · 데이터 전송 중지하면 인스턴스 사용 요금은 멈추지만 EBS 볼륨 요금은 계속됩니다
Amazon EBS 저장 용량 · 프로비저닝된 IOPS 연결되지 않은 볼륨과 오래된 스냅샷이 대표적인 낭비입니다
Amazon S3 저장 용량 · 요청 수 · 검색 · 데이터 전송 차가운 클래스는 저장이 싸지만 검색 요금과 최소 저장 기간이 붙습니다
NAT 게이트웨이 가동 시간 · 처리 데이터 목적지와 무관하게 통과한 모든 데이터에 처리 요금이 붙습니다. 지나지 않게 하는 것이 유일한 절감입니다
VPC 게이트웨이 엔드포인트 없음 추가 요금 없이 S3·DynamoDB 트래픽을 NAT 게이트웨이 밖으로 뺍니다
VPC 인터페이스 엔드포인트 가동 시간 · 처리 데이터 게이트웨이 엔드포인트와 달리 상시 요금이 붙습니다. 개수를 늘릴 때 고려합니다
AWS Lambda 호출 수 · 실행 시간 · 할당 메모리 간헐적 부하에 유리하고, 상시 고부하에서는 오히려 비쌀 수 있습니다
Amazon DynamoDB 요청 수(온디맨드) 또는 프로비저닝 용량 · 저장 용량 부하가 불규칙하면 온디맨드가, 안정적이면 프로비저닝이 유리한 구간이 생깁니다
Amazon RDS 인스턴스 가동 시간 · 저장 용량 · 백업 · 데이터 전송 Multi-AZ 배포는 가용성을 사면서 컴퓨팅 비용도 함께 늘립니다
Elastic Load Balancing 가동 시간 · 처리 단위 트래픽이 없어도 시간 요금이 붙습니다. 쓰지 않는 로드 밸런서는 삭제 대상입니다
Amazon CloudFront 송신 데이터 · 요청 수 오리진 송신을 줄여 전체 전송 비용을 낮추는 것이 도입 근거입니다
AWS KMS 키 개수 · API 호출 수 대량 객체를 SSE-KMS로 다룰 때 호출 수가 늘어납니다. S3 버킷 키가 호출을 줄입니다
탄력적 IP 가동 시간(미연결 상태 포함) 인스턴스에 붙이지 않고 남겨 둔 주소가 대표적인 낭비입니다

데이터 전송의 방향성

데이터 전송은 양이 아니라 방향으로 요금이 정해집니다. 이 비대칭 하나가 비용 도메인 문항의 상당수를 설명합니다.

방향별 과금 범주 비교 — 인바운드는 대체로 무료이고, 같은 가용 영역의 사설 IP 통신이 가장 저렴하며, 가용 영역 간 · 리전 간 · 인터넷 아웃으로 갈수록 과금 대상이 늘어납니다. 축의 값은 범주이며 금액이 아닙니다
데이터 전송 방향별 과금 여부와 설계 함의 — 금액이 아니라 방향만 다룹니다
방향 과금 설계에 주는 함의
인터넷에서 AWS로 (수신) 대체로 무료 올리는 것은 대체로 비용 요인이 아닙니다. "업로드 비용을 줄인다"는 선택지는 대체로 무의미합니다
AWS에서 인터넷으로 (송신) 과금 가장 큰 전송 비용 항목입니다. 송신량 자체를 줄이거나 CloudFront로 캐시해 오리진 송신을 줄입니다
같은 가용 영역, 사설 IP 가장 저렴한 경로 퍼블릭 IP나 인터넷 경유로 우회하지 않도록 사설 주소로 통신하게 합니다
같은 리전, 가용 영역 간 과금 다중 가용 영역은 가용성을 사면서 전송 비용을 함께 부릅니다. 대량 트래픽이 불필요하게 가용 영역을 넘지 않게 배치합니다
리전 간 과금 교차 리전 복제, 리전 간 백업, 다중 리전 재해 복구는 언제나 전송 비용을 동반합니다
NAT 게이트웨이 경유 시간 요금 + 처리 데이터 요금 목적지가 어디든 통과한 모든 데이터에 처리 요금이 붙습니다. 지나지 않게 만드는 것이 유일한 절감입니다

경로를 바꾸는 대표 처방 세 가지

과금 지점을 우회하는 설계 변경
증상 경로를 어떻게 바꾸는가 줄어드는 축
프라이빗 서브넷의 인스턴스가 S3를 많이 읽고 쓴다 게이트웨이 엔드포인트를 만들어 NAT 게이트웨이를 지나지 않게 합니다 NAT 게이트웨이 처리 데이터
정적 자산 송신 트래픽이 크다 CloudFront를 앞에 두어 엣지에서 캐시로 응답하게 합니다 오리진 인터넷 송신, 오리진 요청 수
애플리케이션 계층 사이 트래픽이 가용 영역을 넘나든다 같은 가용 영역 안에서 처리되도록 배치와 라우팅을 정리합니다 가용 영역 간 데이터 전송

절감 레버 — 순서가 있습니다

레버는 위에서부터 적용합니다. 쓰지 않아도 될 자원을 약정으로 싸게 사는 것은 절감이 아닙니다. 순서를 지키지 않은 선택지는 그 자체로 소거 대상이 됩니다.

절감 레버의 적용 순서
순서 레버 구체적인 행동
1 없애기 — 항상 켜져 있는데 거의 안 쓰는 것 유휴 NAT 게이트웨이, 연결되지 않은 EBS 볼륨과 탄력적 IP, 트래픽 없는 로드 밸런서, 오래된 스냅샷
2 끄기 — 쓸 때만 켜기 개발·테스트 환경의 야간·주말 중지, 일정 기반 Auto Scaling
3 경로 바꾸기 — 과금 장치를 지나지 않게 VPC 엔드포인트, CloudFront 캐싱, 가용 영역을 넘지 않는 배치
4 계층 옮기기 — 접근 빈도에 맞는 클래스로 S3 수명 주기 규칙, EBS 볼륨 타입 조정, 오래된 로그의 보존 정책
5 라이트사이징 — 실사용에 맞추기 AWS Compute Optimizer의 권고 적용, 과도한 프로비저닝된 IOPS 축소
6 모델 바꾸기 — 사용량에 비례하게 서버리스 전환, DynamoDB 온디맨드 모드, Aurora Serverless v2
7 약정하기 — 남은 기저 부하의 단가 낮추기 Savings Plans, 예약 인스턴스, 중단 가능한 부분은 스팟 인스턴스

약정 레버 — 무엇을 약정하는가

EC2 구매 옵션과 워크로드 특성의 대응
옵션 약정 중단 어떤 워크로드인가
온디맨드 없음 없음 예측할 수 없는 단기 워크로드, 새 애플리케이션의 초기 측정 기간
Savings Plans 1년 또는 3년 시간당 사용 금액 없음 상시 기저 부하. 인스턴스 종류를 바꿀 여지를 남기고 싶은 경우
예약 인스턴스 1년 또는 3년 특정 인스턴스 구성 없음 구성이 확정된 상시 부하. 용량 예약이 함께 필요한 경우
스팟 인스턴스 없음 AWS가 회수할 수 있습니다 중단되어도 되는 워크로드 — 배치 처리, 렌더링, 상태 비저장 웹 계층, 테스트
전용 호스트 · 전용 인스턴스 선택 가능 없음 물리 서버 단위 라이선스나 단독 점유 하드웨어 요구가 있는 경우
Savings Plans와 예약 인스턴스의 약정 대상과 유연성
항목 Savings Plans 예약 인스턴스
약정 대상 시간당 사용 금액 특정 인스턴스 구성(패밀리 · 리전 · 운영체제 등)
기간 1년 또는 3년 1년 또는 3년
유형 Compute Savings Plans(가장 유연) · EC2 Instance Savings Plans(패밀리·리전 한정) 표준(standard) · 전환형(convertible)
적용 범위 Compute 유형은 인스턴스 패밀리 · 크기 · 리전 · 운영체제 변경은 물론 AWS Fargate와 AWS Lambda 사용량에도 적용됩니다 표준은 변경 폭이 좁고, 전환형은 다른 구성으로 교환할 수 있습니다
용량 예약 제공하지 않음 영역 예약 인스턴스는 해당 가용 영역의 용량을 확보합니다
고르는 신호 "인스턴스 종류를 바꿀 수도 있다", "컨테이너와 함수까지 함께" "특정 가용 영역에 용량을 확보해야 한다"

스토리지 비용 레버

S3 스토리지 클래스별 상대 저장 비용 등급 — 차가운 클래스일수록 저장 비용은 내려가고 검색 비용과 제약이 올라간다는 교환 관계가 이 그림의 결론입니다. 값은 순위이며 실제 금액은 리전과 시점에 따라 다릅니다
스토리지에서 비용이 새는 지점과 처방
새는 지점 처방 주의할 것
접근하지 않는 객체가 S3 Standard에 남아 있다 수명 주기 규칙으로 차가운 클래스로 전환합니다 최소 저장 기간(30 · 90 · 180일)과 128 KB 미만 객체 제외 규칙을 확인합니다
접근 패턴을 알 수 없다 S3 Intelligent-Tiering을 씁니다 모니터링과 자동 계층화 대상에서 작은 객체는 제외됩니다
완료되지 않은 멀티파트 업로드가 쌓인다 수명 주기 규칙으로 정리합니다 목록에 보이지 않으면서 저장 요금이 계속 나가는 대표적인 누수입니다
버전 관리 버킷에 비현재 버전이 무한히 쌓인다 비현재 버전 만료 규칙을 겁니다 삭제 마커만 남은 객체도 정리 대상입니다
연결되지 않은 EBS 볼륨과 오래된 스냅샷 삭제하거나 Amazon Data Lifecycle Manager로 보존 정책을 겁니다 인스턴스를 중지해도 볼륨 요금은 계속됩니다
필요 이상으로 프로비저닝된 IOPS gp3로 옮겨 크기와 성능을 분리해 지정합니다 기준 성능만으로 충분한지 지표로 확인합니다
단일 가용 영역으로 낮출 수 있는 데이터를 세 개 이상에 두고 있다 다시 만들 수 있는 데이터는 S3 One Zone-IA로 내립니다 가용 영역이 손실되면 데이터도 손실됩니다. 원본이 따로 있어야 합니다

서버리스는 언제 싸고 언제 비싼가

"서버리스가 항상 싸다"는 서술은 틀립니다. 과금 축이 가동 시간에서 사용량으로 바뀔 뿐입니다. 사용량이 낮고 불규칙하면 유리하고, 높고 일정하면 불리해지는 구간이 생깁니다.

부하 형태에 따른 실행 모델의 상대적 유불리
부하 형태 유리한 쪽 이유
간헐적이고 예측 불가 서버리스 (AWS Lambda, AWS Fargate, DynamoDB 온디맨드) 쓰지 않는 시간에 요금이 발생하지 않습니다
낮 시간대만 높고 밤에는 거의 없음 서버리스 또는 일정 기반 Auto Scaling 유휴 시간을 없애는 것이 가장 큰 절감입니다
하루 종일 높고 일정 약정한 인스턴스 (Savings Plans · 예약 인스턴스) 사용량 비례 요금이 상시 부하에서는 약정 단가보다 불리해질 수 있습니다
중단되어도 되는 대량 배치 스팟 인스턴스 · AWS Batch 중단을 허용하는 대가로 단가를 낮춥니다

비용 가시성 — 도구의 역할이 다릅니다

비용 관리 도구의 역할 구분
도구 대답하는 질문 이 도구를 지목하는 표현
AWS Cost Explorer 어디에 얼마를 썼고 앞으로 얼마를 쓸 것인가 "비용 추세를 분석", "서비스별로 나눠 본다", "예측"
AWS Budgets 정해 둔 임계값을 넘었거나 넘을 것 같은가 "임계치를 넘으면 알림", "예산 초과를 통보"
AWS Cost and Usage Report 가장 상세한 원자료가 필요하다 "자체 분석 도구로 가져간다", "가장 세밀한 명세"
AWS Compute Optimizer 이 리소스의 크기가 적절한가 "실제 사용 지표를 근거로 라이트사이징"
AWS Trusted Advisor 지금 당장 고칠 수 있는 것이 무엇인가 "유휴 리소스 점검", "비용·성능·보안·내결함성·한도 전반 점검"
비용 할당 태그 어느 팀·프로젝트가 얼마를 썼는가 "부서별로 비용을 나눠 청구", "쇼백"

비용 문항에서 반복되는 오답 패턴

비용 문항의 오답 선택지와 소거 근거
오답 선택지 소거 근거
업로드(수신) 트래픽 비용을 줄인다 수신은 대체로 무료입니다. 줄일 것이 없습니다
인스턴스를 중지했으니 요금이 0이다 인스턴스 사용 요금은 멈추지만 EBS 볼륨 요금은 계속됩니다
운영 데이터베이스를 스팟 인스턴스로 옮긴다 중단 가능성 때문에 제약 위반입니다
단기 실험 워크로드에 3년 약정을 건다 약정 기간이 워크로드 수명보다 깁니다
자주 지우는 데이터를 Glacier Deep Archive에 넣는다 최소 저장 기간 때문에 오히려 손해입니다
중요 데이터를 S3 One Zone-IA에 넣어 비용을 줄인다 가용 영역이 손실되면 데이터도 손실됩니다. 원본이 따로 없으면 제약 위반입니다
NAT 게이트웨이 대신 인스턴스를 늘려 처리량을 높인다 축을 잘못 짚었습니다. NAT 게이트웨이는 통과 데이터로 과금되므로 경로를 바꿔야 합니다
비용을 줄이려고 다중 가용 영역을 단일 가용 영역으로 바꾼다 가용성 요구가 명시되어 있으면 제약 위반입니다

이어서 볼 곳

공식 문서 출처