AWS WAF 料金の「ウェブリクエスト数」を計算する方法を教えてください
困っていた内容
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」の値で確認できます。
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
計算できました!
(Web ACL 数などその他の項目については、実際に利用する数値に置き換えてください)