本文へジャンプします。

ニフティクラウド ユーザーガイド

Automation:ステップ3:DBサーバーの追加

「ステップ2:アプリサーバーだけのスタック作成」で使用したアプリケーションは、固定の文字列を表示するだけの非常にシンプルなものでしたが、 本番環境で動作するアプリケーションは、一般的にはDBサービスを利用します。

このページでは、mystkスタックを拡張してMySQLのDBサーバーを追加する方法を説明します。

DBサーバーを追加するだけでなく、アプリの側でもDBサーバーと通信できるように設定するには、カスタムレシピを作成する必要があります。

SimplePHPAppの更新

左メニューの「アプリ」をクリックし、アプリ一覧を表示します。

アプリ一覧

SimplePHPAppの「操作」からアプリ編集ボタンをクリックします。「アプリ編集」ダイアログが開きます。

「01 基本設定」で下記のようにアプリの設定を変更し「リポジトリ設定へ」をクリックします。

01 基本設定

項目名 説明 入力・選択例
アプリ名 アプリの名前です。 SimplePHPApp
タイプ アプリの種類です。 PHP
ドキュメントルート アプリのルートフォルダを指定します。
  • ※SimplePHPAppの最初のバージョンではデフォルトの設定を使っていましたが、version2は/srv/www/webへ配置する必要があります。
web
メモ サーバーについてのメモです。 任意

「02 リポジトリ設定」で下記のようにアプリの設定を変更し「SSL証明書設定へ」をクリックします。

02 リポジトリ設定

項目名 入力・選択例
リポジトリ種別 Git
リポジトリURL git://github.com/NIFTYCloud/automation-demo-php-simple-app.git
リポジトリSSHキー 任意
ブランチまたはリビジョン名 version2

「03 SSL 証明書設定」では変更を行わず「ドメイン設定へ」をクリックします。

「04 ドメイン設定へ」では変更を行わず「確認へ」をクリックします。

「5 確認」タブで、入力内容を確認します。
修正が必要であれば、「戻る」ボタンをクリックすることで前のタブに戻ることができます。
問題がなければ、「編集する」ボタンをクリックします。

  • ※アプリを更新すると、新規サーバーの場合、起動時に自動的に新しいバージョンのアプリをデプロイされますが、既存のアプリサーバーには、新しいバージョンのアプリをデプロイしないので、お客様にて手動でデプロイを実施する必要があります。

DBサーバーの追加

更新されたSimplePHPAppは、データを保存するためにバックエンドのデータベースが必要です。
mystkスタックにデータベースサービスを追加する一番簡単な方法は、MySQLレイヤーを追加することです。
MySQLレイヤーは、MySQLのDBサーバーを作成するための設計図としての機能を果たします。

左メニューの「レイヤー」をクリックし、レイヤー一覧を表示します。

レイヤー一覧

レイヤー一覧ページで左上の「レイヤー新規作成」をクリックします。「レイヤー新規作成」ダイアログが表示されます。

下記を参考に「01 基本設定」タブで基本設定情報を入力します。入力が終わったら「Chef設定へ」ボタンをクリックします。

「01 基本設定」タブ

項目名 説明 入力・選択例
タイプ レイヤーのタイプを選択します。 DBサーバー(MySQL)
カスタムファイアウォールグループ レイヤー内のサーバーに適用するファイアウォールグループを指定できます。
指定しない場合は、デフォルトのファイアウォールグループが設定されます。
選択しない
MySQLパスワード MySQLのパスワードです。
デフォルトではランダムに生成された文字列が入力されているので必要に応じて任意のパスワードを入力します。
任意
MySQLパスワードを配布する MySQLのパスワードについて、Chef実行時にほかのサーバーからも閲覧できるようにするかどうかの設定です。 有効
メモ レイヤーについてのです。 任意

「02 Chef設定」タブ、「03 パッケージ設定」タブ、「04 ディスク設定」タブについては、特に変更を行わず次へ進みます。

「05 確認」タブで、入力内容を確認します。
修正が必要であれば、「戻る」ボタンをクリックすることで前のタブに戻ることができます。
問題がなければ、「作成する」ボタンをクリックします。

「05 確認」タブ

ダイアログが閉じ、レイヤー一覧に作成されたレイヤーが表示されます。
前のセクションで追加したphp-appに加えて、db-masterが表示されていれば成功です。

レイヤー一覧

Automationのダッシュボードから、mystkスタックをクリックします。

左メニューから「サーバー」を選択します。レイヤー毎のサーバーの一覧が表示されます。

サーバーの一覧

db-masterレイヤー左下の「サーバー新規作成」をクリックします。
ダイアログが立ち上がり、「01 基本設定」タブが表示されます。

下記を参考に基本設定情報を入力します。
入力が終わったら「次へ進む」ボタンをクリックします。

サーバーの一覧

項目名 説明 入力・選択例
ホスト名 サーバーのホスト名です。
デフォルトではスタック名とレイヤーの種別によって自動的に名前が割り振られています。
お客様が任意のホスト名に変更することも可能です。
mystkdbm001
カスタムファイアウォールグループ レイヤー内のサーバーに適用するファイアウォールグループを指定できます。
指定しない場合は、デフォルトのファイアウォールグループが設定されます。
選択しない
ゾーン サーバーが作成されるゾーンです。スタックに設定したゾーンによって決まります。 east-13
サーバータイプ サーバーのスペックを表すタイプです。 mini
料金コース サーバーの料金コースです。従量/月額から選択できます。 従量
SSHキー サーバーにログインする際のSSHキーです。
デフォルトではスタックに設定したSSHキーが表示されています。。
任意
OSイメージ サーバーのOSです。 CentOS 6.3 64bit Plain
メモ レイヤーについてのです。 任意

「05 確認」タブで、入力内容を確認します。
修正が必要であれば、「戻る」ボタンをクリックすることで前のタブに戻ることができます。
問題がなければ、「作成する」ボタンをクリックします。

「05 確認」タブ

ダイアログが閉じ、db-masterのサーバー一覧に作成されたサーバーが表示されます。

作成されたサーバーの右にある「?」ボタンをクリックします。「サーバー起動」ダイアログが表示されます。

「サーバー起動」ダイアログで料金を確認します。
問題がなければ「起動する」にチェックを入れ「OK」ボタンをクリックします。

「サーバー起動」ダイアログ

ダイアログが閉じ、mystkdbm001のステータスが「停止」から「リクエスト済み」に変わります。
ステータスが「オンライン」になるまで10分程度待ちます。

  • ※Automationでは自動的にアプリの短縮名でデータベースを作成します。
    Chefのレシピからデータベースを操作する必要がある場合、この短縮名を利用してください。

サーバー一覧

mystkスタックへのカスタムCookbooks追加

カスタムCookbooksは、アプリと同じように外部リポジトリに置いておくことができます。
すべてのスタックにカスタムCookbooks用のリポジトリを1つ設定できます。
設定されたカスタムCookbooksは、スタック内のサーバーへインストールさせることができます。

左メニューの「スタック」をクリックし、右上のメニューから「編集」を選択すると、「スタック編集」ダイアログが表示されます。

スタックトップページ

「01 基本設定」タブでは、特に編集せず「Chef設定へ」をクリックします。

「02 Chef設定」タブでは、下記のようにスタックの情報を変更し「確認へ」をクリックします。

「02 Chef設定」タブ

項目名 入力・選択例
カスタムCookbooks利用 ON
リポジトリURL git://github.com/NIFTYCloud/automation-example-cookbooks.git
リポジトリ種別 Git
リポジトリSSHキー 入力しない
ブランチまたはリビジョン名 入力しない
カスタムJSON 入力しない

「03 確認」タブで、入力内容を確認します。
修正が必要であれば、「戻る」ボタンをクリックすることで前のタブに戻ることができます。
問題がなければ、「編集する」ボタンをクリックします。

今後は、設定したカスタムCookbooksが、スタック内のすべてのサーバーへインストールされるようになります。
新しいサーバーを作成した場合も、自動的にカスタムCookbooksをインストールします。

  • ※カスタムCookbooksを更新したり、リポジトリに新しいCookbookを追加した場合でも、スタックを編集する必要はありません。
    新しいサーバーが作成された際に、自動的に更新されたCookbooksをインストールします。
    ただし、既存のオンライン状態のサーバー内に存在するCookbooksの更新は、自動的に行われないので、「デプロイ履歴」からUpdate Cookbooksをコマンド実行する必要があります。

レシピの実行

カスタムCookbooksの設定が終わったら、サーバーにレシピ実行させます。

「デプロイ履歴」ページの「コマンド実行」から手動でレシピを実行させることも可能ですが、今回は、レイヤーのライフサイクルイベントを利用して適切なタイミングでレシピを実行させます。

今回の例では、ライフサイクルイベントへ下記の2つのカスタムレシピを割り当てます。

対象 レシピ名  
MySQLサーバー dbsetup.rb SimplePHPAppに必要なテーブルを作成するレシピ
PHPアプリサーバー appsetup.rb implePHPAppを実行するのに必要なパッケージをインストールするレシピ

左メニューから「レイヤー」を選択し、レイヤー一覧を表示します。

レイヤー一覧ページのphp-appレイヤーをチェックし、左上のメニューから「編集」を選択します。

レイヤー一覧

「01 基本設定」タブでは、特に編集を行わず「Chef設定へ」をクリックします。

「02 Chef設定」タブで「deploy」タブを表示し、カスタムレシピに「phpapp::appsetup」と入力し「+」ボタンを押します。
レシピが追加されたら「パッケージ設定へ」をクリックします。

「02 Chef設定」タブ

「03 パッケージ設定」タブ、「04 ディスク設定」タブでは、特に編集を行わず次へ進みます。

「03 確認」タブで、カスタムレシピのdeployにphpapp::appsetupが追加されていることを確認します。
問題がなければ、「編集する」ボタンをクリックします。

「03 確認」タブ

同様に、レイヤー一覧ページのdb-masterレイヤーをチェックし、左上のメニューから「編集」を選択します。

「01 基本設定」タブでは、特に編集を行わず「Chef設定へ」をクリックします。

「02 Chef設定」タブで「deploy」タブを表示し、カスタムレシピに「phpapp::dbsetup」と入力し「+」ボタンを押します。
レシピが追加されたら「パッケージ設定へ」をクリックします。

「02 Chef設定」タブ

「03 パッケージ設定」タブ、「04 ディスク設定」タブでは、特に編集を行わず次へ進みます。

「03 確認」タブで、カスタムレシピのdeployにphpapp::dbsetupが追加されていることを確認します。
問題がなければ、「編集する」ボタンをクリックします。

「03 確認」タブ

SimplePHPApp(version2)のデプロイ

左メニューから「デプロイ」を選択します。デプロイの履歴が表示されます。

デプロイの履歴

左上の「アプリデプロイ」をクリックします。「アプリデプロイダイアログ」が表示されます。

下記を参考にアプリのデプロイに必要な情報を入力します。入力が終わったら「デプロイ」をクリックします。

「アプリデプロイ」ダイアログ

項目名 説明 入力・選択例
アプリ デプロイ対象のアプリです。 SimplePHPApp(php)
コマンド デプロイコマンドの種別です。 Deploy
コメント デプロイに関するコメントです。 任意
カスタムJSON デプロイによって発行されるコマンドJSONを、カスタマイズするためのJSONを入力します。 入力しない
対象サーバー デプロイ対象のサーバーです。 mystkapp301(online)、mystkdbm001(online)を選択

「アプリデプロイ」ダイアログが閉じ、実施したデプロイの履歴が表示されます。
ステータスが、runningからsuccessfulに変化するまで待ちます。

SimplePHPAppの実行

デプロイが完了したら、新しいバージョンのSimplePHPAppに触ってみましょう。

左メニューから「サーバー」を選択し、サーバー一覧を表示します。

mystkapp301のIPアドレス(グローバル)をコピーし、ブラウザのアドレスバーに貼り付けてエンターキーを押します。

サーバー一覧

下記のようなウェブアプリケーションの画面が表示されます。
「Share Your Thought」ボタンをクリックします。

ウェブアプリケーションの画面

適当なテキストと名前を入力して「Submit Your Thought」をクリックします。
「Success! Thank you for sharing your thought.」というメッセージが表示されます。「Go Back」をクリックします。

ウェブアプリケーションの画面

先ほど入力した内容が一覧に反映されているのが確認できます。

ウェブアプリケーションの画面

推奨画面サイズ 1024×768 以上