デプロイ田中です、みなさんこんにちは!!。。
本日は、最近ちらほら聞きます PaaS 型クラウド dotCloud さんに WordPress をデプロイしてみるです。 まぁ無料版のでやっているのでお遊びなのですが、まずはなかなかうまく動くようですぞ。 🙂
dotCloud は、さまざまなプラットフォームのアプリケーションを配置できるいわゆる PaaS のサービスです。 Java はもちろん Ruby や PHP、サーバサイド JavaScript の node.js なんかも動作するようです。 また各種データベースも動作します。
DotCloud – Deployment made simple
DotCloud lets you create the best cloud stack for your application. We give developers and IT professionals the freedom and flexibility to mix and match languages, databases, caching and messaging components without the need for additional servers or infrastructure.
PHP を扱っているとアプリケーションをサーバにインストールする行為というのは、FTP か何かでファイルを「置く」みたいな感じなので感覚が違うかもしれませんが、PaaS というのは OS にアプリをインストールするようなイメージで使います。 ここでいっている “OS” にあたるのがアプリケーションサーバというやつです。
まぁそうは言っても PHP にはアプリのインスタンスを保持するような仕組みはないので実質的にはファイルが置かれるだけなのですが、dotCloud の管理ツールの使い方的には PHP でもそんな感じになります。
さて、PaaS が普通の Web レンタルサーバと何が違うかというと、OS 的な部分が隠ぺい(クラウド)されていることです。 メモリとかファイルシステムとかネットワークとかリソースをあんまり考えずに使えるようになっていて、また必要であれば動的に付け足すことができます。
あとスナップショットバックアップのような、その時のサーバそのものをバックアップ保持するような機能がついているのも多いですね。 アプリケーションを簡単に動作させて運用するために特化した機能がついたサーバが PaaS。 この技術の後ろに見え隠れそるのがサーバ仮想化技術になります。
ぼく的な PaaS の感覚は、いろんな言語や動作プラットフォームを使ってインターネット上にアプリを公開できてわーい、、という感じなものです(笑)
てなわけで早速、Groovy のアプリをデプロイ、、といきたいところですが、ここは勝手知ったる WordPress でまずはお試しデプロイです。
dotCloud には便利な管理操作用 CLI インターフェースが用意されていますので、こちらで操作します。 python が必要なのでお使いの OS にいれて、、最初 easy_install というのが何かさっぱりわからなかったのは秘密です。。(マニュアル参考)
$ sudo apt-get install python-setuptools
$ sudo easy_install pip && sudo pip install dotcloud
Ubuntu 11.04 の場合はこれで準備完了。 簡単アルネ。
API キーなど入れながら、アプリケーション(名)作成。(誰かとかぶらない任意の名前)
$ dotcloud create maple4ever
あとは WordPress をローカルのどこかのディレクトリに展開し、そのルートに dotcloud.yml ファイルを以下のようにして PHP と MySQL サービス設定。
wp:
type: php
db:
type: mysql
でもって、このディレクトリをカレントにおいて push します。
$ dotcloud push maple4ever .
これでデプロイ完了。
起動した MySQL インスタンスに WordPress 用の DB を create databese します。 とりあえず MySQL の情報閲覧。 「アプリケーション名.サービス名」で info コマンドしてあげます。
$ dotcloud info maple4ever.db
build_revision: rsync-1309187922.37
cluster: wolverine
config:
mysql_password: nyoron
mysql_serverid: -1
created_at: 1309187925.281122
ports:
- name: ssh
url: ssh://dotcloud@ugogogo.dotcloud.com:9284
- name: mysql
url: mysql://root:mogemoge@hogehoge.dotcloud.com:9344
state: running
type: mysql
WordPress に設定する DB ホストは hogehoge.dotcloud.com:9344 のところなのでメモ。(デフォルトポートと違うので全部いれる)
create table & ユーザ作成。 こんなかんじ。 キャラセットは指定するとはじかれたので、そのまま行きました。
$ dotcloud run maple4ever.db -- mysql -u root -p[パスワード]
# mysql -u root -p[パスワード]
mysql> CREATE USER 'wp' IDENTIFIED BY '[任意のパスワード]';
mysql> create database wp;
mysql> GRANT ALL ON wp.* to 'wp'@'%';
上はデータベース名 wp 、ユーザ名 wp で設定の図。
次に info コマンドで php サービスの URL を取得して普通にブラウザアクセス。
$ dotcloud info maple4ever.wp
- name: http
url: http://d84fa7d5.dotcloud.com/
state: running
type: php
あとはいつもの通り WordPress をインストールすれば、
ようこそ WordPress の世界へ。 🙂
[tegaki]動いた~![/tegaki]
WordPress 3.2 RC2 日本語版キタ。 サイト中身はめ組さんの「日本語版インポートテストデータ」です。 試験に大変便利なので見てみてください。 🙂
(そのうち消えます。)
残念ながら dotCloud 無料版ではドメインマッピングできないので変なホスト名ですが、なかなかよく動きますね~。 memcached のインスタンスもあげられるようなので、追加してみるといいかもしれません。
httpd は nginx を使っているようです。 いじればパーマリンクも設定できると思います。 ファイルのアップロードなども問題なく動きます。(ちなみに Java のアプリケーションサーバは Jetty のようです)
てなわけで、ネットワーク上に好きなアプリを簡単に配置して使う。 そんなことができるようになるかもしれない PaaS プラットフォームのお話でした。 他にも cloudBees とか同様のサービスがありますので探してみるのも面白いでしょう。
ばいっ。(←芸風がおかしい。。