株式会社ライブキャストロゴ 株式会社ライブキャスト

稼働率99.95%以上というSLAを引っさげて10/23に正式版になったAmazon EC2、久しぶりにいじってみました。β版から使っていたカスタムAMIも問題なく動きました。

EC2を使っていると、ローカルで作成したものを起動中のサーバにアップしてブラウザから確認、というようなことをしたいときがありますが、こんなときに便利なのがs3sync.rb

1.起動中のサーバにインストール

[root@domU-12-31-39-00-A1-D6 ~]# wget http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz
–20:58:13–  http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz
           => `s3sync.tar.gz’
Resolving s3.amazonaws.com… 72.21.202.66
Connecting to s3.amazonaws.com|72.21.202.66|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 30,415 (30K) []

100%[============================================================================>] 30,415        –.–K/s

20:58:13 (2.61 MB/s) – `s3sync.tar.gz’ saved [30415/30415]


2.解凍

[root@domU-12-31-39-00-A1-D6 ~]# tar -xvf s3sync.tar.gz
s3sync/
s3sync/HTTPStreaming.rb
s3sync/README.txt
s3sync/README_s3cmd.txt
s3sync/S3.rb
s3sync/s3cmd.rb
s3sync/s3config.rb
s3sync/s3config.yml.example
s3sync/S3encoder.rb
s3sync/s3sync.rb
s3sync/s3try.rb
s3sync/S3_s3sync_mod.rb
s3sync/thread_generator.rb

3.環境変数の設定

  • AWS_ACCESS_KEY_ID:
  • AWS_SECRET_ACCESS_KEY:

flashcast:フリーで働くITエンジニア集団のブログ: Amazon Machine Image(AMI)を立ち上げる前にでご紹介した、3.のAccess Key IDと4.のSecret Access Keyです。私の場合、.bash_profileで設定しています。

AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

export AWS_ACCESS_KEY_ID
export AWS_SECRET_ACCESS_KEY

4.EC2からS3へアップロード
コマンドラインからカレント配下のファイルをS3のflashcastバケットのtempにコピーする場合。

[root@domU-12-31-39-00-A1-D6 ~]ruby s3sync.rb -v ./ flashcast:/temp/
Create node uploadtest1.txt
Create node uploadtest2.txt
Create node uploadtest3.txt

※ rubyがインストールされていること!

5.S3からEC2へダウンロード
コマンドラインからflashcastバケットのtemp内のファイルをカレントにコピーする場合。

[root@domU-12-31-39-00-A1-D6 ~]ruby s3sync.rb -v flashcast:/temp/ ./
Create node uploadtest1.txt
Create node uploadtest2.txt
Create node uploadtest3.txt

※ -vオプションは詳細を表示する。Create node uploadtest1.txt・・・が出力されています。

運用中のインスタンスの場合などには、スクリプトを組んで定期的にS3にバックアップするようなことにも利用できるかと思います。