Google Compute Engineで仮想マシンを作る
Google Compute Engineとは
Google Compute Engine(以下、GCE)は仮想マシンを提供するサービスです。Googleが利用しているものと同じインフラを利用したサービス展開が可能となっており、高パフォーマンスの仮想マシンや、別ゾーンとの通信、ロードバランシングなどの様々な機能が利用可能です。
GCEの状況や利用目的に応じて、ゾーン、インスタンスタイプ、OS、ネットワークなどを設定して利用していく必要があります。仮想マシンが配置されるゾーンは、アメリカ(us-central1)、ヨーロッパ(europe-west1)、アジア(asia-east1)の3箇所に大別され、それぞれのゾーンの下に複数のゾーンが存在しています。ゾーンは今後追加・削除が行われる可能性があります。日本からのアクセスを想定する場合は asia-east1 のゾーンを利用すると良いでしょう。
インスタンスのタイプは標準(n1-standard)、ハイメモリ(n1-highmem)、ハイCPU(n1-highcpu)、共有コア(f1-micro、g1-small)の4種類が準備されています。OSには、無料/有料の両方があります。OSによっては、最新版や安定版など様々なバージョンが選択可能となっています。OSの種類についても今後追加されていくと思われます。
無料 | Debian |
---|---|
CentOS | |
CoreOS | |
Ubuntu | |
有料 | Red Hat Enterprise Linux |
SUSE | |
Windows Server |
ネットワークについては、ファイアウォールの設定や、IPアドレス(固定IPとエフェメラルIPがある)の設定を行います。
WebインターフェースでGCEを始める
ではWebインターフェースを利用して、GCE上にWebサーバを立ててみましょう。CentOS 7上にnginxでWebサーバを構築します(図4~図6)。まずプロジェクトのページのサイドバーから、[計算処理]−[Compute Engine]−[VMインスタンス]とクリックし、開いたページで「インスタンスを作成する」をクリックします。
必要な設定は以下の通りです。
- ファイアウォール:HTTPトラフィックを許可する
- ゾーン:asia-east1-a
- マシンタイプ:n1-standard-1
- ブートソース:イメージからディスクを新規作成
- イメージ:centos-7-v20141205(記事執筆時点での最新版)
- ブートディスクの種類:標準の永続化ディスク
- 「インスタンスを削除する際にブートディスクを削除する」をチェック
- 外部IP:エフェメラル
設定後、「作成」ボタンをクリックしてインスタンス作成を開始します。多くの場合、30秒以内に作業が完了し、画面はインスタンス一覧に変化します。この時点で、インスタンスにアクセス可能となります(図7)。
インスタンス名の右側にある「SSH」ボタンをクリックすることで、インスタンスにSSHで接続できます。ユーザ設定やSSH公開鍵の登録など、接続に必要な設定はGCP側で自動的に行われるため、すぐに計算処理を開始することができます。
さっそく接続して、nginxをインストールします。「SSH」をクリックすると、ブラウザの新しいウィンドウでSSHクライアントが立ち上がります(図8)。
nginxのインストールから起動までは、図9のようにコマンドを入力します。
これでnginxが立ち上がりました。CentOSを普通に利用するのであれば、ポートを開放する必要がありますが、Google Compute Engineでは、インスタンス作成時に「HTTPポートを開放する」にチェックをしていれば、自動的にポート80が開放されるようになっています。
自動的に割り振られたURLを確認し、nginx の初期ページが表示されていれば成功です(図10)。
コマンドラインでGCEを始める
GCEについては、Webインターフェースが充実しているため、わざわざコマンドラインを利用する必要はないと感じるかもしれません。しかしGCPは発展途上のプラットフォームであり、頻繁にUIが変更されます。一方コマンドラインインターフェースは、Webインターフェースより変更頻度が低いため、一度覚えてしまえば何度でも同じように作業ができます。
コマンドラインでGCEを操作するためには、gcloudコマンドのインストールが必須です。gcloudコマンドは、Google Cloud SDKから入手可能です。gcloudコマンドのインストールが終わったら、早速インスタンスを作成しましょう。図11では、Webインターフェースで作成したものと同じインスタンスを作成しています。
これで、作成したインスタンスにSSHで接続することができました。Webインターフェースを確認すると、インスタンスが立ち上がっていることがわかります(図12)。
図9の手順でnginxをインストール、起動してから、外部IPとして表示されているアドレスに接続して、nginx が起動していることを確認しましょう。