サードパーティー製モニタリングツール - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

サードパーティー製モニタリングツール

一部のシナリオでは、AWS が Amazon RDS に用意したクラウドネイティブの包括的な、オブザーバビリティおよびモニタリングツールスイートに加え、他のソフトウェアベンダーのモニタリングツールを使用することもできます。こうしたシナリオでは、ハイブリッドデプロイが行われます。例えば、オンプレミスデータセンターで多数のデータベースが稼働し、AWS クラウド でもデータベースが複数稼働しているといったシナリオです。自社で既にオブザーバビリティソリューションを確立している場合は、既存のツールを引き続き使用して、それらを AWS クラウド のデプロイ環境に拡張すると良いでしょう。サードパーティー製モニタリングソリューションを設定する場合の一般的な課題は、マネージドサービスである Amazon RDS によって、保護が適用されることです。例えば、データベースホストマシンへのアクセスが拒否されるため、DB インスタンスが稼働するホストオペレーティングシステムにエージェントソフトウェアをインストールすることはできません。ただし、多くのサードパーティー製モニタリングソリューションを Amazon RDS と統合できる方法があります。CloudWatch やその他の AWS クラウド サービス上にそれらを構築するのです。例えば、Amazon RDS メトリクス、ログ、イベント、トレースをエクスポートして、サードパーティー製モニタリングツールにインポートすることで、より詳細な分析、可視化、アラート発行を行えます。これらのサードパーティー製ソリューションには、Prometheus、Grafana、Percona などがあります。

Prometheus と Grafana

Prometheus は、設定されたターゲットから特定の間隔でメトリクスを収集するオープンソースのモニタリングソリューションであり、あらゆるアプリケーションやサービスをモニタリングできる汎用モニタリングソリューションでもあります。Amazon RDS DB インスタンスをモニタリングすると、CloudWatch では、Amazon RDS からメトリクスが収集されます。その後、YACE Exporter や CloudWatch Exporter などのオープンソースエクスポーターを使用して、メトリクスが Prometheus サーバーにエクスポートされます。

  • YACE Exporter では、データエクスポートのタスクを最適化するために、CloudWatch API にリクエストを 1 回のみ送信し、複数のメトリクスを取得します。メトリクスが Prometheus サーバーに保存されると、ルール式がそこで評価され、指定した条件が観測されたときにアラートが生成されます。

  • CloudWatch Exporter は Prometheus によって公式に管理されています。このエクスポータにより、CloudWatch API を介して CloudWatch メトリクスを取得します。さらに、HTTP エンドポイントへの REST API リクエストを使用して、Prometheus と互換性のある形式で、それらのメトリクスを Prometheus サーバーに保存します。

エクスポーターを選択して、デプロイモデルを設計し、エクスポーターインスタンスを設定するときには、CloudWatchCloudWatch Logs のサービスおよび API クォータの利用を検討してください。なぜなら、CloudWatch メトリクスを Prometheus サーバーにエクスポートする機能は CloudWatch API を介して実装されるからです。例えば、CloudWatch Exporter の複数のインスタンスを単一の AWS アカウント およびリージョンにデプロイし、数百の Amazon RDS DB インスタンスをモニタリングすると、スロットリングエラー (ThrottlingException) とコード 400 エラーが発生する可能性があります。こうした制限を取り払うには、YACE エクスポーターの使用を検討すると良いでしょう。このエクスポーターは、1 回のリクエストで最大 500 個の異なるメトリクスを収集するように最適化されています。さらに、多数の Amazon RDS DB インスタンスをデプロイするには、ワークロードを単一の AWS アカウント に集中させずに複数の AWS アカウント を使用することと、各 AWS アカウント のエクスポーターインスタンス数を制限することを検討しなければなりません。

アラートは Prometheus サーバーによって生成され、アラートマネージャーによって処理されます。このツールでは、アラートの重複排除、グループ化、適切な受信者 (E メール、SMS、Slack ユーザー) へのルーティング、自動応答アクションの開始が処理されます。Grafana という別のオープンソースツールでは、こうしたメトリクスを可視化でき、高度なグラフ、ダイナミックダッシュボードといった豊富な視覚化ウィジェットに加え、アドホッククエリやダイナミックドリルダウンなどの分析機能を利用可能です。Grafana は、ログを検索し分析する機能に加え、メトリクスとログを継続的に評価して、データがアラートルールに一致したら通知が送信されるアラート機能も備えています。

Prometheus と Grafana を Amazon RDS と CloudWatch に連携させて使用する

Percona

Percona Monitoring and Management (PMM) は、MySQL および MariaDB 向けに無料で提供されている、オープンソースのデータベースモニタリング、管理、オブザーバビリティソリューションであり、これによって、DB インスタンスとそのホストから数千のパフォーマンスメトリクスを収集できます。また、ダッシュボードでデータを可視化するウェブ UI や、データベースヘルス評価の自動アドバイザーといった、追加機能の利用も可能です。PMM を使用すると、Amazon RDS をモニタリングできますが、PMM クライアント (エージェント) は、ホストにアクセスできないため、Amazon RDS DB インスタンスの基盤ホストにはインストールできません。代わりに、このツールでは、Amazon RDS DB インスタンスに接続して、サーバー統計、INFORMATION_SCHEMA、sys スキーマ、パフォーマンススキーマをクエリし、CloudWatch API を使用してメトリクス、ログ、イベント、トレースを取得します。PMM には AWS Identity and Access Management (IAM) ユーザーアクセスキー (IAM ロール) を持たせる必要があり、これによって、モニタリングに使用可能な Amazon RDS DB インスタンスを自動検出します。PMM ツールは、データベースのモニタリング用にプロファイリングされているため、データベース固有のメトリクスを Prometheus よりも多く収集できます。PMM クエリ分析ダッシュボードを使用するには、クエリソースとしてパフォーマンススキーマを設定する必要があります。クエリ分析エージェントが Amazon RDS 用にインストールされておらず、スロークエリログを読み取れないからです。代わりに、MySQL および MariaDB の DB インスタンスから performance_schema を直接クエリし、メトリクスを取得します。PMM の際立った特徴の 1 つは、アラート機能であり、これによって、データベース内で検出した問題について、DBA にアラートを発行し、アドバイスを提示できます。PMM には、一般的なセキュリティ脅威、パフォーマンスの低下、データ損失、データ破損を検出できる一連のチェック機能も用意されています。

こうしたツールだけでなく、市販のオブザーバビリティおよびモニタリングソリューションにも Amazon RDS と統合できるものがあります。その例には、Datadog Database MonitoringDynatrace Amazon RDS MonitoringAppDynamics Database Monitoring などがあります。