...

RightScale 上での IDCF 3-Tier モデル 構築

by user

on
Category: Documents
22

views

Report

Comments

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.
Fly UP