ハマログ

株式会社イーツー・インフォの社員ブログ

AWS S3のデータを取り出す

現在、社内で利用しているサーバのデータはAWSにバックアップしています。いざという時のために復元の練習をしておこうと思います。現在バックアップはスタンダードタイプとglacierで行っています。glacierは復元に時間を要すようなのでとりあえずスタンダードのファイルを復元してみます。

まずは復元するサーバーで環境の整備です。
1.AWSとの接続はAWS CLIというツールを使用します。linux環境ではpythonが必要なのでインストールの確認をします。

[ats@www70 ~]$ python --version
Python 2.6.6

2.入ってました。よかった。次にAWS CLIのインストールにpipが必要とのことですが入っていなかったのでインストールします。

<code class="nohighlight">[ats@www70 ~]$ curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
[ats@www70 ~]$ </code><code class="nohighlight">sudo python get-pip.py
</code>[ats@www70 ~]$ pip --version
pip 7.1.2 from /usr/lib/python2.6/site-packages (python 2.6)

無事インストールできました。

3.最後にAWS CLIを入れます。

[ats@www70 ~]$ sudo pip install awscli
[ats@www70 ~]$ aws --version
 aws-cli/1.6.0 Python/2.6.6 Linux/2.6.32-431.5.1.el6.x86_64

入りました。これでS3にバックアップしているファイルをダウンロードできるはずです。

4.インストールをしたらAWS CLIの環境構築が必要です。aws configureで環境設定します。amazonの説明では下記の設定が必要なようです。

AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json

Access Keyってなんでしょう。説明にはアカウントの認証情報と書いてありますけどよくわかりません。アクセスキー ID と秘密アクセスキーの取得にはIAMコンソールで作成できるとあります。バックアップがあるのだからIAMに入ればどこかにあるだろうと思ったのですがどこにも見つかりません。説明をよく読んだら一度作成すると再確認はできないと書いてありました。すでにバックアップはしているのでアクセスキーは作成済のはずです。
よくよく考えればバックアップ時に使用してるはずです。結果バックアップのスクリプトからアクセスキーをようやく見つけることができました。次にリージョンの設定です。東京にバックアップしているのでRegions and Endpointsで東京は「ap-northeast-1」であることがわかりました。フォーマットはよくわからないのでjsonにしときました。

5.ようやく確認です。
リストとってみます。

[ats@www70 ~]$ aws s3 ls s3://MyBackup
2015-11-03 06:00:20 3065268 file2.tar.gz
2015-11-04 06:00:45 3065267 file3.tar.gz
2015-11-05 06:00:44 5088835 file4.tar.gz
2015-11-06 06:00:43 10804634 file5.tar.gz

出てきました。じゃ戻してみます。「cp」コマンドがあるようですので使ってみます。

[ats@www70 ~]$ aws s3 cp s3://MyBackup/file2.tar.gz ./
download: s3://MyBackup/file2.tar.gz to ./file2.tar.gz
[ats@www70 ~]$ ls file2.tar.gz -la
-rw-rw-r-- 1 atsike atsike 3065268 Nov 3 06:00 file2.tar.gz

ダウンロードできました。あとは元に戻すスクリプトを作成しておけば障害発生時にすぐに対象できます。
次はglacierのファイルの復元を試してみます。

※最初コピーしたとき「The difference between the request time and the current time is too large」というエラーメッセージがでました。これはサーバーとAWSの時間がずれているとき出るみたいです。時間合わせすることで解決しました。

AmazonAWSGlacierS3

  池島 篤則   2015年11月6日


関連記事

第13回Quesに参加してきた

半年に1回あるこのイベントがまたやってきた! QAエンジニアの活性化を目的とした…

Amazon Linux 2のPHP5サポート

現時点で、PHP5系のサポートはすべて終了しています。 PHP5系のセキュリティ…

AWS Systems Managerを利用して複数のEC2インスタンスで一括コマンド実行する

AWS Systems Managerの管理下にEC2を置くと、複数のインスタン…


← 前の投稿

次の投稿 →