8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GCP インスタンスグループ入門(実案件で感じた価値)

Posted at

GCP インスタンスグループ入門(実案件で感じた価値)

はじめに

Google Cloud Platform(以下、GCP)へのシステム基盤移行を進める中で、主に Compute Engine(以下、VM)の構築を担当してきました。

オンプレミス環境で運用されてきた VM をクラウドアーキテクチャとして再設計・構築する過程で、GCP が提供する VM 管理の仕組みである「インスタンスグループ」を活用することの重要性を強く感じました。

本記事では、インスタンスグループの概要と採用理由、そして実際に案件で利用して感じた所感をまとめます。


案件概要(参考)

  • オンプレミス上に構築された Web アプリケーションシステムを、クラウドアーキテクチャへ移行する案件です。
  • クラウド基盤には GCP を採用しています。

担当業務概要

  • Web アプリケーションシステムのうち、VM 上で稼働するバックエンド機能・周辺機能のインフラ設計および構築を担当しました。
  • インフラ構築および設定管理は Terraform による Infrastructure as Code(IaC)を採用しています。

インスタンスグループとは

インスタンスグループとは、複数の Compute Engine VM インスタンスを論理的なグループとしてまとめ、一元的に管理するための GCP の仕組みです。

インスタンスグループには、主に以下の 2 種類があります。

マネージド インスタンスグループ(MIG)

インスタンステンプレートを元に VM を自動生成・管理する方式です。VM 台数のスケーリング、障害発生時の自動復旧、ローリングアップデートなどを GCP が管理してくれます。

アンマネージド インスタンスグループ

既存の VM を手動でグルーピングする方式です。スケーリングや更新は利用者が個別に管理する必要があります。

一般的なクラウドアーキテクチャでは、可用性や運用負荷軽減の観点から、マネージド インスタンスグループ(MIG)が採用されることが多いです。


インスタンスグループを採用する理由

インスタンスグループ(特に MIG)を採用する主な理由は以下の通りです。

  • 可用性の向上
    VM 障害時に自動でインスタンスを再作成でき、サービス停止リスクを最小限に抑えられます。

  • スケーラビリティの確保
    負荷に応じて VM 台数を自動・手動で増減でき、将来的な負荷増加にも柔軟に対応できます。

  • 運用負荷の軽減
    パッチ適用や OS 更新、VM 再作成などをインフラレイヤで吸収でき、個別 VM 管理が不要になります。

  • ロードバランサとの高い親和性
    GCP のロードバランサと組み合わせることで、ヘルスチェックに基づいたトラフィック制御が容易になります。

  • IaC との相性の良さ
    Terraform などの IaC ツールと組み合わせることで、再現性の高いインフラ構築が可能になります。


インスタンスグループで感動したこと(所感)

ここからは、実際に案件で利用して感じた個人的な所感をまとめます。

VM をフルマネージドリソースに近い形で扱える

  • 一般的に VM はステートレス運用が推奨されますが、インスタンスグループを活用することで「VM 個体」を意識せず、サービス単位での運用が可能になります。
  • 障害時の自動復旧、ヘルスチェックによるトラフィック制御、ローリングアップデートなどを組み合わせることで、VM をフルマネージドリソースに近い形で扱えるようになります。

※ データの永続化が必要な場合は、Persistent Disk や Cloud Storage、外部データベースなどとの役割分離が前提です。

Terraform との相性が非常に良い

  • インスタンスグループは「インスタンステンプレート + 管理ポリシー」で構成されるため、Terraform の思想と非常に相性が良いです。
  • ベースイメージ管理やスタートアップスクリプトによる初期設定を組み合わせることで、類似構成の VM を安全かつ迅速に横展開できます。
  • インフラ構成の属人化を防ぎやすく、「コードが正」の状態を維持しやすい点も大きなメリットです。

担当者の引き継ぎがしやすい

  • 個別 VM の手作業設定が不要になるため、引き継ぎ時に説明すべき内容が大幅に減ります。
  • 極端な話、「この Terraform コードを apply すれば同じ環境が再現できます」と説明できるケースも多くあります。

まとめ

インスタンスグループを用いた運用は多くのメリットがありますが、すべてのシステムに最適というわけではありません。

例えば、強いステートフル要件を持つシステムや、個別 VM の細かな制御が必要な場合には、単体 VM 管理の方が適しているケースもあります。

これらのメリット・デメリットや、インスタンスグループが向いていないアーキテクチャについては、別の記事で整理する予定です。

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?