新しいPaaS?のDotCloudを試す – λab’s Blog

1か月前くらいに登場した謎のサービスDotCloud。ベータ版利用申し込みしたっきり、音沙汰なしだったけど、今日beta invitationが来た。

http://www.dotcloud.com

なんかAmazonEC2上にホスティングされているPaaSみたいなものっぽい。

beta invitationをゲットしたら、アカウントを作成してログイン。

適当なUbuntuマシーンで作業。

sshの公開鍵(ssh-keygenしてね)を登録する。

この辺までは省略。

環境セットアップ

まずeasy_installを用意。

$ sudo apt-get install python-setuptools

以降、チュートリアルにしたがう

$ sudo easy_install dotcloudSearching for dotcloudReading http://pypi.python.org/simple/dotcloud/Reading http://www.dotcloud.comBest match: dotcloud 0.2.1Downloading http://pypi.python.org/packages/source/d/dotcloud/dotcloud-0.2.1.tar.gz#md5=1f35ee96b1236b9ce856297b10d813e7Processing dotcloud-0.2.1.tar.gzRunning dotcloud-0.2.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-w4dBkh/dotcloud-0.2.1/egg-dist-tmp-v4oknvwarning: install_lib: 'build/lib.linux-x86_64-2.6' does not exist -- no Python modules to installAdding dotcloud 0.2.1 to easy-install.pth fileInstalled /usr/local/lib/python2.6/dist-packages/dotcloud-0.2.1-py2.6.eggProcessing dependencies for dotcloudSearching for dotcloud.cli>=0.2.1Reading http://pypi.python.org/simple/dotcloud.cli/Best match: dotcloud.cli 0.2.1Downloading http://pypi.python.org/packages/source/d/dotcloud.cli/dotcloud.cli-0.2.1.tar.gz#md5=9ca058f129fabdd78acbf37eb6e14a61Processing dotcloud.cli-0.2.1.tar.gzRunning dotcloud.cli-0.2.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-HBXrP1/dotcloud.cli-0.2.1/egg-dist-tmp-bJuq0EAdding dotcloud.cli 0.2.1 to easy-install.pth fileInstalling dotcloud script to /usr/local/binInstalled /usr/local/lib/python2.6/dist-packages/dotcloud.cli-0.2.1-py2.6.eggFinished processing dependencies for dotcloud

DotCloudにアクセス

$ dotcloudWarning: /home/maki/.dotcloud.conf does not exist.Enter your api key (You can find it at http://www.dotcloud.com/account/settings):(Setting画面に表示されるAPIキーを入力)

使い方がおかしいと怒られる

error: usage: dotcloud [-h]                {status,info,run,logs,deploy,setup,list,ssh,destroy,push,rollback,restart}                ...

が、これでデプロイ環境が整う。

$ dotcloud deploy -herror: usage: dotcloud deploy [-h] -t                       {python-worker,postgresql,php-worker,python,ruby-worker,redis,rabbitmq,static,mysql,java,php,ruby}                       [-c CONFIG]                       nameDeploy a new service  python-worker Run Python daemons reliably  postgresql    The PostgreSQL database  php-worker    Run PHP daemons reliably  python        Serve any WSGI-compatible python application  ruby-worker   Run Ruby daemons reliably  redis         An advanced, in-memory key-value store  rabbitmq      AMQP messaging server  static        Server static HTTP content  mysql         The MySQL database  java          Serve any jar/war java servlet  php           Serve any PHP application  ruby          Serve any RACK-compatible ruby applicationpositional arguments:  name                  Fullname of your serviceoptional arguments:  -h, --help            show this help message and exit  -t {python-worker,postgresql,php-worker,python,ruby-worker,redis,rabbitmq,static,mysql,java,php,ruby}, --type {python-worker,postgresql,php-worker,python,ruby-worker,redis,rabbitmq,static,mysql,java,php,ruby}                        Service type  -c CONFIG, --config CONFIG                        Set configuration

使えるコンポーネントが列挙されています。RedisRabbitMQが珍しどころです。

簡単なPHPのサービスをデプロイしてみる

dotcloud deploy -t <サービスタイプ> <デプロイ名>.<サービス名>

$ dotcloud deploy -t php hoge.wwwCreated "hoge.www"$ dotcloud info hoge.wwwcluster: wolverineconfig:    path: /    static: staticdeployment: hogename: hoge.wwwports:-   name: ssh    url: ssh://dotcloud@www.hoge.dotcloud.com:1213-   name: http    url: http://www.hoge.dotcloud.com/type: php

URLはhttp://<サービス名&gt;.<デプロイ名>.dotcloud.com/となる。

この状態でhttp://www.hoge.dotcloud.com/にアクセスするとphpinfo画面が出た。

自分の環境で適当にPHPコードを書きます

$ mkdir -p dotcloud/hoge$ cd dotcloud/hoge$ echo "<?php echo 'hello world! ' . time();" > index.php

さっき作ったクラウド上にプッシュします。

$ dotcloud push hoge.www .# upload . ssh://dotcloud@uploader.dotcloud.com:1060/hoge.www# rsyncbuilding file list ... done./index.phpsent 128 bytes  received 34 bytes  24.92 bytes/sectotal size is 37  speedup is 0.23Scheduling buildBuild started. To read the build logs:$ dotcloud logs --build hoge.www

なんかrsyncされた!

http://www.hoge.dotcloud.com/にアクセスすると

Hello Worldキター

次にMySQL

$ dotcloud deploy -t mysql hoge.dbCreated "hoge.db"$ dotcloud info hoge.dbcluster: wolverineconfig:    mysql_password: <パスワード>deployment: hogename: hoge.dbports:-   name: mysql    url: mysql://root:<パスワード>@db.hoge.dotcloud.com:1271-   name: ssh    url: ssh://dotcloud@db.hoge.dotcloud.com:1272type: mysql

なんかこれだけでMySQLのセットアップができちゃいました。

PHPからMySQLに接続してみる

チュートリアル通りの簡単な例

<?php$db = mysql_connect("db.hoge.dotcloud.com:1271",                     "root", "<パスワード>");$result = mysql_query("SELECT 40+2");$row = mysql_fetch_row($result);$column = $row[0];echo "SQL says 40 + 2 = " . $column;

プッシュします

$ dotcloud push hoge.www .# upload . ssh://dotcloud@uploader.dotcloud.com:1060/hoge.www# rsyncbuilding file list ... done./db.phpsent 280 bytes  received 40 bytes  71.11 bytes/sectotal size is 272  speedup is 0.85Scheduling buildBuild started. To read the build logs:$ dotcloud logs --build hoge.www

http://www.hoge.dotcloud.com/db.phpにアクセスすると

でました。

チュートリアルを試しただけですが、簡単にコンポーネントを追加できて、これはすごいサービスな気がする。。

明日はJavaやRedisを使った例を紹介したい。

現在無料なので色々試したいところ。

【参考】Djangoを使う例

※ beta invitaionがすぐにほしい場合は@dot_cloudtweetすればいいらしい

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中