Windows AzureでのMySQL = ClearDBを攻略しよう!

2012年9月26日(水)
浅見 城輝

バックアップ

[Backup & Jobs]タブから、バックアップ履歴の表示とそこからのリストアができます。バックアップは自動で1日1度取得されます。手動で取得することも可能です。

図7:バックアップ履歴の表示。ここからリストアもできる(クリックで拡大)

接続情報

アプリケーションからデータベースに接続するための情報(ホスト名、ユーザー名、パスワード)は[Endpoint information]タブから参照することができます。

Cluster Nodesを見ることで、2つのノードが異なるリージョンで稼働していることも確認できます。

図8:接続情報の参照ができる(クリックで拡大)

管理API

バックアップの実施やデータサイズ、エンドポイントの状況などを取得するためのWeb APIが用意されています。

APIは以下のように呼び出します。

http://www.cleardb.com/service/1.0/api?action=API_METHOD&schema_name=MY_DATABASE_NAME&api_key=MY_API_KEY

APIキーの取得方法

ページ右上にあるメニューから[My Account]から表示されるページの[API Information]にあるAPI Keyがそれです。

用意されているAPI

backupDatabase
パラメータ:api_key, schema_name
手動で指定したデータベースのバックアップジョブを開始します。
restoreDatabase
パラメータ:api_key, backup_id
データベースのリストアを実施します。リストア可能なバックアップのリストはgetBackupsメソッドで取得します。
getBackups
パラメータ:api_key, schema_name
バックアップの履歴を取得します。
getJobs
パラメータ:api_key, schema_name
現在実行中のバックアップまたはリストアの一覧を取得します。
getDatabaseSize
パラメータ:api_key, schema_name
現在のデータベースのサイズを取得します。
getDatasetSize
パラメータ:api_key, schema_name
データベースのサイズと全てのバックアップのサイズの合計を取得します。
getEndpoints
パラメータ:api_key, schema_name
現在利用できるエンドポイントの一覧を取得します。
getEndpointStatus
パラメータ:api_key, schema_name, hostname 指定したエンドポイントデータベースの状態を取得します。指定可能なエンドポイントのリストはgetEndpointsメソッドで取得します。

getEndpointsの例)

http://www.cleardb.com/service/1.0/api?action=getEndpoints&schema_name=wptest0ATaimzDtC&api_key=MWR***********Q==

  {"result":"success","response":{"CDBR_Hostname":"us-cdbr-azure-east-a.cloudapp.net","Cluster_Nodes":["us-mm-azure-east-01.cleardb.com","us-mm-azure-west-01.cleardb.com"]}}

getEndpointStatusの例)

  http://www.cleardb.com/service/1.0/api?action=getEndpointStatus&schema_name=wptest0ATaimzDtC&api_key=MWR**********Q==&hostname=us-mm-azure-east-01.cleardb.com

  {"result":"success","response":"Online"}

http://www.cleardb.com/help/api(要サインイン)

注意点

  • デフォルトではTIME_ZONEがGMTになっています。例えば日本でのみ利用する場合は、接続直後にset time_zone='+9:00';するなどして、タイムゾーンを適切に設定してください。
  • LC_TIME_NAMESは『en_US』になっています。必要に応じて『ja_JP』などに変更してください。
  • AUTO_INCREMENT_INCREMENTが10になっているため、AUTO_INCREMENTを指定して作成した列の値が10ずつ増加します。これは、ClearDBがMaster-Masterレプリケーションで構成されているため、ノード間で値が重複しないようにするためであり、10ずつと大きな値になっているのは将来のために余裕を持っているからです。
    そのため、この値は変更しないようにしましょう。
  • マルチテナント型のデータベースサービスなのでSlow Queryログなどのログファイルを取得することはできません。
  • ユーザーの作成をすることはできないので、接続元のIPアドレスを制限することはできません。
  • ClearDBのサイトから作ったデータベースは、Windows Azureの管理ポータルでインスタンスとのLINKED RESOURCEとして結び付けることはできません。

まとめ

今回はWindows AzureでMySQLを提供しているClearDBについて説明しました。

Windows AzureでMySQLを利用するにはClearDB以外にも、ご自身でWindows Azureの仮想マシンにMySQLを構築する方法もあります。

同時接続数やデータベースサイズ、Slow Queryログの取得など、ClearDBでは要件を満たさない場合は、仮想マシンにMySQLを構築しましょう。

  ClearDB
(Azure管理ポータルで作成)
ClearDB
(ClearDBサイトで作成)
仮想マシンのMySQL
構築の容易さ
(Webサイトと同時に作成)

(数クリックで構築)
×
(可用性を高くするのが大変)
バックアップ・リストアの容易さ ×
(ClearDBのサイトにログインできないので実施できない)

(自動でバックアップ取得、容易にリストア)

(自分でバックアップ設計が必要)
セキュリティ ×
(接続元IPアドレスを制限できない。接続を暗号化するための証明書を取得することができない)

(接続を暗号化するための証明書が用意されている。接続元IPアドレスを制限できない)

(なんでもできるが自身で管理)
同時接続数 ×
(少ない)
×
(少ない)

(好きに設定できる)
データベースサイズ ×
(少ない)
×
(少ない)

(好きに設定できる)

次回は仮想ネットワークについて、弊社(pnop)の廣瀬が紹介予定です。ご期待ください。

【関連リンク】

(リンク先最終アクセス:2012.09)

株式会社pnop

ネットワーク機器メーカーでの情報システム、DB管理パッケージベンダでのコンサルタント、フリーランスを経て、株式会社pnop(http://www.pnop.co.jp/)代表取締役。
クラウドやデータベースのコンサルティングを中心にWebシステムの構築やWindows 8、KINECT開発なども行う。最近は、Windows AzureでPHPやLinuxなどの非マイクロソフトなテクノロジを利用してサービスを動かすことに喜びを感じる日々。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています