AWS Observability Accelerator を使用して Amazon Managed Service for Prometheus をセットアップする - Amazon Managed Service for Prometheus

AWS Observability Accelerator を使用して Amazon Managed Service for Prometheus をセットアップする

AWS には、Amazon Elastic Kubernetes Service (Amazon EKS) のプロジェクト向けに、モニタリング、ログ記録、アラート、ダッシュボードなどのオブザーバビリティツールが用意されています。これには、Amazon Managed Service for Prometheus、Amazon Managed GrafanaAWS Distro for OpenTelemetry、その他のツールが含まれます。これらのツールの連携を支援するために、AWS では、これらのサービスでオブザーバビリティを構成するための AWS Observability Accelerator と呼ばれる Terraform モジュールを提供しています。

AWS Observability Accelerator には、インフラストラクチャのモニタリング、NGINX のデプロイ、その他のシナリオに向けた例が用意されています。このセクションでは、Amazon EKS クラスターのインフラストラクチャをモニタリングする例を示します。

Terraform テンプレートと詳細な手順については、AWS Observability Accelerator for Terraform の GitHub ページを参照してください。AWS Observability Accelerator の発表に関するブログ記事を読むこともできます。

前提条件

AWS Observability Accelerator を使用するには、既存の Amazon EKS クラスターと、以下の前提条件が必要です。

  • AWS CLI - AWS の機能をコマンドラインから呼び出すために使用されます。

  • kubectl - コマンドラインから EKS クラスターを制御するために使用されます。

  • Terraform - このソリューションのリソースの作成を自動化するために使用されます。AWS アカウント内で Amazon Managed Service for Prometheus、Amazon Managed Grafana、IAM の作成と管理を行うアクセス権を持つ IAM ロールを使用して、AWS プロバイダーをセットアップする必要があります。Terraform 用の AWS プロバイダーを構成する方法の詳細については、Terraform ドキュメントの「AWS Provider」を参照してください。

インフラストラクチャモニタリングのサンプルの使用

AWS Observability Accelerator には、付属の Terraform モジュールを使用して、Amazon EKS クラスターのオブザーバビリティのセットアップと構成を行うサンプルテンプレートが用意されています。この例は、AWS Observability Accelerator を使用してインフラストラクチャのモニタリングを設定する方法を示しています。このテンプレートの使用方法と、テンプレートに含まれている追加機能の詳細については、GitHub の「Existing Cluster with the AWS Observability Accelerator base and Infrastructure monitoring」ページを参照してください。

インフラストラクチャモニタリングの Terraform モジュールを使用するには
  1. プロジェクトを作成するフォルダーから、次のコマンドを使用してリポジトリをクローンします。

    git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git
  2. 次のコマンドを実行して Terraform を初期化します。

    cd examples/existing-cluster-with-base-and-infra terraform init
  3. 新しい terraform.tfvars ファイルを作成し、以下の例を記述します。Amazon EKS クラスターの AWS リージョンとクラスター ID を使用してください。

    # (mandatory) AWS Region where your resources will be located aws_region = "eu-west-1" # (mandatory) EKS Cluster name eks_cluster_id = "my-eks-cluster"
  4. 使用する Amazon Managed Grafana ワークスペースがない場合は作成します。新しいワークスペースを作成する方法については、「Amazon Managed Grafana User Guide」の「Create your first workspace」を参照してください。

  5. コマンドラインで次のコマンドを実行して、Terraform で Grafana ワークスペースを使用するために必要な 2 つの変数を作成します。grafana-workspace-id は、Grafana ワークスペースの ID に置き換えます。

    export TF_VAR_managed_grafana_workspace_id=grafana-workspace-id export TF_VAR_grafana_api_key=`aws grafana create-workspace-api-key --key-name "observability-accelerator-$(date +%s)" --key-role ADMIN --seconds-to-live 1200 --workspace-id $TF_VAR_managed_grafana_workspace_id --query key --output text`
  6. (オプション) 既存の Amazon Managed Service for Prometheus ワークスペースを使用するには、次の例のように terraform.tfvars ファイルに ID を追加します。prometheus-workspace-id は Prometheus ワークスペース ID に置き換えます。既存のワークスペースを指定しない場合は、新しい Prometheus ワークスペースが自動的に作成されます。

    # (optional) Leave it empty for a new workspace to be created managed_prometheus_workspace_id = "prometheus-workspace-id"
  7. 次のコマンドを使用してソリューションをデプロイします。

    terraform apply -var-file=terraform.tfvars

これにより、AWS アカウントに以下のリソースが作成されます。

  • 新しい Amazon Managed Service for Prometheus ワークスペース (既存のワークスペースを使用する場合を除く)。

  • Prometheus ワークスペース内のアラートマネージャーの設定、アラート、ルール。

  • Amazon Managed Grafana の現在のワークスペース内の新しいデータソースとダッシュボード。データソースは aws-observability-accelerator という名前になります。ダッシュボードは [Observability Accelerator ダッシュボード] の下に一覧表示されます。

  • 提供された Amazon EKS クラスター内にセットアップされた AWS Distro for OpenTelemetry オペレーター。Amazon Managed Service for Prometheus ワークスペースにメトリクスを送信するために使用されます。

新しいダッシュボードを表示するには、Amazon Managed Grafana ワークスペースでそのダッシュボードを開きます。Amazon Managed Grafana の使用方法の詳細については、「Amazon Managed Grafana User Guide」の「Working in your Grafana workspace」を参照してください。