AWS WAF 料金の「ウェブリクエスト数」を計算する方法を教えてください

2021.06.29

困っていた内容

AWS WAF の料金を試算したいのですが、ドキュメントに記載されている「ウェブリクエストの数」はどうやって見積もりすればよいのでしょうか。

AWS WAF の料金ドキュメントから抜粋:

AWS WAF では、お客様が作成するウェブアクセスコントロールリスト (ウェブ ACL) の数、ウェブ ACL ごとに追加するルールの数、および受信するウェブリクエストの数に基づいて課金されます。

どう対応すればいいの?

AWS WAF の導入を検討するケースとして、すでに運用中の AWS リソース(CloudFront / ELB(Application Load Balancer) / API Gateway)へ適用する場合がほとんどかと思います。

その場合、まずは対象リソースの過去1ヶ月あたりのウェブリクエスト数を、以下の方法で確認しましょう。

AWS リソースの月間リクエスト数の確認方法

CloudFront の場合

マネジメントコンソールの「CloudFront > Usage > CloudFront Usage Report」で任意の期間(1ヶ月間)と対象のディストリビューションを指定してデータを表示し、「All Requests:Total」の値で確認できます。 CloudFront リクエスト数確認

ALB(Application Load Balancer) または API Gateway の場合

ALB の場合は CloudWatch メトリクスの「RequestCount」、API Gateway の場合は CloudWatch メトリクスの「Count」を表示し、以下の方法で1ヶ月間のリクエスト数を確認できます。


CloudWatch メトリクスの1ヶ月間の合計数を表示する


マネジメントコンソールで任意の期間(1ヶ月間)を指定し、対象メトリクスの左側にチェックを入れ、「View graphed metrics」をクリックします。

「グラフ化したメトリクス」のタブで統計を「合計」に設定します。

「グラフのオプション」タブでウィジェットタイプに「数値」、値に「時間範囲の値は、全時間範囲からの値を示しています」を選択します。
上のエリアに表示される値が1ヶ月間の合計値となります。

料金計算ツールで試算してみる

上記で対象リソースの月間リクエスト数を確認できたら、AWS WAF の料金計算ツールで試算してみましょう。

WAF の課金単位は「100万リクエストあたり」なので、例として確認した月間リクエスト数が「550万」であった場合、料金計算ツールに入力する数値は以下のようになります。
(例)550万 ÷ 100万 = 5.5

WAF 料金計算ツール

計算できました!
(Web ACL 数などその他の項目については、実際に利用する数値に置き換えてください)

参考資料