Skip to content

Amazon Aurora のバックアップ 周りの機能を調べてみた

  • AWS
  • Aurora

📅 2020-05-17

⏱️ 7 min read

概要

タイトルの通り、 Amazon Aurora を本番環境で運用していく可能性がでてきたのでバックアップまわりの機能について調査してみた。本記事はそのまとめ。

前提

Amazon Aurora とは

  • Amazon RDS を使ったデータベースエンジン。
  • RDS を使ってクラウド上にデータベースを作る際に、MySQL, PostgreSQL などと同じように Aurora の DB エンジンを選択することで使用できる。

    • 本記事では触れないが、他のデータベースエンジンとはアーキテクチャが違ったり Aurora にしかない特徴などいくつかあるのでその辺は事前に知っておく必要がある。

※ 本記事については、全て東京リージョン、2020年4月現在での料金となっている。

バックアップ、バックトラック、Snapshot Export の 3 つを説明と料金体系にそれぞれまとめてみた。

バックアップ

説明

  • 個々のデータベースだけでなく、 DB クラスター全体に対してバックアップが適応される。増分バックアップを継続的に行うのですばやく復元することができる。
  • デフォルトのバックアップ保持期間は 1 日で、1 ~ 35 日で任意の保持期間を設定することができる。
  • バックアップ保持期間を超えたバックアップを保持する場合は、クラスターボリュームの中にデータのスナップショットを作成できる。
  • Aurora の自動バックアップを無効にすることはできない。

料金体系

最近変更になったようだ。

Aurora DB クラスターの Aurora データベースストレージ合計の 100% を超えるまで、バックアップストレージに対する追加料金は発生しません。バックアップ保持期間が 1 日で、保持期間を超えたスナップショットがない場合は、バックアップストレージに対する追加料金もかかりません。

バックアップストレージとは、リージョン毎に割り当てられており、その合計容量は該当するリージョン全てのバックアップに対するストレージの合計を指す。 注意点として、DB クラスターの削除後に保存するバックアップストレージ、およびスナップショットには、以下の料金がかかる。

GB あたり月額料金 0.021USD

ref. Amazon Aurora の料金

バックトラック

説明

  • Aurora 独自の機能一つ。
  • バックアップすることなく、最大で24時間前まで DB クラスターを巻き戻すことができる機能。

    • 間違えて DROP table users;DELETE from users; をしてしまった時などに戻すことができる優れもの。
    • また、戻すだけでなく、3時間戻して2時間進めるということもできる。

AWS は公式でバックアップよりバックトラックの方が優れていると謳っており、その理由は下記のような利点が挙げられる。

  • 簡単にエラーを取り消すことができます。WHERE 句なしの DELETE などの破壊的なアクションを間違えて実行した場合、サ>ービスの中断を最小限に抑えながら、破壊的なアクション以前の時点まで DB クラスターをバックトラックできます。
  • DB クラスターのバックトラックは迅速に実行できます。DB クラスターを特定の時点の状態に復元するには、新しい DB クラスターを起動し、これに対してバックアップデータや DB クラスターのスナップショットから復元する必要があり、時間がかかります。DB クラスターのバックトラックでは、新しい DB クラスターを作成することなく、DB クラスターを数分で巻き戻します。
  • 以前のデータの変更を調べることができます。DB クラスターを前後に繰り返しバックトラックして、特定のデータの変更がどの時点で発生したかを確認できます。たとえば、DB クラスターを 3 時間前までバックトラックし、そこから 1 時間後まで戻すことができます。この場合、バックトラック時間は元の時間の 2 時間前となります。

ref. Aurora DB クラスターのバックトラック - Amazon Aurora

料金体系

時間あたり 変更レコード 0.014USD/100 万件の変更レコード

Snapshot Export

説明

  • RDS または Aurora スナップショット内のデータを Amazon S3 に Parquet 形式で自動エクスポートすることができる機能。

    • Aurora DB → S3 → Athena or EMR or SageMaker などのビッグデータとして分析に使う際に活躍する機能なのでは?と個人的に理解している。
    • mysqldump よりもかなり容量は小さくすることができるので、コスト的には優秀だと思いますが用途が分析向きな気がする。

料金体系

スナップショットサイズ 1 GB あたりの料金: 0.012USD

まとめ

本番運用経験のない初心者としての結論を以下にまとめる。

  • 運用での手違いや影響の大きい障害が発生した場合は、バックトラックを使用しデータを復旧する。
  • それ以外は、定期的に取得している dump ファイルよりデータを復旧する。(新しいクラスタにスナップショットから復旧するのでは時間がかかるため)

上記のように結論つけてしまったが、正直分からないことだらけなので運用をしていく中で、よりベターな方法を見つけることができたらなと思う。

参考にさせていただいたサイト

← PrevNext →
  • © ysmtegsr 2019 - 2021