2.3 サーバーリソース
サーバーリソースである仮想マシンインスタンスを起動する際は、いくつかの設定項目を指定する必要があります。これらの項目を順に説明します。
2.3.1 テンプレートイメージ
仮想マシンインスタンスを起動するには、ゲスト OS がインストールされた起動ディスクイメージが必要です。事前に用意されたテンプレートイメージを指定すると、これを複製したものが起動ディスクとして仮想マシンインスタンスに接続されます(図 2.13)。
テンプレートイメージは、クラウドサービスの提供者が事前に用意したもののほかに、利用者が自分で作成したものを登録することも可能です。また、代表的な Linuxディストリビューションについては、ディストリビューションを提供する企業やコミュニティがクラウドで利用できるイメージを公開しています。このような公開イメージを自分が利用するクラウド環境にアップロードして登録してもかまいません。
クラウドの利用者がテンプレートイメージを登録する際は、自身のテナントのみで使用できる「プライベートイメージ」として登録するほかに、他のテナントのユーザーも利用できる「パブリックイメージ」として登録することもできます。
2.3.2 インスタンスタイプ
インスタンスタイプは、仮想マシンの「サイズ」を指定するものです。それぞれのタイプごとに、仮想 CPU の個数、仮想メモリーの容量、仮想ディスクのサイズなどが決められています。仮想マシンインスタンスを起動する際は、インスタンスタイプとして事前に用意されたメニューから選択することで、仮想マシンインスタンスの構成を決定します。AWS では、利用者自身が新たなインスタンスタイプを定義することはできません。
OpenStack の場合は、テナントの管理者権限を持ったユーザーであれば、自身が管理するテナントで利用するインスタンスタイプを追加/変更することができます。設定可能な項目は、表 2.1 のとおりです。「ルートディスク」は、テンプレートイメージを複製して用意される起動ディスクのことです。
テンプレートイメージを複製した後に、ここで指定されたサイズまで容量の拡張が行なわれます。「一時ディスク」は、未使用のディスクデバイスです。通常は空のファイルシステムが作成されて、「/mnt」にマウントされた状態にセットアップされます。
「ルートディスク」と「一時ディスク」は、別名でエフェメラルディスクとも呼ばれます。エフェメラル(Ephemeral)は「一過性の」という意味で、ここでは、仮想マシンインスタンスを停止/破棄すると、これらのディスク領域も一緒に破棄されることを表わします。これらのディスク領域に保存したデータは、仮想マシンインスタンスとともに失われるので注意が必要です。永続保存が必要なデータは、この後で説明する「仮想ストレージ」、もしくは、「オブジェクトストレージ」に保存する必要があります。
また、仮想マシンインスタンスを起動した後、ルートディスク領域にアプリケーションを追加でインストールしたり、設定をカスタマイズすることがあります。カスタマイズしたルートディスクの内容を保存するには、仮想マシンインスタンスのスナップショットを取得します。これは、ルートディスクを複製して、新たなテンプレートイメージとして利用可能にする機能です(図 2.14)。
一方、この後で説明するように、仮想ストレージからゲスト OS を起動する機能を使用した場合は、仮想マシンインスタンスを停止/破棄した後でも、仮想ストレージの内容はそのまま残ります。
2.3.3 接続ネットワークとセキュリティグループ
ネットワーク接続については、接続先の仮想スイッチ、および、適用するセキュリティグループを指定する必要があります。複数の仮想スイッチを指定した場合は、接続先の仮想スイッチごとに仮想 NIC が用意されます(図 2.15)。
2.2.2 項(P.29)で説明したように、仮想 NIC に特定の IP アドレスを割り当てる際は、接続先の仮想スイッチに対して、IP アドレスを指定した接続ポートを事前に作成しておきます。この接続ポートを指定して接続することで、仮想 NIC に対して指定の IP アドレスが割り当てられます。接続ポートを指定しない場合は、新たな接続ポートが自動作成されて、該当の仮想スイッチに割り当てられたサブネットから、未使用の IP アドレスの 1 つが割り当てられます。
セキュリティグループについては、2.2.4 項(P.33)で説明したとおりです。複数の仮想 NIC を持つ構成の場合、仮想 NIC ごとに異なるセキュリティグループを適用することも可能です。操作としては、接続先の仮想ポートに対して、適用するセキュリティグループを指定する形になります。
2.3.4 ログイン認証用の鍵ペアー
仮想マシンインスタンスのゲスト OS にログインする際のユーザー認証は、SSH の公開鍵認証が標準的に使用されます。各テナントの利用者は専用の鍵ペアー(公開鍵と秘密鍵のペアー)を作成して、公開鍵のほうをクラウド環境に事前登録しておきます。
仮想マシンインスタンスを起動する際に、登録済みの公開鍵の 1 つを指定すると、対応する秘密鍵で SSH ログインできるように、ゲスト OS に対して、公開鍵を用いた認証設定がなされます(図 2.16)。
この認証設定の処理は、ゲスト OS 内部で稼働する「Cloud-init」というツールによって行なわれるので、テンプレートイメージとして用意するゲスト OS には、事前に Cloud-init をインストールしておく必要があります。Cloud-init は、ゲスト OS の初回起動時に、指定された公開鍵を受け取って、SSH の認証設定を行ないます[※ 4]。
※4 Windows の場合は、RDP で接続するためにパスワード認証が必要となります。AWS では、鍵ペアーからAdministrator 権限のパスワードを生成する仕組みが用意されています。