EC2 のモニタリングとオブザーバビリティ
はじめに
継続的なモニタリングとオブザーバビリティは、クラウド環境のアジリティを高め、カスタマーエクスペリエンスを向上させ、リスクを軽減します。 Wikipedia によると、オブザーバビリティ とは、システムの外部出力の知識から、システムの内部状態をどの程度推測できるかを示す指標です。 オブザーバビリティという用語自体は制御理論の分野に由来し、基本的にはシステムが生成する外部シグナルや出力を学習することで、システム内のコンポーネントの内部状態を推測できることを意味します。
モニタリングとオブザーバビリティの違いは、モニタリングがシステムが機能しているかどうかを示すのに対し、オブザーバビリティはシステムが機能していない理 由を示すことです。 モニタリングは通常、事後対応的な手段ですが、オブザーバビリティの目標は、主要業績評価指標を事前対応的に改善できるようにすることです。 システムは観察されない限り、制御や最適化することはできません。 メトリクス、ログ、トレースの収集によってワークロードを計測し、適切なモニタリングとオブザーバビリティツールを使用して意味のある洞察と詳細なコンテキストを得ることで、お客様は環境を制御および最適化できます。
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 エージェントは、x86-64 および ARM64 アーキテクチャを使用するほとんどのオペレーティングシステムをサポートする MIT ライセンスのオープンソースソフトウェアです。 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 ロールを作成します。 CloudWatch エージェントを EC2 インスタンスにインストールする前に、必要な EC2 インスタンスで SSM エージェントをインストールまたは更新します。 CloudWatch エージェントは AWS Systems Manager を通じてダウンロードできます。 収集するメトリクス(カスタムメトリクスを含む)やログを指定するために、JSON 設定ファイルを作成できます。 必要な IAM ロールと設定ファイルを作成したら、必要な Amazon EC2 インスタンスに CloudWatch エージェントをインストールして実行できます。
ハイブリッド環境のオンプレミスサーバーへの 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 が含まれます。 手動モニタリング ツールには、この記事の後のセクションで詳しく説明するダッシュボードが含まれます。
ドキュメント: 自動化および手動モニタリング