まず最初に、今回のブログエントリは IBM Bluemix の中でも現状では承認制のベータ機能を紹介するものなので、Bluemix アカウントを持つ全ての人が使えるわけではない、ということをお断りしておきます。

ただ、それでもこの機能はこれまでの IBM Bluemix では苦手としていた自由度の高いサーバーインスタンスを作る(もはやサーバーである必要もなく、デスクトップでもいいけど)という点で大きなアドバンテージのある機能なので、既に使える人や、今後承認されて使えるようになる人向けに紹介します。


IBM Bluemix はオープンソースの PaaS である CloudFoundry をベースにしたクラウド環境です。ということもあって、これまでは「Bluemix は PaaS」と紹介することも多くありました。これはこれで間違いではないのですが、PaaS 故の得意・不得意分野がありました。例えば「アプリケーションサーバーを追加する」とか「データベースサーバーを追加する」といった目的であれば PaaS の土俵なので、IaaS 環境と比べても非常に高いアドバンテージを発揮できていました。しかし「サーバーではなくひたすらバッチ処理を実行するインスタンスを追加したい」とか「SSH でログインして必要に応じて各種ログを見たい」といった自由度の高い目的を実現しようとすると PaaS の特徴が制約となってしまい、IaaS 環境と比べて面倒に感じることもありました。

そんな中、IBM Bluemix は進化を遂げました。もともとは CloudFoundry をベースとした PaaS でしたが、今では Docker コンテナとして利用することもできます(これも承認制)し、更には今回紹介する OpenStack の VM インスタンスを作成することもできます。こうなるともはや PaaS と呼ぶことに抵抗が出てきます。IBM Bluemix は今や「CloudFoundry をベースとした IBM サービスの PaaS であり、Docker のコンテナであり、OpenStack VM の IaaS でもある統合クラウド環境」と説明する方が的確だと感じます(長いけど)。
2015050601


これは非常に魅力的なクラウド環境です。例えばアプリケーションサーバーは Docker のコンテナ資産として用意されているものを流用しながらバックエンドサービスで IBM のコグニティブ(認識型人工知能)サービスを使ったり、あるいはアプリケーションサーバーは OpenStackVM で自由にミドルウェアや管理機能を導入してパブリッククラウドを構築した上で、IBM CastIron をベースとした統合サービスを使って社内データに安全にアクセスする機能と統合したり、といったエンタープライズクラウド環境を IBM Bluemix だけで実現することができるようにもなったことを意味しています。


前置きが長くなりましたが、今回はこの中の OpenStack VM インスタンスを生成して利用する手順を紹介します。この IaaS 的なインスタンスが Bluemix にどのように統合されているのか、といった点で、今後この機能を利用できるユーザーが増えた時の手助けになれば嬉しいです。


では改めて Bluemix 環境内に OpenStack の VM を作成する手順を紹介します。2015/05/06 現在、この機能を使うためには事前に申請を行う必要があります。そしてその申請が受け付けられた、というメールを受け取れば Bluemix 上に OpenStack VM を作成することができるようになります。この点を事前にクリアしている場合のみ以下の手順が使えるようになります:
2015050501


Bluemix にログイン後、ダッシュボードの「仮想マシン」を選択すると OpenStack の VM の状態が表示されます。この図では8つの vCPU、12GB のメモリ、11 個のパブリック IP が使える状態になっていることが分かり、この範囲内で VM を生成して利用することができます。またこの図ではまだ1つも VM が動いていませんが、生成済みの VM がある場合はこの画面から参照することもできます。ここで「仮想マシンの作成」をクリックして、今から作る VM の内容を指定します:
2015050502


VM の内容を指定する画面に切り替わります。この画面では作成する VM の OS、名前、スペック、そしてアクセス用の認証鍵を指定します。なお OS は手持ちのディスクイメージをアップロードすることも可能です。ここでは OS は CentOS 6.5、名前は dotnsf-vm1(任意)、スペックは m1.small(CPU * 1、メモリ 2GB、ディスク 10GB)を指定しました。最後に認証鍵を新規に追加します。Secret Key と書かれた箇所の下の "+Add Key" 部分をクリックします:
2015050503


ここで認証に使う鍵をインポートして追加します。こちらで紹介した方法などであらかじめ鍵ファイルのペア(秘密鍵と公開鍵)を用意しておきます。"Add Key" 画面で "IMPORT" を選び、Key Name に鍵の名前を入力します。そして公開鍵をテキストエディタで開き、その中身を Public Key to import 欄にコピー&ペーストして最後に "OK" をクリックします:
2015050504


ここまでの手順が成功すると公開鍵がインポートされ、一つ前の画面に戻った時の Secret Key として、追加した鍵が選択できるようになります。インポートした鍵を選択して最後に "CREATE" ボタンで VM を作成します:
2015050505


これで指定されたスペックの VM が作成され、起動が始まります。ダッシュボード画面で少し待つと起動も完了し、IP アドレスの割り振りも完了して VM インスタンスとして利用可能な状態になります。なお IP アドレスはパブリックアドレスとプライベートアドレスの2つが割り振られますが、最初に表示されているのがパブリックアドレスです。なおこの画面からインスタンスの数を変更することも可能です:
2015050506


また左ペインの "Auto-scale" を選択するとオートスケールの設定を行うことも可能です:
2015050511


最後に作成した VM に SSH からログインしてみます。用意した秘密鍵が使えるツール(Windows であれば TeraTerm など)で VM のパブリック IP アドレスに SSH2 でログインします:
2015050507


認証ではユーザー名は ibmcloud 、パスフレーズは秘密鍵を作成した時に指定したパスフレーズ、そして秘密鍵として用意した秘密鍵のファイルを指定します。最後に OK ボタン:
2015050508


全て正しい情報が指定されていれば作成した VM に ibmcloud ユーザーで SSH ログインできます:
2015050509


この ibmcloud ユーザーは sudo 権限を持っているので "sudo /bin/sh" と実行すると root ユーザーでのシェルに切り替わります。こうなればツールのインストールも設定ファイルの書き換えも自由にできます:
2015050510


ここまでできればもう普通の CentOS インスタンスと同様です。アプリケーションサーバーをインストールするなり、データベースサーバーをインストールするなり、X Window と VNC サーバーを導入してリモートデスクトップ環境にしたり、自由な目的で使えるインスタンスが Bluemix 内に生成できました!


今回は Bluemix 上に仮想マシンを生成する手順を紹介しました。Bluemix はこれ以外にも Docker コンテナを扱うこともできます。PaaS としてのリリースから1年経ちますが、いつの間にか IaaS 環境まで取り込まれていました。この進化のスピードについていくのも大変ですが(苦笑)、ますます魅力的なプラットフォームになりました。