🍣

Amazon Timestreamのバックアップを試してみる

2022/12/18に公開

Timestreamが発表されたのは2020年ですが、バックアップがありませんでした。ドキュメントでは「自力で頑張るように」という無慈悲な記述もありましたが・・・このたびAWS Backupと統合されました。

https://aws.amazon.com/about-aws/whats-new/2022/12/amazon-timestream-enables-protect-data-through-aws-backup/

ドキュメントより

できること

  • スケジュール実行
  • クロスアカウント、クロスリージョン
  • Lifecycleでコールドストレージに移行可
  • タグ付け
  • 暗号化
  • AWS Backup Valut LockでWORM(write-once-read-many)

実行に関して

(制限はAWS Backupのものが効く)

  • console、SDK、CLIで可
  • Backup
    • バックアップするのは、テーブル単位
    • 停止、キャンセルできない
    • バックアップソースを消せない
    • バックアップをDiableできない
    • 1リソースに対して同時に1つのみ
    • 1アカウントの対して同時に4つのバックアップのみ
  • Restore
    • 事前にtable設定のリテンションピリオドを合算後の時間幅より長くする
    • 1テーブルごとしかできない
    • 実行中に別データを挿入できない

バックアップしてみる

AWS Backupでの設定をONにする

Timestreamコンソールに入って左側を見ると、Backupsの項目がNewで表示されています。

AWS BackupをTimestreamに対してをEnableしてよいか聞いてくるので、押します。

enabledされました。

これはAWS Backupの設定をTimestream側でやったということです。本来は、AWS Backup -> Setting -> Service opt-in -> Configure resources のページでON/OFFできます。diabledにする場合はこのページに行ってください。

項目設定

Create on-demand backupでソースのDatabase, Tableを選びます。ここでは、サンプルで作成したものをセットしています。

AWS Backupの設定です。今すぐするかスケジュールにするか、コールドストレージを使うか、リテンション期間、Backup Vaultの設定など。


Creation time

時間がかかるかも、という表示が出ますが、サンプルデータでは2分弱で完了しました。

リストアしてみる

どれをどこにリストアするか

バックアップを選択してリストア押します。

新しく作るテーブル名、どのデータベースに作るかを設定します。

リテンション設定

Timestreamでは、データのタイムスタンプに応じて保存場所をMemory storeからMagnetic storeに変えたり、時間が経過したら破棄したりします。そのため、リストアするデータのタイムスタンプに気をつける必要があります。

下記のOldest timestamp(2022-09-10 15:13:23)がリストアするデータの最も古いタイムスタンプです。リストアを実行する時刻(2022-12-18 17:23)からの差分は99日3時間なので、それよりリテンションを長くしないと消えます、と表示されています。

数分で完了しました(データが少ないからですが)。

(ちなみに、上記のリテンションをデータないところまで短くしてリストアすると、無事に何も入っていない空のテーブルが作成できました。データが削られるだけでエラーにはならないです。)

Clean up

Backup -> Delete -> AWS Backupに移動
Backup vaults -> Defaultに移動して当該のRecorvery Pointを消します。

・・・リカバリーポイントは消せるんですが、何故かTimestream側のBackupが消えずに残っています。そこからはリストアできないので、表示が残っているだけのようです。

まとめ

TimestreamがAWS Backupに対応したので試してみました。クリックするだけでバックアップできて便利そうです。

Discussion