AWS WAF는 웹 애플리케이션을 보호해주는 훌륭한 도구입니다. 하지만 막연히 “WAF는 필요한 거니까 써야지”라고 생각하며 설정을 유지하다 보면, 한 달이 끝났을 때 예상보다 훨씬 높은 청구서를 받게 될 수 있습니다.
특히 WAF는 매우 세분화된 과금 구조를 가지고 있어, 단순히 켜기만 해도 매월 요금이 발생하고, 요청 수나 Rule, 고급 기능 사용 여부에 따라 예상치 못한 비용 폭증이 일어날 수 있습니다.
이번 글에서는 WAF를 Cost Explorer에서 비용 분석하는 방법을 알아보도록 하겠습니다.
AWS WAF(Web Application Firewall)의 비용을 정확히 파악하려면 AWS Cost Explorer를 활용하여 항목별로 필터링하고 분석하는 과정이 필요합니다. WAF는 WebACL, Rule 수, 요청 수(Request Count), 관리형 룰 그룹(Managed Rule Group), 리전별 적용 대상 등에 따라 요금이 발생하므로, 이를 분리해서 확인해야 비용 절감 전략을 세울 수 있습니다.
아래는 WAF 비용을 효율적으로 분석하기 위한 단계별 설명입니다.
비용을 분석하려면 먼저 AWS Console 상단의 검색창에 "Cost Explorer"를 입력하여 해당 서비스를 선택하고, 이후 "Cost Explorer 열기"를 클릭하여 비용 분석 도구에 진입합니다.
비용 데이터를 효과적으로 분류하고 분석하려면 Group By 항목을 전략적으로 설정하는 것이 중요합니다. WAF 관련 비용을 파악할 때는 다음 기준들을 활용하는 것이 특히 효과적입니다.
UsageType: 이 설정을 통해 WebACL, Rule, 그리고 요청 수(Request Count)와 같이 WAF의 주요 과금 요소별로 비용 항목을 명확하게 구분할 수 있습니다. 예를 들어, 어떤 요소가 전체 WAF 비용에서 가장 큰 비중을 차지하는지 한눈에 파악할 수 있어, 최적화의 우선순위를 정하는 데 도움이 됩니다.
Resource ID: Resource ID를 기준으로 그룹핑하면 각 WebACL별로 발생하는 개별 비용을 상세히 확인할 수 있습니다. 이를 통해 "어떤 WebACL이 가장 많은 비용을 발생시키고 있는가?", "어떤 특정 리소스(ALB, CloudFront 등)에 연결된 WAF 설정에서 비용이 집중되는가?"와 같은 질문에 대한 답을 얻을 수 있습니다.
Linked Account (멀티 계정 환경일 경우): 만약 AWS Organizations를 통해 여러 계정을 관리하는 멀티 계정 환경이라면, Linked Account로 그룹핑하여 각 계정별 WAF 사용 현황을 분석할 수 있습니다. 이를 통해 특정 계정에서 비정상적으로 높은 WAF 비용이 발생하는지 식별하고, 전체 조직 차원에서의 비용 집중 계정을 파악하여 효과적인 비용 거버넌스를 수립할 수 있습니다.
집중적인 WAF 비용 분석을 위해서 다음 필터링 설정을 적용할 수 있습니다. 각 비용 항목을 선택한 필터만 포함해 보여주게 됩니다.
Service: Service 필터에서 AWS WAF 또는 AWS WAFV2를 명확히 선택하여, 다른 서비스의 비용과 혼동되지 않고 오직 WAF 관련 비용만 분석 대상으로 포함합니다.
UsageType: UsageType 필터에서는 WAF의 주요 비용 항목들을 세부적으로 선택하여 분석할 수 있습니다. WAF의 요금은 WebACL 기본 요금, Rule 개수별 요금, 그리고 요청 수(Request Count)별 요금으로 구성됩니다. 이들을 각각 선택하여 어떤 비용 항목이 현재 가장 큰 비중을 차지하는지, 그리고 어떤 추이를 보이는지 상세하게 분석할 수 있습니다. (각 UsageType에 대한 자세한 설명은 아래 섹션에서 확인할 수 있습니다.)
WAF 비용의 시간적 변화를 파악하고 심층 분석하기 위해서는 적절한 트렌드 분석 기간을 설정하는 것이 중요합니다. Cost Explorer 상단에 위치한 기간 선택 메뉴를 활용하여 '이번 달', '지난 6개월' 등 원하는 특정 분석 기간을 유연하게 지정할 수 있습니다.
비용 데이터의 일별 추이를 분석하는 것은 특정 이벤트 발생 시의 비용 변화를 파악하는 데 특히 유용합니다. 예를 들어, 대규모 마케팅 트래픽이 유입되거나 웹 공격이 탐지되었을 때 WAF 비용이 급증하는 패턴을 즉시 식별하고 그 원인을 추적할 수 있습니다. 또한 장기적인 관점에서 WAF 비용 추세를 파악하려면 월별 분석이 적합합니다. 이를 통해 WebACL 운영 비용의 전반적인 증감 패턴을 확인하고, 특정 리소스에 과도한 WAF 정책이 적용되어 불필요한 비용이 지속적으로 발생하고 있는지 등을 주기적으로 점검할 수 있습니다.
AWS Cost Explorer에서 AWS WAF 관련 비용을 분석할 때, Usage Type별로 분류된 각 항목이 어떤 의미를 가지는지 이해하는 것은 비용 최적화 전략 수립에 매우 중요합니다. 다음은 주요 Usage Type 항목들에 대한 상세한 설명입니다.
이 항목은 AWS WAF가 처리하는 웹 요청의 개수에 따라 부과되는 핵심 요금입니다. 여러분의 웹 애플리케이션으로 들어오는 모든 HTTP/HTTPS 요청이 WAF를 통과할 때마다 이 요금이 발생합니다. WAF가 여러분의 웹 트래픽을 검사하고 처리한 총 요청 수에 비례하여 발생한 요금을 나타냅니다. 웹사이트 방문자 수나 API 호출량이 많을수록 이 항목의 비용이 높아지게 됩니다.
여기서 "Tier1"은 AWS의 요금 구간을 의미합니다. 즉, 요청량이 특정 기준치(예: 월 1억 건)까지는 'Tier1'의 단가가 적용되고, 그 이상으로 트래픽이 많아지면 'Tier2', 'Tier3'와 같이 더 저렴한 단가가 적용되는 계층별 할인 구조입니다.
이 항목은 WAF Web ACL(Web Access Control List)에 추가한 개별 보안 규칙(Rule)의 사용량에 대한 비용입니다. WAF는 Web ACL이라는 큰 보안 정책 컨테이너 안에 여러 Rule을 추가하여 웹 트래픽을 세밀하게 제어합니다.
각 Rule은 특정 IP 주소를 차단하거나 허용하는 IP 매칭, 특정 국가에서의 접근을 제어하는 Geo Match, SQL 인젝션이나 XSS 패턴을 탐지하는 문자열 필터링 등 다양한 보안 필터링 조건을 적용하는 단위입니다.
Web ACL에 Rule을 하나 추가할 때마다, 해당 Rule 개수만큼 이 비용이 매월 반복적으로 청구됩니다. 따라서 불필요하거나 중복되는 Rule이 많을수록 이 비용이 증가하게 됩니다.
이 항목은 AWS WAF가 제공하는 고급 유료 기능인 'Advanced Managed Rule (AMR) - Bot Control'에서 발생한 요청 처리 비용입니다. Bot Control은 웹 애플리케이션으로 접근하는 악성 봇이나 스크래퍼 트래픽을 자동으로 탐지하고 차단해주는 AWS 관리형 룰셋입니다.
이 비용은 Bot Control 기능을 활성화하고 해당 기능이 웹 요청을 분석하고 처리한 횟수에 따라 발생합니다. 즉, 봇 트래픽이 많을수록 이 항목의 요금도 함께 늘어나는 구조입니다.
위 APN2-AMR-BotControl-Request와는 별개로, 이 항목은 Bot Control 기능 자체를 사용하는 것에 대한 고정 요금입니다. Bot Control 기능을 특정 Web ACL에 적용하는 순간부터, 해당 Web ACL마다 매달 이 기본 요금이 추가로 부과됩니다. 즉, 요청량과 상관없이 기능 활성화에 따른 기본 유지 비용이라고 이해할 수 있습니다.
이 항목은 AWS WAF의 가장 기본적인 과금 단위인 Web ACL 자체의 월별 기본 요금입니다. Web ACL은 여러 Rule을 담고 웹 리소스(ALB, CloudFront 등)에 연결되는 '보안 정책의 틀' 역할을 합니다.
Web ACL을 생성하고 활성화하는 시점부터, 이 Web ACL 하나당 매달 일정 금액의 기본 요금이 발생합니다. Web ACL이 실제로 요청을 차단하거나 허용하지 않더라도, 존재하고 연결되어 있는 것만으로 요금이 청구된다는 점이 중요합니다. 따라서 불필요하게 많은 Web ACL을 생성하면 기본 요금이 중복되어 발생하므로 주의해야 합니다.
Resource ID별(웹 ACL별) 비용 파악은 WAF 비용 최적화에서 중요한 단계입니다. AWS Cost Explorer에서 “Resource ID” 필터를 사용하면, 각 Web ACL별로 발생한 비용을 개별적으로 분석할 수 있습니다.
Web ACL은 WAF의 논리적 정책 단위로, 특정 도메인이나 애플리케이션의 트래픽을 보호하는 역할을 합니다. 따라서 Web ACL별 비용을 파악하면, 어떤 도메인이나 서비스에서 WAF 트래픽이 집중되고 있는지, 특정 Web ACL이 얼마나 많은 요청과 Rule 평가를 처리하고 있는지를 확인할 수 있습니다.
예를 들어, 특정 Web ACL의 Request Count나 Rule Evaluation 비용이 급격히 증가했다면, 해당 Web ACL에 적용된 Rule 수가 과도하거나, 잘못된 설정으로 인해 불필요한 트래픽까지 처리하고 있을 가능성이 있습니다. 이를 통해 Web ACL별로 필요한 Rule을 최적화하거나, 불필요한 Web ACL을 제거하는 등의 개선 조치를 취할 수 있습니다.
또한, Resource ID별 비용 파악은 서비스별 또는 애플리케이션별 비용 배분 관리를 할 때도 유용합니다. 각 Web ACL이 보호하는 대상(예: 도메인, 서비스)별로 비용을 나누어 관리하면, 팀 또는 부서별 비용 책임 관리에도 도움이 됩니다.
WebACL 단위의 요청량(Request Count)을 추적하려면 AWS WAF Metrics를 활용하는 것이 가장 효과적입니다. WAF는 각 WebACL에 대해 CloudWatch Metrics를 자동으로 생성하며, 이를 통해 단일 WebACL이 처리하는 요청의 양을 실시간으로 확인할 수 있습니다.
CloudWatch Metrics에서 확인 가능한 주요 지표는 다음과 같습니다.
AllowedRequests: WebACL에서 허용된 요청 수
BlockedRequests: 차단된 요청 수
CountedRequests: 카운트만 수행된 요청 수
RequestCount: WebACL이 처리한 총 요청 수 (Allowed + Blocked + Counted의 합)
이 지표들은 Region별, WebACL별, Rule별로 필터링해서 조회할 수 있으며, 특정 기간 동안의 요청량 추세나 특정 시간대의 급증 패턴 등을 파악하는 데 유용합니다
.
예를 들어, 특정 WebACL의 RequestCount가 평소보다 급격히 증가했다면, DDOS 공격이나 의도치 않은 트래픽 급증, 잘못된 애플리케이션 동작 등이 원인일 수 있습니다. 이 경우 CloudWatch Alarm을 설정해 특정 WebACL의 RequestCount가 임계치를 초과하면 알림을 받도록 구성할 수 있습니다.
또한, WebACL당 요청량을 추적하면 비용 최적화 측면에서도 유용합니다. WAF는 처리한 요청 수(Request Count)에 따라 과금되므로, 트래픽이 집중되는 WebACL에 대해 불필요한 트래픽을 필터링하거나, 캐시 등을 활용해 요청량 자체를 줄이는 전략을 세울 수 있습니다.
따라서 WAF Metrics를 활용한 WebACL 요청량 추적은 비용 관리뿐만 아니라 보안 및 운영 효율성 관점에서도 매우 중요한 모니터링 방법입니다.
아래는 WAF의 지난 6개월 비용을 usage type으로 나누어 확인한 결과입니다.
총 비용은 2024년 11월 $440.34에서 시작하여 2025년 3월 $732.84로 최고점을 기록한 후 2025년 4월 $568.21로 감소했습니다. 6개월간 총 $3,132.90의 WAF 관련 비용이 발생했습니다.
주요 Usage Type별 비용 항목을 분석해보면 다음과 같은 인사이트를 얻을 수 있습니다.
APN2-RequestV2-Tier1 (WAF 요청 처리 비용)
총 $2,801.38로, 전체 WAF 비용의 약 89.4%를 차지하며 압도적인 비중을 보입니다. 월별 추세를 보면 2024년 11월 $393.61에서 꾸준히 증가하여 2025년 3월 $662.67로 최고점을 찍은 후, 4월 $499.62로 감소했습니다.
이 항목은 WAF가 처리한 웹 요청 수에 비례하여 발생하는 요금으로, 현재 WAF 비용의 가장 큰 비중을 차지하는 주요 비용 동인(Cost Driver)입니다. 3월에 요청량이 급증했다는 것은 해당 기간 동안 웹 트래픽이 크게 늘었거나, 공격 시도 등으로 인해 WAF가 처리해야 할 요청 수가 많았을 가능성을 시사합니다. 4월에 비용이 감소한 것은 트래픽 감소 또는 WAF 정책 최적화의 결과일 수 있습니다.
비용 절감을 위해서는 애플리케이션의 트래픽 패턴을 면밀히 분석하고, 불필요하거나 악의적인 요청이 WAF에 도달하기 전에 차단하는 프리필터링 전략을 강화해야 합니다. 예를 들어, CDN(CloudFront)에서 특정 IP 대역을 선차단하거나, 로드 밸런서 단에서 불필요한 요청을 필터링하는 등의 방법을 고려할 수 있습니다.
만약 봇 트래픽이 많다면 APN2-AMR-BotControl-Request 항목과 함께 분석하여, WAF의 Bot Control 기능 또는 커스텀 룰을 통해 불필요한 봇 요청이 WAF의 요청 처리 비용으로 이어지지 않도록 관리해야 합니다.
APN2-RuleV2 (WAF 규칙 사용 비용)
총 $126.00로, 전체 WAF 비용의 약 4%를 차지합니다. 이 항목은 Web ACL에 설정된 규칙(Rule)의 개수에 따라 매월 반복적으로 청구되는 비용입니다. 월별 비용이 변동 없이 $21.00로 고정되어 있다는 것은, 분석 기간 동안 WAF Web ACL에 설정된 규칙의 개수(서울 리전 기준 $1/Rule 이라면 21개의 Rule)가 변하지 않았음을 의미합니다.
APN2-AMR-BotControl-Request (고급 관리형 룰 - 봇 제어 요청 처리 비용)
총 $115.53으로, 전체 WAF 비용의 약 3.7%를 차지합니다. 2024년 11월 $10.73에서 시작하여 2025년 3월 $34.18로 급증한 후, 4월 $32.59로 소폭 감소했습니다.
이 비용은 AWS WAF의 'Bot Control' 기능이 처리한 요청 수에 비례하여 발생합니다. 3월의 급증은 해당 기간 동안 웹 사이트로 유입된 봇 트래픽이 크게 늘었음을 의미할 수 있습니다. 이는 웹 애플리케이션에 대한 자동화된 공격 시도나 크롤링 활동이 증가했을 가능성을 시사합니다.
봇 트래픽의 종류와 목적을 분석하여, 유효한 봇(예: 검색 엔진 크롤러)은 허용하고 악성 봇은 효과적으로 차단하는 룰을 더욱 세밀하게 조정해야 합니다. 또한, APN2-RequestV2-Tier1 비용과 함께 분석하여 봇 트래픽이 전체 요청량에 미치는 영향을 파악하고, 불필요한 봇 트래픽으로 인한 WAF 요청 처리 비용을 줄이는 방안을 모색해야 합니다.
APN2-AMR-BotControl (고급 관리형 룰 - 봇 제어 기본 요금)
총 $60.00로, 전체 WAF 비용의 약 1.9%를 차지합니다. 이 비용은 Bot Control 기능 자체를 활성화하는 것에 대한 고정 월별 요금입니다. 매월 일정한 비용이 발생한다는 것은 분석 기간 동안 Bot Control 기능이 지속적으로 활성화되어 있었음을 의미합니다.
APN2-WebACLV2 (WAF Web ACL 기본 요금)
총 $30.00로, 전체 WAF 비용의 약 1.0%를 차지합니다. 이 비용은 WAF Web ACL 자체의 월별 기본 요금으로, 매월 $5.00가 꾸준히 발생한다는 것은 이 계정에서 하나의 Web ACL이 지속적으로 활성화되어 사용되고 있음을 의미합니다.
제공된 WAF Usage Type별 비용 데이터를 종합해 볼 때, 이 계정의 WAF 비용은 APN2-RequestV2-Tier1 항목, 즉 WAF가 처리하는 요청 수에 의해 가장 크게 좌우되고 있음을 명확히 알 수 있습니다. 또한 Bot Control 기능의 활성화와 그로 인한 요청 처리 비용도 상당한 비중을 차지합니다.
리소스는 아래와 같이 1개만 사용하고 있어 WebACL당 비교분석을 할 필요는 없었습니다.
AWS WAF의 비용은 ‘기본 요금’이 아니라, ‘요청량’에 따라 결정됩니다. 즉, 설정은 그대로인데 트래픽만 늘어나도 비용이 기하급수적으로 증가합니다. 게다가 봇 트래픽, 무분별한 API 호출, 잘못된 캐시 설정 등으로 인해 의도하지 않은 ‘비용 폭탄’이 발생할 수 있습니다.
WAF는 보안의 핵심입니다. 하지만 관리하지 않는 WAF는 ‘무제한 청구되는 방어벽’이 될 수 있습니다. 트래픽을 지켜내는 동시에, 예산도 지키는 보안 전략이 필요합니다.