

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

# リモート書き込みを使用した Amazon EC2 インスタンスからのメトリクスの取り込みの設定
<a name="AMP-onboard-ingest-metrics-remote-write-EC2"></a>

このセクションでは、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス上で、リモート書き込みを使用する Prometheus サーバーを実行する方法について説明します。Go で記述されたデモアプリケーションからメトリクスを収集し、それらを Amazon Managed Service for Prometheus ワークスペースに送信する方法について説明します。

## 前提条件
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-prereq"></a>

**重要**  
開始する前に、Prometheus v2.26 以降をインストールしておく必要があります。ユーザーが Prometheus、Amazon EC2、Amazon Managed Service for Prometheus に精通していることを前提としています。Prometheus のインストール方法については、Prometheus ウェブサイトの「[Getting started](https://prometheus.io/docs/prometheus/latest/getting_started/)」を参照してください。

Amazon EC2 または Amazon Managed Service for Prometheus に慣れていない場合は、まず以下のセクションを読むことをお勧めします。
+ [Amazon Elastic Compute Cloud とは](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html)
+ [Amazon Managed Service for Prometheus とは](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html)

## Amazon EC2 用の IAM ロールの作成
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-IAM"></a>

メトリクスをストリーミングするには、まず AWS 管理ポリシー **AmazonPrometheusRemoteWriteAccess** を使用して IAM ロールを作成する必要があります。その後、そのロールを持つインスタンスを起動し、Amazon Managed Service for Prometheus ワークスペースにメトリクスをストリーミングできます。

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. ナビゲーションペインで **[ロール]** を選択し、**[ロールを作成]** を選択します。

1. 信頼されたエンティティの種類として **[AWS のサービス]** を選択します。ユースケースとして **[EC2]** を選択します。**[次へ: アクセス許可]** を選択します。

1. 検索バーに「**AmazonPrometheusRemoteWriteAccess**」と入力します。**[ポリシー名]** で **[AmazonPrometheusRemoteWriteAccess]** を選択し、**[ポリシーをアタッチ]** を選択します。**[次へ: タグ]** を選択します。

1. (オプション) IAM ロールに IAM タグを作成します。**[次へ: 確認]** を選択します。

1. ロールの名前を入力します。**[ポリシーを作成]** を選択します。

## Amazon EC2 インスタンスの起動
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-instance"></a>

Amazon EC2 インスタンスを起動するには、「Amazon Elastic Compute Cloud Linux インスタンス用ユーザーガイド**」の「[インスタンスの起動](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#launch-instance-with-role)」の手順に従います。

## デモアプリケーションの実行
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-demo"></a>

IAM ロールを作成し、そのロールを使用して EC2 インスタンスを起動したら、デモアプリケーションを実行して動作を確認できます。

**デモアプリケーションとテストメトリクスを実行するには**

1. 以下のテンプレートを使用して、`main.go` という名前の Go ファイルを作成します。

   ```
   package main
   
   import (
       "github.com/prometheus/client_golang/prometheus/promhttp"
       "net/http"
   )
   
   func main() {
       http.Handle("/metrics", promhttp.Handler())
   
       http.ListenAndServe(":8000", nil)
   }
   ```

1. 次のコマンドを実行して、適切な依存関係をインストールします。

   ```
   sudo yum update -y
   sudo yum install -y golang
   go get github.com/prometheus/client_golang/prometheus/promhttp
   ```

1. デモアプリケーションを実行します。

   ```
   go run main.go
   ```

   デモアプリケーションはポート 8000 で実行され、公開されているすべての Prometheus メトリクスを表示します。これらのメトリクスの例を以下に示します。

   ```
   curl -s http://localhost:8000/metrics 
   ...
   process_max_fds 4096# HELP process_open_fds Number of open file descriptors.# TYPE process_open_fds gauge
   process_open_fds 10# HELP process_resident_memory_bytes Resident memory size in bytes.# TYPE process_resident_memory_bytes gauge
   process_resident_memory_bytes 1.0657792e+07# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.# TYPE process_start_time_seconds gauge
   process_start_time_seconds 1.61131955899e+09# HELP process_virtual_memory_bytes Virtual memory size in bytes.# TYPE process_virtual_memory_bytes gauge
   process_virtual_memory_bytes 7.77281536e+08# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.# TYPE process_virtual_memory_max_bytes gauge
   process_virtual_memory_max_bytes -1# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.# TYPE promhttp_metric_handler_requests_in_flight gauge
   promhttp_metric_handler_requests_in_flight 1# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.# TYPE promhttp_metric_handler_requests_total counter
   promhttp_metric_handler_requests_total{code="200"} 1
   promhttp_metric_handler_requests_total{code="500"} 0
   promhttp_metric_handler_requests_total{code="503"} 0
   ```

## Amazon Managed Service for Prometheus ワークスペースの作成
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-workspace"></a>

Amazon Managed Service for Prometheus ワークスペースを作成するには、「[Create a workspace](AMP-create-workspace.md)」の手順に従います。

## Prometheus サーバーの実行
<a name="AMP-onboard-ingest-metrics-remote-write-EC2-server"></a>

1. 以下の YAML ファイルの例をテンプレートとして使用して、`prometheus.yaml` という名前の新しいファイルを作成します。`url` については、{{my-region}} を使用中のリージョンの値に、{{my-workspace-id}} を Amazon Managed Service for Prometheus で生成されたワークスペース ID に置き換えます。`region` については、{{my-region}} を使用中のリージョンの値に置き換えます。

   **例: YAML ファイル**

   ```
   global:
     scrape_interval: 15s
     external_labels:
       monitor: 'prometheus'
   
   scrape_configs:
     - job_name: 'prometheus'
       static_configs:
         - targets: ['localhost:8000']
   
   remote_write:
     -
       url: https://aps-workspaces.{{my-region}}.amazonaws.com/workspaces/{{my-workspace-id}}/api/v1/remote_write
       queue_config:
           max_samples_per_send: 1000
           max_shards: 200
           capacity: 2500
       sigv4:
            region: {{my-region}}
   ```

1. Prometheus サーバーを実行して、デモアプリケーションのメトリクスを Amazon Managed Service for Prometheus ワークスペースに送信します。

   ```
   prometheus --config.file=prometheus.yaml
   ```

これで、Prometheus サーバーによってデモアプリケーションのメトリクスが Amazon Managed Service for Prometheus ワークスペースに送信されます。