Posts tagged ‘Amazon S3’

Amazon Elastic MapReduce というサービス

Amazon が Elastic MapReduce というサービスをリリースした。これは Google の中核を形成する大規模分散並列計算システムを模したもので、オープンソースの Hadoop によりサービスが提供されている。Hadoop は Apache Hadoop プロジェクトにより公開されているオープンソースソフトウェアで、Google が発表した MapReduce に関する技術論文に基づいて実装されたものだ。この MapReduce が EC2 や S3 と同様の価格体系で利用することができる。かなり画期的なことなので、開発関係者などの間ではしばらく話題になると思う。このようなサービスが普及するほど、既存のデータセンターあたりは厳しい状況になるだろうと素人は考えるのだが、そういった筋からの噂によると、それほど危機感を持っていないらしい。セキュリティだとか会社の信用といった面で、まだ自分たちのほうが優位にいると考えているらしい。本当にそうなのだろうか。

s3sync.rb と Ruby のバージョン

結論から言うと s3sync.rb 1.2.6 は、Ruby 1.9.1 では動作しない。Ruby 1.8.7 で問題なく動いた。

Linux サーバのバックアップ先を Amazon S3 にするため、s3sync.rb を利用することにした。昨年、サーバを CentOS にしてから Ruby を使う機会が無かったため、Ruby をインストールしていなかった。そこでちょうど 1.9 がリリースされたところでもあったので、何も考えずに 1.9.1 を何も考えずにインストールしたのだが、残念ながらこの版では s3sync.rb が動作しないことが分かった。これは s3sync.rb と同時に入手できる s3cmd.rb も同様である。

せっかく入れた Ruby 1.9.1 をダウングレードするのは気が進まなかったので、これを残したまま 1.8.7 を別のディレクトリに導入して、両方のバージョンを切り替えられるようにした。Ruby のインストール時、次のように configure を指定してやれば、既存バージョンと競合することはなさそうだ。

$ ./configure –prefix=/usr/local/opt/ruby-1.8.7

これでインストールすれば prefix で指定したディレクトリの下にすべてのファイルが配置される。この状態で /usr/local/opt/ruby-1.8.7/bin にパスを通せば、1.8.7 の Ruby を利用することができるようになり、結果的に s3sync.rb を動作させることができるようになった。もともと s3sync.rb は cron で動かすつもりだったので、バッチファイルの中で Ruby のバージョンを切り替えることにする。