Ubuntu Enterprise Cloudによるプライベートクラウドの構築
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
2010年3月9日
本サイトは、Creationline,incがEucalyptus構築についての情報を提供するというサイトです。
本サイトの情報は、弊社が以前公開した「Eucalyptus報告書」
(/oss/eucalyptus/cl_report090624.pdf)の構築に関する部分をベースに再構成・再編集したものです。
オープンソース・クラウド基盤システムの利用検討は、高い信頼性を実現するシステムを低コストで構築・運用できる手段として、中小企業を含め多くの企業にとって重要且つ有用な選択肢であると考えています。今回の情報を公開することによって、多くの企業・団体で『Eucalyptus』を利用してサービスを構築する際の有益な資料として役立てていただくことを目的としています。
<目次>
1. はじめに ~実施する作業に関して~
1.1 作業項目
1.2 作業上の注意
1.3 必要となるスキル
2. Eucalyptusの構成
2.1 Eucalyptusで稼働するサービス
2.2 Ubuntu Enterprise CloudにおけるEucalyptusの構成
3. 構築準備
3.1要件
3.2仮想化支援機能対応状況の調査
4. OSインストール
4.1インストールCDの作成
4.2 インストールCDの起動
4.3 UECのインストール
5. コマンドによる操作
5.1 環境設定
5.2 Clusterの状況確認
5.3 Cluster以外での操作
5.4 イメージの登録
5.4.1 kernelイメージの登録
5.4.2 ramdiskイメージの登録
5.4.3 マシンイメージの登録
5.5 イメージの参照
5.6 キーペアの登録
5.7 インスタンスの起動
5.8 インスタンスの参照
5.9 セキュリティグループの設定
5.10 インスタンスへのログイン
5.10.1 通常のログイン
5.10.2 インスタンスログインエラー時の対応方法
5.10.3 PuTTYまたはWinSCPによる接続
5.11 EBSの利用
5.11.1 Volumeの利用
5.11.2 Snapshotの利用
5.12 Elastic IP
6. Eucalyptusウェブ設定
6.1 初期設定
6.2 各タブの説明
7. Elasticfoxによる操作
7.1 Elasticfoxインストール方法
7.2 設定方法
7.3 各機能の説明
7.4 Elasticfoxによる操作
7.4.1 Imagesタブ
7.4.2 Instancesタブ
7.4.3 KeyPairsタブ
7.4.4 Security Groupsタブ
7.4.5 Elastic IPsタブ
7.4.6 Volumes and Snapshotsタブ
8. Tips
8.1 デュアルブートからシングルブートに戻す
8.2 デフォルト起動OSの変更
8.3 ループバックデバイスの作成
1. 実施する作業に関して
1.1 作業項目
はじめに、これから実施する作業についてご説明いたします。本記事では以下の5項目の作業を行います。
・Ubuntu 9.10 Serverを利用しUbuntu Enterprise Cloud(以下UECとします)をインストールする(Cluster)
・Ubuntu 9.10 Serverを利用しUbuntu Enterprise Cloudをインストールする(Node)
・Eucalyptusの設定(UECではインストール時に設定を行う)
・Euca2ools(*1)によるEucalyptusの操作
・Elasticfox(*2)によるEucalyptusの操作
*1 Euca2oolsとは
Euca2oolsとは、AmazonのウェブサービスやEucalyptusを使用するためのコマンドラインツールです。
Amazon EC2やS3と互換性があります。
*2 Elasticfoxとは
Amazon EC2を操作するためのFirefox用アドオンであり、AMIの表示、インスタンスの起動、停止、セキュリティグループの設定、EBSボリュームの管理、Elastic IPの割り当てなど様々な機能を持っています。本来はAmazon EC2用に作成されたものですが、API互換性のあるEucalyptusでも利用することができます。
Apache License 2.0により配布されています。
1.2 作業上の注意
本作業はシステム管理者ほどの技術を必要とするわけではありませんが、設定・操作を誤ると既存OSを削除してしまうことなども考えられます。Windowsなどとのマルチブート構成で構築を行う場合は、バックアップなどにより万一の事態に備えてから試して頂きますようお願いいたします。
1.3 必要となるスキル
本作業を行う上で、以下のスキルが必要となります。
・パーティションに関する知識
パーティションのサイズ変更、追加などを行います。操作を誤ると既存のWindows領域などを削除してしまう可能性もあります。
・UNIXの簡単なコマンド知識(ls, cd程度で十分)
・Editor(vi、nanoなど)による簡単なテキスト編集能力
2. Eucalyptusの構成
2.1 Eucalyptusで稼働するサービス
Eucalyptusでは主に以下のようなサービスが稼働しています。
・Cloud Controller (CLC)
・Walrus
・Cluster Controller (CC)
・Storage Contoller (SC)
・Node Controller (NC)
本格的に構築を行う場合、それぞれのサービスの特性に合わせて別々のマシンに配置することも可能です。(図1)例えば、SANなどに接続されたマシンにWalrusを配置し、CPU処理能力の高いマシンにCloud Controllerを配置する、などが考えられます。
2.2 Ubuntu Enterprise CloudにおけるEucalyptusの構成
UECでは、複数のサービスを同一マシンにまとめることにより最少2台構成で構築できるようになっています。2台のうち、1台がClusterもう1台がNodeと呼ばれ、以下のような構成となっています(図2)。
■Cluster
・Cloud Controller (CLC)
・Walrus
・Cluster Controller (CC)
・Storage Contoller (SC)
■Node
・Node Controller (NC)
3. 構築準備
3.1要件
・Cluster用マシン1台
(要件)全てのパーティションがWindowsなどの領域になっていても問題ありませんが、連続した空き容量が最低20GB程度必要です。
・Node用マシン1台
(要件)全てのパーティションがWindowsなどの領域になっていても問題ありませんが、連続した空き容量が最低20GB程度必要です。
また、仮想化支援機能(*3)に対応している必要があります。
・Ubuntu 9.10 Server CD
(作成方法は後述します。)
・DHCPサーバーおよび割り当て可能なIPアドレス領域
(家庭用の一般的なルーターには、デフォルトでDHCPサーバー機能がついております)
例えば、筆者が利用しているBUFFALOの無線LANルーター「WZR-HP-G300NH」では、DHCPの「割り当てIPアドレス」設定が192.168.2.20から64台割り振る設定になっていますので192.168.2.20から192.168.2.83まではDHCP機能により自動で割り振られる可能性があります。
今回のEucalyptus構築では、192.168.2.100-192.168.2.120までを使用することとします。
*3 仮想化支援機能とは
Intel Virtualization Technology(Intel VT)またはAMD Virtualization(AMD-V)と呼ばれ、今回の場合KVMを使用した完全仮想化仮想マシンを動作させるために必要になる技術のことです。
3.2仮想化支援機能対応状況の調査
上述のとおりNode用マシンは仮想化支援機能に対応している必要がありますので、分からない方は以下のように対応状況を調べてみましょう。
Windowsにおいて、仮想化支援機能への対応状況を調べるには、「VirtualChecker(*4)」というソフトウェアを利用します。
*4 VirtualCheckerとは
仮想化支援機能に対応しているかどうかをチェックできるWindows用ソフトです。修正BSDライセンスにより提供されています。
以下のURLにアクセスし、ツールをダウンロードします。
http://openlibsys.org/index-ja.html
ページ中央部のVirtualChecker 1.0あたりの「実行ファイル」をクリックすると、「VirtualChecker.zip」のダウンロードが始まります。
ダウンロード完了後、VirtualChecker.zipを解凍します。解凍したフォルダ内のVirtualChecker.exeを実行します。
実行すると小さなウィンドウが起動し、その表示によりPCが仮想化支援機能に対応しているかどうか判断できます。
以下のように、青色のボタンで"有効"と表示された場合仮想化支援機能に対応していますので、この項は読み飛ばして先に進んでください。
対応していない場合は、灰色のボタンで"未対応"と表示されます。また、もしCPUが対応していても、BIOS設定で無効になっている場合は"無効"と表示されます。
その場合は、BIOS設定画面で仮想化支援機能を有効にすることで利用可能となります。
BIOS設定画面を起動する方法はPCにより異なりますが、PC起動後にF2やDELキーで入れるものが多いと思います。筆者の使用しておりますThinkpad X61では以下の手順で仮想化支援機能を有効にすることができるようになっています。
1. 起動時に青色のThinkvantageキーを押下
2. F1キーによりBIOS設定画面に遷移
3. Configを選択
4. CPUを選択
5. Intel(R) Virtualization Technologyを選択
6. Enabledを選択
また、Windows環境でない方はお使いのLinuxなどにログインするか、Linux LiveCDなどで起動し、以下のコマンドを実行することにより、仮想化支援機能への対応状況を調べることができます。
お使いのPCのCPUがIntelの場合
$ grep vmx /proc/cpuinfo
お使いのPCのCPUがAMD場合
$ grep svm /proc/cpuinfo
を実行します。
上記コマンドにより、以下のような出力が得られればCPUとしては仮想化支援機能に対応しています。
あとはBIOSなどの対応によりKVM仮想マシンを起動できる可能性があります。
$ grep vmx /proc/cpuinfo
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm ida tpr_shadow vnmi flexpriority
上記2つのコマンドを実行しても、何の出力も得られない場合は仮想化支援機能に対応していないため、KVMにおける仮想マシンの起動を行うことができません。本記事では、仮想化支援機能を必要とするKVMの使用を前提としたUbuntu Enterprise Cloudの構築方法について執筆しておりますが、EucalyptusではXenの準仮想化もサポートしています。その構築方法については本記事では割愛しますが、ぜひチャレンジしてみてください。
4. OSインストール
4.1インストールCDの作成
まず始めにOSインストール用にUbuntu 9.10 Server CDを作成します。
以下のURLにアクセスし、Download location:で「Japan」を選択して、「Begin Download」をクリックします。
http://www.ubuntu.com/getubuntu/download-server
ubuntu-9.10-server-amd64.isoのダウンロードが始まりますので、このファイルを任意の場所に保存します。
次にライティングソフトによりCDの作成を行います。
CDに書き込む際にISOファイルをファイルとして扱うのではなく、イメージとして扱う必要があります。
ライティングソフトにより表現に多少の違いはありますが「ディスクにイメージを書き込む」のようなオプションを選択して、CDを作成すれば問題ありません。
4.2 インストールCDの起動
作成したUbuntu 9.10 Server CDをPCにセットし、マシンを起動します。
BIOSの設定により、CDドライブよりもハードディスクからの起動優先度が高くなっている場合は、既存インストールされているOSが起動してしまいます。この場合、BIOS設定により起動の優先順位を変更し、CDから起動されるようにしてください。
4.3 UECのインストール
CDからの起動が成功した場合、以下のような画面が表示されます。
日本語インストールを行いますと、デフォルト状態ではコンソール上で日本語表示を行った際に文字化けしし、エラーの原因の特定などが難しくなります。設定により正常に表示することはできますが、ここでは余計な手間を減らすため「English」を選択します。
モード選択画面で、「Install Ubuntu Enterprise Cloud」を選択します。
このモードは、Canonical社が提唱するEucalyptusを用いたプライベートクラウドを構築するためのものです。
言語の設定画面です。最初の画面で「English」を選択した場合、「English」がデフォルトで選択されているはずです。そのままEnterを押下します。
国または地域の選択画面です。「言語選択」にて「English」を選択したため、英語圏の国々が表示されています。「Japan」を選択するため、ここでは「other」を選択します。
国または地域選択画面
「Japan」を選択します。(Jキーを1回押すと「Japan」が選択されます。)
※EucalyptusではCluster側とNode側で通信を行う際に、時間情報を参照します。そのため、ClusterインストールとNodeインストールで同じ地域を選択する必要があります。
キーボードレイアウト検知設定画面
キーボードレイアウト検知設定画面です。
通常は「No」で問題ありません。環境により、「Yes」を選択し自動検知を行ってください。
キーボードレイアウト選択画面(1)
通常のキーボード(左側上部に“半角/全角 漢字”のキーが存在するもの)を使用している場合、「Japan」で問題ありません。それ以外の場合は環境に合わせて選択してください。
キーボードレイアウト選択画面(2)
「Japan」で問題ありません。
DHCPによりIPアドレスを正常に取得できた場合、この画面に遷移しますが今回は固定IPアドレスを設定するため「Go Back」を選択します。
手動設定を行うので「Configure network manually」を選択します。
任意でIPアドレスを入力します。
ClusterとNodeのIPアドレスが重複しないようにしてください。
ネットマスクを入力します。家庭での使用であれば通常「255.255.255.0」で問題ないでしょう。
Gatewayを入力します。ご使用のルーターのIPアドレスを入力してください。
ネームサーバーを入力します。通常は、ルーターのIPアドレスで問題ないでしょう。
ホスト名入力画面
任意でホスト名を入力します。ここでは、「cluster1」と入力しています。
ドメイン名入力画面
任意でドメイン名を入力します。ここでは、「localdomain」と入力しています。
Cluster/Nodeインストール選択画面
「Cluster」か「Node」を選択します。Clusterインストールの場合「Cluster」を選択します。
パーティション管理画面
上記画面は、ディスク領域にパーティションが一つしかない場合の例です。
※この作業は、既存のWindowsなどの領域を削除する可能性があります。操作の意味を十分に理解した上で実行してください。
「Guided ? resize SCSI 3 (0,0,0), partition #1~」を選択します。
「Guided ? use entire disk」「Guided ? use entire disk and set up LVM」などを選択した場合、ハードディスク内のすべてを消去し、新たにパーティションを作成する設定です。この場合、既存のWindowsなどは、すべて消去されます。
パーティション管理確認画面
以下、上記画面の意訳です。
新しいパーティションサイズを入力する前に、すべての変更を書き込む必要があります。
この操作は取り消すことができません。
また、パーティションサイズ変更には長時間必要な場合があります。
設定済みの変更を書き込み、操作を続けますか?
前の画面での設定に間違いがなければ、
「Yes」を選択してください。
前の画面に戻る場合はTabキーを数回押して、「Go Back」を選択してください。
パーティションサイズ入力画面
既存パーティションの変更後のサイズを入力します。
上記画面では、既存のパーティション(筆者の環境ではWindows領域)を8.6GB~61.7GBの範囲で選択できることを示しています。既存のパーティションは、ここで入力するサイズに変更され、残りの領域がこれからインストールするUbuntuのための領域として割り当てられます。
「30GB」と入力した場合、Windows領域のサイズが30GBに圧縮され、残りがUbuntu用の領域となります。
パーティション管理確認画面
上記画面より、
ext4ファイルシステムの領域
swap領域
がパーティション番号5と6に確保されることがわかります。
もし既存のOSを残す設定をしたつもりにも関わらず、この画面でpartition #0やpartition #1の表記がある場合、設定が間違っている可能性があります。その場合は「No」を選択してください。
設定に問題が無ければ「Yes」を選択し、先に進みます。
パーティションがフォーマットされ、ベースシステムがインストールされます。ディスクサイズが大きい場合、時間がかかる可能性があります。
ユーザ名入力画面
ユーザ名を入力します。ここでは「cl」と入力しています。
アカウント名入力画面
ログインに使用するアカウント名を入力します。先ほどのユーザ名がデフォルトで入力されています。問題が無ければそのまま「Continue」を選択します。
パスワード入力画面
パスワードを入力します。
パスワード入力確認画面
先ほど入力したパスワードをもう一度入力します。
ホームディレクトリ暗号化設定画面
ホームディレクトリを暗号化する場合は「Yes」を選択します。通常の使用では「No」で問題ありません。
HTTPプロキシ設定画面
プロキシの設定が必要な場合以外は、空白のまま進めても問題ありません。
パッケージアップデート設定画面
システム自動アップデートに関する設定を行います。ユーザの環境に合わせて任意で選択してください。
ここでは、「No automatic updates」を選択します。
メールサーバー設定画面
メールサーバーからの配信設定を行います。ここでは「Local only」を選択します。
メール名入力画面
メールアドレスを修飾するドメイン名を入力します。デフォルトのままで問題ありません。
「Continue」を選択します。
クラスター名入力画面
クラスター名を入力します。クラスター名とは、Amazon EC2で言うところのゾーン名であり、2. 構成で説明済みの「Cluster A」に該当する名称のことです。
ここでは「cluster1」とします。
Public IP範囲指定画面
Eucalyptusがインスタンスに対して、割り振るPublic IPの範囲を指定します。
ADSLモデムルーターなどのDHCPサーバー機能を利用している人が多いかと思います。これらのルーターにはウェブ上でアクセスし、簡易管理できる機能がついています。それぞれの環境に合わせDHCPの割り当て範囲を確認し、その範囲外で利用できるIPをここで割り当てることになります。
例えば、筆者の環境では192.168.2.20から64台をDHCPで割り当てる設定になっており、固定IPを割り当てているマシンも存在していないので
192.168.2.101-192.168.2.120
の20個のIPアドレスをEucalyptus用に指定しています。
使用可能なIPアドレスがない場合は、IPアドレスを指定せずに空白のままインストールを進めることもできます。その場合、後ほど説明いたしますインスタンス起動コマンド(euca-run-instances)で、--addressing privateを指定して起動する必要があります。
GRUBブートローダーをマスターブートレコードにインストールします。
2行目に筆者の環境で元々インストールされていたOS(Microsoft Windows XP Home Edition)が表示されています。ここに既存のOSが表示されている場合は、そのままインストールしても問題はありません。
「Yes」を選択します。
インストール完了画面
インストールが完了しました。CDドライブからUbuntuインストールCDを取り出して、「Continue」を選択します。
以上でClusterのインストールが完了しました。
続いてNodeのインストールを行います。このときClusterが起動しネットワークに接続されている状態でNodeのインストールを行ってください。ネットワーク内のClusterを自動で認識し、Cluster/Nodeインストールを選択する箇所で、Nodeが自動選択されます。これによって、Clusterが正常に動作していることを確認することもできますので、間違いが少なくなると思います。
Nodeのインストールは、Clusterのインストール時よりいくつか質問が少ない以外は、ほぼ手順が同じですので誌面の都合上割愛させて頂きます。
5. コマンドによる操作
5.1 環境設定
Clusterインストールしたマシンにログインし、以下のコマンドを実行します。
$ sudo euca_conf --get-credentials mycreds.zip
このコマンドを実行することにより、mycreds.zipというファイルが保存されます。
この中には証明書と環境設定ファイルが入っています。これを解凍し.eucaディレクトリに配置します。
$ unzip ?d ~/.euca mycreds.zip
環境設定ファイルを読み込み、自分の環境に設定を行います。
$ . ~/.euca/eucarc(先頭の"."に注意してください。)
ログインする度に環境設定ファイルを読み込むのは手間なので.profileファイルを以下のように変更し
自動でEucalyptusに関する環境設定を行うよう設定します。
$ vi ~/.profile(以下nanoなどの別のエディターを使用する方はvi部分を適宜読み替えてください。)
で.profileファイルを開き、一番下に
. ~/.euca/eucarc
を追記します。
eucarcの中には、接続先、アクセスキー、シークレットキー、ユーザIDなどの情報が記されています。興味のある方は
$ cat .euca/eucarc
を実行し、中を参照してみてください。
5.2 Clusterの状況確認
まずは、Cluster自体の情報を参照してみます。
$ euca-describe-availability-zones verbose
今回のセットアップでは、Cluster1台、Node1台の構成となっており、NodeのCPUのCoreは2つなので、下のようになっています。
以下、簡単に説明いたします。
1行目 Cluster名とそのホスト名を表しています。
2行目 3行目以下のタイトルです。
vm types インスタンス起動時に指定するCPU、メモリ、ディスクのサイズにより、5つの
タイプが用意されています。この設定は後ほど説明いたしますEucalyptus
ウェブ設定にて設定することができます。
free / max インスタンスを起動することのできる残り数 / 最大数
cpu ram disk CPU、メモリ、ディスクサイズ
$ euca-describe-availability-zones verbose
AVAILABILITYZONE cluster1 192.168.2.90
AVAILABILITYZONE |- vm types free / max cpu ram disk
AVAILABILITYZONE |- m1.small 0002 / 0002 1 128 2
AVAILABILITYZONE |- c1.medium 0002 / 0002 1 256 5
AVAILABILITYZONE |- m1.large 0001 / 0001 2 512 10
AVAILABILITYZONE |- m1.xlarge 0001 / 0001 2 1024 20
AVAILABILITYZONE |- c1.xlarge 0000 / 0000 4 2048 20
5.3 Cluster以外での操作
ここまでは全てClusterマシンに直接ログインして操作を行ってきましたが、当然ながらCluster以外のマシンでもEucalyptusの操作を行うことができます。
本来の環境では、今回セットアップを行ったClusterとNode以外でインスタンスの起動や停止などの操作、ログインを行うのですが、その場合個別にEuca2oolsのインストール、環境設定などを行い操作をする必要があります。
NodeにもCluster同様にEuca2oolsがインストールされていますので、ここではNodeで操作を行う方法をご説明いたします。しなければならないことは以下の2つです。
・Clusterで取得したクレデンシャルファイルをコピーする。
・環境設定を行う
以下にその方法を示します。
$ scp 192.168.2.**:/home/cl/mycreds.zip .
$ unzip -d .euca mycreds.zip
$ . .euca/eucarc
$ euca-describe-availability-zones verbose
5.4 イメージの登録
インスタンスの元となるマシンのイメージ登録を行います。EucalyptusではAmazon EC2と同じように、起動時に以下の3つのイメージを選択し、起動することになります。
・kernelイメージ
・initrdイメージ
・マシンイメージ
まずはこれらのイメージをEucalyptusのWalrus領域に登録する必要があります。
以下にその手順を示します。
まずはkernel、initrd、マシンイメージがセットになっている便利なアーカイブが用意されていますので、それをダウンロードし、解凍します。今回はCentOS 5.3のイメージを利用します。
$ mkdir src
$ cd src
$ wget http://eucalyptussoftware.com/downloads/eucalyptus-images/euca-centos-5.3-x86_64.tar.gz
$ tar xzvf euca-centos-5.3-x86_64.tar.gz
6章 Eucalyptusウェブ設定の「6.2 各タブの説明」で後述しますが、いくつかのイメージが用意されています。この画面のリンクからご希望のイメージをダウンロードすると便利です。
5.4.1 kernelイメージの登録
$ euca-bundle-image --image euca-centos-5.3-x86_64/kvm-kernel/vmlinuz-2.6.28-11-generic --kernel true
$ euca-upload-bundle --bucket centos-kernel-bucket -m /tmp/vmlinuz-2.6.28-11-generic.manifest.xml
$ euca-register centos-kernel-bucket/vmlinuz-2.6.28-11-generic.manifest.xml
$ export EKI=`euca-describe-images | awk '/eki/ {print $2}'`
$ echo $EKI
5.4.2 ramdiskイメージの登録
$ euca-bundle-image --image euca-centos-5.3-x86_64/kvm-kernel/initrd.img-2.6.28-11-generic --ramdisk true
$ euca-upload-bundle --bucket centos-ramdisk-bucket -m /tmp/initrd.img-2.6.28-11-generic.manifest.xml
$ euca-register centos-ramdisk-bucket/initrd.img-2.6.28-11-generic.manifest.xml
$ export ERI=`euca-describe-images | awk '/eri/ {print $2}'`
$ echo $ERI
5.4.3 マシンイメージの登録
$ euca-bundle-image --image euca-centos-5.3-x86_64/centos.5-3.x86-64.img --kernel $EKI --ramdisk $ERI
$ euca-upload-bundle --bucket centos-image-bucket -m /tmp/centos.5-3.x86-64.img.manifest.xml
$ euca-register centos-image-bucket/centos.5-3.x86-64.img.manifest.xml
$ export EMI=`euca-describe-images | awk '/emi/ {print $2}'`
5.5 イメージの参照
登録されているイメージを参照します。上記コマンドにより、正常に登録が完了していれば、以下のように表示されるはずです。(eki-********、eri-********、emi-********は人により異なります。)
$ euca-describe-images
IMAGE eki-A84217CB centos-kernel-bucket/vmlinuz-2.6.28-11-generic.manifest.xml admin available public x86_64 kernel
IMAGE eri-10661916 centos-ramdisk-bucket/initrd.img-2.6.28-11-generic.manifest.xml admin available public x86_64 ramdisk
IMAGE emi-1CA915A4 centos-image-bucket/centos.5-3.x86-64.img.manifest.xml admin available public x86_64 machine
* {コマンド} ?helpを実行することで、各コマンドの説明やオプションを参照することができます。説明は英語ですがそれほど難しくはないので、どのようなオプションがあるかなど興味のある方は読んでみてはいかがでしょうか。
例: euca-register --help
5.6 キーペアの登録
次にRSAのキーペアを登録します。
euca-add-keypairコマンドを実行することにより、パブリックキーはClusterに登録され、プライベートキーはコンソール上に表示されます。この表示をファイルにリダイレクトし、mykey.privateとして保存し、適切なパーミッションを設定します。
$ euca-add-keypair mykey | sed ?e "1d" > ~/.euca/mykey.private
$ chmod 600 ~/.euca/mykey.private
ここでsedコマンドにより1行目を削除して保存しています。その理由は、1行目にキーペアの名前などプライベートキー以外の情報があるためです。削除しなくても動作には問題ありませんが、この行が存在すると後ほど説明いたしますPuTTY用鍵への変換作業でエラーが出るため、削除しておいた方が無難でしょう。
ここで登録したキーペア(今回はmykey)を指定しインスタンスを起動すると、ペアとなっているプライベートキーを利用することによりインスタンスへの接続が可能となります。
正常にClusterにKeypairが登録されているか参照します。
$ euca-describe-keypairs
KEYPAIR mykey b9:a2:ed:ac:98:06:e3:5c:dc:d5:6d:aa:22:a9:98:03:dd:04:11:ba
5.7 インスタンスの起動
実際にインスタンスの起動を行います。
$ euca-run-instances -k mykey --group default $EMI
RESERVATION r-57FC09C9 admin admin-default
INSTANCE i-3E44072D emi-1CBA15AB 0.0.0.0 0.0.0.0 pending mykey 2009-12-22T06:12:00.638Z eki-A85617D0 eri-10661918
オプションとして、-kで先ほど作成したKeypairの名前を渡します。このオプションを指定しなくても、インスタンスは起動しますが、sshによるログインはすることができません。
また、--groupでdefaultを指定しています。これは後ほどセキュリティグループの説明で触れることにします。
* キーペア指定時のオプションに関する注意
UECに付属するEuca2oolsバージョン1.0のeuca-run-instances のヘルプを参照すると、キーペアの指定には、-k または ?keypair を使用することができることになっています。しかし--keypairを指定すると実際には以下のエラーメッセージが表示され、インスタンスを起動することができません。
option --keypair not recognized
-kオプションを使用するようにしてください。
* インストール時にPublic IPの範囲を指定していない場合の注意
$ euca-run-instances -k mykey --group --addressing private default $EMI
のように--addressing privateオプションを追加して起動してください。その場合、インスタンスに対して172.19.0.0/16の範囲でIPが割り振られることになります。Clusterマシン以外から起動したインスタンスにアクセスするためにはルーティング設定が必要になります。
具体的な設定例を以下に示します。
・Linuxの場合
$ sudo route add -net 172.19.0.0 netmask 255.255.0.0 gw 192.168.2.90
・Windowsの場合
> route add 172.19.0.0 mask 255.255.0.0 192.168.2.90
複数のマシンからのアクセスが必要である場合、上記設定をルーターにすると良いでしょう。
5.8 インスタンスの参照
次にインスタンスの状態を参照します。
$ euca-describe-instances
RESERVATION r-57FC09C9 admin default
INSTANCE i-3E44072D emi-1CBA15AB 192.168.2.101 172.19.1.2 running mykey 0 m1.small 2009-12-22T06:12:00.638Z cluster1 eki-A85617D0 eri-10661918
出力の2行目「INSTANCE」の右側にあるi-********はインスタンスIDです。インスタンスIDはインスタンス停止や、EBSの使用時などで使用します。
また、インスタンスIDの右から順にマシンイメージ名、パブリックIPアドレス、プライベートIPアドレス、インスタンスの状態、キーペア名を表しています。
インスタンス起動直後にこのコマンドを実行すると、上記でrunningとなっている箇所がpendingとなっていますが、マシンのスペックにより1分~数分程度でrunningに変わります。もし、あまりにも遅い場合は、インストールの失敗や仮想化支援機能への未対応などを疑ってください。
インスタンスIDは様々な場面で利用しますので、以下のようなコマンドを使用してインスタンスIDを環境変数に設定すると作業が楽になる場合があります。
$ export INSTANCE=i-3E44072D
早速ログインを試みます。
$ ssh -i .euca/mykey.private root@192.168.2.101
(IPアドレス、インスタンスIDなどは各々の環境に合わせてeuca-describe-instancesで表示されるパブリックIPアドレスを指定してください。以下同様です。)
しばらく待っても何も反応がないはずです。。実はこの状態ではどこからもアクセスを受け付けません。この後に説明するセキュリティグループの設定を行う必要があるのです。
5.9 セキュリティグループの設定
セキュリティグループとは、簡単に説明するとfirewallの設定です。全てのインスタンスは、何かのセキュリティグループに属することになっており、そのセキュリティグループに対して、どのようなアクセスを許可するかなどを設定します。
以下に具体的な例を示します。
$ euca-authorize -P tcp -p 22 -s 0.0.0.0/0 default
$ euca-authorize -P icmp -s 0.0.0.0/0 default
上記設定では、defaultのセキュリティグループに対して
・どこからでもSSHのアクセスを受け付ける
・どこからでもPINGのアクセスを受け付ける
という設定を行っています。
以下に設定例を示します。
192.168.2.**からのみSSHのアクセスを受け付けるようにするには
$ euca-authorize -P tcp -p 22 -s 192.168.2.0/24 default
192.168.2.10からのみSSHのアクセスを受け付けるようにするには
$ euca-authorize -P tcp -p 22 -s 192.168.2.10/32 default
なお、セキュリティグループの設定を削除する場合は以下のコマンドを実行します。
$ euca-revoke -P tcp -p 22 -s 0.0.0.0/0 default
現在のセキュリティグループ設定を参照するには以下のコマンドを実行します。
$ euca-describe-groups
GROUP admin default default group
PERMISSION admin default ALLOWS tcp 22 22 FROM CIDR 0.0.0.0/0
PERMISSION admin default ALLOWS icmp 0 0 FROM CIDR 0.0.0.0/0
ここまでは、始めから用意されているdefaultというグループを利用していましたが、以下のコマンドにより任意のグループを追加することもできます。
$ euca-add-group ?d "for web" web
ルールを設定する場合は先ほどと同様にeuca-authorizeにより設定します。
$ euca-authorize -P tcp -p 22 -s 0.0.0.0/0 web
$ euca-authorize -P tcp -p 80 -s 0.0.0.0/0 web
上記の例ではSSHとHTTPのみアクセスを受け付けるように設定しています。
セキュリティグループの削除は以下のコマンドを実行します。
$ euca-delete-group web
5.10 インスタンスへのログイン
5.10.1 通常のログイン
$ ssh -i .euca/mykey.private root@192.168.2.101
初めてログインする際には以下のような確認が表示されますので、「yes」と入力してください。
Are you sure you want to continue connecting (yes/no)? yes
-bash-3.2#
のようなプロンプトが表示されれば、正常にたった今起動したインスタンスに接続できていることになります。
今ログインしているマシンは、インスタンスと呼ばれNode上で起動しているKVMの仮想マシンです。インスタンス上では、普通の物理マシンと同じようにウェブサーバーやデータベースサーバーなどをインストールし、動作させることができます。
5.10.2 インスタンスログインエラー時の対応方法
インスタンスの停止・作成を繰り返し、同じIPを保持したインスタンスにログインする際に以下のようなエラーメッセージが出力されます。
これはSSH接続の際に保存していた接続先に対する一意の情報が前回と異なることを示す警告メッセージです。
$ ssh -i .euca/mykey.private root@192.168.2.101
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**
Please contact your system administrator.
Add correct host key in /home/cl/.ssh/known_hosts to get rid of this message.
Offending key in /home/cl/.ssh/known_hosts:2
RSA host key for 192.168.2.101 has changed and you have requested strict checking.
Host key verification failed.
この場合は、以下のコマンドを実行してください。実行後に再度接続すると問題なくログインできるはずです。
$ ssh-keygen -R 192.168.2.101
5.10.3 PuTTYまたはWinSCPによる接続
euca-add-keypairコマンドで作成された鍵はOpenSSH形式です。PuTTYやWinSCPでインスタンスに接続するためにはPuTTY形式に変換する必要があります。
以下にその手順を示します。
1. PuTTYインストールフォルダ内のputtygen.exeを実行
2. 画面上部の「変換」を押下
3. 「鍵のインポート」を選択
4. euca-add-keypairコマンドで作成したプライベートキーを選択
5. 「秘密鍵の保存」を押下
6. パスフレーズなしで本当によろしいですか?の旨の質問に対し、「はい」と答える
7. PuTTY秘密鍵ファイルの名前を入力し保存
以上で、PuTTYに対応したプライベートキーが作成されます。PuTTYやWinSCPにより接続する際にこのキーを指定することにより、正常にログインを行うことができます。
5.11 EBSの利用
インスタンスは、物理マシンや仮想マシンとは違い、停止すると全ての変更が失われてしまいます。データを永続的に保持するにはAmazon EC2のElastic Block Store(EBS)にあたる機能を利用します。
まずはvolumeと呼ばれる仮想ディスクを作成します。
5.11.1 Volumeの利用
$ euca-create-volume --size 2 --zone cluster1
VOLUME vol-32C504AC 2 creating 2009-12-22T06:46:56.378Z
--sizeでサイズ(GB)を、--zoneでクラスター名を指定します。
正常に作成されているかを確認します。
$ euca-describe-volumes
VOLUME vol-32C504AC 2 cluster1 available 2009-12-22T06:46:56.378Z
インスタンスに対して、volumeを接続します。
$ euca-attach-volume --instance i-3E44072D --device /dev/sdb vol-32C504AC
VOLUME vol-32C504AC
もう一度volumeの状態を確認します。i-3E44072Dというインスタンスに対して、接続されていることが確認できます。
$ euca-describe-volumes
VOLUME vol-32C504AC 2 cluster1 in-use 2009-12-22T06:46:56.378Z
ATTACHMENT vol-32C504AC i-3E44072D unknown,requested:/dev/sdb 2009-12-22T06:54:55.225Z
*本来は、上記のunknown,requested:/dev/sdbとなっている部分に接続されたデバイス名が表示されるのですが、Ubuntu 9.10 Serverに付属するKVMの制限により指定デバイス名での接続を行うことができません。そのため、指定したデバイス名ではなく空いているデバイスの若い順に自動でデバイス名が指定されるようです。
実際に接続されたデバイス名を確認するには、以下のコマンド
$ euca-get-console-output i-3E44072D
や、インスタンスにログインした後に
# dmesg
を実行し、
[ 2409.150783] sd 3:0:0:0: [sdb] Attached SCSI disk
のような行を参照する必要があります。
この場合、/dev/sdbに接続されたことがわかります。
次に接続したデバイスを使用するため、fdiskによりパーティションを作成します。
インスタンスにログイン後に以下のコマンドを実行してください。
mkfsによりファイルシステムを作成し、マウントします。
/mntはEBS領域ですので、インスタンス停止後もデータが永続化されます。/mnt以下にファイルを作成した後に、新しいインスタンスにこの領域をマウントし、データが残っていることを確認してみてください。
5.11.2 Snapshotの利用
マウントしたディレクトリに適当なファイルを作成します。
-bash-3.2# touch test
-bash-3.2# ls
lost+found test
実際にSnapshotを作成する前に、メモリ上のデータを確実にディスクに書き込むために以下のコマンドを実行します。
-bash-3.2# sync
EBS volumeからSnapshotを作成します。
Snapshotとは、その時点におけるブロックデバイスのコピーのことです。
インスタンスの外で以下のコマンドを実行してください。
$ euca-create-snapshot vol-32C504AC
SNAPSHOT snap-32DA04A9 vol-32C504AC pending 2010-01-04T08:55:50.012Z 0%
しばらく待ち、以下のコマンドを実行し状態がcompletedとなればSnapshotの作成は完了です。
snap-********の部分がSnapshot IDです。
$ euca-describe-snapshots
SNAPSHOT snap-32DA04A9 vol-32C504AC completed 2010-01-04T08:55:50.012Z 100%
これでいつでもSnapshotからVolumeを作成することができます。
SnapshotからVolumeを作成してみましょう。
$ euca-create-volume --snapshot snap-32DA04A9 --zone cluster1
VOLUME vol-32C504AC snap-32DA04A9 creating 2010-01-04T09:05:14.925Z
オプションは新規Volume作成時とほとんど変わりませんが、新規作成時はサイズを指定していたのに対して、今回はSnapshot IDを指定しています。
Snapshotの削除は以下のように行います。
$ euca-delete-snapshot snap-32DA04A9
Volumeの削除も同様に以下のように行います。
$ euca-delete-volume vol-32C504AC
5.12 Elastic IP
続けてElastic IPを使用します。
まずは現状の割り当て状況を把握しましょう。
$ euca-describe-addresses
ADDRESS 192.168.2.101 i-3E44072D (eucalyptus)
ADDRESS 192.168.2.102 nobody
ADDRESS 192.168.2.103 nobody
ADDRESS 192.168.2.104 nobody
~以下省略~
次に固定IPを取得します。
$ euca-allocate-address
ADDRESS 192.168.2.102
もう一度割り当て状況を確認すると、192.168.2.102が割り当て可能となっていることがわかります。
$ euca-describe-addresses
ADDRESS 192.168.2.101 i-3E44072D (eucalyptus)
ADDRESS 192.168.2.102 available (admin)
ADDRESS 192.168.2.103 nobody
ADDRESS 192.168.2.104 nobody
~以下省略~
この状態で以下のコマンドを実行することにより、インスタンスに指定のIPアドレスを割り当てることができます。
$ euca-associate-address -i i-3E44072D 192.168.2.102
ADDRESS 192.168.2.102 i-3CE507C3
再度割り当て状況を確認し、IPアドレスが変わっていることを確認してください。
$ euca-describe-addresses
ADDRESS 192.168.2.102 i-3E44072D (admin)
ADDRESS 192.168.2.101 nobody
ADDRESS 192.168.2.103 nobody
ADDRESS 192.168.2.104 nobody
~以下省略~
割り当てを解除する場合は以下のコマンドを実行します。
$ euca-disassociate-address 192.168.2.102
ADDRESS 192.168.2.102
割り当て状況を確認すると、IPアドレスの割り当てが解除され、利用可能な一番若いIPアドレス(今回の場合192.168.2.101)が割り当てられていることがわかります。
$ euca-describe-addresses
ADDRESS 192.168.2.101 i-3E44072D (eucalyptus)
ADDRESS 192.168.2.102 available (admin)
ADDRESS 192.168.2.103 nobody
ADDRESS 192.168.2.104 nobody
~以下省略~
一度取得したIPアドレスを解放するには、以下のコマンドを実行します。
$ euca-release-address 192.168.2.102
ADDRESS 192.168.2.102
これで最初と同じ状況に戻ったことになります。
$ euca-describe-addresses
ADDRESS 192.168.2.101 i-3E44072D (eucalyptus)
ADDRESS 192.168.2.102 nobody
ADDRESS 192.168.2.103 nobody
ADDRESS 192.168.2.104 nobody
~以下省略~
最後にインスタンスを停止してみましょう。
$ euca-terminate-instances i-3E44072D
ここまでで、一通り使えるくらいになったと思います。
6. Eucalyptusウェブ設定
6.1 初期設定
次に、ウェブブラウザからEucalyptusの設定を行う方法を説明します。
まずは、ウェブブラウザのURLに以下を指定しアクセスします。
https://{ClusterのIPアドレス}:8443/
SSL接続のため、「接続の安全性を確認できません」とのメッセージが表示されます。お使いのブラウザに合わせて、例外として登録することで次回以降このメッセージが表示されなくなります。
Firefoxでの操作手順を以下に示します。
1. 「例外を追加...」ボタンを押下
2. 「セキュリティ例外を承認」ボタンを押下
初期IDとパスワードは
ID: admin
Password: admin
となっています。ログイン後、新しいパスワードとメールアドレスの入力を求められるので入力を行ってください。
ログインするといくつかのタブがありますが、この中で特に本記事で関係してくるのは、
・Credentials
・Images
・Configuration
・Extras
です。
6.2 各タブの説明
Credentialsタブでは、ユーザの情報の変更やクレデンシャルファイルのダウンロードなどを行うことができます。
Imagesタブでは、登録済みのマシンイメージなどを確認することができます。
Configurationタブでは、WalrusのIPアドレスや容量、VM Type毎のCPU、メモリ、ディスクの割り当て設定など、様々な設定を行うことができます。
Extrasタブでは、用意されているイメージを参照、ダウンロードすることができます。
7. Elasticfoxによる操作
7.1 Elasticfoxインストール方法
以下のサイトより、ダウンロードを行います。
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609
右側にある「Download」をクリックし、保存してください。
※本記事では執筆時点の最新バージョンは1.7.000112ですが、筆者の環境ではRegionsが正しく表示されないなどのバグがあったため、1.7.000110を使用しています。
バージョン1.7.000110は弊社のサーバーからもダウンロードできるようにしておきますので、動作に不具合のある場合はこちらをご利用ください。
/Elasticfox-1_7_000110/elasticfox.xpi
保存したelasticfox.xpiをFirefoxにドラッグアンドドロップし「今すぐインストール」をクリックすることによりインストールが始まります。Firefoxを再起動することによりインストールが完了します。
Firefox再起動後、ツール > Elasticfoxと選択することで、Elasticfoxが起動します。
7.2 設定方法
まず始めに、以下の3項目を設定する必要があります。
・Regions
・Credentials
・Account Ids
設定をする前に、Eucalyptusの環境設定を以下のように確認します。
$ cat ~/.euca/eucarc
EUCA_KEY_DIR=$(dirname $(readlink -f ${BASH_SOURCE}))
export S3_URL=http://192.168.2.90:8773/services/Walrus
export EC2_URL=http://192.168.2.90:8773/services/Eucalyptus
export EC2_PRIVATE_KEY=${EUCA_KEY_DIR}/euca2-admin-ab96db45-pk.pem
export EC2_CERT=${EUCA_KEY_DIR}/euca2-admin-ab96db45-cert.pem
export EUCALYPTUS_CERT=${EUCA_KEY_DIR}/cloud-cert.pem
export EC2_ACCESS_KEY='WKy3rMzOWPouVOxK1p3Ar1C2uRBwa2FBXnCw'
export EC2_SECRET_KEY='o3ISP4j60xWD4Wp3HFMi07LblJYKE5nzBoc2LQ'
# This is a bogus value; Eucalyptus does not need this but client tools do.
export EC2_USER_ID='000100729354'
alias ec2-bundle-image="ec2-bundle-image --cert ${EC2_CERT} --privatekey ${EC2_PRIVATE_KEY} --user 000100729354 --ec2cert ${EUCALYPTUS_CERT}"
alias ec2-upload-bundle="ec2-upload-bundle -a ${EC2_ACCESS_KEY} -s ${EC2_SECRET_KEY} --url ${S3_URL} --ec2cert ${EUCALYPTUS_CERT}"
まず始めにRegionを登録します。
画面上部左側のRegionsをクリックすると、下のようなウィンドウが表示されます。「Region Name」に適当な名前(ここでは「Eucalyptus Cluster1」としています。)を入力し、「Endpoint URL」に上記表示済み環境設定の「EC2_URL」の内容をコピーし、ペーストします(http://**********:8773/services/Eucalyptus)。
入力後「Add」をクリックし、設定が追加されたことを確認後「Close」を押してウィンドウを閉じます。
次にCredentialを登録します。
画面上部中央のCredentialsをクリックすると、下のようなウィンドウが表示されます。「Account Name」に適当な名前(ここでは「Eucalyptus admin」としています。)を入力します。「AWS Access Key」「AWS Secret Access Key」に上記表示済み環境設定の「EC2_ACCESS_KEY」「EC2_SECRET_KEY」の内容をコピーし、ペーストします。
入力後「Add」をクリックし、設定が追加されたことを確認後「Close」を押してウィンドウを閉じます。
最後にAccount IDを登録します。
画面上部右側のAccount IDsをクリックすると、下のようなウィンドウが表示されます。「Account ID」に上記表示済み環境設定の「EC2_USER_ID」の内容をコピーし、ペーストします。「Display Name」に適当な名前(ここでは「admin」としています。)を入力します。
入力後「Add」をクリックし、設定が追加されたことを確認後「Close」を押してウィンドウを閉じます。
以上で設定が完了しました。
Regions、Credentialsのそれぞれのリストボックスで登録したデータを選択し、設定を有効にしてください。次に「Images」タブをクリックし、登録済みのイメージが正常に表示されていることを確認してください。
設定が反映されるまでしばらく時間がかかることがありますが、その場合はタブの切り替えや「Refresh」ボタンを押すことにより解決することがあります。それでも正常に動作しない場合は、Firefoxを再起動してみてください。これらの作業を行っても正常に動作しない場合、設定が間違っている可能性がありますので設定を見直してください。
7.3 各機能の説明
上部に様々なタブがありますが、Eucalyptusで使用するタブは以下の通りです。
Instances
起動しているインスタンスの状態確認、停止、再起動などを実行することができます。
Images
登録されているイメージの閲覧、インスタンスの起動などを実行することができます。
KeyPairs
キーペアの閲覧、登録、削除などを実行することができます。
Security Groups
セキュリティグループの閲覧、ルールの追加、削除などを実行することができます。
Elastic IPs
利用できるIPアドレスの閲覧、インスタンスへのIPアドレスの割り当てなどを実行することができます。
Volumes and Snapshots
Volumeの閲覧、作成、削除、スナップショットの閲覧、作成、削除などを実行することができます。
* 注意
上記以外のタブはEucalyptusでは使用できません。筆者の環境では、以下のタブをクリックすると画面が固まり動作ができなくなってしまいました。この場合Firefoxの更新ボタンを押すとアラートウィンドウが表示されますので、キャンセルを押すことにより再度操作可能な状態になりました。
・Bundle Tasks
・Reserved Instances
7.4 Elasticfoxによる操作
7.4.1 Imagesタブ
まず始めにImagesタブを開き、インスタンスを起動してみましょう。
aki-********
ami-********
ari-********
などの行が表示されていると思います。Eucalyptusでは、各イメージはeki-********、emi-********、eri-********のようにeから始まるイメージ名となっていますが、Elasticfoxでは表示上ami-********のようにaから始まっていますのでご注意ください。
起動に使用したいマシンイメージを右クリックし、「Launch Instance(s) of this AMI」を選択すると以下のようなウィンドウが開きます。
そのまま「Launch」を押してもインスタンスを起動することはできますが、よく変更する項目を以下の通りご説明いたします。
Instance Typeは 6章 Eucalyptusウェブ設定の「6.2 各タブの説明」で説明しましたVM Typesを選択します。
Amazon EC2では、Instance Typeにより選択できるOSのビット数が決まっています。この制約によりElasticfoxでは64bit OSのマシンイメージに32ビットOS用のInstance Typeであるm1.smallやc1.mediumを指定してインスタンスを起動することができません。Amazon EC2において、一番スペックの低い64bitマシンはm1.largeですが、それでもスペックが高すぎるという場合は、6章 Eucalyptusウェブ設定で説明しましたConfigurationタブのVM Typesの設定を、ご使用の環境に合わせて変更することで対応するとよいでしょう。
Elasticfoxはソースが提供されているため修正を入れて対応することもできますが、本記事では割愛させて頂きます。
7.4.2 Instancesタブ
上記で、インスタンス起動を行うと自動でInstancesタブに移動するようになっています。
Instancesタブで特に重要な情報は
・State
・Public DNS
・Key
・Groups
の4項目です。
インスタンス起動直後はStateがPendingになっていますが、しばらく待っているとRunningに変化するはずです。Public DNSには、アクセスに必要なIPアドレス情報が表示されます。Keyには、アクセスに必要なキーペアの名前が表示されます。Groupsには、適用済みのSecurity Groupが表示されます。
下の画面は、インスタンスが表示されている箇所をダブルクリックして表示される詳細ウィンドウです。
7.4.3 KeyPairsタブ
次にKeyPairsタブについて説明いたします。
この画面ではキーの閲覧、作成、削除を行うことができます。
作成時は、キーペアの名称を入力した後にプライベートキーの名前入力と保存を求められるので、その指示に従うことにより、簡単にキーペアを登録することができます。
7.4.4 Security Groupsタブ
次にSecurity Groupsタブについて説明いたします。
「Create a new security group」を選択することにより、新しいセキュリティグループを作成することができます。任意のセキュリティグループを選択し右クリックすることで表示されるメニューから「Grant New Permission」を選択すると、新しいルールを設定することができます。
Protocol DetailsにはHTTPやSSHなどの代表的なサービスが選択できるようになっており、それぞれのサービスにおいてデフォルトで使用するポート番号が自動的に入力されるようになっています。任意のポート番号を入力したい場合は、ポート番号を入力してください。
また、Otherを選択することにより任意のポート番号範囲を指定することもできます。
また、右側の「Group Permissions」内のルール上で右クリックし「Revoke this permission」を選択することにより、ルールを削除することもできます。
7.4.5 Elastic IPsタブ
次にElastic IPsタブについて説明いたします。
左側にClusterインストール時に割り当てたIPアドレスが複数表示されます。右側は、デフォルトでは一番上に起動しているインスタンスID、その下は全てnobodyと表示されていると思います。
この画面ではIPアドレスの取得、解放、インスタンスへの固定IPの割り当て、割り当て解除などを行うことができます。
+アイコンをクリックしIPアドレスを取得すると、右側のnobodyがavailableに変化します。availableになっている行で右クリックし「Associate Elastic IP with Instance」を選択し、固定IPを割り当てたいインスタンスを選択すると、そのインスタンスに対してIPアドレスが割り当てられます。
他の各機能に関しては、5章コマンドによる操作の「5.12 Elastic IP」で詳しく説明していますので、そちらをご参照ください。
7.4.6 Volumes and Snapshotsタブ
次にVolumes and Snapshots タブについて説明いたします。
Volumeの利用から説明いたします。
+アイコンをクリックまたは右クリックから「Create New Volume」を選択するとVolume作成のための設定画面が表示されます。サイズをGB単位で入力するかまたはSnapshotを選択します。サイズとSnapshot IDはどちらか一つを排他的に入力することに注意してください。
作成したVolume上で右クリックして、「attach this volume」
Instance IDを選択し、Deviceを入力します。Deviceにはデバイス名「/dev/sdb」などと入力してください。前述のとおりUbuntu 9.10 ServerでインストールされるバージョンのKVMの制限により、デバイス名を指定して接続することができないことに注意してください。
また右クリックから「Create a new snapshot from this volume」を選択することにより、Snapshotを作成することもできます。
また、右クリックメニューからデバイスの切り離しやVolumeの削除を行うことができます。
次にSnapshotの利用について説明いたします。
Volumeを作成する元となるSnapshot上で右クリックし「Create a new snapshot from this volume」を選択すると、Volume作成時と同じ設定画面が表示れます。注意して頂きたいことは、元々のSnapshotに応じてサイズが決まっているため、ここでサイズを指定したとしても無視されることです。サイズとSnapshot IDを排他的に入力してVolumeを作成したことを思い出してください。
Volumeと同様に右クリックメニューからSnapshotの削除などを行うことができます。
8. Tips
8.1 デュアルブートからシングルブートに戻す
デュアルブートからシングルブートに戻す場合、マスターブートレコードを再度書き換える必要があります。
手順としては、
1. 今回インストールした領域を削除
2. 既存OS領域をリサイズ
3. マスターブートレコード書き換え
となります。
マスターブートレコードの書き換えを行う方法はいくつかありますので、以下にいくつか例を挙げます。
・Windows回復コンソールからfixmbrを実行
・Knoppix Live CDで起動しms-sys --mbr /dev/sdaを実行(デバイスは環境により異なります)
・Gparted Live CDで起動し、install-mbr /dev/sda(デバイスは環境により異なります)
8.2 デフォルト起動OSの変更
今回の作業を行いますとUbuntuがデフォルトで起動するようになります。既存のOSがデフォルトで起動するように変更する方法を以下に示します。
Ubuntu内にログインし、/boot/grub/grub.cfgを開きmenuentryの行(この値が実際にGRUBメニューに表示されます)を0から順に数えていき、デフォルトで起動したいOS名が記述されている順番を特定します。
以下のファイルのGRUB_DEFAULTの値を上記の値に書き換えます。
$ sudo vi /etc/default/grub
GRUB_DEFAULT=0
↓
GRUB_DEFAULT=4
設定ファイルを生成します。
$ sudo update-grub
OSを再起動し、確認します。
$ sudo reboot
8.3 ループバックデバイスの作成
EBSを使用しているとループバックデバイスが不足する場合があります。ループバックデバイスを増やす方法を以下にご説明いたします。
1. GRUB画面にて起動するUbuntuの行を選択
2. eキーを押下
3. linuxで始まる行の末尾にmax_loop=128を追加(128は使用できるループバックデバイスの最大数です。)
4. Ctrl-xを押下し起動
5. ログイン後以下のコマンドを実行し、ループバックデバイスの数を確認
$ ls /dev/loop*
疑問点などがありましたら、お気軽に以下のメールまでお問い合わせください。
Eucalyptusのデモです。
ローカル環境のEucalyptusのデモ動画。フロントエンドにログインし、キー作成からインスタンス起動→インスタンスへログイン→Apacheインストールまでをデモで御覧いただけます。