2015年9月7日月曜日

【Azure】DBに接続

株式会社ジェニシス 技術開発事業部の遠藤 太志郎(Tacy)です。

現在はMicrosoft Azureについて連載中です。
引き続き調査を継続していきます。

DBはどうなった?

さて、前々回のWebアプリ起動にて、CakePHPの起動を行いました。

これを見ると、以下のような記述があります。


  • Your database configuration file is present.

つまるところ、Webアプリ起動時にCakePHPを選んだ時点で、勝手にDBがセットアップされているわけですね。

お手軽なことこの上ないです。
今回はこれに対して接続してみたいと思います。

SQL Databaseではない

まず最初にお断りしておかなければいけないのは、今回のテーマはWebアプリサービスで作ったDBの話です。
Azure界には別のDBもあるのです。

その名は「SQL Database」です。


コンソール画面から行くことが出来ますが、作っていないので当然無いですね。

「SQL Database」は、Microsoftが誇るデータベース「SQL Server」のクラウド版みたいなもので、MySQLとはまた別の製品なんですよ。

検証は出来ておりませんが、クラウドならではの長所はきっとあるのでしょう。
しかし、世の中の製品は、大抵は「SQL Database」なんて想定していなくて、例えば上記で登場しているPHPライブラリ「CakePHP」なんかは、MySQLを選ぶことが標準です。

つまるところ、「SQL Database」を選んでしまうと、「ライブラリが対応していない」「ライブラリの一部機能だけバグる」「そのままでは使えない」みたいなそれなりのハードルがあることが想定されます。
ゼロから気合い入れて大規模サービスを構築する場合はこれも有力選択肢として検討したいですが、今回みたいに「とりあえず初めてみよう」みたいな初期コストを安く抑える発想でスタートするプロジェクトだと、ちょっと敬遠した方が良いんじゃないかなって気がしますね。

Azureの目玉機能の一つである為、「Azure データベース」で検索すると最初に引っかかるのはこちら「SQL Database」ですが、私が今回テーマにしているのは別物ですのでお間違えなく。

設定を探せ

では、DBの接続に必要な設定情報を探していきましょう。
知らないうちに出来上がっているので自分でもどんな設定になっているか分かりません。

探していくと、ここにありました。
Webアプリコンソールの「構成」のページです。


ここの下の方に行くと「接続文字列」という項目があります。


どうやらこれのようです。

「<セキュリティ上の理由により非表示>」とあって接続文字列が非常になっていますが、すぐ上の「接続文字列の表示」をクリックすると表示されます。

厳重機密事項ではありますが、このアプリは検証用で大事なものでも無いですので、一部公開します。

  • Database=tacyA36lcaR9nz8A;Data Source=ja-cdbr-azure-west-a.cloudapp.net;User Id=bcec23b3f13af8;Password=●●●●●●

これらの意味は以下のとおり。

  • データベース名:tacyA36lcaR9nz8A
  • 接続先URL:ja-cdbr-azure-west-a.cloudapp.net
  • ユーザID:bcec23b3f13af8
  • パスワード:●●●●●●

普通ですね。
ポートとかは乗っていませんが、デフォルトということでしょう。

では、これで接続してみます。


これでOKです。
接続出来ました。

簡単ですね!!

ログインしたら既に権限もあって普通に「Create Table」とかも出来ました。

考察

以上、ハッキリ言って特に変わったことなど何も無いです。
本当にハードルが低く作られた良い出来だと思います。

これだけ簡単で互換性も高いとなると有望ですね。

例えば、現行で既に時前でMySQLを持っていますが、これがサーバ故障や負荷などで大変な問題が起きているとします。
でも、サーバ引っ越しは大事ですから、そう簡単には出来ません。

そんな時、こんな風にチョロッとMySQLのインスタンスを作り、DBだけ先行して引っ越しすることも十分可能だということです。
DB接続パラメータを切り替えるだけなら工数も少なめですし、
いつぶっ壊れるか分からないDBを持つより、この方が余程安心でしょう?

理想型は全部Azureに引っ越しですが、こんな小技で乗り切るような柔軟性もAzureにはあるのです。

終わりに

それにしてもAzureは分かり易くて助かりますね。

引き続き検証を進めていきたいと思います。

0 件のコメント:

コメントを投稿