【小ネタ】Auroraのクラスタースナップショットのクロスリージョンコピー

記事タイトルとURLをコピーする

こんにちは。テクニカルサポート課の森本です。

お客様からのお問い合わせをいただく中で、Aurora のスナップショットのクロスリージョンコピーについて気づくことがありました。

[前提]Auroraのスナップショット料金の考え方

Auroraでは、自動バックアップの保持期間内のすべての種類のスナップショットについては取得回数、サイズに関わらず追加料金はかかりません。

*スナップショットのコストはあくまでも通常の自動バックアップストレージのコストに含まれているものとご理解ください。

料金 - Amazon Aurora | AWS

バックアップ保持期間内に作成されたデータベーススナップショットにも料金はかかりません。

スナップショットに課金が発生するパターン

まず、Aurora のスナップショット取得方法は以下の3つの方法があります。

  1. Aurora の自動バックアップで取得される日次の自動スナップショット
  2. ユーザが任意のタイミングで取得する手動スナップショット
  3. AWS Backup により任意のタイミングで取得するスナップショット

Amazon Aurora バックアップストレージの使用状況を確認する - Amazon Aurora

Aurora は、自動バックアップ保持期間内のすべてのスナップショットについて無制限の無料ストレージを提供します。手動スナップショットが保持期間外になると、毎月 GB 単位で請求されます。

1.の自動スナップショットはバックアップ保持期間経過後に自動で削除されるため、手動でコピー等していない限りは追加料金は発生しません。

つまり、スナップショットに追加料金が発生するのは以下の2つのパターンです。

  • 手動スナップショットをAuroraの自動バックアップ保持期間を過ぎて保持する場合
  • AWS Backup で取得したスナップショットを Aurora の自動バックアップ保持期間を過ぎて保持する場合

*AWS Backupで取得したスナップショットは手動スナップショットとみなされるため、パターン分けの必要はないかもしれません

Aurora DB クラスターのバックアップと復元の概要 - Amazon Aurora

AWS Backup によって管理されるスナップショットは、手動 DB クラスタースナップショットと見なされます

ここで疑問

スナップショットのクロスリージョンコピーを行った場合は、どのタイミングからスナップショット料金が発生するのか?

Auroraのクラスタースナップショットのクロスリージョンコピーを行った場合、そのスナップショットは手動スナップショットとみなされるとあります。 クロスリージョンコピーしたスナップショットの料金は、元リージョンの Aurora クラスターの保持期間の影響を受けるのかどうか疑問が浮かびました。

DB クラスターのスナップショットのコピー - Amazon Aurora

別の AWS リージョン に DB クラスタースナップショットをコピーする場合には、その AWS リージョン に保持されている手動 DB クラスタースナップショットを作成します。

いきなり結論

他リージョンにスナップショットをコピーした場合、元リージョンのAuroraクラスターの自動バックアップ保持期間に関わらずコピー先リージョンでスナップショットの保持費用が発生します。 今回は、AWS Backupを用いて東京リージョンのAuroraクラスターで取得したスナップショットを大阪リージョンにコピーして検証を行いました。

設定内容

  • DBエンジン: 8.0.mysql_aurora.3.04.1

  • 自動バックアップ保持期間: 7日間

  • 検証開始: 2024年1月25日

スナップショットが課金対象になるかどうかは、AuroraのCloudWatchメトリクスのSnapshotStorageUsedから判断しています。

Amazon Aurora バックアップストレージの使用状況を確認する - Amazon Aurora

SnapshotStorageUsed - 自動バックアップの保持期間を超えて手動スナップショットを保存するために使用されたバックアップストレージの量 (バイト単位) を表します。(-- 中略 --) このメトリクスでは、課金対象のスナップショットごとに 1 日に 1 つのデータポイントが出力されます。1 日のスナップショットの合計使用量を確認するには、このメトリクスの 1 日の合計を求めます。

東京リージョンのAuroraクラスターでは2024年1月29日現在、SnapshotStorageUsedは発生していません。(そもそもメトリクスとして存在せず選べない状態)

こちらの理由は、自動バックアップの保持期間を7日間に設定しているため、自動バックアップ保持期間を過ぎて保持しているスナップショットが存在しないからと認識しています。

東京リージョンのCloudWatchメトリクス

一方、大阪リージョンでは検証開始日(2024年1月25日)よりSnapshotStorageUsedが発生しています。また、SnapshotStorageUsed = TotalBackupStorageBilledとなっていることもお分かりいただけるかと思います。

大阪リージョンのCloudWatchメトリクス

大阪リージョンにコピーしたスナップショットは、コピーした時点から自動バックアップの保持期間外とみなされ、課金が発生しているようでした。 コピー先のリージョンにはバックアップ取得元の Aurora クラスターが存在しない ( = Aurora クラスターが削除済み ) の状態と理解すると、コピーが完了した時点から課金が発生することも筋が通ると思います。

料金 - Amazon Aurora | AWS

その他すべてのバックアップとスナップショット (削除されたクラスターからのものを含む) については、使用量は以下のレートで GB-月単位で計測されます。

まとめ

Auroraのクラスタースナップショットのクロスリージョンコピーでコストが発生するタイミングについて検証を行いました。

クロスリージョンコピーは DR (災害復旧)対策として採用いただいているユーザ様も多数いらっしゃると考えます。

クロスリージョンコピーしたスナップショットには Aurora の自動バックアップ保持期間が適用されず、保持した世代や期間によってコストがかかってしまいますが、DR とトレードオフは避けられない部分であるかと思います。 ご用件に応じて、うまく運用いただきたければ幸いです。

参考ドキュメント

DB クラスターのスナップショットのコピー - Amazon Aurora

Aurora DB クラスターのバックアップと復元の概要

Amazon Aurora バックアップストレージの使用状況を確認する

森本 晃大(執筆記事の一覧)

テクニカルサポート課

2023年10月入社。絶賛仕事と子育てに奔走中です。