Amazon Managed Service for Prometheus

Prometheus 互換のフルマネージドモニタリングサービスで、コンテナワークロードのメトリクス収集・保存・クエリをスケーラブルに提供する

概要

Amazon Managed Service for Prometheus (AMP) は、オープンソースの Prometheus と完全互換のフルマネージドモニタリングサービスです。Prometheus のリモートライト API を通じてメトリクスを取り込み、PromQL でクエリを実行できます。EKS、ECS、EC2 上のワークロードからメトリクスを収集し、自動スケーリングするストレージに保存します。セルフマネージドの Prometheus では課題となるストレージ容量の管理、高可用性の確保、長期保存が不要になり、運用負荷を大幅に削減できます。Amazon Managed Grafana と組み合わせることで、メトリクスの収集から可視化までの完全なオブザーバビリティスタックを構築できます。マルチ AZ で冗長化されており、99.9% の可用性 SLA を提供します。

ワークスペースの設計とメトリクス取り込み

AMP のワークスペースは、メトリクスの論理的な分離単位です。環境 (dev/stg/prod) やチーム単位でワークスペースを分離し、アクセス制御とコスト配分を明確にする設計が推奨されます。メトリクスの取り込みは Prometheus のリモートライト API を使用し、既存の Prometheus サーバーや OpenTelemetry Collector、AWS Distro for OpenTelemetry (ADOT) から送信できます。EKS 環境では、ADOT Collector を DaemonSet としてデプロイし、各ノードの Pod メトリクスを収集して AMP に送信する構成が一般的です。認証には AWS SigV4 署名を使用するため、IAM ロールによるきめ細かなアクセス制御が可能です。EKS の場合は IRSA (IAM Roles for Service Accounts) を使って Pod レベルで書き込み権限を付与します。取り込みレートの上限はデフォルトで秒間 70,000 サンプルですが、Service Quotas から引き上げリクエストが可能です。高カーディナリティのメトリクス (ラベルの組み合わせが膨大) はコストとパフォーマンスに影響するため、不要なラベルをリライトルールで除外する設計が重要です。

PromQL によるクエリとアラートルールの設定

AMP は PromQL を完全サポートしており、セルフマネージドの Prometheus と同じクエリ構文でメトリクスを分析できます。クエリエンドポイントも AWS SigV4 認証で保護されており、Grafana からの接続時には SigV4 プラグインを使用します。アラートルールとレコーディングルールは、ルールグループとしてワークスペースに設定でき、Prometheus のルール YAML ファイルと同じ構文で記述します。アラートの発報先として Amazon SNS を指定でき、SNS から Lambda、PagerDuty、Slack への連携が可能です。レコーディングルールは頻繁に使用する複雑なクエリを事前計算して保存する機能で、ダッシュボードの表示速度を向上させます。例えば、全 Pod の CPU 使用率の 5 分間平均を事前計算しておけば、ダッシュボード表示時にリアルタイム計算が不要になります。実務では、SLI (Service Level Indicator) の計算をレコーディングルールで定義し、SLO (Service Level Objective) の達成状況をアラートルールで監視する設計が効果的です。

コスト最適化とマルチアカウント運用

AMP の課金は、取り込みサンプル数、保存サンプル数、クエリ処理サンプル数の 3 軸で構成されます。コスト最適化の第一歩は、不要なメトリクスの取り込みを抑制することです。Prometheus のリライトルール (metric_relabel_configs) で、使用しないメトリクスをドロップし、高カーディナリティのラベルを除外します。保存期間はデフォルトで 150 日間ですが、短期間のメトリクスのみ必要な場合はワークスペースの保持期間を短縮してストレージコストを削減できます。マルチアカウント環境では、各アカウントの EKS クラスターから中央のモニタリングアカウントの AMP ワークスペースにメトリクスを集約する設計が一般的です。クロスアカウントの書き込みには、モニタリングアカウントの IAM ロールを各アカウントから AssumeRole する設定が必要です。Organizations の SCP でモニタリングアカウントへの書き込み権限を制御し、不正なメトリクス送信を防止します。Grafana ダッシュボードでは複数ワークスペースをデータソースとして登録し、環境横断のメトリクス比較が可能です。

共有するXB!