目次


アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2)

Comments

このラボでは、Bluemix 上にホストされたデータベース・サービスを利用して Etherpad Web アプリケーションを拡張する手順を説明します。このシナリオで選んだデータベース・サービスは、MySQL サービスです。

Etherpad ラボ 2 のアーキテクチャーのリファレンス・ダイアグラム (1024x593) (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))
Etherpad ラボ 2 のアーキテクチャーのリファレンス・ダイアグラム (1024x593) (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))

始める前に

このラボは、Ubuntu 14 および Mac OSX 開発ワークステーションを対象として作成されています。というのも、これらのプラットフォーム上では、必要なツールを簡単にセットアップできるからです。お使いの開発ワークステーションが別のオペレーティング・システム (Windows など) を実行している場合は、Ubuntu を実行するサーバーを別途用意するか、開発ワークステーション上の仮想マシンで Ubuntu を実行してください。

重要: このラボを開始する前に、このシリーズのラボ 1 を完了しておく必要があります。

このラボでは Bluemix のアプリケーションをコンテナーと組み合わせて使用します。Bluemix のアプリケーションとコンテナーは、現在、Bluemix の内部でコードを実行するための 2 つのまったく異なる概念です。アプリケーションは Cloud Foundry アプリケーション・モデルに密接に対応している一方、コンテナーは Bluemix 上で実行されるというだけの単なる Docker コンテナーです。最終的には、コンテナー・インスタンスをアプリケーションにバインドして、Bluemix 内のアプリケーションとサービスで現在利用可能なネイティブ統合ポイントのすべてを活用できるようになるはずです。

ただし、IBM Containers サービスは試験段階であることから、すべてのユーザーの IBM Containers サービス・インターフェースでネイティブ統合ポイントを利用できるわけではありません。そのため、このラボを含む一連のラボでは、サービスをインスタンス化するためにバインド先とするアプリケーションを作成します。ビルド・ステージと実行ステージでは、そのサービス・インスタンスを直接コンテナーから参照します。作成するアプリケーションは、このラボ・シリーズで使用するサービスのプレースホルダーに過ぎません。将来、アプリケーションとコンテナーの間でのプラットフォーム統合を利用できるようになれば、Docker イメージや Dockerfile で環境変数を使用して、この同じ情報を動的に取得することが可能になります。

タスク 1. MySQL サービス・インスタンスを作成する

このラボでは、Etherpad データのバックエンド・リポジトリーとして使用可能な、管理対象の Database-as-a-Service を提供するパートナー・サービスを利用します。

  1. Bluemix にログインします。すると、以下に示すダッシュボードが開きます。
    Bluemix ダッシュボード
    Bluemix ダッシュボードのスクリーンショット (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))
    Bluemix ダッシュボードのスクリーンショット (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))

    ダッシュボードには、自分の組織でアクティブになっている Bluemix スペースの概要が示されます。
  2. 「CREATE AN APP (アプリの作成)」をクリックします。
  3. すると、「MOBILE (モバイル)」アプリケーションまたは「WEB」アプリケーションのどちらを作成するかを選択するよう促されるので、「WEB」を選択します。
  4. 次に、アプリケーションのランタイムを選択するよう促されます。このラボではサービスを集約するためだけにアプリケーションを使用するので、どのランタイムを選んでも構いません。今後のラボでは、アプリケーション・コンテンツをデプロイするために必要なランタイムを選択します。今回の手順では、ランタイムとして「SDK for Node.js」を選択しました。このランタイムを選択したら、「CONTINUE (続行)」をクリックします。
    注:「始める前に」でも述べたように、作成するアプリケーションは、このラボ・シリーズで作成するサービスのプレースホルダーに過ぎないため、デプロイするコンテナーとの間に、Bluemix インターフェースを介した直接的な相関関係はありません。ラボ・シリーズの演習では、実行するコンテナーの構成ファイルを介して、実行するコンテナーと作成するサービスとの直接的な関連付けを行います。
  5. アプリケーションに意味のある名前を付けて (etherpad-db-app など)「FINISH (完了)」をクリックします。ダッシュボード・ビューに、作成した新しいアプリケーションが表示されるので、そのアプリケーションをクリックして詳細を表示します。
  6. 今度は新しいサービス・インスタンスを作成して、そのインスタンスをアプリケーションにバインドします。左側のナビゲーション・メニューで「Overview (概要)」をクリックします。「Overview (概要)」ページで「ADD A SERVICE OR API (サービスまたは API の追加)」をクリックします。
  7. 「Data Management (データ管理)」セクションまでスクロールダウンして、「ClearDB MySQL Database サービス」をクリックします。
  8. すべてのデフォルト設定を受け入れて「CREATE (作成)」をクリックします。
  9. アプリケーションを再ステージングするよう要求される場合があります。その場合には、「RESTAGE (再ステージ)」をクリックし、アプリケーションが再ステージングされるまで数秒待ちます。
  10. ページが最新の表示に更新されてアプリケーションの再ステージが完了すると、管理対象の MySQL データ・ストアが使用可能になります。
    管理対象の MySQL データ・ストアが使用可能になった様子
    管理対象の MySQL データ・ストアが使用可能になった状態のアプリケーションの「Overview (概要)」ページのスクリーンショット (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))
    管理対象の MySQL データ・ストアが使用可能になった状態のアプリケーションの「Overview (概要)」ページのスクリーンショット (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))

タスク 2. MySQL サービスを利用するようにアプリケーションを構成する

この時点で、Etherpad アプリケーションから接続可能な、管理対象の MySQL データベース・サービスが用意できました。これからアプリケーションを構成しますが、コンテナーのファイル・システム上に置かれた揮発性のローカル・ファイルを使用するのではなく、設定ファイルを使用して新しい永続データ・ストアを指すようにします。

ヒント: Linux では、これ以降に示す各 ICE (IBM Containers Extension) コマンドは、最初に sudo ice を実行してから、続けて実行する必要があります。Mac OSX では sudo コマンドを使用せず、各コマンドの先頭に ice をつけて実行してください。

  1. アプリケーションの詳細が表示された画面で、「ClearDB MySQL Database」サービスの「Show Credentials (資格情報の表示)」をクリックします。
    MySQL Database にアクセスするために使用する資格情報
    「ClearDB MySQL Database」サービスの「Show Credentials (資格情報の表示)」のスクリーンショット (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))
    「ClearDB MySQL Database」サービスの「Show Credentials (資格情報の表示)」のスクリーンショット (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))

    名前 (生成されたデータベースの名前)、ホスト名、ポート、ユーザー名、パスワードのそれぞれをメモします。これらのフィールドはすべて自動的に生成されて、データベース・サービスに設定済みになっています。これらのフィールドの値を使用して settings.json ファイルを更新し、アプリケーションを再デプロイします。
  2. テキスト・エディターで、etherpad-lite/settings.json ファイルを開き、“dbType” : “dirty” で始まる行を見つけます (38 行目あたり)。これらの構成情報の値を、Bluemix の資格情報パネルから取得した値で置き換える必要があります。
    構成情報の設定値 ― 変更前
    settings.json ファイルで変更すべき構成情報のスクリーンショット (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))
    settings.json ファイルで変更すべき構成情報のスクリーンショット (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))
    1. 上記で強調表示されている行をコメント・アウトするか、削除します。“dbType” : “mysql” ブロックを囲んでいるコメント記号を削除します。
    2. Bluemix パネルから取得した username フィールドの値を user フィールドにコピーして、__username__ を置き換えます。アンダーバーは、プレースホルダー・テキストであることを示すためのものなので、アンダーバーも含めて置き換えてください。
    3. Bluemix パネルから取得した hostname フィールドの値を host フィールドにコピーして、__hostname__ を置き換えます。アンダーバーは、プレースホルダー・テキストであることを示すためのものなので、アンダーバーも含めて置き換えてください。
    4. Bluemix パネルから取得した password フィールドの値を password フィールドにコピーして、__password__ を置き換えます。アンダーバーは、プレースホルダー・テキストであることを示すためのものなので、アンダーバーも含めて置き換えてください。
    5. Bluemix パネルから取得した、credentials フィールド配下の name フィールドを database フィールドにコピーして、__database__ を置き換えます。アンダーバーは、プレースホルダー・テキストであることを示すためのものなので、アンダーバーも含めて置き換えてください。

    新しく更新された settings.json を保存します。更新後の settings.json の内容は以下のようになっているはずです。
    構成情報の設定値 ― 変更後
    更新後の settings.json ファイルのスクリーンショット (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))
    更新後の settings.json ファイルのスクリーンショット (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))

注: 本来は、これよりも柔軟な方法で実装できるはずです。ここでは、Docker イメージのビルド時にサービス・プロパティーをハードコーディングしていますが、最終的には Docker イメージが初めてブートする際に任意のサービス・プロパティーを動的にバインドできるようになります。そうなれば、サービス・プロパティーをハードコーディングする必要はなくなりますが、前述のとおり、IBM Containers サービスは試験段階であることから、コンテナーをアプリケーションにバインドしてプロパティーを動的にバインドする機能はまだグローバルに使用できるようにはなっていません。この機能が IBM Containers サービスの今後のリリースで使用可能になった時点で、このラボを更新する予定です。

タスク 3. アプリケーション用のイメージをビルドする

このセクションで説明する内容は、ラボ 1 の「タスク 4. アプリケーション用のイメージをビルドする」と似ていますが、今回のラボ 2 では MySQL サービスを追加で利用しているので、イメージ名はラボ 1 とは異なります。

ヒント: Linux では一般に、以下の ICE (IBM Containers Extension) コマンドは、最初に sudo ice を実行してから、続けて実行する必要があります。Mac OSX では、sudo コマンドを使用しないでください。

  1. ICE コマンド・ライン・ツールにログインします。
    ice login
  2. etherpad-lite ディレクトリーから、以下のコマンドを続けて実行してコンテナーをビルドします。コマンドに含まれるレジストリー URL は、自分用の値を使用する必要があります。これに相当する値は、Bluemix ダッシュボードで「CREATE A CONTAINER (コンテナーの作成)」ボタンをクリックすると開く、コンテナーの起動ページで確認することができます。
    最初に実行する以下のコマンドは、グローバル IBM リポジトリーから最新の公式 IBM Node.js コンテナーを取得します。
    ice --local pull registry-ice.ng.bluemix.net/ibmnode:latest

    2 番目に実行する以下のコマンドは、最初のコマンドで取得した最新イメージと、ラボの GIT リポジトリーから抽出した Dockerfile および settings.json を使用してアプリケーション・コンテナーをビルドします。-t パラメーターで指定されるタグは、ビルドされるイメージに自動的に適用されるので、このタグをローカルで参照することができます。コマンド末尾のピリオド (.) は重要です。このピリオドによって、カレント・ディレクトリー (複製された etherpad-lite ディレクトリー) が作業ディレクトリーとして指定され、Docker はそのディレクトリーからイメージをビルドするようになります。
    • フォーマット:
      ice --local build -t YOUR_LOCAL_IMAGE_NAME .
    • 例:
      ice --local build -t etherpad_bluemix_mysql .
    最後に、リポジトリーに入れるイメージに、以下のフォーマットでタグを付けます。このフォーマットを使用することで、ビルドしたイメージを Bluemix に公開して、IBM Containers サービス上でそのイメージを実行することができます。このコマンドは、前に build コマンドを実行したときにタグを付けたローカル・イメージを取得し、そのイメージにリポジトリー固有のタグを適用します。これにより、イメージを IBM Containers サービスの共有リポジトリーに正しく配置することができます。フォーマットは以下のとおりでなければなりません。これとは一致しない別のイメージ名のフォーマットを使用した場合、イメージを正常に Bluemix にプッシュすることはできません。
    • フォーマット:
      ice --local tag -f YOUR_LOCAL_IMAGE_NAME registry-ice.ng.bluemix.net/ YOUR_REGISTRY_URL / YOUR_REMOTE_IMAGE_NAME
    • 例:
      ice --local tag -f etherpad_bluemix_mysql registry-ice.ng.bluemix.net/bluemix_residency/etherpad_bluemix_mysql
    ローカルのイメージ名とリモートのイメージ名を同じにする必要はありませんが、同じイメージ名を使用すると、ローカルとリモートのイメージ・リストを比較する場合に、比較するイメージを明確にする上で役立ちます。また、ビルド・ステップで初期イメージにフルネームのリポジトリー・タグを付けることもできますが、ローカルで実行するときには短いタグを使用したほうが、イメージを Bluemix にプッシュする前に時間を節約して Bluemix に必要なフォーマットを適用する上では有効です。

    以上のコマンドを実行順に示すと以下のようになります。フォーマットが指定された必須パラメーターを、各自の組織とイメージの情報で置き換えてください。
    ice --local pull registry-ice.ng.bluemix.net/ibmnode:latest
    ice --local build -t etherpad_bluemix_mysql .
    ice --local tag -f etherpad_bluemix_mysql registry-ice.ng.bluemix.net/bluemix_residency/etherpad_bluemix_mysql

タスク 4. アプリケーションをワークステーション上でテストする

コンテナーのビルドが完了したら、試しにローカルで Etherpad Web アプリケーションをテストすることができます。

  1. 以下のコマンドは、Docker コンテナーを起動して、そのコンテナー内で Etherpad を実行するとともに、次のステップで必要となるコンテナー ID (CID) を出力します。
    docker run -d -p 9080:9080 etherpad_bluemix_mysql
  2. 次のステップは、ブラウザーに入力する URL を調べ、実行中の Etherpad Web アプリケーションを確認することです。Linux オペレーティング・システムで、Linux デスクトップ環境を実行している場合は、Docker コンテナー自体の IP アドレスを取得する必要があります。以下のコマンドに含まれる CID は、前のステップの docker run コマンドから出力されたコンテナー ID で置き換えてください。
    docker inspect --format '{{ .NetworkSettings.IPAddress }}' CID
  3. 仮想マシン内で Linux サーバー環境を実行している場合、ホスト・マシンからコンテナー上で実行中の Etherpad にアクセスするために、仮想化プラットフォームのポート・フォワーディングを構成する必要があります。ポート・フォワーディングの構成はプラットフォームによって異なりますが、通常は、ホスト・マシン上のポート 9080 を内部仮想マシン・ゲストに転送するだけで十分です。以下に、VirtualBox ポート・フォワーディングの構成例を示します。
    ポート・フォワーディング・ルールのウィンドウ
    ポート・フォワーディング・ルールの設定画面 (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))
    ポート・フォワーディング・ルールの設定画面 (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))

    同様に、VMWare 上で実行されている仮想マシンにもポート・フォワーディング・ルールが必要です。ただし、「Guest IP (ゲスト IP)」の値には、VMWare 8 ネットワークに関連付けられた IP アドレスを指定する必要があります。

    Mac OSX の場合は、boot2docker が仮想マシン内で Docker を実行しているので、boot2docker の IP アドレスが必要となります (通常は 192.168.59.103)。boot2docker の IP アドレスを取得するには、以下のコマンドを実行します。
    boot2dockerip
  4. このラボでは Etherpad をポート 9080 でホストしているため、ブラウザーで以下のような URL (ポート・フォワーディングを構成してある場合は、192.168.59.103 の部分はコンテナーの IP アドレス、または localhost で置き換えます) を開くことで、実行中の Etherpad アプリケーションをテストすることができます。

    http://192.168.59.103:9080/

    すべてが正常に実行されると、以下に示すようなウェルカム画面が表示されます。
    新規パッドを作成するためのウィンドウ
    ウェルカム画面 (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))
    ウェルカム画面 (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))
  5. この画面から新しいパッドを作成して、いろいろと試してください。前回のラボの例では、パッドのテキストをローカル・ファイルに保存するという、単純な Etherpad のセットアップを使用しました。したがって、データはコンテナーの間で永続化されることはなく、コンテナーをシャットダウンすると、パッドとテキストは削除されました。今回は永続データ・ストアにデータが永続化されるので、サーバーが停止したり、ネットワークの問題が発生したりしても、パッドとテキストを引き続き使用することができます。ここで作成したパッドの名前を覚えておいてください。後でその名前が必要になります。
  6. コマンド・ラインから以下のコマンドを実行して、ローカルで実行中のコンテナー・インスタンスを確認します。
    docker ps

    以下のような出力が表示されるはずです。
    CONTAINER ID IMAGE COMMAND CREATED
    7dad5190094a regist...mysql:latest /src/etherpad-lite/b 18 seconds ago
  7. このコンテナーをいったん停止して再起動したとしても、パッドのデータが失われることはありません。コマンド・ラインから以下のコマンドを実行することで、実行中のコンテナー・インスタンスを停止した後、そのコンテナー・インスタンスを削除します。コマンドに指定するコンテナー ID (7dad で始まる値) は、自分のコンテナー固有のコンテナー ID で置き換える必要があります。
    docker stop 7dad5190094a
    docker rm 7dad5190094a
  8. もう一度 docker run コマンドを実行して、新しいコンテナー・インスタンスを起動します。ただし、アクセスするのは前に作成したパッドなので、前と同じ URL をブラウザーに入力するか、Etherpad ランディング・ページのテキスト・ボックスに同じパッド名を入力します。
    注: IP アドレスを更新しなければならない場合があります。前に実行した docker inspect コマンドを、新しい CID を指定して再実行し、IP アドレスが変更されているかどうかを確認してください。
    docker run -d -p 9080:9080 etherpad_bluemix_mysql

複数のコンテナー・インスタンスの存続期間全体にわたり、変更が永続化されることを確認できます。

先に進む前に、ラボ 1「Bluemix 上で実行中のコンテナー・インスタンスを停止または削除する」の最後に説明した手順に従って、実行中のローカル Docker コンテナー・インスタンスを停止 (およびオプションで削除) してください。

タスク 5. アプリケーションを Bluemix 内で実行する

アプリケーションがローカルで実行されるようになったら、Bluemix 内で実行されているコンテナーにアプリケーションを公開して、インターネット上で実行することができます。その手順は、ラボ 1「タスク 6. アプリケーションを Bluemix 内で実行する」と同様です。

Bluemix 内でコンテナーを実行するためのコマンドは以下のとおりです。いくつかの値は環境に固有の値で置き換える必要があるため、各コマンドのフォーマット設定を読んでから、以下のコマンドを順に実行してください。

ice --local push registry-ice.ng.bluemix.net/bluemix_residency/etherpad_bluemix_mysql
ice images
ice run --name etherpad_mysql_01 registry-ice.ng.bluemix.net/bluemix_residency/etherpad_bluemix_mysql:latest

ice –local push コマンドはコンテナー・イメージを Bluemix に公開し、自分の組織のレジストリーに配置します。レジストリーのスコープは、IBM Containers サービス・インスタンスを作成したときに構成したレジストリー URL によって設定されています。

  • フォーマット:
    ice --local push registry-ice.ng.bluemix.net/YOUR_REGISTRY_URL/YOUR_REMOTE_IMAGE_NAME
  • 例:
    ice --local push registry-ice.ng.bluemix.net/bluemix_residency/etherpad_bluemix_mysql

ice images コマンドは、公開されたイメージの URL と、Bluemix にプッシュした残りのイメージに関連する、他のデータを出力します。

ice images

出力には、先ほどのコマンドで Bluemix にプッシュした etherpad_bluemix_mysql イメージがあること、そしてその etherpad_bluemix_mysql イメージの名前と IBM によって提供されている他の 2 つのイメージとの違いに注意してください。エンド・ユーザーは、ベース・グローバル・ディレクトリーからしかプル操作を行うことができませんが、先ほどのコマンドのフォーマットを使用することで、組織に限定されたリポジトリーに対してプッシュ操作 (またはプル操作) を行うことができます。

自分の組織にスコープが設定されたリポジトリーへのプッシュ操作
ice images コマンドの出力例 (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))
ice images コマンドの出力例 (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))

今度は、以下のコマンドを実行することで、Bluemix 上で実行されるコンテナー・インスタンスを作成します。

ice run -p 9080 --name etherpad__mysql_01 registry-ice.ng.bluemix.net/bluemix_residency/etherpad_bluemix_mysql:latest

コンテナー名を指定するパラメーターは、etherpad_mysql_01 から新規コンテナーの作成時に選択するコンテナー名に変更する必要があります。イメージ名とは異なり、コンテナー名を完全な URL でスコープ設定する必要はありません。コンテナー名は、実行中のコンテナーを識別しやすくするためだけに使用されるものだからです。名前は、ご使用の IBM Containers サービス・インスタンス内で実行中のコンテナー全体で一意である限り、単純なストリングにして構いません。また、registry-ice.ng.bluemix.net/bluemix_residency/etherpad_bluemix_mysql:latest についても、自分用のイメージ URL で置き換える必要があります。URL の末尾にある :latest タグは、そのイメージに複数のバージョンがある場合、最新のバージョンを実行するように指定します。-p パラメーターを指定すると、IBM Containers サービス内で実行されるコンテナーの要求ポートが公開されます。このパラメーターは、コンテナー上でアクセスできるようにしたい各ポートに対して指定する必要があります。

  • フォーマット: ice run --name registry-ice.ng.bluemix.net/ YOUR_REGISTRY_URL / YOUR_REMOTE_IMAGE_NAME :latest
  • 例: ice run --name etherpad_01 registry-ice.ng.bluemix.net/bluemix_residency/etherpad_bluemix_mysql:latest

ice run コマンドによって一意のコンテナー ID (CID) が返されるので、そのコンテナーに対して実行されるコマンドでは、この CID を使用します。以下の例では、CID は dd489740-ffff-4c8f-9117-d94cd147f122 となっているので、これを自分のコンテナー用の CID で置き換えてください。

Web アプリケーションに接続するには、その前に、アプリーションにフローティング・パブリック IP アドレスを割り当てる必要があります。フローティング・パブリック IP アドレスは、ice ip request コマンドを実行すると割り当てられます。以下の例では、129.0.0.0 の部分を ice ip request コマンドから返された IP アドレスで置き換え、dd489740-ffff-4c8f-9117-d94cd147f122 を自分用の CID に置き換える必要があります。

ice ip request
ice ip bind 129.0.0.0 dd489740-ffff-4c8f-9117-d94cd147f122

このラボでは Etherpad をポート 9080 でホストしているため、ブラウザーで以下のような URL (129.0.0.0 の部分は ice ip request コマンドを実行して返された IP アドレスで置き換えます) を開くことで、実行中の Etherpad アプリケーションをテストすることができます。

http://129.0.0.0:9080/

お使いのアカウントでは、無料で取得できるパブリック IP アドレスは 2 つに限られるため、使用していない IP アドレスはアンバインドしてください。以下の例では、129.0.0.0 の部分を ice ip request コマンドを実行して返された IP アドレスで置き換え、dd489740-ffff-4c8f-9117-d94cd147f122 を自分のコンテナー用の CID で置き換える必要があります。

ice ip unbind 129.0.0.0 dd489740-ffff-4c8f-9117-d94cd147f122

実行中のコンテナーの CID や、公開されたイメージ名を参照するには、Bluemix ダッシュボードで「Create A Container (コンテナーの作成)」ビューをクリックするか、以下の ICE コマンドを使用して実行中のコンテナーと公開されたイメージをそれぞれ表示します。

ice ps
ice images

Bluemix 上で実行中のコンテナー・インスタンスを停止または削除するには、操作対象のコンテナーの必要な CID を指定して以下のそれぞれのコマンドを実行します。

sudo ice stop CID
sudo ice rm CID

IBM Containers サービスからコンテナーを削除するには、その前にコンテナーを停止する必要がないことを確認してください。これは、Docker を使用してローカルでコンテナーを実行する際の要件となっています。

タスク 6. MySQL データベース内のアプリケーション・データを検証する (オプション)

これまでのステップに従ってアプリケーションに MySQL データベース・サービスを統合していれば、ワークベンチにデータベースを表示して実際にデータベースにデータが書き込まれていることを検証するために必要なすべての情報は揃っています。この検証を行うためのツールはいくつもありますが、「Credentials (資格情報)」パネルから収集した情報を使用して接続している、MySQL Workbench のスクリーン・キャプチャーを以下に示します。

MySQL Workbench
MySQL Workbench のスクリーン・キャプチャー (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))
MySQL Workbench のスクリーン・キャプチャー (アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2))

store という名前のテーブルが 1 つあり、そのテーブルに、必要なすべてのデータがキーと値のペアという関係で格納されています。これで、先ほどコンテナーを削除して再作成したステップで行った検証に加え、Etherpad アプリケーションの一部として MySQL サービスを実際に利用していることが検証されました。今後のラボでは、Bluemix に用意されているキャッシング・サービスを利用して、さらに高速のデータ・ストアを利用する方法を詳しく説明します。

次のステップ

このシリーズの残りのラボを続けてください。


ダウンロード可能なリソース


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing, Web development
ArticleID=1006236
ArticleTitle=アーキテクチャー・ラボ: データベース・サービスを利用した Web アプリケーションのホスティング (Etherpad ラボ 2)
publish-date=05212015