皆様、AWS利用料の見積もりをしているでしょうか?

AWSにはAWS Pricing Calculatorと呼ばれる公式の見積もりツールがあります。
このツールはAWSのサービスごとに必要なパラメータを入力することで月額/年額のAWS利用料を算出できます。
AWSと外部との通信量にかかる料金や為替など月によってばらつきのある項目があるため、精密な見積もりを作成することは難しいですが、ざっくりとした利用料の予測を算出できるため、AWSへの移行を考えている方や新たなAWSサービスの導入を検討する際、事前の見積もりを作成し、AWS利用に向けた比較検討に役立てることができます。

AWS Pricing Calculator

私は日頃、新規のお客様に対してAWSを利用したソリューションを提案していることもあり、このAWS Pricing Calculatorには大変お世話になっています。
ただし、このツールは現在(2024/6/22時点)AWS Backupの見積もりに対応しておらず、自身で計算する必要があります。

AWS Pricing Calculator - AWS Backup -

今まではAWS Backupを見積もる必要がある場面に出くわさなかったのですが、この度お客様へのオンプレミスからAWSへの移行検討の材料として複数台のEC2インスタンス(正確にはEBSボリューム)のバックアップにAWS Backupを利用した際の見積もりを作成することになりました。実際やってみると私が事前に想像していたよりも利用料の計算が複雑だったため備忘録として本記事に残したいと思います。

AWS Backupの料金体系

AWS Backupの料金ページを確認すると以下に対して利用料が発生することが分かります。

  • バックアップストレージ
  • 復元
  • 復元テスト
  • クロスリージョンのデータ転送
  • AWS Backup Audit Manager

また、バックアップを取得するサービスやリージョンによって料金が異なります。
ただし、今回は東京リージョンにおけるEC2のバックアップを取得したときに発生する利用料を求められたため条件を絞り、リージョンは東京、対象はEBS、項目はバックアップストレージとクロスリージョンのデータ転送とします。復元に関してはどの頻度で発生するか読めませんし、Audit Managerは今回オプションとして考えるため含めないこととします。

バックアップストレージの料金

EBSのバックアップに対するバックアップストレージの料金を算出するにあたり、まずAWSにおけるバックアップの方式について知っておく必要があります。
AWSでは1つのフルスナップショットと増分のスナップショットに基づいてバックアップが取得されます。
この説明はAWSのブログに記載されている以下の例が分かりやすいと思います。

100 GB の Amazon Elastic Block Store (Amazon EBS) ボリュームで、日次の変更率が 2 % の場合、30 日間の保持期間で 1 か月間の日次バックアップを行うと、最大 160 GB のスナップショットデータが蓄積されます。

これを図示すると以下のようになります。

つまり、移行を検討しているお客様に対して、バックアップにかかる利用料算出する際、お客様から貰うべき情報は以下となります。

  • 既存サーバでプロビジョニングされているストレージ容量
  • 各サーバにおけるバックアップの取得頻度
  • バックアップの保持日数
  • バックアップ取得頻度に対応するデータ変更率
    • バックアップ取得頻度が日次の場合は1日の変更率、週次の場合は1週間の変更率

これらの情報(特に変化率)が分からないというケースもあると思いますので、その場合は仮置きで計算します。

クロスリージョンのデータ転送の料金

リージョン障害に備えてバックアップを遠隔地に複製したいといった要件が出てきた際に、この費用が発生します。
この費用はバックアップストレージの容量が計算できていればそこまで複雑ではなく、バックアップストレージの容量に対して、1GBあたりのデータ転送料金をかければ良いだけです。
ただし、気をつけなければならないのは別リージョンにデータを転送した場合、転送先リージョンのバックアップストレージの料金も発生します。
つまり、先ほどの最大160GBのスナップショットデータが蓄積される例を用いて東京→大阪へバックアップが転送される場合、

東京リージョンのバックアップストレージにかかる料金:160 × 0.05 = 8 (USD)
東京リージョンから大阪リージョンへのデータ転送料金:160 × 0.09 = 14.4 (USD)
大阪リージョンのバックアップストレージにかかる料金:160 × 0.05 = 8 (USD)

合計:30.4 (USD)

となります。

リージョン間の転送を含む場合、1ドル160円とすると4864円なので、100GBの1インスタンスに対するバックアップに5000円いかない程度費用が発生するので、移行の規模によってはバックアップに数十万近く発生することもあり、「インスタンスの重要度に応じてバックアップを別リージョンへ転送するか」といった検討はしておくべきだと思います。

まとめ

現在(2024/6/22時点)、AWS Pricing CalculatorではAWS Backupの利用料は計算できません。
そのため、サーバの移行を控えており、事前にサーバを移行し、AWS Backupでバックアップを取得した際に発生するであろうAWS利用料を自身で算出する場合は以下の情報を事前に収集、もしくは仮置きしておきましょう。

  • 既存サーバでプロビジョニングされているストレージ容量
  • 各サーバにおけるバックアップの取得頻度
  • バックアップ取得頻度に対応するデータ変更率
  • バックアップを遠隔地に転送するか

また、バックアップをリージョン間転送する場合、「思っていたよりもバックアップで発生する費用が高額になってしまった」というケースもあるため、慎重に判断しましょう。

おわりに

今までAWS Pricing Calculatorにパラメータを入力するだけで、自身で利用料を計算することがなかったため、今回のAWS Backupの利用料算出はバックアップの仕様を考えたり、お客様にヒアリングする必要がある内容を整理できていい経験になったと思います。
今回の私同様、AWS Backupの計算に苦戦する方がいれば本記事が役に立てば幸いです。

ただし、個人的には早くAWS Pricing CalculatorでAWS Backupの利用料が計算できるようになって、本記事を必要とする人がいなくなる日が来てくれることを願っています笑

参考