JavaScriptを有効にしてください

AWS の EBS で整合性のあるスナップショットを取得する方法

 ·  ☕ 2 分で読めます

背景

EC2 上で EBS を用いて MongoDB を構築しており、これの日時バックアップに AWS Backup を検討していた。

そこで無停止バックアップ取得時の AWS Backup のファイルシステムの整合性の担保について調べた。

調べたこと

  • AWS Backup を用いても整合性を気にしなくてはならないのか
  • 整合性を気にしなくてはならない場合はどのような手法があるのか

結果  

前提として、AWS Backup は既存の別サービスを呼び出しているだけである。

たとえば、バックアッププランを作成すると、そのバックアッププランに従って自動的にバックアップを作成するときに、AWS Backup は EBS スナップショット機能を使用します。

AWS Backup: 機能の説明 - AWS Backup

そして EBS のスナップショット取得については書き込みを止めることを推奨している

If you can pause any file systems on the volume long enough to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume, you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is pending.

CreateSnapshot - Amazon Elastic Compute Cloud

スナップショット作成完了時に CreateSnapshot のイベントが発生するため、バックアップの開始時刻に書き込みを停止し、CreateSnapshot のイベントが届いたら書き込みを再開するというすれば整合性のあるバックアップ取得が行えそうだ。

「AWS Backup を用いても整合性を気にしなくてはならないのか」について

AWS Backup を用いても整合性については考慮する必要がある。

ジャーナルログをみてその時間帯のファイルシステムだけ復元してほしかったが、fsync (2)が呼ばれていない場合は整合性が保てない恐れがあるしそれはファイルシステム側で検出することができないということだと思われる(それはそう

共有

bootjp / ぶーと
著者
ミドルウェアエンジニア / 6年後に分散データベース研究の世界に貢献することを目指して


目次