クラウド エンジニアブログ

Amazon CloudWatchで行うプロセス監視設定

2025年9月29日掲載

はじめに

ソニービズネットワークス 開発本部の藤田です。
システム運用で一番怖いのは、サービスが止まっていることに気づかないことですよね。
お客様から「サイトが見れません」と連絡をもらって初めて気づく。これは避けたいところです。
そんな悩みを解決してくれるのがプロセス監視です。
今回は、AWS環境でプロセス監視を実現するCloudWatchの使い方をご紹介します。

Amazon CloudWatch とは

CloudWatchは、AWSが提供する監視サービスです。サーバーやアプリケーションの状態を24時間365日見守ってくれる、頼もしい見張り番のような存在です。
CPUの使用率が高くなったり、メモリが足りなくなったり、プロセスが停止したり。そんな異常をすぐに検知してお知らせしてくれます。

主要機能

CloudWatchには便利な機能がたくさんあります。主なものを3つご紹介します。

1.メトリクス収集

サーバーの様々な数値を自動で集めてくれます。CPU使用率、ディスク容量、ネットワーク通信量がグラフで見やすく表示されるので、一目で状態がわかります。

メトリクス画面

2.アラーム機能

「CPUが80%を超えたら通知して」といった設定ができます。メールやSlackに通知をすることができます。

cpu-alarmを確認

3.ログ管理

アプリケーションのログを一箇所に集めて管理できます。エラーログを検索したり、特定のキーワードが出たら通知したり。トラブルシューティングの時間が大幅に短縮されます。

アプリケーションログ

導入メリット

CloudWatchを使うメリットは大きく3つあります。

1. 導入が簡単

EC2インスタンスなら、最初から基本的な監視が有効になっています。追加の設定なしで、すぐに使い始められます。

2. コスト効率が良い

使った分だけの料金体系です。小規模なシステムなら月数百円程度で運用可能。専用の監視サーバーを立てる必要もありません。

3. 自動化しやすい

異常を検知したら自動でサーバーを再起動する。こんな設定も簡単にできます。運用の手間が大幅に削減されます。

連携サービス

SNS(Simple Notification Service)との連携で、メールやSMS、Slackへの通知が可能です。

Lambdaと組み合わせれば、アラート時に自動で復旧処理を実行できます。例えば、プロセスが停止したら自動で再起動するなど。
Systems Managerを使えば、より詳細なプロセス監視が可能になります。特定のアプリケーションが動いているか、定期的にチェックできます。

SNS通知

実際の画面確認

プロセス監視の設定方法
実際の設定は思ったより簡単です。基本的な流れをご紹介します。

ステップ1:CloudWatch Agentのインストール

EC2インスタンスにCloudWatch Agentをインストールします。Systems ManagerのRun Commandを使えば、数クリックで完了です。

ステップ1 Agentインストール(1)

ステップ1 Agentインストール(2)

ローカルPCの監視を実施したい場合は以下のURLをご参照ください。

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/download-CloudWatch-Agent-on-EC2-Instance-commandline-first.html

Agentの監視先を細かく設定することも可能です。

ステップ1 Agentインストール(3)

{
	"logs": {
		"logs_collected": {
			"windows_events": {
				"collect_list": [
					{
						"event_format": "xml",
						"event_levels": [
							"VERBOSE",
							"INFORMATION",
							"WARNING",
							"ERROR",
							"CRITICAL"
						],
						"event_name": "1",
						"log_group_class": "STANDARD",
						"log_group_name": "onpremise-pc",
						"log_stream_name": "onpremise-pc-Application.log",
						"retention_in_days": 30
					}
				]
			}
		}
	},
	"metrics": {
		"metrics_collected": {
			"LogicalDisk": {
				"measurement": [
					"% Free Space"
				],
				"metrics_collection_interval": 60,
				"resources": [
					"*"
				]
			},
			"Memory": {
				"measurement": [
					"% Committed Bytes In Use"
				],
				"metrics_collection_interval": 60
			},
			"Network Interface": {
				"measurement": [
					"Bytes Sent/sec",
					"Bytes Received/sec",
					"Packets Sent/sec",
					"Packets Received/sec"
				],
				"metrics_collection_interval": 60,
				"resources": [
					"*"
				]
			},
			"Paging File": {
				"measurement": [
					"% Usage"
				],
				"metrics_collection_interval": 60,
				"resources": [
					"*"
				]
			},
			"PhysicalDisk": {
				"measurement": [
					"Disk Write Bytes/sec",
					"Disk Read Bytes/sec",
					"Disk Writes/sec",
					"Disk Reads/sec"
				],
				"metrics_collection_interval": 60,
				"resources": [
					"*"
				]
			},
			"Processor": {
				"measurement": [
					"% Processor Time"
				],
				"metrics_collection_interval": 60,
				"resources": [
					"*"
				]
			}
		}
	}
}

ステップ2:監視したいプロセスをパラメータストアで設定し、Run Commnadにて監視設定を実行

設定ファイルに監視したいプロセス名を書きます。例えば「nginx」や「java」など。正規表現も使えるので柔軟に指定できます。

設定ファイル作成はコマンドプロンプトで実施します。

※ステップ2監視したいプロセスの指定(1)の画像はEC2の監視を実施する場合になります。

ステップ2(1)

設定サンプルを以下に記載します。

こちらはMicrosoft edgeとコマンドプロンプトの監視を行う設定になります。

{
    "metrics": {
        "metrics_collected": {
            "procstat": [
                {
                    "exe": "msedge",
                    "measurement": [
                        "pid_count"
                    ],
                    "metrics_collection_interval": 60
                }
            ]
        }
    }
}

Run Commnadで監視対象のサーバーを指定します。

ステップ2(2)

・Action Configure(append)
・Mode EC2

※実機の場合はOnpremiss
・Optional Configuration Source 作成したパラメータストア名
・Optional Restart yes

・ターゲット 対象EC2もしくはオンプレサーバー

ステップ2(3)

・その他パラメータ デフォルト

ステップ2(4)

ステップ3:メトリクスの確認

CloudWatchコンソールで、プロセスが動いているか確認します。「1」なら動作中、「0」なら停止中で表示されます。

画像の内容はコマンドプロンプトを監視しておりますが、どんなアプリケーションでも監視設定することができます。

メトリクスの確認

ステップ4:アラームの設定

プロセスが停止したら通知するアラームを作ります。「メトリクスが0になったら通知」と設定します。

アラームの設定

ステップ5:通知先の設定

メールアドレスを登録します。これで24時間監視体制の完成です。

通知先の設定

クラウドポータルでの実装

クラウドポータルでは上記のステップを簡易的に設定することが可能です。

ステップ1:リモート管理にてマネージドインスタンスの登録

対象サーバーをリモート管理に登録します。

ステップ1リモート管理

ステップ2:CloudWatchエージェント設定

エージェント設定を行うことでステップ1、2を同時に設定することができます。

ステップ2 CloudWatchエージェント設定

CloudWatchエージェント設定後に先ほどのステップ3~ステップ5の設定を行うことでローカルPC、AWS上のEC2を監視することができます。

まとめ

いかがでしたでしょうか?プロセス監視は難しそうに見えて、実は基本を押さえれば誰でも設定できます。まずは重要なサーバーから監視を始めてみてはいかがでしょうか。
CloudWatchがあれば、安心してシステム運用ができるようになりますよ。

このコラムに関連する製品

  • AWS運用支援サービス

    手軽に運用できるツールから
    24時間365日有人監視まで3つのサービスで
    AWSの運用を支援

    詳細はこちら

  • AWS運用管理・自動化ツール「クラウドポータル」

    「はじめてでも運用できる」
    「もっと使いこなせる」
    独自開発ツール

    詳細はこちら

  • 運用内製化支援~セキュリティ改善サービス

    ベストプラクティスに沿った改善案を提案し、運用の内製化を支援します。


    詳細はこちら

関連コラム

このコラムに関連する
導入事例

このコラムに関連する
セミナーアーカイブ動画

AWSコスト最適化 ~実例からその手法を学ぼう!~

SHARE
シェアシェア ポストポスト
AWSコスト最適化 ~実例からその手法を学ぼう!~
SHARE
ポスト シェア