Windows のデータを Amazon S3 へバックアップする

Pocket

AWS (Amazon Web Service) にある Amazon S3 (Amazon Simple Strage Service) を使用することで、自身のハードディスクに保存するよりも故障や破損からデータを保護することができます。

Amazon S3 というサービスは、リージョン (東京、アメリカなど) 内で最低3箇所以上の拠点にアップロードされたデータの複製を保存しており、耐久性が99.999999999%、可用性が99.99% (1年間で)、という保証があります。また、容量は無制限となっています。

50TBまでは、1GBあたり月$0.025となります。大体100GBで月額272円、1TBで月額2,780円 (2017/04/16 現在) くらいです。
私は家族写真を預けており、パソコンが壊れたとき用のバックアップに使用しており普段は使用しないため圧縮して費用を下げています。

事前準備

まずは、AWSのアカウントを作成しておきます。アカウントは AWSトップページ 右上にある「まずは無料で始める」というボタンから会員登録を行います。

アカウントの登録については、今回は説明しませんが英語自体は難しくなく、公式サイトのAWS アカウントの作成の流れや他のサイトでも説明されているページはたくさんありますので難しくはないでしょう。ただし、アカウントを作成する際に、クレジットカードの登録が必要となりますのでご用意しておいてください。

バックアップデータを保存するバケットを作成しよう

Amazon S3 にバックアップデータを保存するためのbucket (バケット) と呼ばれる領域を作成します。
このバケットに対してファイルをアップロードすることで、データを保存することができます。バケットにはフォルダ (厳密にはフォルダではありません。) も作成できますので1つのバケットに動画や画像などフォルダ分けして保存できます。

ではバケットを作成してみます。

まずは、AWS マネージメントコンソールへサインインしてAmazon S3のページへ移動します。

こちらのログインページはスーパーユーザーのログインページになります。できるだけスーパーユーザーではなく、IAMユーザーを作成して使用することをおすすめします。
IAMユーザーは制限ユーザーになりますので、使用できるサービスや機能に制限を設けることができ、不用意にサービスを起動させたり、停止させたりすることを制限できます。これにより、予期せぬ課金や自サービスの停止を防ぐことができます。

AWS マネージメントコンソールログイン画面

Amazon S3 のページへ移動したら「バケットを作成する」ボタンをクリックしてください。

Amazon S3 バケット一覧

バケット名を指定します。バケット名は小文字の英字、数字および一部の記号 (-, .) が使用できます。ただし、このバケット名は世界で唯一な名前でないといけないということです。
次にリージョンを指定します。リージョンは「アジアパシフィック (東京)」を指定します。ここは日本国内でなくてもよければ他のリージョンでも構いません。リージョンによって料金が多少異なります。

Amazon S3 バケット作成 名前とリージョン画面

プロパティでは、無効にしたい機能があれば指定します。

Amazon S3 バケット作成 プロパティ設定画面

アクセス許可の設定では、ユーザーやグループ単位で作成するバケットのアクセス権を設定することができます。

Amazon S3 バケット作成 アクセス許可の設定画面

確認では、作成するバケットの情報を確認し、問題なければ「バケットを作成」ボタンをクリックします。

Amazon S3 バケット作成 確認画面

以上で、新しくバケットが作成されました。

Amazon S3 バケット一覧 (バケット作成後)

バックアップデータを Amazon S3 へアップロードする IAM ユーザーを作成しよう

バックアップを行う IAM ユーザーを作成します。ここで作成したユーザーを使用してパソコンから Amazon S3 へデータをアップロードしたり、ダウンロードしたりします。

IAM ユーザー一覧

ユーザー名とアクセス方法を指定します。今回のユーザーはコマンドで操作をし、AWS の Web ページへはログインしないため、「プログラムによるアクセス」にチェックを入れ、「AWS マネージメントコンソールへのアクセス」にはチェックを入れません。

IAM ユーザー追加 詳細の設定

作成する IAM ユーザーの権限を設定します。
今回はポリシーはAmazonS3FullAccessを使用します。ただし、このポリシーは Amazon S3 に対してなんでもできてしまうため、実際には制限を掛けたポリシーを使用したほうが良いです。

IAM ユーザー追加 アクセス権限を設定

確認ではユーザー名、AWS アクセスの種類やアクセス権限 (ポリシー) を確認します。
「ユーザーの作成」をクリックするとユーザーが作成されます。

IAM ユーザー追加 確認

完了画面が表示されればユーザーの作成は完了です。
気をつけていただきたいのは、ここでシークレットアクセスキーを控えるか、ユーザーのセキュリティ情報 (CSV) を必ずダウンロードしておいてください。Secret access keyは、再表示および再発行はされません。Secret access keyを紛失した場合は、アカウントを削除して再度作成する必要があります。

IAM ユーザー追加 完了

ダウンロードしたファイルの中身は以下のようになっています。

User name
作成したユーザー名
Password
ユーザーのパスワード (空になっていると思います。)
Access key ID
Amazon S3 へアップロードする際に使用するキーの1つ目
Secret access key
Amazon S3 へアップロードする際に使用するキーの2つ目
Console login link
作成したユーザーでログインするためのURL

Amazon S3 へアップロードするためのツールをインストールしょう

パソコンから Amazon S3 へアップロードするためには専用のツールを使用して行います。

まずは AWS のサイトから Amazon CLI (AWS コマンドラインインターフェース) をダウンロードします。
AWS のサイト右側に Windows、 Mac および Linux で別れていますので、お使いの環境にあったものをダウンロードしてください。
今回は、Windows バージョンのインストールを行います。

AWS コマンドラインインターフェース ダウンロード

基本的に次へをクリックしていくだけでインストールは完了します。

AWS CLI セットアップウィザード
AWS CLI セットアップウィザード 利用規約
AWS CLI セットアップウィザード インストール内容の設定AWS CLI セットアップウィザード  インストール確認
AWS CLI セットアップウィザード インストール完了

以上で Amazon CLI のインストールは終了です。正常に終了したか確認するために、aws --versionコマンドを実行します。
バージョン情報が返ってくれば正常にインストールが完了しています。

以下のようなメッセージが返ってくる場合は正しくインストールされていませんので、再度インストールを行ってみてください。

アップロードするための情報を設定しよう

Amazon CLI で Amazon S3 へアップロードするための設定を行います。設定はaws configureというコマンドで行います。

--profileというオプションを使用することで、複数の設定 (例えばこのパソコンで異なるユーザーを操作する場合など) を持つことができます。

AWS Access Key ID
ユーザーを作成した際にダウンロードしたCSVファイルのAccess Key IDの値
AWS Secret Access Key
ユーザーを作成した際にダウンロードしたCSVファイルのSecret Access Keyの値
Default region name
アップロードするリージョンを指定 (ap-northeast-1はアジアパシフィック(東京)になります)
Default output format
出力するフォーマットを指定 (今回はjson形式で出力)

設定が完了したら、aws s3 lsというコマンドを実行し、作成したバケット名が返ってくれば設定に問題はありません。
aws configure--profileを使用した場合は、指定してください。

aws configure--profileを使用したにも関わらず、指定しないと以下のようなエラーが発生します。

Amazon S3 へアップロードしよう

パソコンにのみにあるファイルの場合

aws s3 sync コマンドを使用することで S3 へアップロードしてくれます。

書式は、aws s3 sync </path/to/backup/> s3://<bucket name>/ [--profle <PROFILE NAME>]となります。

/path/to/backup/
アップロードするローカルのディレクトリを指定します。
s3://<bucket name>/
作成したバケット名を指定します。
–profle <PROFILE NAME>
必要があればプロファイルを指定します。

ローカルの状態を確認します。

aws s3 syncコマンドを使用して S3 へアップロードします。

アップロードされたかaws s3 lsコマンドで確認します。

パソコンから削除されたファイル

S3 の状態をaws s3 lsコマンドで確認します。

ローカルの状態を確認します。

aws s3 syncコマンドを実行します。

コマンドコマンドコマンドコマンドコマンドコマンドコマンドコマンドコマンドコマンドコマンド

以上より通常のaws s3 syncコマンドでは S3 にのみあるファイルは何も変化はありません。
S3 にあるファイルをローカルの状態とまったく同じにする (S3 のみにあるファイルは削除する) 場合は、パラメーター--deleteを指定します。

Amazon S3 からダウンロードしよう

aws s3 syncの引数を逆にすれば、S3 にアップロードしたデータをローカルにダウンロードできます。

書式は、aws s3 sync s3://<bucket name>/ </path/to/backup/> [--profle <PROFILE NAME>]となります。

s3://<bucket name>/
ダウンロードするバケット名を指定します。
/path/to/backup/
ダウンロードするローカルのディレクトリを指定します。
–profle <PROFILE NAME>
必要があればプロファイルを指定します。
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です