まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf

タグ:cleardb

「ちょっとした MySQL サーバーが使いたい」時に、ClearDB を使うようになりました:
ClearDB - The Ultra Reliable, Geo Distributed Cloud Database For Your MySQL Applications

ClearDB はクラウド上で提供されている MySQL データベースです。いわゆる DBaaS で、バックアップやメンテナンスといった面倒な管理作業は提供側がやってくれます。いわば「契約して使うだけ」の MySQL ホスティングサービスです。用途に応じてサービスレベルや価格が分けられていますが、"ignite" と呼ばれるデータ容量5MBの最小構成であれば無料で使えます。3306番ポートも開放されているので、mysql コマンドから接続して使うこともできちゃいます。

「5MB じゃ何も使えない!?」と思うかもしれませんが、MySQL の動作確認には充分といえます。足りない場合は有料サービスに移行すればいいだけです。

で、この ClearDB を普通に使おうとすると無料サービスでもクレジットカードの登録が必要なんですが、IBM Bluemix 経由で使うと何故か不要です(苦笑)。 
※IBM Bluemix は契約後最大30日は無料で使えますが、その期間中は IBM からも ClearDB からもクレジットカード情報を求められることがない、という意味です。


というわけで、IBM Bluemix を使って ClearDB の ignite プラン(無料サービス)を1つ作成するまでの手順を紹介します。 ・・・と言っても、IBM Bluemix 的には他のサービスとほぼ変わりなく使うことができます。

まず普通に IBM Bluemix にログインします。そして ClearDB サービスを紐付けるためのランタイムを1つ作成します(既存の作成済みランタイムがあればそれを使ってもかまいせん)。下図では "dotnsf-php-20150527" という名前のランタイムを使っていて、この場合を想定して以下を説明します:
2015052701


そのランタイムのダッシュボード画面から「サービスまたは API の追加」をクリックして、「データ管理」カテゴリの "ClearDB MySQL Database" を選択します:
2015052702


サービスの概要が表示されます。アプリとしては選択したランタイム、プランは "Spark DB"(現時点ではこれしか選択できないと思います)が選択されていることを確認します。この場合は「5MB 無料」です。最後に「作成」ボタンをクリックして、このサービスをランタイムに追加します:
2015052703


こんな画面が出たら「再ステージ」をクリックして、ランタイムを再ステージングしてください。この辺りは IBM Bluemix の他のサービス追加作業と何も変わりません:
2015052704


再ステージング完了後の画面です。選択したランタイムに ClearDB サービスが追加できました:
2015052705


では ClearDB の「資格情報」と書かれた所をクリックして、この ClearDB に接続するための情報を調べます:
2015052706


このような情報が表示されます。この JSON 文字列はランタイムの環境変数 VCAP_SERVICES として動的に取得することもできます:
{
  "cleardb": [
    {
      "name": "ClearDB MySQL Database-in",
      "label": "cleardb",
      "plan": "spark",
      "credentials": {
        "jdbcUrl": "jdbc:mysql://UUUUUUUUUUUUUU:PPPPPPPP@us-cdbr-iron-east-02.cleardb.net:3306/ad_DDDDDDDDDDDDDDD",
        "uri": "mysql://UUUUUUUUUUUUUU:PPPPPPPP@us-cdbr-iron-east-02.cleardb.net:3306/ad_DDDDDDDDDDDDDDD?reconnect=true",
        "name": "ad_DDDDDDDDDDDDDDD",
        "hostname": "us-cdbr-iron-east-02.cleardb.net",
        "port": "3306",
        "username": "UUUUUUUUUUUUUU",
        "password": "PPPPPPPP"
      }
    }
  ]
}

この JSON 文字列の "credentials" 内の情報を使うことで ClearDB のデータベースにアクセスすることができます。ホスト名は "hostname" の値(us-cdbr-iron-east-02.cleardb.net)、データベース名は "name" の値(この例では ad_DDDDDDDDDDDDDDD)、ポート番号は "port" の値(3306)、ユーザー名とパスワードはそれぞれ "username" と "password" の値(UUUUUUUUUUUUUU と PPPPPPPP)になります。

このデータベースは(クラウド上の)普通の MySQL として使えるため、IBM Bluemix のランタイム以外からも使えます。実際に mysql クライアントコマンドで接続してみました。当たり前ですがちゃんと使えそうです:
2015052707



上でも書きましたが、このプランではデータ容量が 5MB なので大したことはできません。でも最低限の動作確認や MySQL への接続確認として常に MySQL サーバーがクラウド上にあって使える、という環境は魅力的です。

IBM Bluemix のアカウントがあると、こんな環境も無料で入手できる、ということになります。というわけで、IBM Bluemix のアカウントを作りましょう(笑)。


IBM Bluemix を使うと、自分専用の WordPress 環境を手に入れることができます。

IBM Bluemix は IBM が提供する PaaS のサービスです。本来有償のサービスですが、最長30日間の無料トライアル期間と、トライアル終了後は特定条件下で使う場合に限り無料枠を使った継続利用ができます(無料枠を超えて利用した場合だけ課金されます)。

この無料枠の範囲内であれば、1ヶ月とか1年といった期間の制約なしにアプリケーションサーバーやデータベースサービスを利用することができます。今回はこの無料枠内で利用できるサービスの例としてブログやコンテンツ管理システムとして使われることの多い WordPress サイトを構築する手順を紹介します。なお、以下の内容は 2015/02/20 時点での内容であり、今後変更の可能性があることを留意ください。


まず、以下の作業を無料トライアル期間(サインアップから1ヶ月)内に限って行う場合はいいのですが、無料トライアル期間を超えて運用したい場合は、有償アカウントに移行する必要があります。有償アカウントに移行しても、ここで紹介するアプリケーション・サーバーとサービスのみを使う場合は無料枠内で運用できます(他のサーバーも併用する場合は無料枠を超える可能性もあります)。 トライアルアカウントを有償アカウントに変更するための手順はこちらを参照ください:
IBM Bluemix をトライアル期間(1ヶ月)を超えても無料で使う


では改めて IBM Bluemix 内に WordPress 環境を構築する手順を紹介します。まず IBM Bluemix にログインし、画面右上のデータセンターを「米国南部」にします。2015/02/20 時点で、「英国」データセンターでは以下で紹介する "WordPress on Bluemix" ボイラープレートが定義されていないため、構築の手続きが複雑になります。 今回は「米国南部」データセンターを使う、より簡単な方法を紹介します。 

そして画面上部の「カタログ」を参照すると、"WordPress on Bluemix" というボイラープレート(必要なアプリケーションとサービスを予め定義し、紐付けたテンプレート)が現れるので、これをクリックします:
2015022001


"WordPress on Bluemix" ボイラープレートの内容が表示されます。これを見ると PHP アプリケーション・サーバーに加え、ClearDB(MySQL)、Object Strage、SendGrid という3つのサービスがセットになっていることが分かります。これらを使って WordPress 環境を構築するテンプレートのようです。ここで画面右に一意になる名前(この例では dotnsf-wp)とホスト名(この例では dotnsf-wp)を入力して、最後に「作成」ボタンをクリックします:
2015022002


しばらく待つと ClearDB, Object Strage, SendGrid の3つのサービスがバインドされた状態で PHP アプリケーション・サーバーが起動します:
2015022003


改めて、ここで3つのサービスの利用料金について確認します。2015/02/20 時点ですが、これらのサービスの利用料金は以下のようになっています。制約こそありますが、無料枠の中で利用していくことができそうです:
サービス 利用料金 制約 参照
ClearDB 無料 DBサイズ 5MB、同時コネクション数 4、I/O 低、日次バックアップ有 参照
Object Strage 無料 ベータ版 参照
SendGrid 無料 月25000通までのメッセージ送信 参照


これらのサービスですが、ClearDB の実体は MySQL であり、用途としてはデータストアとして利用されます。Object Strage は画像などのメディアファイルのアップロード先として利用されます。これによってアプリケーション・サーバーが複数台構成になっても正しくメディアを取得できるような対応が可能になります。 また SendGrid はメッセージ送信サービスであり、構築した WordPress 環境のメール送信サービスとして利用します。これら3つのサービスと一緒に WordPress 本体が(PHP サーバー上で)動く、ということになります。 WordPress 環境を1インスタンスで作るだけならデータストアサービスがあればできるのですが、これらのサービスを組み合わせることで初めから IBM Bluemix の複数インスタンス機能に対応することができるようになります。その環境を簡単に構築するためのボイラーテンプレートが用意されている、ということになります。



アプリケーション・サーバーの起動後に名前部分(この例では dotnsf-wp)をクリックすると、アプリケーションサーバーインスタンスの状態が表示されます。メモリは 512MB で1インスタンス。メモリ量に限った計算ですが、これならば IBM Bluemix の無料枠内(月間750GB/H)でも運用可能です。有償アカウント移行後にこの状態よりもメモリを増やしたり、インスタンス数を増やしたりすると無料枠を超える可能性があることに注意してください。 そして「経路」と書かれた箇所に書かれた URL がこのアプリケーションが稼働している URL になります:
2015022004


コピペするなどして、この URL にアクセスしてみましょう。最初だけは WordPress の設定画面が表示され、まず言語を指定します。この例では「日本語」を指定しています:
2015022005


続けてサイトやサイト管理者の情報を入力します。最後に「WordPress をインストール」ボタンをクリックして設定は完了です:
2015022006


設定後に改めてアプリケーション URL にアクセスすると、WordPress の画面が表示されます。なお設定した管理者情報を使ってログインしていると最上段にユーザー情報も表示されます:
2015022007


試しに管理画面(http://(アプリケーションURL)/wp-admin/)にアクセス&ログインして WordPress のプラグイン情報を確認してみます。最初から IBM Object Strage や SendGrid 等のプラグインが導入されており、一部はすでに有効化されていることがわかります:
2015022008


またデフォルトのテーマは "Bluemix Style" と名付けられているようですが、パッと見で "Twenty Fourteen" テーマをコピーしたもののように見えますね。これがベースになっているのだと思います:
2015022009


最後にテーマを変更して見栄えを変えてみます。管理画面の「外観」メニューからテーマの「新規追加」を選び、検索するなどして適当なテーマを選んでインストールします。この例ではカッコよさげな "Tanzanite" という無料テーマを選んでみました:
2015022010


テーマをインストールして、有効化して、改めてトップページにアクセスするとこんな感じ。先ほどとはかなり印象の違うページになりました:
2015022011


ここまでの WordPress 環境がこれだけの手順で、しかも無料で手に入る、ということになります。結構魅力的では?

無料枠を超える話にはなりますが、仮にアクセス数などが急増して1サーバーだけでの対応が難しくなった場合は IBM Bluemix 上のサーバーインスタンスを増やしたり、メモリ数を調整したりもできるので、「本格的な利用を前提とした WordPress サービスの初期運用」にぴったりの環境だと思います。













 

このページのトップヘ