Pocket

CentOSからS3へファイルをバックアップする方法

  • add this entry to hatena bookmark

EC2 ではないCentOS 6 上のファイルを 、インターネットストレージ AWS S3 にバックアップしてみました。

S3 にバックアップする際には、s3cmd が利用できます。AWS の環境外であるサーバのデータを、可用性が高くて容量単価が低いインターネットストレージにバックアップできるので、便利に利用できるケースも多いと思います。

s3cmd のインストールとセットアップ、利用方法について記載しています。

インストール

s3 tools からファイルをダウンロードし、インストールします。

# wget http://sourceforge.net/projects/s3tools/files/s3cmd/1.5.0-alpha1/s3cmd-1.5.0-alpha1.tar.gz/download
# tar zxvf s3cmd-1.5.0-alpha1.tar.gz
# cd s3cmd-1.5.0-alpha1
# python setup.py install
# which s3cmd
/usr/bin/s3cmd
#

インストールには python 環境が必要です。以上でインストールは完了です。

 

セットアップ

s3 へバックアップを行うOSアカウントで、「s3cmd –configure」を実行します。

前提として、AWS をすでに利用しており、アクセスキーなどが発行されている状態である事を想定しています。

ちなみに、以下の私の設定ポイントとしては、S3への通信は暗号化したいので、「Use HTTPS protocol」を「Yes」にする箇所です。

$ s3cmd --configure

Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.

Access key and Secret key are your identifiers for Amazon S3
Access Key: (値をコピー&ペーストします)
Secret Key: (値をコピー&ペーストします)

Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password:
Path to GPG program [/usr/bin/gpg]:

When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP and can't be used if you're behind a proxy
Use HTTPS protocol [No]: Yes

New settings:
  Access Key: (設定した値)
  Secret Key: (設定した値)
  Encryption password:
  Path to GPG program: /usr/bin/gpg
  Use HTTPS protocol: True
  HTTP Proxy server name:
  HTTP Proxy server port: 0

Test access with supplied credentials? [Y/n] Y
Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)

Now verifying that encryption works...
Not configured. Never mind.

Save settings? [y/N] Y
Configuration saved to '/home/(s3バックアップ用アカウント)/.s3cfg'
$

以上で、s3cmd のセットアップは終了です。

 

S3接続確認

まず、事前にS3にBuckets と Folder を作っておきます。

s3-buckets

この状態で、s3cmd コマンドでS3に接続できる事を確認してみます。

$ s3cmd ls
2013-10-07 13:46  s3://checksite
$
$ s3cmd ls s3://checksite
                       DIR   s3://checksite/test/
$

ちゃんと接続できています!

 

ファイルを S3 にアップ

CentOSからバックアップ対象ファイルをS3にアップロードしてみます。

まずは、テスト用にファイルを用意します。

$ mkdir s3cmd-test
$ cd s3cmd-test
$ vi test-file.txt
$ cat test-file.txt
This is a test.
$

次に、s3cmd でファイルをS3にアップロードします。

$ s3cmd put test-file.txt s3://checksite/test/
WARNING: Module python-magic is not available. Guessing MIME types based on file extensions.
test-file.txt -> s3://checksite/test/test-file.txt  [1 of 1]
 16 of 16   100% in    0s    37.02 B/s  done
WARNING: Redirected to: checksite.s3-ap-northeast-1.amazonaws.com
test-file.txt -> s3://checksite/test/test-file.txt  [1 of 1]
 16 of 16   100% in    0s    47.94 B/s  done
$

少し怒られましたが、ファイルを S3 にアップできたようです。

Amazon Management Console で確認してみます。
s3cmd-testfile

ちゃんとアップされています!

s3cmd コマンドでも確認してみます。

$ s3cmd ls s3://checksite/test/
2013-10-07 14:27         0   s3://checksite/test/
2013-10-07 15:01        16   s3://checksite/test/test-file.txt
$

いい感じです。

先ほど「WARNING」で怒られた箇所は、「python-magic」をインストールすれば解消されます。

# yum install python-magic

もう一回、ファイルを作ってアップしてみます。

$ vi test-file2.txt
$ cat test-file2.txt
s3cmd test.
$
$ s3cmd put test-file2.txt s3://checksite/test/
test-file2.txt -> s3://checksite/test/test-file2.txt  [1 of 1]
 12 of 12   100% in    0s   151.26 B/s  done
$

今度は、WARNING が消えました。

GUI も見てみます。
s3cmd-testfile2

ちゃんとアップされています。

s3cmd コマンドでも確認してみます。

$ s3cmd ls s3://checksite/test/
2013-10-07 14:27         0   s3://checksite/test/
2013-10-07 15:01        16   s3://checksite/test/test-file.txt
2013-10-07 15:09        12   s3://checksite/test/test-file2.txt
$

ちゃんと確認できました。

結構簡単にS3をバックアップストレージとして利用できます。

インターネット経由でのバックアップになりますので、HTTPS通信は必須になるかと思います。課題としては転送速度になると思います。どのくらいのパフォーマンスが出来かを今後確認しておきたいと思います。

 

Pocket

コメントを残す

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


*

チェックサイト RSS Feed読者登録はいかがでしょうか?RSS配信中です。