業務でS3を使うことが多くなったが、
S3自体の耐久性は99.999999999%(イレブンナイン)なので問題無いとしても
プログラムやAWSコンソール画面で”うっかり削除しちゃった”系のミスがあったときに
バケットごとバックアップする機能があったら便利だなーと思って
AWS CLIのS3のサブコマンド見てたらあったので紹介!
詳細はこちらから。
1. S3のバケット内のオブジェクトをローカルPCにバックアップ
#aws s3 sync [s3 path] [local path]
aws s3 sync s3://mybucket /home/user/s3backup
用途としてはバックアップというよりは、
“S3からデータを一括で引っ張ってきて加工して再アップロード”
みたいなことをするときに便利。
オブジェクトキーのセパレータがスラッシュ(/)の場合は自動的にディレクトリを作って階層構造にしてくれる。
2. S3のバケット内のデータを別のバケットにバックアップ
#aws s3 sync [s3 path<from>] [s3 path<to>]
aws s3 sync s3://mybucket s3://backup
バックアップに使える以外には、テスト環境と本番環境のデータを同期する時など
複製して使いたい場合に有効。
異なるリージョン間でも同期できたので、S3を使っててレイテンシを考慮する場合は使えるかも!?
S3使っててレイテンシ考慮するケースってほとんどCloudFront 使っちゃうと思うけど…。
3. ローカルのデータをS3にバックアップ
#aws s3 sync [local path] [s3 path]
aws s3 sync /home/user/data s3://mybucket
バックアップのクラウドのデータストレージとしてS3を利用する場合に有効。
–deleteオプションを付けるとローカルに存在しないファイルは自動的にS3バケット上で削除してくれる。
うまく使えば簡易的なDropbox的なこともできるかも!?
こんな感じでAWS CLIは簡単にインストールできて、簡単に使えて
bashに組み込めるから少々テクニカルなこともできちゃうのでオススメです!