※この記事は公開されてから1年半以上経過しています。情報が古い可能性がありますのでご注意ください。
IDCフロンティア セルフクラウド では、オープンソース(OSS)版Scalrを簡単に構築できるテンプレートを用意しています。今回のブログでは、こちらのテンプレートを利用したOSS Scalrの構築方法を説明していきます。
Scalrとは?
Scalrとは複数のクラウド環境を管理し、基盤の構築を自動化するためのソフトウェアです。別途、IDCフロンティア セルフクラウドも対応している、RightScaleと同種の物となります。
基本的にはRightScaleとScalrでできることは同じなのですが、Scalrの方が用意されているテンプレートが絞られている分、GUIが分かり易い(親切)と思います。
また、DNSもScalrへインテグレートされているため、DNSを絡めた対応は非常に簡単(ほぼ全自動)にできます。 RightScaleとの最大の違いはOSS版が存在することです。
OSS版は、ScalrがSaaS型で提供するHosted Scalrとほぼ同じ機能を有していますので、Scalrによるサポートが必要ない場合、利用しない手はないです。
(OSS Scalrのサポートは弊社で行っていません。コミュニティーなどをご活用ください。私も「Scalrユーザー会」へ参加していますので、わかる範囲でお手伝いさせていただきます。)
構築前の注意点
構築を始める前に、重要なことをお伝えしておきます。
OSS ScalrをCloudStack(IDCフロンティア セルフクラウドでも利用)内の仮想マシンへ構築する場合、Scalrを構築したアカウント内の仮想マシンはScalrから管理することができません。別のアカウントであれば、管理することができます。
これは、Scalrが管理対象の仮想マシンへアクセスする際に、仮想マシンへ割り当てたパブリックIPに対してアクセスを試みるからです。 CloudStackでは、同一アカウント内のアクセスにグローバルIPを経由したアクセスをすることができません。(CloudStackのネットワーク構成をAdvancedゾーンで構成した際の話なので、Basicゾーンであれば大丈夫なのかもしれませんが、未確認となります。)
よって、Scalrを構築するアカウントと管理対象のアカウントは別々に用意していただく必要があります。
IDCフロンティア セルフクラウドでは、アカウントを取得しただけでは料金は発生しませんので、Scalr構築用と管理対象用に2つアカウントを取得してお試しください。
Scalrテンプレートを利用した構築
それではまず、仮想マシンを作成します。 使用するテンプレートは「[LATEST] LAMP or LVS(keepalived) or HAProxy or API Access Tool or Scalr or Yahoo! Cloud Storage Access Tools」です。
このテンプレートは、起動後に各サービス用のセットアップツールが起動するようになっており、Scalr以外にもテンプレート名にあるようなサービスやツール類をセットアップすることができます。また、VMタイプはS2以上を選択してください。XSではメモリ不足となって、うまく動きません。追加ディスクは不要となります。
仮想マシンが起動したら、できあがった仮想マシンへパブリックIPを割り当てる必要があります。また、必要なポートはSSH,HTTPS,DNSとなりますので、これらを外部から接続できるように設定したください。
特に、HTTPSとDNSについては、Anyからの接続許可が必要です。 起動したらコンソールかSSH(推奨)で接続してください。ログインすると、次のような画面になります。
### Service Server Setup Tool ### You can setting the Service Server in this setup tool.- Network Service [1]. Layer4 Load Balancer - LVS(keepalived) [2]. Layer7 Load Balancer - HAProxy & Apache(SSL)- Application Service [3]. Apache, MySQL, PHP - LAMP [4]. API Access Tool - idcf.compute [5]. Cloud Management Software - Scalr- Storage Service [6]. Yahoo! Cloud Storage Support tools - ycs_tools (Subscription required Yahoo! Cloud Storage.) - Cancel [z]. CancelSelect No(1-4 or z). #?
今回はもちろん「[5]. Cloud Management Software - Scalr」を選択します。次のような画面に変わります。
### "Scalr" setup tool ### You can setting the "Scalr" in this setup tool.Select and Setup. 1) "Scalr" Setup 2) Uninstall 3) exit #?
「1) "Scalr" Setup」を選択し、Scalrのセットアップを開始します。 しばらくすると、「mysql root user password = ?」と聞かれますので、設定したいMySQLのrootパスワードを入力してください。
#? 1 installing scalr, php-pecl-http rpm... installing apache,php rpm... installing mysql... setup sample my.cnf(/usr/share/mysql/my-huge.cnf based)... starting mysqld... mysql root user password = ? 8F<3qnqgQ
同様に「mysql scalr user password = ?」とMySQLのscalrユーザーのパスワードを聞かれますので、設定したいパスワードを入力してください。ScalrはこのscalrユーザーとパスワードでMySQLへアクセスします。
setup chkconfig mysqld... setup sample php.ini... setup sample httpd.conf... setup sample httpd.conf part2... setup sample ssl.conf... starting httpd... setup chkconfig httpd... setup mysql scalr user & scalr db & scalr table & data... mysql scalr user password = ? a9;tWFgx5
次に「public ip or fqdn for sclar = ?」と聞かれますので、事前に割り当てたパブリックIPを入力します。Scalrへのアクセスは、ここで指定したIPアドレスへhttpsでアクセスすることになります。
setup scalr config.ini... public ip or fqdn for sclar = ? yyy.yyy.yyy.yyy
次に「scalr admin user password = ?」と聞かれます。これは、Scalrのadminユーザーのパスワードになります。
setup scalr admin password... scalr admin user password = ? mi5J]th2K
次に「auto generate domain = ?」と聞かれますが、これはDNS Zoneの管理でScalrが自動生成するドメインのことになります。Hosted版 Scalrでは「scalr.ws」となっているDNS Zoneです。
(DNS Zoneの新規作成時に「Use domain automatically generated and provided by Scalr」を選択した際に「英数字の羅列.scalr.ws」と自動生成してくれるZoneのことです。)
ここで指定したドメインがScalrへ設定されると共に、BINDのZoneファイルの作成を行います。
setup automatically generate domain... auto generate domain = ? test.egg.jp
次に「NS(SOA MNAME) FQDN for auto generate domain = ?」と聞かれますが、これは、前述の自動生成するドメイン用のBINDのZoneファイルのSOAレコードのMNAMEとNSレコードで利用されます。
ScalrではDNSの管理ができますので、自前でScalrを立てる場合はDNSの知識も必要になってきます。MNAME,NSは自動生成するドメインのプライマリーネームサーバーを指定します。
setup sample named.conf & zone file... NS(SOA MNAME) FQDN for auto generate domain = ? ns1.test.egg.jp
次に「EMAIL(SOA RNAME) for auto generate domain = ?」ですが、これもSOAレコードに関わる部分でMNAMEの設定になります。これは、前述の自動生成するドメインの管理者のメールアドレスを指定します。
EMAIL(SOA RNAME) for auto generate domain = ? hkajikawa@idcf.jp
「1 ) "Scalr" Setup setup finished!」と表示されれば完了です。
setup sample named.conf & zone file... setup chkconfig named... starting named... setup root & scalr user cron... Setup tool installed the sample configuration. Please complete setting to access the WebGUI. https://yyy.yyy.yyy.yyy/ Username: admin Password: mi5J]th2K Please create a Saclr user. To install the MindTerm, please refer to the /usr/share/doc/scalr-3.6.0/README.idcf.scalr. For more information, please check the FAQ.1 ) "Scalr" Setup setup finished!
さっそく、ブラウザーでアクセスしてみましょう。 上記に記載されていますが、アクセス先は
https://セットアップ途中に入力したIP/ Username: admin Password: セットアップ途中で入力したパスワード
となります。
セットアップ後の設定
WebGUIでログイン後、まずはじめに行うことは、一般ユーザーの登録です。画面上部のAccountsをクリックし、一覧の右の方にある、緑色の「+」をクリックしてください。 Accounts Createの画面が表示されますので、必要事項を入力し登録してください。同様の操作で、ユーザーを何人でも登録することができます。
一般ユーザーの登録ができたら、右上のAdminをクリックし、Logoutを選択してログアウトしてください。
初めのログイン画面に戻ったら、登録した一般ユーザーでログインします。
一般ユーザーでログイン後は、基本的にはHosted版のSaclrと同じ操作で同じことができます。
※ 最初にご説明した通り、Scalrを作成したセルフクラウドのアカウントを登録して管理することはできません。別アカウントを取得していただき、ご登録ください。
追加の設定
操作してみるとわかりますが、Hosted版では利用できるSSHコンソールの機能を使うとエラーになると思います。これは、コンソール接続で利用されているMindTerm(http://www.cryptzone.com/products/mindterm/)がインストールされていないためです。
MindTermはライセンスの関係で、テンプレートに含めることはできません。MindTermのライセンス等ご理解の上下記手順でMindtermをインストールしてみてください。(コンソールを利用しないのであれば、インストール不要です。)
※ 後ほど説明しますが、下記手順でインストールされるMindTermはHosted版で利用されているMindTermとは動作が一部異なります。
1. 「MindTerm Free Edition」のmindterm_3.4.2-bin.zipを入手してください。 2. 展開後、mindterm.jarを「/usr/share/scalr/www/ui2/java/mindterm.jar」へ配置します。 # unzip mindterm_3.4.2-bin.zip # cp mindterm-3.4.2/mindterm.jar /usr/share/scalr/www/ui2/java/mindterm.jar 3. 配置したmindterm.jarへ自己署名を行う。(署名しないと、JavaAppletとして動作させられません。) # yum install java-1.6.0-openjdk-devel # keytool -genkey -alias test -dname "CN=localhost, OU=Test Division, O=Test Company Inc., L=Shinjuku-ku, ST=Tokyo, C=JP" -validity 730 ※各パラメータは、自社に合わせて適宜変更してください。 # jarsigner /usr/share/scalr/www/ui2/java/mindterm.jar test
「MindTerm Free Edition」で配布されているMindTermと、Hosted版 Scalrで利用されているMindTermでは動作が一部異なります。
Hosted版のMindTermはSSHの秘密鍵を文字列として受け取れるように改変されているようで、Free Edtion版ではそのような動作をさせることができません。Free Edtion版では、SSHの秘密鍵はファイルとして指定する形となります。テンプレート版のOSS ScalrではScalr側を改変し、SSHの秘密鍵をファイルとして指定するように改変しました。
よって、コンソールを利用する前にFARMのSSH秘密鍵を、ローカルPCへダウンロードしておく必要があります。秘密鍵のダウンロードは、メニューの「SSH Keys」から行うことができます。
また、秘密鍵の保存場所はMindTermのディレクトリへ保存する必要があり、Windows7であれば「c:\Users[Login Name]/Application Data/MindTerm」へ保存する必要があります。面倒なことに、Windows7ではこのディレクトリをブラウズしながら辿ることができません。直接入力する必要があります(マウスでクリックしながら進むと、Application Dataのディレクトリが表示されません)。
なお、秘密鍵のファイル名は変更せずに、そのまま保存してください。
OSS版とHosted版との違いについて
1. 上述の通り、MindTermの動作が異なります。 2. DNS Endpoint(Connection Endpoint)が動作しません。 Hosted版では、各アプリケーションからデータベースへの参照用に、アクセス用のFQDNが別途が提供されます(scalr-dns.netのドメインで提供される物です。)が、こちらは機能しません。代替手段としてはDNS Zoneを割当てることです。割当てたDNS Zoneへもアクセス用のFQDNが記述されるため、こちらで代替可能です。(改修予定) 3. PHPMyAdminとの連携が機能しません。 PHPMyAdminをLaunchすると、https://phpmyadmin.scalr.net/と言った形で、Hosted版で提供されるURLから起動しようとしてしまいます。こちらの代替手段はありませんので、MySQLはコマンドラインで直接操作してください。(改修予定)
その他、注意事項
ScalrではDNSを管理することができますが、DNSをScalrで管理するためには、管理したいドメインの権限をScalrを構築したサーバーに委譲しなければなりません。どのドメインでも必要なのですが、特にauto generate domainを動作させるためには、あらかじめ上位のドメインより権限を委譲してもらうことを忘れないでください。
Scalrからauto generate domainを作成する際に、NSレコードの記述を忘れずに追加してください。Hosted版では、自動的にNSレコードを記載してくれるため忘れがちです。DNSレコードのデフォルトレコードはメニューの「DNS Zones」の一覧から、Default Recordsで指定可能ですが、こちらはうまく動かないようです。(ぜひ修正したいと思っています。パッチ募集中です。)
次のステップ
Scalrユーザー会の勉強会で利用したスライドをslideshareで公開しています。 是非こちらの手順にそって、やってみてください。(PHPMyAdminが動かないこととConnection Endpointの部分はご注意ください。)
第1回Scalrユーザー会 勉強会資料 Scalr Hands-on
Scalrユーザー会へのお誘い
Googleグループで「Scalrユーザー会」が立ち上がっていますので、興味のある方はぜひ参加してみてください。
Scalrユーザー会では、「国内における普及促進」「Scalr に関する情報収集と公開、技術促進」「ユーザー間および外部との技術的・交流促進」「Scalr関連技術に関する情報収集・配布」「Scalr講習会、ワークショップ等の開催」など、Scalrを盛り上げていきたいと考えています。なお、ユーザー会ではHosted Scalr、OSS Scalr どちらの話題も取り扱っていく予定です。 ScalrはIDCフロンティアではサポートすることができません。是非コミュニティへご参加いただき、みんなでScalrを盛り上げていきたいと思っています。