Amazon Managed Service for Prometheus での分割コスト配分データの使用 - AWS Data Exports

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

Amazon Managed Service for Prometheus での分割コスト配分データの使用

Amazon EKS のコストデータを分割するには、メモリや CPU 使用率などのメトリクスをクラスターから収集して保存する必要があります。Amazon Managed Service for Prometheus はこの目的で使用できます。

コスト配分データの分割をオプトインし、Amazon Managed Service for Prometheus ワークスペースが 2 つの必須メトリクス (container_cpu_usage_seconds_total および container_memory_working_set_bytes) の受信を開始すると、分割コスト配分データはメトリクスを認識し、自動的に使用します。

注記

2 つの必須メトリクス (container_cpu_usage_seconds_totalcontainer_memory_working_set_bytes) は、デフォルトの Prometheus スクレイプ設定と、 AWS マネージドコレクターで提供されるデフォルト設定にあります。ただし、これらの設定をカスタマイズする場合は、、、container_cpu_usage_seconds_totalおよび container_memory_working_set_bytesメトリクスから次のラベルを再ラベルname付け、変更namespace、または削除しないでくださいpod。これらのラベルをラベル変更、変更、または削除すると、メトリクスの取り込みに影響する可能性があります。

Amazon Managed Service for Prometheus を使用して、1 つの リージョン内の 1 つの使用状況アカウントから EKS メトリクスを収集できます。Amazon Managed Service for Prometheus ワークスペースは、そのアカウントとリージョンに存在する必要があります。コストをモニタリングする使用状況アカウントとリージョンごとに、Amazon Managed Service for Prometheus インスタンスが 1 つ必要です。Amazon Managed Service for Prometheus ワークスペース内の複数のクラスターのメトリクスは、同じ使用アカウントとリージョンにある限り収集できます。

以下のセクションでは、EKS クラスターから Amazon Managed Service for Prometheus ワークスペースに正しいメトリクスを送信する方法について説明します。

前提条件

分割コスト配分データで Amazon Managed Service for Prometheus を使用するための前提条件として、以下を実行します。

  • AWS 請求情報とコスト管理コンソールで分割コスト配分データを有効にする必要があります。詳細については、「分割コスト配分データの有効化」を参照してください。コスト配分データを分割するようにオプトインすると、各使用アカウントにサービスにリンクされたロールが作成され、そのアカウントの Amazon EKS クラスターメトリクスについて Amazon Managed Service for Prometheus にクエリが実行されます。詳細については、「分割コスト配分データのサービスにリンクされたロール」を参照してください。

  • 分割コスト配分データを追跡する EKS クラスターが必要です。これは既存のクラスターでも、新しいクラスターを作成することもできます。詳細については、「Amazon EKS ユーザーガイド」の「Amazon EKS クラスターの作成」を参照してください。

    注記

    後のステップで使用するにはEKS cluster ARN、、security group IDs、および少なくとも 2 つ subnet IDs (異なるアベイラビリティーゾーン内) が必要です。

    (オプション) EKS クラスターの認証モードを APIまたは に設定しますAPI_AND_CONFIG_MAP

  • EKS クラスターと同じアカウントとリージョンに Amazon Managed Service for Prometheus インスタンスが必要です。まだ作成していない場合は、作成できます。Amazon Managed Service for Prometheus インスタンスの作成の詳細については、「Amazon Managed Service for Prometheus ユーザーガイド」の「ワークスペースの作成」を参照してください。

    注記

    後の手順で使用するためにAmazon Managed Service for Prometheus workspace ARN、 が必要になります。

Amazon Managed Service for Prometheus への EKS メトリクスの転送

EKS クラスターと Amazon Managed Service for Prometheus インスタンスを作成したら、メトリクスをクラスターからインスタンスに転送できます。メトリクスは 2 つの方法で送信できます。

オプション 1: AWS マネージドコレクターの使用

AWS マネージドコレクター (スクレイパー ) を使用することは、EKS クラスターから Amazon Managed Service for Prometheus インスタンスにメトリクスを送信する最も簡単な方法です。次の手順では、 AWS マネージドコレクターを作成する手順を説明します。詳細については、「Amazon Managed Service for Prometheus ユーザーガイド」の「 AWS マネージドコレクター」を参照してください。

注記

AWS マネージドコレクターの最小スクレイプ間隔は 30 秒です。有効期間の短いポッドがある場合は、スクレイパー間隔を 15 秒に設定することをお勧めします。15 秒のスクレイパー間隔を使用するには、オプション 2 を使用して独自の Prometheus エージェント を作成します

AWS マネージドコレクターを作成するには、次の 3 つのステップがあります。

  1. スクレイパー設定を作成します。

  2. スクレイパーを作成します。

  3. スクレイパーがメトリクスにアクセスできるように EKS クラスターを設定します。

ステップ 1: スクレイパー設定を作成する

スクレイパーを作成するには、スクレイパー設定が必要です。デフォルト設定を使用するか、独自の設定を作成できます。スクレイパー設定を取得する 3 つの方法は次のとおりです。

  • AWS CLI を使用してデフォルト設定を取得するには、以下を呼び出します。

    aws amp get-default-scraper-configuration
  • 独自の設定を作成します。詳細については、「Amazon Managed Service for Prometheus ユーザーガイド」の「スクレイパー設定手順」を参照してください。

  • 「Amazon Managed Service for Prometheus ユーザーガイド」の同じ Scraper 設定手順に記載されているサンプル設定をコピーします。

スクレイパー設定を編集して、スクレイプ間隔を変更したり、スクレイプされるメトリクスをフィルタリングしたりできます。

分割コスト配分データに必要な 2 つの のみを含めるようにスクレイピングされるメトリクスをフィルタリングするには、次のスクレイパー設定を使用します。

scrape_configs: - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token job_name: kubernetes-nodes-cadvisor scrape_interval: 30s scrape_timeout: 10s kubernetes_sd_configs: - role: node relabel_configs: - regex: (.+) replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor source_labels: - __meta_kubernetes_node_name target_label: __metrics_path__ - replacement: kubernetes.default.svc:443 target_label: __address__ metric_relabel_configs: - source_labels: [__name__] regex: 'container_cpu_usage_seconds_total|container_memory_working_set_bytes' action: keep

スクレイパー設定が完了したら、ステップ 2 で使用するために base64 エンコードする必要があります。設定はテキスト YAML ファイルです。ファイルをエンコードするには、https://www.base64encode.org/ などのウェブサイトを使用します。

ステップ 2: スクレイパーを作成する

設定ファイルを作成したら、スクレイパーを作成する必要があります。前提条件セクションで説明されている変数に基づいて、次の AWS CLI コマンドを使用してスクレイパーを作成します。<EKS-CLUSTER-ARN>、<SG-SECURITY-GROUP-ID>、および <SUBNET-ID> の各フィールドに EKS クラスターの情報を使用し、<BASE64-CONFIGURATION-BLOB> を前のステップで作成したスクレイパー設定に置き換え、<AMP_WORKSPACE_ARN> を Amazon Managed Service for Prometheus ワークスペース ARN に置き換える必要があります。

aws amp create-scraper \ --source eksConfiguration="{clusterArn=<EKS-CLUSTER-ARN>,securityGroupIds=[<SG-SECURITY-GROUP-ID>],subnetIds=[<SUBNET-ID>]}" \ --scrape-configuration configurationBlob=<BASE64-CONFIGURATION-BLOB> \ --destination ampConfiguration={workspaceArn="<AMP_WORKSPACE_ARN>"}

ステップ 3 で使用するために返scraperIdされた を書き留めます。

ステップ 3: スクレイパーがメトリクスにアクセスできるように EKS クラスターを設定する

EKS クラスターの認証モードが APIまたは のいずれかに設定されている場合API_AND_CONFIG_MAP、スクレイパーは自動的に正しいクラスター内アクセスポリシーを持ち、スクレイパーはクラスターにアクセスできます。これ以上の設定は必要なく、メトリクスは Amazon Managed Service for Prometheus に流れているはずです。

EKS クラスターの認証モードが APIまたは に設定されていない場合はAPI_AND_CONFIG_MAP、スクレイパーが および を介して ClusterRoleメトリクスにアクセスできるようにクラスターを手動で設定する必要があります ClusterRoleBinding。これらのアクセス許可を有効にする方法については、「Amazon Managed Service for Prometheus ユーザーガイド」の「スクレイパーアクセス用に EKS クラスターを手動で設定する」を参照してください。

オプション 2: 独自の Prometheus エージェントを作成する

AWS マネージドコレクターを使用できない場合、または独自の Prometheus サーバーがすでにある場合は、独自の Prometheus インスタンスをエージェントとして使用して EKS クラスターからメトリクスをスクレイプし、Amazon Managed Service for Prometheus に送信できます。

独自の Prometheus インスタンスをエージェントとして使用する方法の詳細については、Amazon Managed Service for Prometheus ユーザーガイドの「Prometheus インスタンスをコレクターとして使用する」を参照してください。

以下は、Prometheus サーバーのスクレイプ間隔と、分割コスト配分データに必要なコンテナメトリクスを含む Prometheus スクレイプ設定の例です。有効期間の短いポッドがある場合は、デフォルトの Prometheus サーバースクレイプ間隔を 30 秒から 15 秒に減らすことをお勧めします。これにより、Prometheus サーバーのメモリ使用率が高くなる可能性があることに注意してください。

scrape_configs: - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token job_name: kubernetes-nodes-cadvisor scrape_interval: 30s scrape_timeout: 10s kubernetes_sd_configs: - role: node relabel_configs: - regex: (.+) replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor source_labels: - __meta_kubernetes_node_name target_label: __metrics_path__ - replacement: kubernetes.default.svc:443 target_label: __address__ metric_relabel_configs: - source_labels: [__name__] regex: 'container_cpu_usage_seconds_total|container_memory_working_set_bytes' action: keep

「Amazon Managed Service for Prometheus ユーザーガイド」の「Helm を使用した新しい Prometheus サーバーからの取り込みの設定」に従った場合は、スクレイプ設定を更新できます。

スクレイプ設定を更新するには
  1. ガイドmy_prometheus_values_yamlから を編集し、サンプルスクレイプ設定を serverブロックに含めます。

  2. Amazon Managed Service for Prometheus ユーザーガイド prometheus-namespaceprometheus-chart-nameおよび を使用して、次のコマンドを実行します。

helm upgrade prometheus-chart-name prometheus-community/prometheus -n prometheus-namespace -f my_prometheus_values_yaml

グローバル以外の scrape_interval の詳細scrape_intervalまたは使用方法については、「Prometheus スクレイプ設定」を参照してください。

または、Prometheus レシーバー、Prometheus Remote Write Exporter、および AWS Sigv4 Authentication Extension を持つ OpenTelemetry コレクター用の AWS Distro を使用して、Amazon Managed Service for Prometheus へのリモート書き込みアクセスを実現することもできます。

注記

AWS マネージドコレクターとは異なり、Prometheus エージェントを設定したら、エージェントを最新の状態に保ち、メトリクスを収集するために実行する必要があります。

Amazon Managed Service for Prometheus のコストの見積もり

AWS 料金計算ツールを使用して、分割コスト配分データに Amazon Managed Service for Prometheus を使用するコストを見積もることができます。

見積り用に Amazon Managed Service for Prometheus を設定するには
  1. https://calculator.aws/#/ で AWS 料金計算ツールを開きます。

  2. [Create estimate (見積りの作成)] を選択します。

  3. サービスの追加ページで、検索フィールドに Amazon Managed Service for Prometheus と入力し、「 の設定」を選択します。

  4. [Description] (説明) の欄に見積りの説明を入力します。

  5. [Region] (リージョン) を選択します。

  6. インフラストラクチャの詳細を使用してコストを計算するを選択します。このオプションを使用すると、現在または提案されたインフラストラクチャ設定に基づいて、取り込み、ストレージ、クエリのサンプルコストを見積もることができます。

  7. EC2 インスタンス数 には、一括請求ファミリー全体 (すべてのアカウントとリージョンを含む) のすべてのクラスターの EC2 インスタンスの合計数を入力します。を使用する場合は AWS Fargate、EC2 インスタンス数のプロキシとして Fargate タスクの数を使用します。

  8. 分割コスト配分データには、 container_cpu_usage_seconds_totalと の 2 つのメトリクスが必要ですcontainer_memory_working_set_bytesEC2 インスタンスあたりの Prometheus メトリクス には、2 と入力します。

  9. 分割コスト配分データは、スクレイプ間隔が 15 秒であることを示唆しています。メトリクス収集間隔 (秒単位) には、15 と入力します。別の間隔 (30 秒など) を使用した場合は、設定した間隔に変更します。

  10. 分割コスト配分データは、他のパラメータに特定の要件を課さないため、ビジネス要件に従って残りの入力パラメータに適切な値を入力します。

  11. サービスの保存と追加 を選択します