EC2 のモニタリングとオブザーバビリティ
はじめに
継続的なモニタリングとオブザーバビリティは、クラウド環境のアジリティを高め、顧客体験を向上させ、リスクを軽減します。Wikipedia によると、オブザーバビリティ とは、システムの外部出力の知識から、そのシステムの内部状態をどれだけ正確に推測できるかを示す尺度です。オブザーバビリティという用語自体は制御理論の分野に由来し、基本的にはシステムが生成する外部信号や出力を学ぶことで、システム内のコンポーネントの内部状態を推測できることを意味します。
モニタリングとオブザーバビリティの違いは、モニタリングがシステムが機能しているかどうかを示すのに対し、オブザーバビリティはシステムが機能していない理由を示すことです。モニタリングは通常、反応的な措置ですが、オブザーバビリティの目標は、主要業績評価指標 (KPI) を積極的に改善することです。システムは観察されない限り、制御や最適化することはできません。メトリクス、ログ、トレースの収集によってワークロードを計測し、適切なモニタリングとオブザーバビリティツールを使用して意味のある洞察と詳細なコンテキストを得ることで、顧客は環境を制御し最適化することができます。
AWS は、顧客がモニタリングからオブザーバビリティへと移行し、エンドツーエンドのサービスの可視性を完全に得られるようにします。この記事では、Amazon Elastic Compute Cloud (Amazon EC2) に焦点を当て、AWS ネイティブおよびオープンソースツールを通じて AWS クラウド環境でのサービスのモニタリングとオブザーバビリティを改善するためのベストプラクティスについて説明します。
Amazon EC2
Amazon Elastic Compute Cloud (Amazon EC2) は、Amazon Web Services (AWS) クラウドの高度にスケーラブルなコンピューティングプラットフォームです。Amazon EC2 は、ハードウェアへの初期投資の必要性を排除し、お客様が使用した分だけ支払うことで、より迅速にアプリケーションを開発およびデプロイできるようにします。EC2 が提供する主な機能には、インスタンスと呼ばれる仮想コンピューティング環境、Amazon マシンイメージと呼ばれるインスタンスの事前設定済みテンプレート、インスタンスタイプとして利用可能な CPU、メモリ、ストレージ、ネットワーク容量などのリソースの様々な構成があります。
AWS ネイティブツールを使用したモニタリングとオブザーバビリティ
Amazon CloudWatch
Amazon CloudWatch は、AWS、ハイブリッド、およびオンプレミスのアプリケーションとインフラストラクチャリソースのデータと実用的な洞察を提供するモニタリングおよび管理サービスです。CloudWatch は、ログ、メトリクス、イベントの形式でモニタリングおよび運用データを収集します。また、AWS リソース、アプリケーション、および AWS とオンプレミスサーバーで実行されるサービスの統合ビューを提供します。CloudWatch は、リソース使用率、アプリケーションパフォーマンス、および運用の健全性についてシステム全体の可視性を得るのに役立ちます。
統合された CloudWatch エージェント
統合された CloudWatch エージェントは、MIT ライセンスのオープンソースソフトウェアで、x86-64 および ARM64 アーキテクチャを使用するほとんどのオペレーティングシステムをサポートしています。CloudWatch エージェントは、オペレーティングシステム全体で Amazon EC2 インスタンスやオンプレミスサーバーからシステムレベルのメトリクスを収集し、アプリケーションやサービスからカスタムメトリクスを取得し、Amazon EC2 インスタンスやオンプレミスサーバーからログを収集するのに役立ちます。
Amazon EC2 インスタンスへの CloudWatch エージェントのインストール
コマンドラインでのインストール
CloudWatch エージェントはコマンドラインを通じてインストールできます。様々なアーキテクチャと様々なオペレーティングシステム用の必要なパッケージがダウンロード可能です。CloudWatch エージェントが Amazon EC2 インスタンスから情報を読み取り、CloudWatch に書き込むための権限を提供する必要な IAM ロールを作成します。必要な IAM ロールが作成されたら、必要な Amazon EC2 インスタンスで CloudWatch エージェントをインストールして実行できます。
ドキュメント:コマンドラインを使用した CloudWatch エージェントのインストール
AWS Observability ワークショップ:CloudWatch エージェントのセットアップとインストール
AWS Systems Manager を通じたインストール
CloudWatch エージェントは AWS Systems Manager を通じてもインストールできます。 CloudWatch エージェントが Amazon EC2 インスタンスから情報を読み取り、CloudWatch に書き込み、AWS Systems Manager と通信するための権限を提供する必要な IAM ロールを作成します。
EC2 インスタンスに CloudWatch エージェントをインストールする前に、必要な EC2 インスタンスで SSM エージェントをインストールまたは更新します。
CloudWatch エージェントは AWS Systems Manager を通じてダウンロードできます。 収集するメトリクス(カスタムメトリクスを含む)やログを指定するための JSON 設定ファイルを作成できます。
必要な IAM ロールが作成され、設定ファイルが作成されたら、必要な Amazon EC2 インスタンスに CloudWatch エージェントをインストールして実行できます。
ドキュメント: AWS Systems Manager を使用した CloudWatch エージェントのインストール
AWS Observability ワークショップ: AWS Systems Manager クイックセットアップを使用した CloudWatch エージェントのインストール
関連ブログ記事: AWS Systems Manager 統合による Amazon CloudWatch エージェント - Linux & Windows 向けの統合メトリクスおよびログ収集
YouTube 動画: CloudWatch エージェントを使用した Amazon EC2 インスタンスからのメトリクスとログの収集
ハイブリッド環境のオンプレミスサーバーへの CloudWatch エージェントのインストール
サーバーがオンプレミスとクラウドの両方に存在するハイブリッド顧客環境では、Amazon CloudWatch で統合されたオブザーバビリティを実現するために同様のアプローチを取ることができます。CloudWatch エージェントは Amazon S3 から直接ダウンロードするか、AWS Systems Manager を通じてダウンロードできます。オンプレミスサーバーが Amazon CloudWatch にデータを送信するための IAM ユーザーを作成します。オンプレミスサーバーにエージェントをインストールして起動します。
Amazon CloudWatch を使用した Amazon EC2 インスタンスのモニタリング
Amazon EC2 インスタンスとアプリケーションの信頼性、可用性、パフォーマンスを維持する上で重要な側面は、継続的なモニタリング です。 必要な Amazon EC2 インスタンスに CloudWatch エージェントをインストールすることで、インスタンスの健全性とパフォーマンスをモニタリングし、安定した環境を維持することが可能になります。 ベースラインとして、CPU 使用率、ネットワーク使用率、ディスクパフォーマンス、ディスクの読み書き、メモリ使用率、ディスクスワップ使用率、ディスク容量使用率、ページファイル使用率、EC2 インスタンスのログ収集などの項目が推奨されます。
基本モニタリングと詳細モニタリング
Amazon CloudWatch は、Amazon EC2 から生データを収集し、読みやすいほぼリアルタイムのメトリクスに処理します。 デフォルトでは、Amazon EC2 はインスタンスの基本モニタリングとして、5 分間隔でメトリクスデータを CloudWatch に送信します。 インスタンスのメトリクスデータを 1 分間隔で CloudWatch に送信するには、インスタンスで詳細モニタリングを有効にすることができます。
モニタリングのための自動化ツールと手動ツール
AWS は、Amazon EC2 をモニタリングし、問題が発生した際に報告するための自動化ツールと手動ツールの 2 種類を提供しています。これらのツールの一部は少し設定が必要で、いくつかは手動での介入が必要です。
自動化モニタリングツール には、AWS システムステータスチェック、インスタンスステータスチェック、Amazon CloudWatch アラーム、Amazon EventBridge、Amazon CloudWatch Logs、CloudWatch エージェント、AWS Management Pack for Microsoft System Center Operations Manager が含まれます。手動モニタリング ツールにはダッシュボードが含まれており、これについては本記事の後半で詳しく説明します。
ドキュメント:自動化および手動モニタリング