Comments
Description
Transcript
RightScale 上での IDCF 3-Tier モデル 構築
RightScale 上での IDCF 3-Tier モデル 構築チュートリアル 株式会社 IDC フロンティア 第1版 2012 年 3 月 13 日 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 目次 1. 本ドキュメントについて.............................................................................................................................................. 4 2. 改訂履歴.................................................................................................................................................................. 4 3. 3-Tier モデルの概要 ................................................................................................................................................. 5 4. 前提条件.................................................................................................................................................................. 7 5. 事前準備.................................................................................................................................................................. 8 5.1. クラウド API キー、秘密鍵の取得と RightScale への登録 .................................................................................... 8 5.2. 公開用 Global IP アドレスの取得 .......................................................................................................................11 5.3. SSH ログインのための秘密鍵作成 .....................................................................................................................11 5.4. Credential への入力パラメータの保存 ............................................................................................................... 12 5.5. サンプルコンテンツのダウンロード .................................................................................................................... 12 5.6. 外部 DNS サービスへのレコード登録................................................................................................................ 13 6. Contents Store の構成............................................................................................................................................ 14 6.1. Deployment の作成 ........................................................................................................................................... 14 6.2. Contents Store 用 ServerTemplate のインポートと Server 作成.......................................................................... 14 6.2.1. ServerTemplate のインポート................................................................................................................. 14 6.2.2. Contents Store Server の作成 .............................................................................................................. 15 6.2.3. Input 変数のカスタマイズと仮想マシンの起動........................................................................................ 17 6.2.4. 外部からの SSH 通信許可ポリシーの設定 ............................................................................................ 19 6.2.5. サンプルコンテンツデータのアップロード................................................................................................ 19 7. MasterDB MySQL Database の構成 ........................................................................................................................ 20 7.1. Database Master Server の作成........................................................................................................................ 20 7.1.1. Database 用 ServerTemplate のインポート............................................................................................. 20 7.1.2. Database Server の作成........................................................................................................................ 20 7.1.3. Input 変数のカスタマイズと仮想マシンの起動........................................................................................ 21 7.2. Database Slave Server の作成 .......................................................................................................................... 22 7.2.1. 複製による Slave Server の作成............................................................................................................ 22 7.2.2. Slave Server の名称、Input の編集と仮想マシンの起動......................................................................... 22 8. PHP Web アプリケーションサーバの構成 ................................................................................................................. 23 8.1. PHP アプリケーションサーバ用 ServerTemplate のインポート............................................................................. 23 8.2. AutoScale に対応した Server Array の作成 ....................................................................................................... 23 8.2.1. PHP Web アプリケーションサーバの Slave Array の作成........................................................................ 23 8.2.2. PHP Web アプリケーションサーバの Input の設定 .................................................................................. 25 8.3. アプリケーションサーバの AutoScale 設定 ........................................................................................................ 26 8.4. Array の有効化と Instance の起動..................................................................................................................... 28 9. 動作検証................................................................................................................................................................ 29 2/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 9.1. Web サーバへのアクセス................................................................................................................................... 29 9.2. AutoScale の動作確認 ...................................................................................................................................... 30 9.2.1. CPU 負荷テストツール配布用 RightScript の作成.................................................................................. 30 9.2.2. AutoScale によるインスタンスの自動追加のテスト ................................................................................. 32 9.2.3. AutoScale によるインスタンスの自動削減のテスト ................................................................................. 35 10. テスト完了後のインスタンス削除 ........................................................................................................................... 37 10.1. PHP Web サーバ Array の停止........................................................................................................................ 37 10.2. Database Server、Contents Store の停止........................................................................................................ 37 付録 A. LoadBalancer のルールの確認および修正手順.............................................................................................. 38 付録 A.1. LoadBalancer ルールの確認手順.......................................................................................................... 38 付録 A.2. LoadBalancer ルールの編集手順.......................................................................................................... 39 付録 B. Server 起動に失敗した場合のトラブルシューティング............................................................................... 40 付録 B.1. RightScripts 実行ログの確認手順 ........................................................................................................ 40 付録 B.2. 強制的に operational 状態に設定する手順 .......................................................................................... 42 3/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 1. 本ドキュメントについて 本ドキュメントは、RightScale 経由で IDC フロンティアのクラウドサービス上に、後述の 3-Tier アーキテクチャを構成するた めのチュートリアルです。 なお、内容には充分注意しており、弊社内での動作検証は行っておりますが、本ドキュメントおよび、弊社提供の ServerTemplate を利用した事によるいかなる損害も補償するものではありません。 2. 改訂履歴 改訂日 2012 年 2 月 15 日 改訂内容 Draft 版作成 第1版 2012 年 3 月 13 日 ・ 誤字の修正 ・ Dynamic DNS に IDC フロンティア独自実装の NSUpdate を追加 ・ Appendix A, B を追加 4/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 3. 3-Tier モデルの概要 本チュートリアルで構築する 3-Tier モデルの概要図を以下に記載します。 Customer Service Dynamic User Access Contents Data LB/FW CloudStack VR PublicIP DNS(外部) LB/FW CloudStack VR IDCF Cloud App Server 2 App Server 1 ・・・ App Server N Application ContentsStore Code (SSH Storage) NSUpdate Dump Data Master DB Replication Slave DB Volume Backup Volume Volume Backups(Snapshot) Secondary Storage 構成図にある要素の役割などは以下のとおりです。 名称 種類 用途 LB/FW 仮想ルーター 標準提供される Firewall および Load Balancer Public IP IP アドレス Internet からアクセス可能な Global IP AppServer 1~N アプリケーションサーバ PHP Web アプリケーションサーバ。AutoScale 対応。 Contents Store コンテンツ保存サーバ SSH でのみアクセス可能なコンテンツ保存サーバ Master DB データベースサーバ MySQL Master データベースサーバ Slave DB データベースサーバ MySQL Slave データベースサーバ Volume 追加ディスク データ保存用の追加ディスク 5/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル Secondary Storage スナップショット保管先 スナップショット保管先ストレージ Dynamic DNS(Route53, DNS made easy, DynDNS) Dynamic DNS(外部) DNS サーバ DB の Master/Slave、Contents Store の Private IP の名前解決に利用。 NSUpdate を利用する場合は不要。 NSUpdate DNS サーバ Contents Store サーバにて Dynamic DNS サービスを構築。 外部 Dynamic DNS か NSUpdate のどちらかを利用。 6/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 4. 前提条件 本チュートリアルを利用するに当たり、事前準備するべき事項について説明いたします。 1. Dynamic DNS サービスの契約 本チュートリアルで利用する ServerTemplate には、外部の Dynamic DNS サービスと連携する機能が含まれておりま す。下記の Dynamic DNS サービスのいずれかを予め利用できる状態にしておく必要があります。 DNS Made Easy : http://www.dnsmadeeasy.com/ DynDNS : http://dyn.com/ Route53 : http://aws.amazon.com/jp/route53/ なお、SSH Contents Store サーバで実装した NSUpdate を利用する場合は、外部プロバイダとの契約は不要です。 本チュートリアルでは、NSUpdate を利用する場合の手順を記載いたしますので、契約は必須ではありません。 2. 有償版 RightScale アカウントの用意 本チュートリアルで利用する ServerTemplate は、有償版 RightScale アカウントでしか利用できないものが含まれてお ります。予め有償版アカウントをご用意頂く必要が有ります。 7/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 5. 事前準備 5.1. クラウド API キー、秘密鍵の取得と RightScale への登録 IDC フロンティアのクラウド管理画面右上のユーザー名表示部分にマウスカーソルをあわせ、「マイプロファイル」を選択す ると、ログイン情報の中に「API キー」と「秘密鍵」が表示されています。 8/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 次に、RightScale のダッシュボードにログインし、画面上部から「Clouds」>「Add Cloud」をクリックします。 追加する Cloud を選択する画面が表示されるので「Add Public Clouds」の中の「IDC Frontier - Tokyo」をクリックします。 9/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 次に、ユーザー名、API キー、秘密鍵を画面の指示に従って入力し、「Accept」をクリックします。 ダッシュボードに戻り、画面上部の「Clouds」にマウスをあわせた時に、以下の図のように IDC フロンティアのクラウドが表 示される事を確認します。 10/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 5.2. 公開用 Global IP アドレスの取得 IDC フロンティアのクラウド管理画面から「リソース」>「ネットワーク」へ遷移し、本チュートリアルで利用する IP アドレスを 決めます。 注意:過去に一度も仮想マシンを作成した事が無い場合、IP アドレスは 1 つも表示されません。また「IP アドレス取得」ボタ ンで追加しようとしても失敗してしまいます。この場合、後述の Contents Store 仮想マシンを作成後に再度ご確認ください。 5.3. SSH ログインのための秘密鍵作成 本チュートリアルで構成する仮想マシン同士の SSH アクセスや、リモートからの SSH アクセスに利用する秘密鍵を生成し ます。 秘密鍵は OpenSSH 形式(Putty 形式ではない)で作成し、秘密鍵にはパスフレーズは設定しないでください。 11/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 5.4. Credential への入力パラメータの保存 以下の表のパラメータを事前に Credential として登録します。値の登録は、RightScale ダッシュボード画面上部の「Design」 >「Credentials」から「New Credential」をクリックして行います。 変数名 値 用途 DBADMIN_PASSWORD 利用者にて指定 DB 管理者権限パスワード DBADMIN_USER 利用者にて指定 DB 管理者ユーザー名 DBAPPLICATION_PASSWORD 利用者にて指定 データアクセス用パスワード DBAPPLICATION_USER 利用者にて指定 データアクセスユーザ DBREPLICATION_PASSWORD DBREPLICATION_USER DNS_PASSWORD DNS_USER 利用者にて指定 利用者にて指定 利用者にて指定 利用者にて指定 DB レプリケーションユーザのパスワ ード DB レプリケーションユーザ 外部 DNS サービスパスワード (NSUpdate の場合は不要) 外部 DNS サービスユーザ (NSUpdate の場合は不要) IDCF_COMPUTE_API_KEY IDCF クラウド画面からコピー クラウド API キー IDCF_COMPUTE_HOST https://api.noahcloud.jp/portal/client/api API リクエスト先 URL IDCF_COMPUTE_SECRET_KEY IDCF クラウド画面からコピー クラウド秘密鍵 SSH_COMMUNICATION_KEY 5.3 で作成した SSH 秘密鍵 サーバ間 SSH 通信用 注意:User/Password に利用する文字は、Bash で意味のある文字(\など)を避ける事をお勧めします。エスケープ処理に 失敗する場合があります。 5.5. サンプルコンテンツのダウンロード 必要であれば、予めサンプルコンテンツファイルを作業用端末にダウンロードしておきます。ただし、Contents Store Server から直接 wget コマンドなどでダウンロードする事も可能ですので、必須ではありません。 サンプル PHP コード: http://support.rightscale.com/@api/deki/files/4481/=myapp.tgz サンプルデータベース:http://support.rightscale.com/@api/deki/files/4482/=myapp_prod_dump-200804161345.gz なお、ダウンロードした際に勝手に gz 圧縮が解除されていないかどうか、ご確認ください。 ※上記コンテンツは RightScale Inc. が提供しているものです。 12/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 5.6. 外部 DNS サービスへのレコード登録 NSUpdate 以外の外部 DNS サービスを利用する場合、以下の A レコードを登録します。(本チュートリアルでは不要) ホスト名 IP TTL Dynamic DNS 用途 www (公開用 Public IP) 1800 無効 公開 Web サーバの Global IP contents 1.2.3.4 (仮) 60 有効 Contents Store Server の Private IP dbmaster 1.2.3.4 (仮) 60 有効 DB Master Server の Private IP dbslave 1.2.3.4 (仮) 60 有効 DB Slave Server の Private IP 13/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 6. Contents Store の構成 6.1. Deployment の作成 本チュートリアルで構成する仮想マシンをグルーピングするため、Deployment を作成します。RightScale ダッシュボード画 面上部の「Manage」>「Deployments」にある「New」ボタンをクリックします。 作成画面で「Nickname」と、必要に応じて「Description」を入力して「Save」ボタンをクリックします。 6.2. Contents Store 用 ServerTemplate のインポートと Server 作成 6.2.1. ServerTemplate のインポート ダッシュボードの画面上部にある「Design」>「MultiCloud Marketplace」をクリックします。検索画面で検索対象を 「Publisher」、検索キーワードを「IDC Frontier」と入力します。 検索結果から、「SSH Storage Server for IDC Frontier」を選択後、画面右上の「Import」ボタンをクリックして、 ServerTemplate をインポートします。 14/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 6.2.2. Contents Store Server の作成 インポートした ServerTemplate から「Add Server」をクリックし、Cloud と Deployment を選択して「Continue」をクリッ クします。 15/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 次に、Server の詳細について、ウィザードに従って入力・選択していきます。ここでは、以下のように設定します。 設定後は「CONFIRM」をクリックし、次の画面で「FINISH」をクリックします。 項目 値 ServerName Contents Store MultiCloud Image [Inherited from ServerTemplate] Instance Type XS Datacenter / Zone 任意 Subnets -none- 16/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 6.2.3. Input 変数のカスタマイズと仮想マシンの起動 作成した Server の画面右上にある Deployment へのリンクをクリックします。Deployment 管理画面で「Input」タブを クリックし、「edit」ボタンをクリックして以下の表の値を編集します。 下記以外の Input 変数については、他の仮想マシンとの連携で利用するため、変更しないでください。 Deployment で設定する Input Input 項目 DNS_PROVIDER 値(例) NSUpdate 用途 利用する Dynamic DNS サービス名称。 17/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 次に、作成した Server の設定画面で「Input」タブをクリックします。デフォルトの設定のままでも仮想マシン作成は 可能ですが、必要に応じて、以下の項目について値を変更する事ができます。 下記以外の Input 変数については、他の仮想マシンとの連携で利用するため、変更しないでください。 Server で設定する 設定する Input Input 項目 値(例) 用途 SSH Storage Server の Private IP 名前解決用の Dynamic DNS ID。 EXTERNAL_DNS_ID contents.cloud.local NSUpdate の場合、(ホスト名).cloud.local と入力。 (DNS Made Easy なら 7 桁の数字、DynDNS なら FQDN) VOL_NAME VOL_TOTAL_SIZE ContentsData 10 追加ディスクの名称。IDC フロンティアのクラウド管理画面で表示さ れます。 追加ディスクの全体容量。コンテンツ容量にあわせて適宜変更。 次に、「Launch」ボタンをクリックすると、Input の値の確認を求められます。入力値がないことを示す赤色の表示が 無い事を確認の上、「Lauch」ボタンを再度クリックしてください。 18/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 初めて仮想マシンを起動した際は 20 分程度、2 回目以降は 5 分程度で仮想マシンが作成され、Contents Store と して構成されます。 構築が完了すると、ダッシュボード上で Server が「Operational」状態として表示されます。 6.2.4. 外部からの SSH 通信許可ポリシーの設定 ここまでの手順が正常に完了したら、Server 設定画面の「Port Forwarding Rules」タブをクリックします。次の画面 で、”Contents Store”に対して SSH 通信を許可するよう以下の図のように設定を入力し、「Create」ボタンをクリック します。 6.2.5. サンプルコンテンツデータのアップロード SCP クライアントソフト(WinSCP など)もしくは SSH ターミナルソフト(TeraTermPro など)を利用して、SSH 通信を許 可するよう指定した IP アドレスに接続します。そして、サンプルアプリケーション、サンプルデータベースを以下の 場所に保存します。 サンプルアプリケーション:/home/data/webapps/(Application 名)/ 以下に解凍 サンプル DB ファイル:/home/data/dump/(dbprefix)-YYYYMMddhhmm-master.gz アプリケーションはアップロード後に gzip を解凍し、上記ディレクトリ以下に配置します。また DB ファイルについて は gzip 圧縮したまま、上記パス、ファイル名で保存します。”YYYYMMddhhmm”の部分は作業を行っている現在時 刻より過去の適当な時刻を数字 12 桁で指定してください。 19/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 7. MasterDB MySQL Database の構成 7.1. Database Master Server の作成 7.1.1. Database 用 ServerTemplate のインポート ダッシュボードの画面上部にある「Design」>「MultiCloud Marketplace」をクリックします。検索画面で「Database Manager with MySQL 5.1 for IDC Frontier」を選択後、「Import」をクリックします。 7.1.2. Database Server の作成 6.1.2 と同様の手順で ServerTemplate から「Add Server」をクリックします。Cloud と Deployment を同様に選択しま す。 次に、Server の詳細について、ウィザードに従って入力・選択していきます。ここでは、以下のように設定します。 設定後は「CONFIRM」をクリックし、次の画面で「FINISH」をクリックします。 項目 値 ServerName DB01 MultiCloud Image [Inherited from ServerTemplate] Instance Type L8 Datacenter / Zone 任意 Subnets -none- ServerName を決める際、「Master」「Slave」などの役割を含 含まないようにするほうが良いです。これは、障害などで まない Master を切り替える場合があり、サーバ名と役割が一致しなくなる可能性があります。 20/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 7.1.3. Input 変数のカスタマイズと仮想マシンの起動 作成した Server の設定画面の右上のリンクから Deployment 全体の管理画面に戻り、「Input」タブをクリックします。 「edit」ボタンをクリックして以下の変数について、値を設定します。 Deployment で設定する 設定する DB 用パラメータ Input 項目 DB_MYSQLDUMP_PREFIX 値(例) 用途 myapp_dump DB ダンプファイルの接頭語 DB_SCHEMA_NAME dbschema データベースのスキーマ名 DB_SEERVER_USAGE dedicated DB 専用か Web サーバと同居かを指定 MASTER_DB_DNSID dbmaster.cloud.local Dynamic DNS サービスでの Master DB の DNSID MASTER_DB_DNSNAME dbmaster.cloud.local Master DB の FQDN SLAVE_DB_DNSID dbslave.cloud.local SSH_STORAGE_SERVER contents.cloud.local Dynamic DNS サービスでの Slave DB の DNSID Contents Store サーバの FQDN または Private IP アドレス 21/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 次に、作成した Server の設定画面で「Input」タブをクリックします。デフォルトの設定のままでも仮想マシン作成は 可能ですが、必要に応じて、以下の項目について値を変更する事ができます。 下記以外の Input 変数については、他の仮想マシンとの連携で利用するため、変更しないでください。 DB01 の Server で設定する 設定する DB 用パラメータ Input 項目 値(例) VOL_COUNT 用途 1 VOL_NAME 追加ディスクの数。1 1~3 までの整数を指定。 までの DB01Vol VOL_TOTAL_SIZE 追加ディスクの名称。IDC フロンティアのクラウド管理画面で表示されます。 150 追加ディスクの全体容量。データベース容量にあわせて適宜変更。 上記の値を設定後、「Launch」ボタンをクリックして、サーバを起動します。 7.2. Database Slave Server の作成 Database Master Server が正常に起動したあと、Slave Server の作成を開始します。 7.2.1. 複製による Slave Server の作成 Database Master Server(本チュートリアルでは「DB01」)の管理画面に移動します。画面上部の「Clone」ボタンをク リックして、Server を複製します。 7.2.2. Slave Server の名称、Input の編集と仮想マシンの起動 複製後、Slave Server の名称が Master の名称+v1 となっていますので、名称をクリックして名前を編集します。こ こでは「DB02」とします。 次に、「Input」タブをクリックし、「edit」ボタンをクリックして以下の値を変更します。 DB02 の Server で設定する 設定する DB 用パラメータ Input 項目 値(例) INIT_SLAVE_AT_BOOT True VOL_NAME DB02Vol 用途 DB を Slave とするかどうかを指定。 追加ディスクの名称。DB01 とは異なる名称を指定。 上記の値を変更後、「Launch」ボタンをクリックして Slave Server を起動します。 22/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 8. PHP Web アプリケーションサーバの構成 ここでは、負荷増大などの条件に応じて自動的にサーバインスタンスを増減することができる、AutoScale 機能を持った PHP Web アプリケーションサーバを構成します。 8.1. PHP アプリケーションサーバ用 ServerTemplate のインポート ダッシュボードの画面上部にある「Design」>「MultiCloud Marketplace」をクリックします。検索画面で「PHP5 App Server for IDC Frontier」を検索・選択後、「Import」をクリックします。 8.2. AutoScale に対応した Server Array の作成 8.2.1. PHP Web アプリケーションサーバの Slave Array の作成 インポートした PHP Server の ServerTemplate にて、画面上部の「Add Array」をクリックします。Cloud と Deployment を選択して「Continue」をクリックします。 次に、Server Array の Nicname、Instance Type などを指定します。ここでは MultiCloud Image はデフォルトのまま、 Instance Type は「XS」とします。 23/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 次に、Server Array の設定を行います。以下の表のように設定します。 項目 Status 値 Disabled 説明 AutoScale を有効にするかどうか。初期設定が終わるまでは無効に しておきます。 Min Count 2 最小サーバインスタンス数 Max Count 5 最大サーバインスタンス数 Array Type Alert-based AutoScale のトリガー(Alert または Queue) Decision Threshold Array 内の既存サーバのうち何%が AutoScale のトリガー条件を満た 51 したときに実際に AutoScale するかの閾値。 Choose Voters by Tag Default のまま 条件を満たした際にどの Array を AutoScale するかの設定 Resize up by 3 一度に追加するインスタンス数 Resize down by 1 一度に減少させるインスタンス数 Resize calm time 8 AutoScale の待機時間 24/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 設定完了後、「CONFIRM」ボタンをクリックし、設定に問題が無ければ「FINISH」ボタンをクリックします。 8.2.2. PHP Web アプリケーションサーバの Input の設定 作成した Array の「Input」タブをクリックし、「edit」ボタンをクリックして以下の値を変更します。 Input 項目 用途 APPLICATION アプリケーション名(ここでは myapp を設定) LB_NAME ロードバランサに設定するポリシー名称 PUBLIC_IP Web サイトの公開 IP (Global IP) PUBLIC_PORT Web サイトの公開ポート(デフォルト 80) WEBSITE_DNS Web サイトの FQDN 25/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 8.3. アプリケーションサーバの AutoScale 設定 Array の「Next Alerts」タブをクリックします。「New」ボタンをクリックして、新規 Alert の作成を開始します。 まずは、インスタンスを追加するためのアラートを、以下のとおり設定します。 項目 値 説明 Name Size Up アラートの名称 Description (任意) アラートの説明 Condition cpu-0/cpu-idle value 監視するパラメータ < (ここでは CPU0 の idle 率が 70%以下の場合) 70 minutes 3 状態の継続時間(分単位) vote to glow 投票先(インスタンスを追加する、に投票) vote tag (Array 名) AutoScale に投票する Array の選択 26/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 次に、インスタンスを削減するためのアラートを、以下のとおり設定します。 項目 値 説明 Name Size down アラートの名称 Description (任意) アラートの説明 Condition cpu-0/cpu-idle value 監視するパラメータ > (ここでは CPU0 の idle 率が 90%以上の場合) 90 minutes 5 状態の継続時間(分単位) vote to shrink 投票先(インスタンスを削減する、に投票) vote tag (Array 名) AutoScale に投票する Array の選択 27/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 8.4. Array の有効化と Instance の起動 Array の設定完了後、「info」タブをクリックします。「Status」項目の「enable」リンクをクリックし、Array を有効化します。有効 化後、画面上部の「Launch」ボタンをクリックすると Array 内で instance の起動が始まります。 28/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 9. 動作検証 9.1. Web サーバへのアクセス ここまでの設定が完了したら、PHP Web アプリケーションサーバを構成するときに設定した PUBLIC_IP に対してブラウザで アクセスします。 http://(PUBLIC_IP)/index.php 以下の図のように DB の schema 名、FQDN、DB の中身、phpinfo の結果が表示されれば正常に接続できています。 また、ブラウザを更新すると、phpinfo の中の「SERVER_ADDR」(Web サーバの Private IP)の値が変化し、ロードバランシン グされていることがわかります。 注意:Google Chrome を利用する場合、キャッシュ機能により SERVER_ADDR が更新されない場合があります。Firefox な どキャッシュされない設定のブラウザをご利用ください。 29/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 9.2. AutoScale の動作確認 PHP Web サーバに対して AutoScale の条件となる負荷をかける事で、インスタンスが増加し、負荷が下がるとインスタンス が削減されることを確認します。 本チュートリアルでは、CPU idle 率を条件として設定したため、CPU 使用率を上げる Perl スクリプトを各 Web サーバで実行 すことにします。 9.2.1. CPU 負荷テストツール配布用 RightScript の作成 CPU 負荷テストツールをサーバに作成するための RightScript を新規に作成します。 まず、画面最上部の「Design」>「RightScripts」の右にある「New」ボタンをクリックします。 すると、以下のような画面になります。 30/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 以下の内容を入力して「Save」ボタンをクリックします。 項目 値 Name MISC CPU Stress Test Description (任意) Packages (何も記入しない) Inputs (何もなし) #!/bin/bash -ex stressfile="/root/cpubusy.pl" cat <<-EOF > $stressfile #!/usr/bin/perl # cpubusy.pl \$goal = 1000000; while (1) { \$before = time(); Script for (\$i = 0; \$i < \$goal; \$i ++) { \$x = 0.000001; \$y = sin($x); \$y = \$y + 0.00001; } \$y += 0.01; } EOF chmod 755 /root/cpubusy.pl /root/cpubusy.pl & exit 0 31/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル もう一度、「Design」>「RightScripts」の「New」ボタンをクリックし、以下のスクリプトを作成します。 項目 値 Name MISC Stop CPU Stress Test Description (任意) Packages (何も記入しない) Inputs (何もなし) #!/bin/bash -ex Script pkill cpubusy.pl exit 0 9.2.2. AutoScale によるインスタンスの自動追加のテスト PHP Web アプリケーション Array の管理画面に移動し、「Scripts」タブをクリックします。次に、「Any Script」の左の △記号をクリックし、スクリプトを選択するボタンをクリックします。 32/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル ポップアップ内の左側で「Unpublished」をクリックし、画面中央で先ほど作成したスクリプトを選択し、「Select」をク リックします。 スクリプトのバージョン指定(今回は HEAD のみ指定可能)をして「Run」をクリックします。 33/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 次の画面で、「run on all」ボタンをクリックし、さらに次の画面で「Run」ボタンをクリックし、Array 内の全てのサーバ でスクリプトを実行します。 5 分から 10 分程度経過後、「Instances」タブをクリックすると、インスタンスが増加している事が分かります。 また、ブラウザでテスト用 Web サイトにアクセスし、更新を繰り返すと、SERVER_ADDR の値が変化し、負荷分散対 象に追加されている事も分かります。 34/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 9.2.3. AutoScale によるインスタンスの自動削減のテスト Array の管理画面から「Scripts」タブをクリックします。「Any Script」から先ほどと同様にして「MISC Stop CPU Stress Test」スクリプトを選択します。 その後、「run on all」ボタンをクリックし、全てのインスタンスでスクリプトを実行します。 なお、新規に追加されたインスタンスでは負荷テストのプロセスが存在しないため、スクリプトは失敗してしまいま すが、無視してかまいません。 35/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 負荷が下がって暫くすると、古 古いインスタンスから インスタンスから削除されていきます。 から 36/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 10. テスト完了後のインスタンス削除 ここまでのテスト完了後、インスタンスやボリュームへの課金を止めるため、インスタンスを全て Terminate していきます。 10.1. PHP Web サーバ Array の停止 Array を停止するには、「Info」タブで「Status」を「disabled」に設定する必要が有ります。設定しないと、AutoScale 機能によ り、自動的に Min Count で指定した台数まで新規にインスタンスが作成されてしまいます。 Array を Disable に設定後、「Instances」タブで全てのインスタンスを選び、Terminate ボタンをクリックしてインスタンスを停 止します。 10.2. Database Server、Contents Store の停止 Database サーバ、および Contents Store については、Deployment の管理画面から、対象インスタンスを選択後 「Terminate」ボタンをクリックして停止します。 インスタンスの停止が完了したら、追加ディスクを削除します。画面最上部の「Cloud」>「IDC Frontier - Tokyo」> 「Volumes」をクリックします。 次にボリューム一覧から追加ディスクを探し、×ボタンをクリックして削除します。×ボタンが表示されない場合は、画面最 下部にある「query」と言う文字をクリックすると、最新の情報に更新されます。 37/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 付録A. LoadBalancer のルールの確認および修正手順 PHP Application Server の ServerTemplate を利用して IDC フロンティアのクラウド標準の LoadBalancer を利用する際、現 状の設定の確認、および修正を行う手順を説明いたします。 付録A.1. LoadBalancer ルールの確認手順 IDC フロンティアのクラウドの管理画面にログインし、「リソース」>「ネットワーク」をクリックします。 LoadBalancer ルールを確認したい IP アドレスを選択後、画面右下にある「ロードバランサー」タブをクリックします。 負荷分散対象を確認するには、対象ルールの右にある「管理」をクリックします。 38/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 付録A.2. LoadBalancer ルールの編集手順 上記 LoadBalancer ルール確認画面から、以下の操作が可能です。 クリックするリンク 可能な操作 管理 負荷分散対象 VM の追加・削除 編集 ルールの管理名とアルゴリズムを変更 削除 ルールを削除 パブリックポート・プライベートポートを変更するには、既存ルールを削除後に新規にルールを作成する必要が有ります。 39/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 付録B. Server 起動に失敗した場合のトラブルシューティング 何らかの理由で Server の起動に失敗した場合、原因調査を行う必要が有ります。以下では、トラブルシューティングの手 順について説明いたします。 付録B.1. RightScripts 実行ログの確認手順 Server Instance がクラウド上で起動したが、RightScript 実行中にエラーが発生した場合、Server は『Stranded』状態にな ります。 このような状況になった場合、Server の「Audit Entries」タブをクリックし、「Stranded」になる前のログにある「boot failed:」か ら始まるエントリをクリックします。 40/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル ポップアップ内で、各 RightScript の実行結果が出力されているので、最後に実行された RightScript のログを展開して、内 容を確認します。 上記の図の例では、”Error setting the DNS, nsupdate exited with code: 1.”というエラーが出ています。このことから、 nsupdate コマンドによる Dynamic DNS の更新に失敗している事が分かります。この情報をヒントに、根本原因を調査してい きます。 Audit Entry に出力されるログは、スクリプトを実行したときにコンソールに出力される文字全てですので、独自の RightScript を作成する際は、コンソールに問題きりわけに有効な情報をなるべく出力するように記述すると良いです。 41/42 Copyright(c) IDC Frontier, Inc. All rights reserved. RightScale 上での IDC フロンティア 3-Tier モデル構築チュートリアル 付録B.2. 強制的に operational 状態に設定する手順 Stranded になってしまったサーバであっても、実効に失敗したスクリプトが必須ではない場合、または検証で取り急ぎ通常 起動状態にしたいときには、強制的に operational 状態に設定する事ができます。 Server の Info タブをクリックし、「State」表示の右に、強制的に booting または operational 状態に設定するリンクがありま す。これをクリックすると、状態を変更する事ができます。 42/42 Copyright(c) IDC Frontier, Inc. All rights reserved.