AWS・Azure・GoogleCloudの基礎(監視編)

目次
はじめに
アジアクエスト クラウドインテグレーション部の呉蜀魏です。
本記事は、監視の基本的な概念を説明し、クラウド環境における監視サービスの特徴と違いを紹介することを目的としています。
具体的に、主要なクラウドプロバイダー(AWS、Azure、Google Cloud)の監視サービスについて、その概要や設定手順、障害発生時の確認方法を把握できる内容となっています。
本記事の対象者
-
オンプレミスの設計・構築経験があり、クラウドに興味がある方
-
クラウドの導入や移行を検討している方
-
AWS、Azure、Google Cloudのいずれかに経験があり、他のクラウドにも興味がある方
-
IT未経験だが、IT業界への興味がある方
監視とは
監視の目的
システムを安定稼働させるために欠かせないのが「監視」です。監視には大きく分けて以下の3つの目的があります。
-
障害の早期発見と対応
サーバーダウンや異常な挙動を素早く検知し、システムの停止時間を最小限に抑えます。これにより、業務への影響を減らすことができます。
-
セキュリティの強化
システムに対する不正アクセスやデータ漏洩を防ぐためにも監視は重要です。特にクラウド環境では、トラフィックやログの分析がセキュリティの鍵を握ります。
-
コストの最適化
リソースの使い過ぎを防ぎ、効率的な運用を実現します。不要なリソースを監視・削減することで、運用コストも抑えられます。
監視の種類
監視には、システム全体を効率的に管理するために、さまざまな観点から行われる複数の種類があります。
以下に代表的な監視の種類を紹介します。
-
アプリケーション監視
アプリケーションが正常に動作しているかを監視します。ユーザーからのリクエストに対するレスポンスの速さや、エラー発生率などを把握することで、サービスの品質向上につなげます。
-
ジョブ監視
定期的に実行されるバッチ処理やタスクが予定通り完了しているかを確認します。失敗や遅延が発生した場合にアラートを発し、迅速な対応を可能にします。
-
ログ監視
サーバーやアプリケーションの動作履歴を記録したログを分析することで、システムの異常や潜在的な問題を特定します。不正アクセスの検出にも活用されます。
-
パフォーマンス監視
CPU使用率やメモリ使用量、ネットワーク帯域の利用状況など、システムリソースの利用状況を監視します。これにより、過負荷状態を防ぎ、リソースの効率的な活用を図ります。
-
死活監視
サーバーやアプリケーションが稼働しているかを定期的に監視します。停止状態を検知した場合、即座にアラートを送信します。
-
トラフィック監視
ネットワークを流れるデータ量や通信状況を監視します。異常なトラフィックや攻撃の兆候をいち早く検出し、セキュリティ対策を講じるために利用されます。
クラウド環境での監視のポイント
クラウドでは、ユーザーが管理すべき領域がオンプレミス環境とは異なります。
例えば、AWS、Azure、Google Cloudのようなクラウドプロバイダーは物理サーバーや基盤部分を管理しますが、アプリケーションやデータの監視はユーザーの責任です。
クラウドのスケーラブルな特性に対応するため、監視の自動化が重要です。
クラウド監視サービスの紹介
クラウド各社は、監視機能を提供する専用サービスを用意しており、これらを利用することでクラウド環境特有の課題に対応できます。
AWS: CloudWatch
-
概要:AWSが提供するリソース監視のためのマネージドサービス。
-
主な特徴:
- メトリクス収集:CPU、メモリ、ネットワークなどのリソース利用状況をリアルタイムで監視。
- ログ保存:システムやアプリケーションのログをCloudWatch Logsで集中管理。
- アラーム設定:異常値を検知した際に通知を送るアラームを設定可能。
- イベントトリガー:特定のイベント発生時にLambda関数や他のサービスを自動的に起動。
- ダッシュボード:複数リソースの状態を一画面で可視化。
-
適用例:EC2インスタンスのCPU・メモリの使用率監視やRDSのパフォーマンス監視。
Azure: Azure Monitor
-
概要:Azureだけでなくオンプレミスや他クラウド環境も統合的に監視可能なサービス。
-
主な特徴:
- リソース洞察:各Azureリソースのパフォーマンスを視覚的に監視。
- ログ分析:ログデータをクエリ言語(KQL)で検索・分析可能。
- アラート:異常検知時にアラートを送信し、対応を促す。
- 外部統合:Azure外部の監視システム製品(例:ServiceNow)と連携可能。
-
適用例:VMの稼働状況やKubernetesクラスターの管理。
Google Cloud: CloudMonitoring
-
概要:Google Cloudリソース、オンプレミスや他クラウド環境を対象とした監視サービス。
-
主な特徴:
- メトリクス収集:Google Cloudリソースの状態をリアルタイムで監視。
- アラート設定:特定条件を満たした際に通知を送る仕組みを提供。
- Uptimeチェック:ウェブサイトやAPIの可用性を監視。
- ダッシュボード表示:データを可視化し、分析のためのレポート作成が可能。
-
適用例:BigQueryの負荷監視やApp Engineの可用性モニタリング。
クラウド監視サービスの比較
CPU・メモリ・ディスク監視比較
AWS CloudWatch
-
設定手順
リソース一覧からリソースと監視項目を選択・条件の指定
メモリ監視についてはエージェントを導入する必要がある
-
取得間隔
基本モニタリングは5分、詳細モニタリングは1分
Azure Monitor
-
設定手順
対象リソースの選択→監視項目、条件の指定
-
取得間隔
デフォルトは1分、最短10秒まで設定可能
Google CloudMonitoring
-
設定手順
監視項目の選択・対象リソースのフィルタリング及び条件の指定
メモリ監視についてはエージェントを導入する必要がある
-
取得間隔
デフォルトは1分、最短15秒まで設定可能
ログ監視比較
AWS CloudWatch
- CloudWatchによるログの自動監視は可能
- CloudWatchLogs、CloudWatchエージェントが必要になる
- CloudWatchエージェントで収集されてきたログに対してメトリクスフィルターというクエリ実行を設定する必要があり、手間がかかる
- ログの形式はJSON
Azure Monitor
- Azure Monitorによるログの自動監視は可能
- その他監視と同様にAzure Monitor画面から設定。監視対象となるログのクエリ設定だけ出来れば監視してくれる
- ログの形式はJSON
Google CloudMonitoring
- CloudMonitoringによるログの自動監視は可能
- Cloud Loggingでログベースのメトリックを作成し、そのメトリックを基にCloudMonitoringでアラートを設定する必要があり、手間がかかる
- ログの形式はJSON
アプリケーション/プロセス監視比較
AWS CloudWatch
- 各監視用の設定ファイルを作成し、作成した設定ファイルをCloudWatchエージェントから情報を取得する際のパラメータとして、適用することで各監視の情報を取得できる
Azure Monitor
- プロセス監視は、Azure Monitorのクエリ検索からクエリを設定するだけで監視できる
- アプリ監視の場合はそれに加えて監視するアプリケーションにApplication Insightsの関連付けが必要
Google CloudMonitoring
- 各監視用の設定ファイルを作成し、作成した設定ファイルをOpsエージェントから情報を取得する際のパラメータとして、適用することで各監視の情報を取得できる
オンプレ監視比較
AWS CloudWatch
- 設定可能。該当サーバにCloudWatchエージェントをインストールすることで監視が可能
- ウィザードに沿って該当項目を選択するだけで大半の設定が完了し、その後認証情報を入力するだけなので比較的簡単に導入が出来る
Azure Monitor
- 設定可能。該当サーバにAzure Monitor エージェントをインストールすることで監視が可能
- 事前にAzure Monitor側で設定を行いインストールを行う。 インストール時、事前設定の画面に表示されているIDとキーの入力をする。 Azure Portal上から取得したい情報を選択する
Google CloudMonitoring
- オンプレ監視の設定はやや複雑:
サードパーティのソフトウェア(BindPlane)を導入することで、間接的にオンプレミスマシンのデータ取得をすることが可能
グラフのカスタマイズ性比較
AWS CloudWatch | Azure Monitor | Google CloudMonitoring | |
---|---|---|---|
グラフの種類 | 線、棒、スタックされたエリア、カスタムウィジェット、ゲージ、アラームのステータス、データテーブル、ログテーブル、数値、円など | 折れ線グラフ、棒グラフ、面グラフ、散布図、グリッドなど | 折れ線グラフ、棒グラフ、面グラフ、ヒートマップ、テーブル |
カスタマイズ性 | ◎ | ○ | △ |
- ◎:非常に優れて、評価項目において最適であることを示す
- ○:評価項目を十分に満たして、良好であることを示す
- △:評価項目を部分的には満たしているものの、改善が必要な点や不足があることを示す
- 1つのグラフに複数のメトリクスを表示できるのはどのクラウドも共通
通知機能比較
AWS CloudWatch
- AWS SNSと連携することで通知が可能
- 通知の対象先:AWS SNSと同様で Amazon Data Firehose、 Amazon SQS、AWS Lambda、HTTP、Eメール、モバイルプッシュ通知、モバイルテキストメッセージ(SMS)、プラットフォームアプリケーション
Azure Monitor
- アクショングループと連携することで通知が可能
- 通知先:Azure Resource Managerのロールへのメール、電子メール、SMS、モバイルプッシュ通知、電話で音声での連絡が可能
- アクション先として、Automation Runbook、Event Hubs、Azure関数、ITSM、ロジックアプリ、Webhook
Google CloudMonitoring
- CloudMonitoringの機能として通知が可能
- 通知の対象先:Cloud Mobile App (Google Cloudのモバイルアプリ)、Google Chat、PagerDuty Services、PagerDuty Sync、Slack、Webhook、Eメール、SMS、Cloud Pub/Sub
機能 | AWS CloudWatch | Azure Monitor | Google CloudMonitoring |
---|---|---|---|
メール通知 | ○ | ○ | ○ |
SMS通知 | ○ | ○ | ○ |
モバイルアプリプッシュ通知 | ○ | ○ | ○ |
音声通知 | × | ○ | × |
自動化ツール | ○ | ○ | △ メッセージングサービス等を経由しないと通知できないため |
Teams等外部メッセージングツールへの通知 | △ メッセージングサービス等を経由しないと通知できないため |
○ Teamsを直で通知可 |
○ Slackを直で通知可 |
- ○:評価項目を十分に満たして、良好であることを示す
- △:評価項目を部分的には満たしているものの、改善が必要な点や不足があることを示す
- ×:評価項目を全く満たしておらず、利用が難しい、または不適合であることを示す
利用料金比較 ※2024年12月時点
AWS CloudWatch
-
AWSがデフォルトで収集しているメトリクスについては無料
-
カスタムメトリクスについてはリージョンによって異なるものの、概ね以下の金額で利用可能
最初の10,000メトリクス $0.30/月
次の240,000メトリクス $0.10/月
次の750,000メトリクス $0.05/月
1,000,000を超えるメトリクス $0.02/月
Azure Monitor
- Azureがデフォルトで収集しているメトリクスについては無料
- その他ユーザーによるカスタムメトリクス取得については ~1,000万件のサンプルあたり$0.16
Google CloudMonitoring
-
CloudMonitoring がデフォルトで収集しているメトリクスについては無料
-
その他カスタムメトリクスについては以下の金額で利用可能
最初の150MiB 無料
次の150 ~ 100,000 MiB $0.258/MiB
次の 100,000 ~ 250,000 MiB $0.151/MiB
250,000 MiB $0.061/MiB
比較まとめ
-
設定の容易さ:CloudWatchはAWS全体に統合されているものの、カスタムメトリクスの設定やアラームの作成にはやや学習コストが高い。
Azure Monitor は Azureポータルが直感的で、Log Analytics などの関連サービスとの統合も容易なため、高評価。
Cloud Monitoringは比較的使いやすいが、Google Cloudエコシステム全体との統合には若干の学習コストがかかる。 -
監視結果へのアクセス性: CloudWatchのメトリクスの可視化やカスタムダッシュボードは可能だが、ログ検索の柔軟性に欠ける場合がある。
Azure Monitorの場合、Log Analyticsを使用した高度な検索機能やクエリの柔軟性があり、結果の取得が迅速かつ簡単。
Cloud MonitoringはStackdriverとの統合で使いやすいが、特定のユースケースにおいて若干の制限がある。 -
汎用性:CloudWatchはAWSサービスとの連携が優れており、カスタムメトリクスやサードパーティツールとも簡単に統合可能。
Azure MonitorとCloud Monitoringについて環境との統合は優れているが、マルチクラウド対応やサードパーティとの連携には制限がある。
まとめ
クラウド環境における監視は、システムの可用性やセキュリティ、コスト最適化のために不可欠です。
それぞれのクラウドプロバイダーが提供する監視サービスには特有の利点があり、用途に応じて選択することが重要です。
- AWS CloudWatchはAWSサービスに特化して統合されており、リアルタイムな監視データを基に条件を自由に設定し、システム運用の効率化や障害対応の自動化を実現できます。
- Azure Monitorは直感的な設定と外部システムとの連携が魅力です。
- Google CloudMonitoringはデータ分析や可視化に優れています。
クラウドサービスごとに監視対象や設定方法は異なりますが、基本的な機能は共通しており、他のサービスとの連携も可能です。これにより、柔軟かつ効率的なシステム運用を実現できる点が大きな魅力と言えます。
アジアクエスト株式会社では一緒に働いていただける方を募集しています。
興味のある方は以下のURLを御覧ください。