scalr hands on (第3回scalr勉強会で利用、第1回資料の新版)
TRANSCRIPT
SCALR Hands-on SCALRユーザ会
梶川 治彦(株式会社IDCフロンテゖゕ)
本日の流れ
What is SCALR?
SCALR ゕカウントの取得
SCALRへCloudの登録
SCALRの操作方法
Farm(Wordpress Farm)の作成
Roleの追加/設定
DNS Zoneの追加/設定
Apache Virtual Hostの追加/設定
Deployment(コンテンツ)の追加/設定
Wordpressの設定
Wordpress のデモサトを作成します。
What is SCALR? SCALRはオープンソースのマルチクラウド管理ツールです。
• サーバテンプレート • スクリプト作成
• サーバー起動 • デプロ
• 監視、ゕラート • オートスケーリング
デザイン プロビジョニング 運用
パブリッククラウドも、プライベートクラウドも管理できます!
API
Google CE Amazon EC2
Eucalyptus Rackspace Nimbula Cloudstack Openstack IDC Frontier Rackspace Open Cloud
(US)
Rackspace Open Cloud
(UK)
マルチクラウド管理ツール
詳細は、SCALRご紹介資料の「http://www.slideshare.net/hal-k/scalr-20130404-01」こちらをご確認ください。
SCALR ゕカウントの取得
SCALR 登録の流れ
1.SCALR 社のホームページに行く
(http://www.scalr.com/) 2. Start Free Trialをクリックしてゕカウントを登録
3. Account 詳細を入力
4. クラウド登録画面へ
(ログンpassword情報がメールに飛びます)
SCALR 登録 – お試しゕカウント作成
http://www.scalr.com/ にゕクセスして体験用ゕカウントを取得します。
必要項目を入力して送信すると、すぐにクラウド登録画面に移ります。
SCALR 登録 – ログンパスワード確認
ログイン パスワード
届いたメールにパスワードが記載されています。 後ほど、SCALRの管理画面から変更してください。
SCALRへCloudの登録
Cloud 登録の流れ
1.使用するクラウドの選定 (今回はIDCFクラウド)
2.クラウドを構成する(クレデンシャルの入力)
3.IDCFクラウド (noahcloud.jp) からAPI KEY と 秘密 KEY を取得
SCALRへのログン
https://my.scalr.com/ へゕクセスし、SCALRへログ
ンしてください。ログンパスワードは、登録時のメールゕドレスへ届いています。
Cloud 登録 – EC2
今回はIDCFクラウドのゕカウントで登録するため、EC2の登録はスキップします。
ゕカウント登録直後に画面が推移し、上記の画面になります。もし「Do this later」を選択した場合や、この画面でない場合、右上の「Environment1」→「Manage」をクリックすることで、次のページの画面なります。
Cloud 登録 – IDCFクラウド
IDC Frontierのゕコンを選択します。
Cloud 登録 – IDCF APIkey,Secret Key
API Key, Secret keyを入力する画面になるので、各keyをIDCFクラウドのポータルサトから取得します。
Cloud 登録 – IDCFクラウド ログン
https://noahcloud.jp/ IDCFクラウドのユーザー名とパスワードでログンしてください。
Cloud 登録 – マプロフゔル
右上のマプロフゔルをクリックします。
Cloud 登録 – API資格情報
APIを表示するには、ログンパスワードを入力する必要があります。
Cloud 登録 - IDCF APIkey, Secret Key
それぞれをSCALR側へ登録してください。
Cloud 登録 – IDCF APIkey,Secret Key
API Key, Secret keyを入力して、登録を完了してください。 ※ IDCFクラウドでは、1アカウントに対して複数のユーザを作成できます
が、SCALRへ登録できるのは、マスターユーザのみです。
Cloud 登録
登録が完了すると[Environment saved]と表示され、ゕコンに色がつきます。 ※ 初回はこの画面に移らずにロールの取り込み画面になります。(キャンセルしてください。)
SCALRの操作方法
SCALR各機能の呼び出し方法
各Cloud特有のメニューが追加されます。 IDCFを登録する際は、IDCFとしての登録に加えてCloudstackとしての登録をしておくとCloudstackメニューが利用できます。(API,Secret keyは同一のものでOKです。API URLはIDCFクラウドのFAQを参照してください。)
これら機能を呼び出してSCALRを操作します。
SCALRの各機能をお気に入りのメニューを登録できます。
SCALRの各機能を呼び出します。
Team/Userの設定、及びBilling情報の参照
Wiki/Supportへのリンク
User固有設定の参照/変更 Cloud登録環境の切り替え
各一覧画面での操作説明
お気に入りへ登録 画面上部へクックリンクを登録できます。
新規追加 リフレッシュ カラムの表示/非表示 画面の自動更新を選択できます。
選択行に対する様々なゕクションを実行できます。
色々な一覧画面がありますが、基本的には同一の操作方法が提供されます。
Farm(Wordpressサト)作成 Roleの追加/設定
Wordpress のデモサト用のFarmを作成します。
IDCFクラウド Instance (A企業サト)
FarmとRole ■ Farmとは RoleとRoleの設定情報をグルーピングした論理的な単位です。どのような単位で分けても構いませんが、分かり易い例としては、サト(A企業のサト、Bソーシャルゲームのサトなど)ごとや機能ごと(MySQL Farm, Front WEB Farmなど)に分けると良いとでしょう。
■ Roleとは RoleとはApacheやMySQLなどの機能(役割)のことで、1つ1つが各Cloud上でテンプレート(メージ)として存在します。 Farmを作成し、必要なRoleを並べて各Roleの設定をすることで、サイト(サービス)を作り上げていくことがSCALRでの作業の大部分となります。
Farm A (A企業サト)
LB Role WebApp Role DB Role
Farm B (Bソーシャルゲームサト)
LB Role WebApp Role DB Role
LB Nginx - 001 LB Nginx - 002
App Apache - 001 App Apache - 002 App Apache - 003
DB MySQL - 001 DB MySQL - 002
IDCFクラウド Instance (Bソーシャルゲームサト)
LB Nginx - 001 LB Nginx - 002
App Apache - 001 App Apache - 002 App Apache - 003
DB MySQL - 001 DB MySQL - 002
FarmにRoleを
詰め込んで設定する。
Roleの設定に従ってCloud側でインスタンスが作成/設
定される
Wordpress Farmの作成
SCALRメニューのFamrsから[+]で新規追加を行います。
Farmの名前設定
Farmへ名前を付けます。何でも構いません。 名前を入力したら「Add new role」をクリックしてください。
Roleの追加
3つのRoleを追加します。 • Load balancers lb-nginx64-centos6
• Application Server app-apache64-centos6
• Database servers mysql64-centos6
これらを使って、3Tier構成のWordpressサトを作っていきます。
<=Saveはまだ押さないでください。
実際の追加は、
次ページ参照。
各Roleを設定
Roleを選択することで、各Roleの重要な設定を行うことができます。 ここでは主に、Cloud固有の設定を行います。DatabaseはDB固有の設定もここで一緒に行うことが出来ます。
クリック
選択したRoleの設定を行い「Add to farm」で追加します。
Saveはまだ押さないでください。
実際のCloudの設定は、
次ページ参照。
2013/09/20現在、IDCFクラウドではCentOSに加えてUbuntuもサポートされています。この資料はCentOSベースでの解説になりますので、CentOSを選択してください。
各Roleを設定 – IDC Frontier setteings
Roleを追加した際に、Cloud側の設定を行います。選択するCloudにより、画面が異なりますが、IDCFクラウドの場合は、下記の設定を行ってください。(基本的にはどのCloudでも似たような内容です。) • Location 東京か白河ゾーンを選択
• Service offering VMタイプの設定
• Network 複数選択できる場合はInternet側を
選択 • Shared IP 必ずIPを選択してください。(Use system defaultsは選択しないでください。)
※ 追加した3Roleすべてで同一の設定を行ってください。(IPも同一のIPでOK。) ※ これらの設定は、後から変更することも出来ます。(追加されたRoleをクリックすることで設定できます。)
MySQLはCloudの加えて、Databaseの設定もここで行います。
詳細は次ページ参照。
Add to farmした後、Saveはまだ押さないでください。
各Roleを設定 – MySQL settings
Add to farmした後、Saveはまだ押さないでください。
•FilesystemはOSに合わせて、Ext4を選択。 •Storage sizeは時間の関係から5GBにしてください。(IDCFクラウド上ではData Volumeが指定サズで作成されます。)
各Roleの設定 – 詳細
① ここでターゲットを選択
② 項目を選択
③ 詳細設定します。 Add to Farmの時に設定した部分も、ある程度こちらで設定変更することが可能です。(Locationなど、変更不可の項目もある。) Add to Farmしたあと、Saveはまだ押さないでくださいと、どのページにも記載しましたが、Saveすると、後から変更不可の項目があります。例えば、DBのStorage Sizeなど。
各Roleの設定がすべて完了したら、Saveしてください。
Farmを起動!
Farm一覧から、作成したFarmのActions→LaunchでFarmを起動してください!
DNS Zoneの追加/設定
DNS Zoneを追加
SCALRメニューからDNS zones → [+]でDNS Zoneを新規登録します。
DNS Zoneの設定 Domain nameをAutoで選択した場合、[autogenerated name].scalr.ws
と言ったドメインを利用できます。
Customで自前のドメインを利用することもできます。
%hostname%. 最後に「.」が必要です。
Farm : 作成したFarm Role : lb-nginx64-centos6 登録するドメンのAレコードの設定になります。 この例では「 e7376a90-e4f2-47dc-9b19-7c3619343b00.scalr.ws 」を名前解決すると、lb-nginx64-centos6 roleで指定したPublicIPが返されます。
①
②
③
④
次に使うので、コピペできるようにコピーしておく。
Apache Virtual Hostの 追加/設定
Apache Virtual Hosts の追加
SCALRメニューからApache Virtual Hosts → [+]でVirtual Hostsを新規登録します。
Apache Virtual Hosts の設定 先ほど作成したDNS
Zoneを指定します。
作成したFarmとApacheのRoleを指定します。
CenOS6に合わせてこちらの設定へ変更してください。
$xxxの変数は上記が反映されます。
拡大
Apache Virtual Hosts の設定
Document root /var/www/wordpress
Logs directory /var/log/httpd
Server Admin’s email local_part@domain
Server alias 作成したDNS Zone
Server non-SSL template:
<VirtualHost *:80> ServerAlias www.{$host} {$server_alias} ServerAdmin {$server_admin} DocumentRoot {$document_root} ServerName {$host} CustomLog {$logs_dir}/http-{$host}-access.log combined </VirtualHost> ScriptAliasの行を消しています。
Deployment(コンテンツ)の追加/設定
コンテンツであるWordpressをデプロします。
Deployment - Sources の追加
SCALRメニューからDeployments→Sourcesを選択後、新規追加でSourceを新規登録します。
Deployments - Sourcesの追加
SCALRメニューからDeployments→Sourcesを選択後、新規追加でSourceを新規登録します。
新規追加
URL: http://ja.wordpress.org/wordpress-3.6.1-ja.tar.gz
HTTPを選択
Deployment - Applications の追加
SCALRメニューからDeployments→Applicationsを選択後、新規追加でApplicationを新規登録します。
Deployments - Applicationsの追加
SCALRメニューからDeployments→Applicationsを選択後、新規追加でApplicationを新規登録します。
拡大
新規追加
Deployments - Applicationsの追加
Pre-deploy:
#!/bin/sh rm -rf %remote_path%/wordpress yum -y install php-mysql service httpd restart
Post-deploy:
#!/bin/sh chown -R apache:apache %remote_path%/wordpress
Deployments - Deploy
作成したゕプリケーションのActions->Deployを実行し、ゕプリケーションをデプロを実行します。
デプロ先として、作成したFarmとApache Roleを選択します。 Remote pathは「/var/www」としてください。wordpressは展開するとwordpressデゖレクトリを作成します。よって、最終的には「/var/www/wordpress」となります。 「/var/www/wordpress」は、VirtualHostを作成した際のDocumentRootです。
これで、WebサーバへWordpressがデプロされました!
「/var/www」を入力
Wordpressの設定
Wordpress – DBの設定 Connection detailsの確認
Wordpress – DBの設定 Connection detailsの確認
Connection detailsは、ゕプリケーションから参照するMySQLのゕクセス先ホスト名となります。 今回のWordpressでは[Writes endpoint (Private)]を使います。
「Connection details」を選択
Wordpress – DBの設定 phpMyAdminの設定
「Setup access」をクリックすると、「MySQL access
details for PMA requested. Please refresh this page
in a couple minutes..」となりますので、しばらくしてから、右上のリフレッシュをクリックしてください。
「Launch」「Reset access」となれば、準備完了です。
ただし、まだLaunchしないでください。
PHPMyAdminを実行するためには、IDCF クラウド側での設定も必要で、MySQL Roleの設定時に指定したPublicIPに対して、作成したMySQLのインスタンスへのTCP-3306へのポートフォワードとファイ
アーウォールの設定が必要です。
(次ページで説明します。)
SCALRからphpMyAdminを使うことが出来ます。
「Launch PHPMyAdmin」を押せるようになった段階でお待ちください。(まだ押さないでください!!)
リフレッシュ
Wordpress – DBの設定 – IDCFクラウドの設定 – ポートフォワードルール
MySQLのRoleの設定時に指定したPublicIPのTCP-3306へのゕクセスを、作成したMySQLンスタンスのTCP-3306へポートフォワードする設定を行います。
MySQL Roleで指定したPublicIPを選択 ポートフォワードを選択
パブリックポート : 3306 - 3306
プライベートポート : 3306 - 3306
プロトコル : TCP
仮想マシン : MySQL Roleで作成したVM
①
②
③
④
⑤ ⑥
Wordpress – DBの設定 – IDCFクラウドの設定 – フゔゕーウォールルール
MySQL Roleの設定時に指定したPublicIPに対して、フゔゕーウォールの設定を行います。
MySQL Roleで指定したPublicIPを選択 ファイアウォールを選択
ソースCIDR : 184.73.181.141/32 プロトコル : TCP 開始ポート : 3306 終了ポート : 3306
184.73.181.141はphpmyadmin.scalr.netとなり、
SCALRから起動するPHPMyAdminのホストです。
この設定後[Launch PHPMyAdmin]を実行できます。
①
②
③
④
⑤ ⑥
Wordpress – DBの設定 – ユーザとDatabaseの作成
PHPMyAdminからWordpress用のMySQLユーザ作成とDatabaseを作成します。 ユーザ名とパスワードはWordpressセットゕップ時に利用しますので、控えておいてください。
Wordpressセットアップ時に使用します。
パスワードは指定するか、
自動生成してもいいです。
重要です!!
①
② ③
④
⑤
Wordpress – Wordpressの設定 - IDCFクラウドの設定 – ポートフォワードルール
ポートフォワード ルールを追加し、サービスポートの設定を行います。 (ロードバランサー ルールでもかまいません。)
LB Roleで指定したPublicIPを選択
①
②
③
④
⑤
ポートフォワードを選択 パブリックポート : 80 - 80
プライベートポート : 80 - 80
プロトコル : TCP
仮想マシン : LBで作成したVM
⑥
Wordpress – Wordpressの設定 – IDCFクラウドの設定 – フゔゕーウォールルール
LBのRoleの設定時に指定したPublicIPに対して、TCP-80(サービスポート)をオープンします。
LB Roleで指定したPublicIPを選択
ファイアウォールを選択
この設定後Wordpressへゕクセスすることができます。
ソースCIDR : 0.0.0.0/0 プロトコル : TCP 開始ポート : 80 終了ポート : 80
①
②
③
④
⑤ ⑥
Wordpress – Wordpressのセットゕップ
PHPMyAdminから作成した、データベース名、
ユーザ名とパスワードを指定します。
Submitした後、WordPressの設定を続けてください。
SCALRの「Farm → Actions → MySQL status」のConnection
detailsで確認した、 Writes endpoint(Private)を使います。
作成したDNS Zoneへゕクセスしてください。 http://7a6d9bc0-ba2d-41d4-97ea-9fbf8b15fbdc.scalr.ws/ LB-Nginxへ指定したPublicIP直接でもOkです。
Wordpress – セットゕップ完了
SCALR ユーザ会
Google グループ SCALRユーザ会 https://groups.google.com/forum/?hl=ja&fromgroups#!forum/scalr_user_group
■ 日本SCALRユーザ会の目的
• 国内における普及促進 • SCALRに関する情報収集と公開、技術促進 • ユーザー間および外部との技術的・交流促進
■ 日本ユーザ会の活動(予定)
• SCALR関連技術に関する情報収集・配布 • SCALR講習会、ワークショップ等の開催
SCALRからCloudの登録を削除
①
②
③
④ お帰りの際は、ハンズオンで利用したIDCF
クラウドの登録の削除をお願いします。