IaaS のクラウド運用をシンプルに! Google Cloud (GCP)を活用した効率化・自動化を徹底解説

IaaS のクラウド運用をシンプルに! Google Cloud (GCP)を活用した効率化・自動化を徹底解説

GCP

投稿日:2022/06/01 | 最終更新日:2022/06/13

本記事は、2021年9月16日に開催された Google の公式イベント「オープンクラウドサミット」において、 Google Cloud のインフラストラクチャモダナイゼーションスペシャリストである有賀征爾氏が講演された「 IaaS 環境でもクラウド運用をもっとシンプルに」のレポート記事となります。

今回は、近年のクラウド運用において主流となっているハイブリッドクラウドやマルチクラウドのご説明をしつつ、 Google Cloud (GCP)で運用監視の役割を担う Cloud Operations について、詳しい内容をご紹介します。ぜひ最後までご覧ください。

なお、本記事内で使用している画像に関しては、オープンクラウドサミット「 IaaS 環境でもクラウド運用をもっとシンプルに」を出典元として参照しております。

それでは、早速内容を見ていきましょう。

ハイブリッドクラウドとマルチクラウド

クラウドマイグレーションの狙い

ハイブリッドクラウドやマルチクラウドの内容に入る前に、一般的なクラウドマイグレーションの狙いについてご説明します。クラウド利用には様々なメリットが存在しますが、その中でも以下の4つが主なクラウドマイグレーションの狙いになります。

狙い

ハイブリッドクラウドやマルチクラウドという選択

多くのメリットが存在するクラウド化ですが、当然すべてのサーバーを一度にクラウド化することは難しいと言えます。最近では、オンプレミスとクラウドの両方を利用するハイブリッドクラウドや複数のパブリッククラウドを利用するマルチクラウドなどが広まっています。これらを活用することで、最適なサービスの利用やビジネスリスクの減少、ベンダーロックインの回避など、様々なメリットを享受できます。

選択

ただし、ハイブリッドクラウドやマルチクラウドは、多くのメリットがある一方でデメリットも存在します。例えば、複数サービスの利用による学習コストの増加や、管理対象の増大による運用負荷の肥大化などが挙げられます。

デメリット

マルチクラウドやハイブリッドクラウドに関心のある方は以下の記事が参考になります。
ハイブリッドクラウドとマルチクラウドの違いとは?メリット・デメリットについても徹底解説

共通化による課題解決

ハイブリッドクラウドやマルチクラウドの課題を解決するための手段として「共通化」が挙げられます。共通化とは「使い回せるものはなるべく使い回す」という考え方であり、これによって学習コストや運用コストを低減することができます。

例えば、複数のクラウドサービスですべての機能を利用する場合、利用規模に応じてコストは増加の一途を辿りますが、特定の部分だけを共通化することで不要なコストを抑えられます。共通化できない部分は、各クラウドサービスの独自機能で補完します。

共通化

共通化を実現するための Google Cloud (GCP)のサービス

ここでは、前項でご説明した共通化を実現するための Google Cloud (GCP)のサービスを2つご紹介します。

Anthos

Anthos は様々な環境で動作する kubernetes クラスタの管理を共通化するためのサービスです。オンプレミスや複数のクラウドサービス上で動く kubernetes クラスタに対して、共通の管理エクスペリエンスを提供するため、その分だけ管理コストを抑えることができます。

anthos

Anthos に関心のある方は以下の記事が参考になります。
よりセキュアに!より低コストに!Anthosの概要から検証まで、2020年最新情報を全てお届け

Cloud Operations

Cloud Operations はサービスの運用監視を共通化するためのサービスです。様々な環境で動作するワークロードのメトリックデータやログなどを Google Cloud (GCP)のコンソール一つで可視化・分析できます。そのため、複数のクラウド管理コンソールにアクセスする回数を減らせる、というメリットがあります。

operations

例えば、複数環境で動く VM の監視を行う例をご説明します。 Cloud Operations では、他クラウドやオンプレミス環境からのデータを取り込むことができるため、ハイブリッドクラウドやマルチクラウド環境の一元監視が可能になります。

AWS の場合には、 IaaS サービスのみならずマネージドサービスからのデータを取り込むことができ、 Azure や オンプレミスの場合には、無償の BindPlane サービスを利用することで VM のデータを取り込むことができます。

一元管理

Cloud Operations の紹介

概要

Cloud Operations は、合計5つのサービスから構成される運用監視系サービスの集合体です。基本的な監視には Cloud Monitoring と Cloud Logging というサービスが利用でき、マイクロサービスなどのサービスごとのレイテンシを監視したい場合は Cloud Trace を利用します。

その他にも、パフォーマンス分析には Cloud Profiler 、デバッギングには Cloud Debugger といった形で、運用監視の対象や目的に応じて利用できる様々なサービスが用意されています。

概要

今回は運用監視という観点から、 Cloud Monitoring と Cloud Logging に焦点を当ててご紹介します。

Cloud Monitoring と Cloud Logging

Cloud Monitoring を活用することで、プラットフォームやアプリケーション、サービスなどから取得される時系列のメトリックデータを監視し、分析に利用できます。例えば、複数の時系列データの視覚化や特定データの分析、異常時のアラートなどの用途が考えられます。

Cloud Logging は、プラットフォームやアプリケーション、サービスから出力されるログの収集、横断的な検索・分析に利用されるサービスとなっています。例えば、ログの検索・分析や特定ログのエクスポート、ログを基にしたアラートなどの用途が考えられます。

ml

Cloud Monitoring で取り込めるメトリックは下図の通りです。 Google Cloud (GCP)はもちろんのこと、ハイブリッドクラウドやマルチクラウド、アプリケーションなど、様々なものに対応しています。

メトリック

また、 Cloud Logging で取り込めるログは下図の通りです。 Google Cloud (GCP)やマルチクラウド、オンプレミスなど様々な環境に対応しており、カスタムログやネットワークログ、クラウド監査ログなどを取り込むことができます。

ログ

Ops Agent

従来は各々エージェントのインストールが必要であった Cloud Monitoring と Cloud Logging ですが、最近発表された Ops Agent によって一つのエージェントでデータを取得可能になりました。

既定で CPU ・メモリーなどのリソース利用状況データや Syslog (Linux) 、イベントログ (Windows) が収集され、 Nginx や MySQL などのミドルウェアログの収集およびパースが可能となっています。

agent

OS Configuration Management

OS Configuration Management は JSON または YAML 形式で定義されたポリシーに沿って、インスタンスへのソフトウェアのインストールや削除、更新を行います。定期的にポリシーに則っているかを確認し、ポリシー
で定義された「あるべき姿」と差異がある場合には、 OS 標準のパッケージマネージャーを利用して差異を修正します。

os

プロセスメトリック

プロセスメトリックは Ops Agent のインストールにより VM へ RDP や SSH などのログインをすることなく、 VM 上で動作している各プロセスのメトリック情報をコンソール上から確認できます。特定プロセスの CPU 使用率やメモリー使用量が確認できるため、特にパフォーマンス系の事象やメモリーリークに対するトラブルシュートに有用です。

メトリック2

ログベースのアラート

ログベースのアラートは、 Cloud Logging に特定のログが書き込まれたことを検知し、ほぼリアルタイムでアラートを発報します。メール以外にも SMS や Webhook 、 Slack など、様々なチャネルへのアラート発報が可能です。

アラート

指標

フィールドレベルアクセスコントロール

フィールドレベルアクセスコントロールは、ログエントリの特定のフィールドに対して IAM ベースのアクセス管理を行い、フィールドの表示権限がないユーザーの場合には、ログエントリのフィールドを非表示にします。ログエントリには複数のフィールドが含まれ、 jsonPayload や protoPayload 、 httpRequest などのフィールドに対するアクセス制限が可能です。

コントロール

IaaS の管理をもっと楽に

IaaS の運用

IaaS サービスはオンプレミス環境と比較すると、お客様で管理する領域が少なく、特にハードウェアやネットワークについては管理コストを下げることが可能です。その一方で、 Guest OS の管理やサービス運用の観点では、オンプレミス環境と同様にお客様が実施する必要があり、 PaaS や SaaS サービスと比較すると管理コストが高くなります。

運用

可用性を高めるための選択肢

システムトラブルが発生した際、業務影響が極力出ないように、冗長化構成で可用性を高めるのが一般的です。ただ、サーバーを冗長化するためには当然ながらコストが発生するため、ワークロードの重要性とコストのバランスを踏まえて、最適な構成を検討する必要があります。

以下、可用性を高めるための代表的な構成例をご紹介します。

コールドスタンバイ

コールドスタンバイは、ゾーン永続ディスクのスナップショットによるバックアップであり、障害発生時には新たなインスタンスをデプロイし、バックアップからデータを復元します。また、マシンイメージを利用することで新規インスタンスが Ready になるまでの時間を短縮可能です。

ウォームスタンバイ

ウォームスタンバイは、リージョン永続ディスクを利用したデータ保持の手法であり、フェールオーバー時にはリージョン永続ディスクをフェールオーバー先のインスタンスにアタッチします。フェールオーバー先のインスタンスは予め準備 (停止)し、必要なタイミングで起動することでコスト削減に繋がります。

ホットスタンバイ

ホットスタンバイは、アプリケーションやミドルウェアのレイヤーで冗長化を考慮するものです。インスタンス間でデータを同期し、障害発生時にはミドルウェアの機能などで自動フェールオーバーします。フェールオーバー先のインスタンスも必要なため、最低2インスタンス以上が常に稼働している必要があります。

まとめ

最後に、可用性を高めるための構成例を表にまとめます。

構成 コールドスタンバイ ウォームスタンバイ ホットスタンバイ
概要 ・ゾーン永続ディスクのスナップショットによるバックアップ
・障害発生時には新たなインスタンスをデプロイし、バックアップからデータを復元
・マシンイメージを利用することで新規インスタンスが Ready になるまでの時間は短縮可能
・リージョン永続ディスクを利用したデータ保持
・フェールオーバー時にはリージョン永続ディスクをフェールオーバー先のインスタンスにアタッチ
・フェールオーバー先のインスタンスは予め準備(停止)し、必要なタイミングで起動することでコスト削減
・アプリケーション、ミドルウェアレイヤーで冗長化を考慮
・インスタンス間でデータを同期
・障害発生時にはミドルウェアの機能などで自動フェールオーバー
・フェールオーバー先のインスタンスも必要なため、最低2インスタンス以上が常に稼働している必要あり
データ損失 可能性あり(スナップショットの取得頻度に依存) 基本なし(リージョン永続ディスクで保持) 基本なし(レプリケーションの仕組みに依存)
復旧までの時間 ○時間から○日 ○分 ○秒
コスト

このように、構成ごとに特徴やコストは異なるため、自社の状況に合わせて最適なものを選択することが大切なポイントです。

トラブル発生時の流れ

ここでは、トラブルが発生した際にどのような流れで解決するのかを解説します。大まかな流れとしては以下の4ステップとなっており、問題が発生した後にそれを検知し、復旧作業を経て復旧するというプロセスです。

流れ

このとき、 Google Cloud (GCP)を使えば、 Cloud Operations で発生した問題を検知することが可能になります。 Cloud Monitoring でエラーの発生率を確認したり、 Cloud Logging で異常ログに関するアラートを通知したりできます。

ただし、その後の復旧作業以降は検討が必要であり、いかに短時間でミスなく作業を進められるかが重要になります。

流れ2

では、復旧作業を短時間でミスなく行うためにはどうすれば良いのでしょうか。あくまで一つの答えにはなりますが「自動化する」ということが有力な選択肢になると言えます。トラブルのシナリオを事前に想定し、復旧計画を細かく設計しておくことで、自動化による効率的な復旧を実現できます。

流れ3

ここで、先ほどご紹介した可用性を高めるための構成を考えたときに、ホットスタンバイであればアプリケーションやミドルウェアで復旧の自動化が可能ですが、コールドスタンバイやウォームスタンバイはデータの復旧作業やインスタンスの起動・デプロイなどの作業が発生するため、すべての対応を Google Cloud (GCP)の既定の機能で自動化することは難しく、何らかの作り込みが必要になります。

おふ

そして、この仕組みを構築する上で有効なソリューションとして Cloud Functions というサービスがあります。 Cloud Functions については次章で詳しくご説明します。

Cloud Functions とは?

Cloud Functions は、 Function as a Service (FaaS)と呼ばれるサーバーレスのサービスです。使った分だけ課金される料金体系となっており、 Go や Java 、 Python 、 Node.js など様々なプログラミング言語に対応しています。

また、何らかのイベントをトリガーとして処理を実行でき、 Google Cloud (GCP)の各種サービスとも連携できます。さらに、 Google Cloud Client Library を利用することで、リソースに対する操作も可能となっています。

c

以下、正常時の Cloud Functions のアーキテクチャ例です。ゾーン障害に備えて事前に2つの Zonal Managed Instance Group (MIG) を用意し、片方の MIG にのみ VM をデプロイします。稼働中の VM は MIG のヘルスチェック機能を利用して死活監視を行います。また、 Cloud Logging のシンクを作成し、 VM の状態が正常でなくなった場合はログを Cloud Pub/Sub にルーティングします。

正常時

以下はトラブル時の Cloud Functions のアーキテクチャ例です。ヘルスチェックに失敗、つまり VM の状態が Healthy ではなくなった際のログが Cloud Pub/Sub にルーティングされます。また、 Cloud Pub/Sub をサブスクライブしている Cloud Functions が動作し、もう片方の MIG に VM をデプロイします。なお、当初稼働していた VM はコスト削減のために Cloud Functions 内で適宜削除を行います。

トラブル

上記でご紹介した構成を取ることで、 MIG の利用によって追加のサーバーをデプロイすることなく死活監視をできるようになり、リージョン永続ディスクによってデータを保持した自動フェールオーバーが可能になります。つまり、複数ゾーンにデータが自動同期されるため、バックアップからのリストアと比較して復旧時間を短縮できるということです。

また、 Cloud Functions を活用した処理の自動化により、コード内で永続ディスクのデタッチやアタッチ、インスタンス作成、削除などの複数処理の処理順序を担保することが可能となります。これにより、コードでの復旧を実現でき、人手を介することなく復旧処理を自動化し、ミスの抑止にも繋がります。

Cloud Operations に関する FAQ

Q.VM については通常ツールで必要なソフトウェアをインストール・設定して Golden Image を作り、それをベースとして利用する認識でしたが、 OS Configuration Management を利用することで異なる管理方法を実現できるのでしょうか?

A.はい、異なる管理方法を実現できます。通常の VM 管理では Golden Image を作ってデプロイしますが、 OS Configuration Management はあるべき姿をコードで定義し、 VM がその定義に適合しているかどうかを内部的に確認します。そして、適合していない場合は修正できるため、デプロイ後の適正な管理を実現可能になります。

Q.VM の構成管理について、 terraform で定義する場合とどのような違いがありますか?

A.例えば、デプロイ自体に再現性を持たせたい場合は terraform がオススメになりますが、 OS の中の管理は OS Configuration Management を使った方が効率的に作業を進められます。このように、何を実現したいのか、によって最適な方法は変わります。

Q.復旧作業の自動化は Cloud Functions を使わないとできませんか?また、自動化テンプレートはありますか?

A.必ず Cloud Functions を使わなければならない、ということはありません。ただ、復旧手順は可能な限り具体化し、再現性を高めておく必要があります。かつ、人が介することでヒューマンエラーのリスクが大きくなるので、何かしら自動化できる仕組みを検討しておくと良いでしょう。

まとめ

本記事では、近年のクラウド運用において主流となっているハイブリッドクラウドやマルチクラウドのご説明をしつつ、 Google Cloud (GCP)で運用監視の役割を担う Cloud Operations について、詳しい内容をご紹介しました。内容をご理解いただけましたでしょうか。

クラウド運用をシンプル化するためには、自社の状況を正しく把握して適切な構成を検討する必要があります。可用性を高めるための選択肢は複数存在しますが、ワークロードの重要性やコストのバランスを加味しながら、慎重に考えていきましょう。

そして、企業がクラウド運用を効率化する上で Google Cloud (GCP)は有効なソリューションになります。 Google Cloud (GCP)に内包されている Cloud Operations や Cloud Functions を活用することで、運用監視や復旧作業を効率化・自動化でき、自社のコスト削減に大きく寄与します。

もし Google Cloud (GCP)を導入するのであればトップゲートがオススメです。

弊社トップゲートでは、Google Cloud (GCP) 利用料3%OFFや支払代行手数料無料、請求書払い可能などGoogle Cloud (GCP)をお得に便利に利用できます。さらに専門的な知見を活かし、

など幅広くあなたのビジネスを加速させるためにサポートをワンストップで対応することが可能です。

Google Workspace(旧G Suite)に関しても、実績に裏付けられた技術力やさまざまな導入支援実績があります。あなたの状況に最適な利用方法の提案から運用のサポートまでのあなたに寄り添ったサポートを実現します!

Google Cloud (GCP)、またはGoogle Workspace(旧G Suite)の導入をご検討をされている方はお気軽にお問い合わせください。

お問い合わせする

メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
Google Cloud(GCP)、Google Workspace(旧G Suite) 、TOPGATEの最新情報が満載!

メルマガ登録はこちら

記事を探す

GCP のメリットを最大限に活用しよう!

Google Cloud・Google Workspace のご相談・
お見積り依頼はお気軽に
お問合せフォーム