注目の書籍

好評発売中!

知識ゼロから始めるLinuxサーバーの作り方

Linux初心者でも
本格 サーバーが“即席”で 完成!自宅サーバー
クラウド化も!

必聴講座ご紹介

Cloud Days Tokyo 2012
クラウド時代を勝ち抜く企業戦略を考える

エムオーテックス


Cloud Days Tokyo 2012
クラウド時代の企業インフラとユーザー環境の姿

ヴイエムウェア


Cloud Days Osaka 2012
クラウドでIT維新を〜ビジネスを加速させるベストプラクティス

アマゾン データ サービス ジャパン

オープンソース/Linux

Web2.0サイトを自作する

日経Linux

第2回 Amazon WebAPIを使ってみる

2007/07/27
ライター 増井 雄一郎
出典:日経Linux 2007年2月号  31ページより
(記事は執筆時の情報に基づいており、現在では異なる場合があります)

Web 2.0の技術を使って,実際にアプリケーションを作ってみましょう。まず1つめは,AmazonのWebサービスを使った蔵書管理サイトです。Ruby on Railsを使って,Amazonから書籍データをAjax通信で取得し,Webブラウザで一覧できるようにします。

写真1●ISBN番号(左上)
写真1●ISBN番号(左上)

 書籍の裏面を見ると,その本を一意に識別するISBNと呼ばれる番号があるのが分かります(写真1*1。番号が2つある場合には,上の番号がISBNです。書店でもこのISBNを持って行くと,スムーズに注文できます。

 ISBNのデータベースには,番号と書籍名,出版社や著者名などといったデータが登録されています。ISBN番号を入力するだけで簡単に書籍データを取り出すことができます。ただし,ISBNのデータベースは書店向けで一般には公開されておらず,個人では使うことができません。しかし,世界最大手のオンライン書店の米Amazon社が公開しているWebサービスを使えば,Amazonで扱っている書籍の情報をISBNで検索して利用できます。Amazonから取得できる情報には,書籍名などの基本情報以外に,表紙の画像やAmazon内での売り上げランキングなどがあります。

 本記事では,AmazonのWebサービスを使い,ISBN番号を入力するだけで,書籍を管理できるサイトを作ります。この蔵書管理サイトは,書籍の登録,一覧表示,編集,削除を行うことができます(写真2)。こうしたアプリケーションはRuby on Railsのもっとも得意とするところです。Ajax技術を使って,ページを更新せずに,Amazonの情報を取得するようにします。

写真2●今回作成する蔵書管理サイト
写真2●今回作成する蔵書管理サイト

Rubyをインストールする

 まず,Webアプリケーションの土台となる各種ソフトウエアを導入しましょう。

 以下では,Linuxディストリビューションとして,Fedora Core 5を使ったケースで説明します。Fedora Coreの開発環境をインストールしていない場合は,「アプリケーション」メニューの「ソフトウエアの追加と削除」を選び,「開発」から「開発ツール」,「開発ライブラリ」を選ぶなどして,開発環境を導入してください。

 蔵書のデータを保存するデータベース・ソフトには,「SQLite3」を使うことにします。SQLite3は,MySQLやPostgreSQLなどと違い,デーモンを稼働させないデータベース・サーバーです。

 Webサーバーには,Ruby on Railsの「Webrick」を使います。Webサーバーとしての基本的な機能は持っているため十分です。Apache HTTP Serverをインストールする必要はありません。

 Ruby on Railsの実行にはRuby 1.8.4以上が必要になります。これは,Fedora Coreで提供されているパッケージを,yumコマンドを用いて導入します*2。同時にSQLiteのパッケージも導入しておきます(写真3)。

写真3●SQLiteの導入
写真3●SQLiteの導入

# yum install ruby ruby-libs ruby-devel irb rdoc sqlite-devel 

 Rubyが正しくインストールされたかをチェックします。

$ ruby -v 

 インストールされていればバージョンが表示されます。1.8.4以上なら正しく導入されています。

RubyGemsをインストールする

 続いて,「RubyGems」というパッケージ管理ソフトを導入します。RubyGemsは,yumやaptのようにネットワークからの自動インストールを行うソフトです。Ruby on Railsをはじめとして,多くのRubyアプリケーションは,RubyGemsの形式でパッケージ化されて提供されています。まず,このRubyGemsを導入し,そこからRuby on Railsやその他のパッケージを導入します。

 RubyGemsは,yumのパッケージでは提供されていないので,yumでは導入できません。そのため,ソースから導入します。ソースのアーカイブ・ファイルrubygems-0.9.0.tgzは,ダウンロード・ページから取得できる本連載用コンテンツ(toku1.tar.gz)を解凍するか,RubyForgeからダウンロードしてください。

 rubygems-0.9.0.tgzを取得後,次のコマンドを入力して,導入します。

$ tar xzf rubygems-0.9.0.tgz 
$ cd rubygems-0.9.0 
$ ruby setup.rb config 
$ ruby setup.rb setup 
$ su 
パスワード(P): rootのパスワード 
# ruby setup.rb install 

 正しく導入されれば,gemコマンドが利用できるようになります。正常に導入されたか,図1のように確認してみます。エラーが出なければ,導入完了です。

$ gem environment
Rubygems Environment:
- VERSION: 0.9.0 (0.9.0)
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- GEM PATH:
- /usr/lib/ruby/gems/1.8
- REMOTE SOURCES:
- http://gems.rubyforge.org
図1●RubyGemsがインストールできたかを確認

Ruby on Railsを導入する

 次に,Ruby on Railsをインストールします。本連載用コンテンツには,Ruby on Rails 1.1.6のgemパッケージを収録しています。gemコマンドを使い,*.gemファイルを導入していきます。

 先ほど解凍したtoku1.tar.gzの中のgemsディレクトリに必要なパッケージがすべてそろっているので,これを導入します(図2)。

# cd gems
# gem install activesupport-1.3.1.gem
# gem install actionpack-1.12.5.gem
# gem install activerecord-1.14.4.gem
# gem install actionwebservice-1.1.6.gem
# gem install actionmailer-1.2.5.gem
# gem install rake-0.7.1.gem
# gem install rails-1.1.6.gem
# gem install sqlite3-ruby-1.1.0.gem
図2●本連載用コンテンツに収録したRuby on Railsと関連ソフトをgemコマンドで導入する

 なお,インターネット経由で導入するには,図3のようにします。インストール中にsqlite-rubyのバージョンを聞かれるので,最新のバージョンで「(ruby)」と付いている選択肢を選んでください。

# gem install rails sqlite3-ruby --include-dependencies
...( 中略)...
Select which gem to install for your platform (i386-linux)
1. sqlite3-ruby 1.1.0 (mswin32)
2. sqlite3-ruby 1.1.0 (ruby)
...( 中略)...
9. sqlite3-ruby 0.6.0 (ruby)
10. sqlite3-ruby 0.5.0 (ruby)
11. Cancel installation
> 2  ← 最新の(ruby)を選択
...( 中略)...
図3●インターネット経由でRuby on Railsを導入する方法activesupportやRakeも同時にインストールされる。

 正しくRuby on Railsが導入されたかを確認してみましょう。

# rails -v 
Rails 1.1.6

 バージョンが表示されれば,正しく導入されています。

 これでRuby on Railsでアプリケーションを開発するために必要なパッケージは,すべて導入されました。

 続いて,Rubyアプリケーションの実行環境を導入します。具体的には,Amazon のWebAPIを操作するRubyのライブラリなどです。詳細は解説しませんが,jsonやfeedtoolsなどがあります。

 先と同じディレクトリで,図4のようにコマンドを実行します。ネットワークからインストールする場合には,図5のように実行します。インストール中に,hpricotのバージョンを聞かれますので,最新のバージョンで(ruby)を選択してください。

# gem install json-0.4.1.gem
# gem install uuidtools-1.0.0.gem
# gem install builder-2.0.0.gem
# gem install feedtools-0.2.26.gem
# gem install icalendar-0.97.gem
# gem install hpricot-0.4.gem
# gem install amazon-ecs-0.5.0.gem
# gem install daemons-0.4.4.gem
# gem install gem _ plugin-0.2.1.gem
# gem install mongrel-0.3.13.3.gem
図4●本連載用コンテンツを使ってRuby実行環境を一気にインストールする

# gem install json feedtools icalendar amazon-ecs mongrel --inclu
de-dependencies
...(中略)...
Select which gem to install for your platform (i386-linux)
1. mongrel 0.3.13.4 (ruby)
2. mongrel 0.3.13.4 (mswin32)
3. mongrel 0.3.13.3 (ruby)
4. mongrel 0.3.13.2 (ruby)
...(中略)...
43. Cancel installation
> 1 ← 最新の(ruby)を選択
...(中略)...
1. hpricot 0.4 (ruby)
2. hpricot 0.4 (mswin32)
3. Cancel installation
> 1 ← 最新の(ruby)を選択
...(中略)...
図5●図4と同じことをインターネット経由で実施する方法

 これで,本連載で作成するRubyアプリケーションの実行環境が整いました。

>>アプリケーションを導入する
次ページ以降はITpro会員(無料)の方のみお読みいただけます。
会員の方は、 ログインしてご覧ください。
まだ会員でない方は、ぜひ登録(無料)していただき、ITproの豊富なコンテンツをご覧ください。

この記事に対するfacebookコメント

nikkeibpITpro

読みましたか? 〜 未読記事をご紹介