s3-pit-restoreとは
s3-pit-restore はAWSのS3で利用できるポイントインタイムリカバリ機能を提供するコマンドラインツール。
特定時点にS3を復元できる。
S3バケットはバージョニングを有効にしておくと、ファイルごとにバージョン管理ができる。
ところがバケット内のすべてのファイルを特定時点の状態にするには全てのファイルを個別に復元する必要がある。
s3-pit-restoreを使うとバケット内のすべてのファイルを特定時点にまとめて復元できる。
s3-pit-restoreを使うためのS3の設定
s3-pit-restoreを使うためにはS3のバージョニングを有効にしておく必要がある。
有効になっていない場合は編集ボタンを押して有効にする。
s3-pit-restoreの使い方
インストール
pipでインストールする。
$ pip3 install s3-pit-restore
$ s3-pit-restore --help
options:
-h, --help show this help message and exit
-b BUCKET, --bucket BUCKET
s3 bucket to restore from
-B DEST_BUCKET, --dest-bucket DEST_BUCKET
s3 bucket where recovering to
-d DEST, --dest DEST path where recovering to on local
-p PREFIX, --prefix PREFIX
s3 path to restore from
-P DEST_PREFIX, --dest-prefix DEST_PREFIX
s3 path to restore to
-t TIMESTAMP, --timestamp TIMESTAMP
final point in time to restore at
-f FROM_TIMESTAMP, --from-timestamp FROM_TIMESTAMP
starting point in time to restore from
-e, --enable-glacier enable recovering from glacier
-v, --verbose print verbose informations from s3 objects
--dry-run execute query without transferring files
--debug enable debug output
--test s3 pit restore testing
--max-workers MAX_WORKERS
max number of concurrent download requests
ローカルに復元する
ローカルに復元するには以下のコマンドを実行する。
$ s3-pit-restore -b バケット名 -d 復元先パス -t 時刻
それぞれのオプションは以下の通り。
-b
: 復元元のバケット名-d
: 復元先のローカルディレクトリのパス-t
: 復元する時刻 (例:2023-12-03 00:00:00 +9
)
例
$ s3-pit-restore -b test-bucket-xxx -d ./test-bucket -t '2023-12-03 00:00:00 +9'
上記コマンドではtest-bucket-xxx
バケットの2023-12-03 00:00:00 +9
時点の状態を./test-bucket
ディレクトリに復元する。
別のバケットに復元する
復元先にはバケットも指定できる。
復元元とは異なるバケットに復元するには-d
オプションの代わりに-B
オプションを使う。
$ s3-pit-restore -b バケット名 -B 復元先バケット -t 時刻
それぞれのオプションは以下の通り。
-b
: 復元元のバケット名-B
: 復元先のバケット名-t
: 復元する時刻 (例:2023-12-03 00:00:00 +9
)
例
$ s3-pit-restore -b test-bucket-xxx -B test-bucket-restore-xxx -t '2023-12-03 00:00:00 +9'
上記コマンドではtest-bucket-xxx
バケットの2023-12-03 00:00:00 +9
時点の状態をtest-bucket-restore-xxx
バケットに復元する。
s3-pit-restoreのその他のオプション
-p
: 復元元のプレフィクス(パス)の指定。指定しない場合はバケット直下のすべてのファイルが復元する。-P
: 復元先のプレフィクス(パス)の指定。指定しない場合はディレクトリ直下(バケット直下)に復元する。-e
: Glacierから復元する。指定しない場合はGlacierからは復元しない。-v
: 詳細な情報を表示する。指定しない場合は詳細な情報を表示しない。--dry-run
: 実際には復元しない。指定しない場合は実際に復元する。--max-workers
: 同時に実行する復元処理の数。
\手を動かしながらTerraformを学びたい人にオススメ!/