GCPを使ってみよう(Webサービス構築)Vol.2

cloud, GCP, Google情報, WEB製作, データ活用

前回の記事【Vol.1】では、GCE(Google Compute Engine)を使ってWebサイトを簡単に立ち上げるまでのお話をしました。


今回【Vol.2】は、さらに「落ちにくいWebサーバ」に拡張したお話です。


インスタンスグループでのサーバ構築

前回は一つのインスタンスを立ち上げてWebサーバを構築しましたが、GCEでは「インタンスグループ」という形で複数のインスタンスを構築することができます。

一つのインスタンスでサーバを構築した場合、そのインスタンスに障害が発生して落ちたり、負荷がかかってレスポンスが悪くなると、サービスに直接影響が出ます。
しかしインスタンスグループを使うと、インスタンスに障害が発生すると別のインスタンスが自動的に立ち上がり、サービスを継続できるようになります。
サーバーの負荷に応じて、複数のインスタンスが並行して稼働するなど、柔軟に設定することができます。

・Compute Engine→ インスタンスグループを選択します。
※インスタンスとは仮想空間のコンピュータと考えてください。



インスタンスグループを作成

・ロケーションを選択します。

「シングルゾーン」は同一のゾーン内でインスタンスグループを構築します。
複数のゾーンにした場合、同じリージョンの複数のゾーンでインスタンスグループを構築します。
ゾーンレベルで障害が発生すると、シングルゾーンではサービスが停止することになりますが、複数のゾーンを指定しておけば生きているゾーンのインスタンスにサービスが引き継がれます。

インスタンステンプレートを選択します。

単体のVMインスタンスの場合、マシンの構成を設定するのですが、インスタンスグループの場合はあらかじめマシンの構成などを設定した「インスタンステンプレート」を作成しておき、ここでそのインスタンステンプレートを指定します。
もし、起動中のインスタンスに障害が発生した場合、このインスタンステンプレートをもとに新しいインスタンスが作成されます。

インスタンステンプレートは結構重要なので、また別の機会に詳しく紹介したいと思います。

自動スケーリングを設定します。

個人的に、GCEがすごいなと思ったところです。
ここで設定した自動スケーリングポリシーに従って、インスタンスグループのサイズを自動的に変更してくれます。

とはいえ、無限に拡張されても困る・・・と、思っていたらちゃんとインスタンスの最大数、最小数も設定できるようになっていました。

インスタンスグループが作成されると一覧に表示されます。

ステータスやインスタンスの数、自動スケーリングのポリシーなどが一覧で分かります。

インスタンスグループの便利なところは上でも記載したように障害やサーバーの負荷に合わせて自動スケーリングを行なってくれるところだけではありません。

通常、一つのサーバで運用しているWebサービスに更新があった場合、サービスを停止してメンテナンスする必要がありましたが、インスタンスグループではサービスを停止することなく更新を行うことが可能です。

こちらも細かく設定することが可能ですが、イメージとしては

このように、新しいバージョンのインスタンスが起動し、徐々に置き換わっていき最終的にすべてのインスタンスが最新化されるようになります。

便利な機能ばかりのインスタンスグループですが、デメリットもあります。
インスタンスグループで構築した場合、停止することができません。
元々停止しないサービスを構築することが目的なのでまぁ、当たり前なのですが・・・。

なので、「利用しない場合は一時的に停止して費用を抑えたい」といった利用目的の場合には通常通り、一つのVMインスタンスで構築するのが良さそうです。

次回は、インスタンスグループのベースとなる「インスタンステンプレート」のお話ができればと思います。


この記事を書いた人

宮宇地 政人 データコンサルティング部 ディレクター
「GCPはクラウドサービスですが、今回の件は物理サーバを触っていたころの経験が結構役に立ちました。
なんでも経験しておくものですね・・・」

関連記事一覧