アジアクエスト クラウドインテグレーション部の呉蜀魏です。
本記事は、監視の基本的な概念を説明し、クラウド環境における監視サービスの特徴と違いを紹介することを目的としています。
具体的に、主要なクラウドプロバイダー(AWS、Azure、Google Cloud)の監視サービスについて、その概要や設定手順、障害発生時の確認方法を把握できる内容となっています。
本記事の対象者
オンプレミスの設計・構築経験があり、クラウドに興味がある方
クラウドの導入や移行を検討している方
AWS、Azure、Google Cloudのいずれかに経験があり、他のクラウドにも興味がある方
IT未経験だが、IT業界への興味がある方
システムを安定稼働させるために欠かせないのが「監視」です。監視には大きく分けて以下の3つの目的があります。
障害の早期発見と対応
サーバーダウンや異常な挙動を素早く検知し、システムの停止時間を最小限に抑えます。これにより、業務への影響を減らすことができます。
セキュリティの強化
システムに対する不正アクセスやデータ漏洩を防ぐためにも監視は重要です。特にクラウド環境では、トラフィックやログの分析がセキュリティの鍵を握ります。
コストの最適化
リソースの使い過ぎを防ぎ、効率的な運用を実現します。不要なリソースを監視・削減することで、運用コストも抑えられます。
監視には、システム全体を効率的に管理するために、さまざまな観点から行われる複数の種類があります。
以下に代表的な監視の種類を紹介します。
アプリケーション監視
アプリケーションが正常に動作しているかを監視します。ユーザーからのリクエストに対するレスポンスの速さや、エラー発生率などを把握することで、サービスの品質向上につなげます。
ジョブ監視
定期的に実行されるバッチ処理やタスクが予定通り完了しているかを確認します。失敗や遅延が発生した場合にアラートを発し、迅速な対応を可能にします。
ログ監視
サーバーやアプリケーションの動作履歴を記録したログを分析することで、システムの異常や潜在的な問題を特定します。不正アクセスの検出にも活用されます。
パフォーマンス監視
CPU使用率やメモリ使用量、ネットワーク帯域の利用状況など、システムリソースの利用状況を監視します。これにより、過負荷状態を防ぎ、リソースの効率的な活用を図ります。
死活監視
サーバーやアプリケーションが稼働しているかを定期的に監視します。停止状態を検知した場合、即座にアラートを送信します。
トラフィック監視
ネットワークを流れるデータ量や通信状況を監視します。異常なトラフィックや攻撃の兆候をいち早く検出し、セキュリティ対策を講じるために利用されます。
クラウドでは、ユーザーが管理すべき領域がオンプレミス環境とは異なります。
例えば、AWS、Azure、Google Cloudのようなクラウドプロバイダーは物理サーバーや基盤部分を管理しますが、アプリケーションやデータの監視はユーザーの責任です。
クラウドのスケーラブルな特性に対応するため、監視の自動化が重要です。
クラウド各社は、監視機能を提供する専用サービスを用意しており、これらを利用することでクラウド環境特有の課題に対応できます。
AWS: CloudWatch
概要:AWSが提供するリソース監視のためのマネージドサービス。
主な特徴:
適用例:EC2インスタンスのCPU・メモリの使用率監視やRDSのパフォーマンス監視。
Azure: Azure Monitor
概要:Azureだけでなくオンプレミスや他クラウド環境も統合的に監視可能なサービス。
主な特徴:
適用例:VMの稼働状況やKubernetesクラスターの管理。
Google Cloud: CloudMonitoring
概要:Google Cloudリソース、オンプレミスや他クラウド環境を対象とした監視サービス。
主な特徴:
適用例:BigQueryの負荷監視やApp Engineの可用性モニタリング。
AWS CloudWatch
設定手順
リソース一覧からリソースと監視項目を選択・条件の指定
メモリ監視についてはエージェントを導入する必要がある
取得間隔
基本モニタリングは5分、詳細モニタリングは1分
Azure Monitor
設定手順
対象リソースの選択→監視項目、条件の指定
取得間隔
デフォルトは1分、最短10秒まで設定可能
Google CloudMonitoring
設定手順
監視項目の選択・対象リソースのフィルタリング及び条件の指定
メモリ監視についてはエージェントを導入する必要がある
取得間隔
デフォルトは1分、最短15秒まで設定可能
AWS CloudWatch
Azure Monitor
Google CloudMonitoring
AWS CloudWatch
Azure Monitor
Google CloudMonitoring
AWS CloudWatch
Azure Monitor
Google CloudMonitoring
AWS CloudWatch | Azure Monitor | Google CloudMonitoring | |
---|---|---|---|
グラフの種類 | 線、棒、スタックされたエリア、カスタムウィジェット、ゲージ、アラームのステータス、データテーブル、ログテーブル、数値、円など | 折れ線グラフ、棒グラフ、面グラフ、散布図、グリッドなど | 折れ線グラフ、棒グラフ、面グラフ、ヒートマップ、テーブル |
カスタマイズ性 | ◎ | ○ | △ |
AWS CloudWatch
Azure Monitor
Google CloudMonitoring
機能 | AWS CloudWatch | Azure Monitor | Google CloudMonitoring |
---|---|---|---|
メール通知 | ○ | ○ | ○ |
SMS通知 | ○ | ○ | ○ |
モバイルアプリプッシュ通知 | ○ | ○ | ○ |
音声通知 | × | ○ | × |
自動化ツール | ○ | ○ | △ メッセージングサービス等を経由しないと通知できないため |
Teams等外部メッセージングツールへの通知 | △ メッセージングサービス等を経由しないと通知できないため |
○ Teamsを直で通知可 |
○ Slackを直で通知可 |
AWS CloudWatch
AWSがデフォルトで収集しているメトリクスについては無料
カスタムメトリクスについてはリージョンによって異なるものの、概ね以下の金額で利用可能
最初の10,000メトリクス $0.30/月
次の240,000メトリクス $0.10/月
次の750,000メトリクス $0.05/月
1,000,000を超えるメトリクス $0.02/月
Azure Monitor
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について環境との統合は優れているが、マルチクラウド対応やサードパーティとの連携には制限がある。
クラウド環境における監視は、システムの可用性やセキュリティ、コスト最適化のために不可欠です。
それぞれのクラウドプロバイダーが提供する監視サービスには特有の利点があり、用途に応じて選択することが重要です。
クラウドサービスごとに監視対象や設定方法は異なりますが、基本的な機能は共通しており、他のサービスとの連携も可能です。これにより、柔軟かつ効率的なシステム運用を実現できる点が大きな魅力と言えます。