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

cloud, GCP, Google情報, WEB製作

前回の記事 Vol.2ではインスタンスグループを使った複数インスタンスのサーバー構築の話をしました。

今回 Vol.3 ではインスタンスグループの基礎となるインタンステンプレートについてのお話です。


インスタンステンプレートとは

前回でも触れましたが、インスタンステンプレートとはインスタンスグループの元となるインスタンスの情報で、マシンの構成やブートディスクなどを設定します。
サーバーの不具合やレスポンス遅延などが発生するとGCPはこのインスタンステンプレートの情報を元に新しいインスタンスを自動で立ち上げます。

当初、インスタンスグループを使用してWebサーバを構築し、意図的にヘルスチェックに引っかかるようにしてインスタンスの拡張を検証していました。
コンソールから新しいインスタンスが立ち上がったことが確認でき、おおーすごいなーなどとのんきに画面を確認していると…

ヘルスチェックが回復せず、新しいインスタンスが立ち上がってはコケ立ち上がってはコケ…を繰り返す状況に(汗)

何が起こったのか分からず、Webサイトにアクセスしても表示されるのはエラーばかり、SSHで起動中のインスタンスを見てみると…

インストールしたはずのapacheなどが全く入ってない・・・(汗)

原因はインスタンスグループで立ち上げたインスタンス上でサーバを構築していたからでした。

元となるインスタンステンプレートは何も入ってないまっさらな状態
ヘルスチェックに引っかかった時点でそのまっさらなテンプレートをベースに構築したら・・・
そりゃまっさらなインスタンスグループができるわな・・・。

そんなわけで、インスタンスグループの元になるマスターインスタンスを構築しました。

マスターインスタンスの内容をインスタンステンプレートに移せば、インスタンスグループはマスターインスタンスをベースに構築されると考えたのです。

【構想イメージ】


イメージの作成

イメージとは、VM の起動に必要なアプリケーションとオペレーティング システムを含むディスクのレプリカです。
LinuxやWindowsの公開イメージ以外にもカスタム イメージを作成することができます。

・「イメージ」→「イメージを作成」をクリック


・ソースは「ディスク」を選択、
 ソースディスクはマスターとして構築したインスタンスのディスクを選択。

イメージを作成する元のインスタンスが実行中の場合、以下のようなアラートが出てきます。

「インスタンスを実行し続ける(非推奨)」にチェックを入れると実行中のままイメージ作成が可能ですが、マスターインスタンスを停止できるようであれば停止してイメージを作成したほうが良さそうです。

これでマスターインスタンスのディスクイメージが作成されました。簡単。
イメージの作成には「Family」というものがあり、これを設定しておくと常に最新のバージョンが利用されるらしいです。
頻繁にバージョン更新がある場合は便利ですね。

※スナップショットとカスタムイメージとマシンイメージ

GCPではバックアップ用のサービスとして、スナップショット、カスタムイメージ、マシンイメージの3つがあります。
それぞれの大まかな特徴は以下の通り。

  • スナップショット・・・単体ディスクのVMのバックアップを取る場合に利用、無料枠もありコストも抑えられる
  • カスタムイメージ・・・インスタンステンプレートのイメージとして利用可能
  • マシンイメージ・・・複数ディスクのバックアップ及び、VMインスタンスの構成までバックアップ可能

今回はインスタンステンプレートで利用するため、カスタムイメージを使いました。


インスタンステンプレートでディスクイメージを選択

後はインスタンステンプレートで「公開イメージ」ではなく「カスタムイメージ」を選択し、先ほど作成したディスクイメージを選択すれば、マスターインスタンスをベースにしたインスタンステンプレートができあがります。

この構成にしておくことで、何か改修を行う場合はマスターインスタンスで対応、確認をして問題がなければインスタンステンプレートを更新して、インスタンスグループに適用という流れが作れました。

本番適用の作業が自動化されているので、ファイルのアップミスもありません。

ただこの構成、一般的なWebサーバー上のファイル更新とは異なり、サーバー(インスタンス)そのものを置き換えるものなので色々と注意が必要です。

具体例としてはデータベースやファイルに情報をため込むようにしていた場合、インスタンス内にデータベースやファイルの保存領域があるとインスタンスが置き換わった時点ですべてのデータが消えることになります。

そう、ある日突然
ブログの記事がゼロになるようなことが…。

もちろんそうならないためのサービスがGCPには準備されていますので、こちらに関してもまた、おいおいお話できればと思います。



この記事を書いた人

データコンサルティング部 サービスデザイン
宮宇地 政人



関連記事一覧