2011年3月17日木曜日

無料で使えるクラウドDB Cleardb


クラウドデータベースとしてリリースされたCleardbを紹介したいと思います。


PHP Java Objectiv-C Javascript Ruby .NETなどですぐに利用できるソースコードが公開されているので簡単に利用できます。


ClearDB API Documentation


ClearDBとは


100Mまで無料で利用できるRDBで、高いセキュリティと保守性や高速な動作をウリにしているようです。


DBの操作は提供されるAPIを利用して行います。


APIの制限は月4万回まで無料で利用できます。


http://www.cleardb.com/whatis.html


DBは負荷分散やバックアップなどがボトルネックになりがちなので、DBを異なるサーバで持てるのは大きなメリットです。



テーブルを作る


ユーザ登録が完了したらテーブルを作ります。


上部のメニュー【My Database】⇒【New】⇒【Talbe】


f:id:koujirou6218:20110316153615p:image


テーブルが作成できればブラウザ上から【QueryAnalyzer】を利用してSQLを実行することができます。



APIを利用する


APIとして利用できるパラメータはドキュメントで公開されています。


ClearDB API Documentation


この手順は最も簡単に利用できる方法ですがユーザ登録した時のユーザ名とパスワードを利用します。


次のような手順でSQLを実行します。



  1. ユーザ名とパスワードをGET/POSTメソッドで実行しセッションIDを取得する

  2. セッションIDとSQLをGET/POSTメソッドで実行する

  3. ログアウトする



実行するURLは全てURLエンコードしてください



これがAPIのベースとなるURLです



https://www.cleardb.com/v1/api.php



ログインしてセッションIDを取得する



https://www.cleardb.com/v1/api.php?action=login&username=hogeuser&password=himitu




JSON形式でレスポンスが返ってきます



{"result":"success","response":"398fe198203322b072e0745edfb2fd5f"}




SQLを実行する



https://www.cleardb.com/v1/api.php?action=sqlQuery&session_id=398fe198203322b072e0745edfb2fd5f&query=select * from user




このような手順でCleardbを操作します。



APIキーでアクセスする


前述の方法では、ユーザ名とパスワードをそのまま利用します。


この方法では多人数での利用においてリスクが高いのでAPIキーを利用します。


f:id:koujirou6218:20110316153614p:image


APIキーを利用するには、先ほど作成したテーブルと新たに【My Apps】でAppsを作り関連づけさせます。


My AppsはMySQLでいうユーザ管理にあたります。異なるAPIキーをユーザに配布しユーザごとに権限を変える事が可能になります。



上部メニューの【My Apps】をクリックし【New Apps】でAppsを作ります。(全て入力してください)



Appsを作るとそのAppsに対するApp IDが作成されます。


【Create Key】よりAPIキーを作成します。作成したAPIキーはデフォルトで【DENY READ】になっているので【Show Rules】より権限を適宜変更してください。



キーの作成が完了すれば、Cleardbで公開されているPHPコードを利用してアクセスしてみます。


https://www.cleardb.com/v1/doc/home




// Set your own API Key here.


define('CDB_API_KEY', 'ここにユーザごとのAPIキー');


// Set your own App ID here.


define('CDB_APP_ID', 'ここにApp ID');


// Include the ClearDB PHP API Client for Apps into our code.


require_once('cleardb_app_client.php');


// Create a new instance of the ClearDB class.


$cleardb = new ClearDB_App_Client();


// Retrieve an object array as results from ClearDB.


$users = $cleardb->query("INSERT INTO user (name,age) value('koujirou','24')");


?>




このような感じで普通のDBのように利用できます.



0 件のコメント:

コメントを投稿