

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

# Amazon OpenSearch Ingestion パイプラインの作成
<a name="creating-pipeline"></a>

*パイプライン*とは、Amazon OpenSearch Ingestion がデータを*ソース* (データの取得元) から*シンク* (データの送信先) へ移動するために使用するメカニズムです。OpenSearch Ingestion では、シンクは常に単一の Amazon OpenSearch Service ドメインになりますが、データのソースは Amazon S3、Fluent Bit、OpenTelemetry Collector などのクライアントである可能性があります。

詳細については、OpenSearch ドキュメントの「[パイプライン](https://opensearch.org/docs/latest/clients/data-prepper/pipelines/)」を参照してください。

**Topics**
+ [前提条件と必要な IAM ロール](#manage-pipeline-prerequisites)
+ [必要な IAM 許可](#create-pipeline-permissions)
+ [パイプラインのバージョンの指定](#pipeline-version)
+ [取り込みパスの指定](#pipeline-path)
+ [パイプラインの作成](#create-pipeline)
+ [パイプラインの作成ステータスの追跡](#get-pipeline-progress)
+ [ブループリントの使用](pipeline-blueprint.md)

## 前提条件と必要な IAM ロール
<a name="manage-pipeline-prerequisites"></a>

OpenSearch Ingestion パイプラインを作成するには、次のリソースが必要です。
+ OpenSearch Ingestion がシンクに書き込むために引き受ける*パイプラインロール*と呼ばれる IAM ロール。このロールは事前に作成することも、パイプラインの作成中に OpenSearch Ingestion で自動的に作成することもできます。
+ シンクとして機能する OpenSearch Service ドメインまたは OpenSearch Serverless コレクション。ドメインに書き込む場合、OpenSearch 1.0 以降、または Elasticsearch 7.4 以降を実行している必要があります。シンクには、IAM パイプラインロールに適切な許可を付与するアクセスポリシーが必要です。

これらのリソースの作成手順については、次の各トピックを参照してください。
+ [Amazon OpenSearch Ingestion パイプラインにドメインへのアクセスを付与する](pipeline-domain-access.md)
+ [Amazon OpenSearch Ingestion パイプラインにコレクションへのアクセス権を付与する](pipeline-collection-access.md)

**注記**  
きめ細かなアクセスコントロールを使用するドメインに書き込む場合は、追加の手順を実行する必要があります。「[パイプラインロールをマッピングする (詳細なアクセスコントロールを使用するドメインについてのみ)](pipeline-domain-access.md#pipeline-access-domain-fgac)」を参照してください。

## 必要な IAM 許可
<a name="create-pipeline-permissions"></a>

OpenSearch Ingestion は、パイプライン作成時に次の IAM アクセス許可を使用します。
+ `osis:CreatePipeline` — パイプラインを作成します。
+ `osis:ValidatePipeline` — パイプライン設定が有効かどうかを確認します。
+ `iam:CreateRole` および `iam:AttachPolicy` – OpenSearch Ingestion でパイプラインロールを自動的に作成します。
+ `iam:PassRole` — パイプラインロールを OpenSearch Ingestion に渡し、ドメインにデータを書き込めるようにします。このアクセス許可は、[パイプラインロールリソース](pipeline-domain-access.md#pipeline-access-configure)にある必要があります。また、パイプラインごとに異なるロールを使用する場合は、単に `*` を使用します。

例えば、次のポリシーは、パイプラインを作成するためのアクセス許可を付与します。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Resource":"*",
         "Action":[
            "osis:CreatePipeline",
            "osis:ListPipelineBlueprints",
            "osis:ValidatePipeline"
         ]
      },
      {
         "Resource":[
            "arn:aws:iam::{{111122223333}}:role/{{pipeline-role}}"
         ],
         "Effect":"Allow",
         "Action":[
            "iam:CreateRole",
            "iam:AttachRolePolicy",
            "iam:PassRole"
         ]
      }
   ]
}
```

------

OpenSearch Ingestion には、`osis:Ingest` というパーミッションも含まれています。これは、[署名バージョン 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) を使用して署名付きリクエストをパイプラインに送信するために必要です。詳細については、「[取り込みロールの作成](configure-client.md#configure-client-auth)」を参照してください。

**注記**  
また、アカウントで最初にパイプラインを作成するユーザーは、`iam:CreateServiceLinkedRole` アクションの許可を有している必要があります。詳細については、「[パイプラインロールリソース](pipeline-security.md#pipeline-vpc-slr)」を参照してください。

各アクセス許可の詳細については、「*サービス認証リファレンス*」の「[Actions, resources, and condition keys for OpenSearch Ingestion](https://docs.aws.amazon.com/service-authorization/latest/reference/list_opensearchingestionservice.html)」を参照してください。

## パイプラインのバージョンの指定
<a name="pipeline-version"></a>

設定エディターを使用してパイプラインを設定するときは、パイプラインを実行する [Data Prepper のメジャーバージョン](https://github.com/opensearch-project/data-prepper/releases)を指定する必要があります。バージョンを指定するには、パイプライン設定に `version` オプションを含めます。

```
{{version: "2"}}
log-pipeline:
  source:
    ...
```

**[作成]** を選択すると、OpenSearch Ingestion は指定したメジャーバージョンの利用可能な最新*マイナー*バージョンを確認し、そのバージョンでパイプラインをプロビジョニングします。例えば、`version: "2"` を指定し、Data Prepper の最新サポートバージョンが 2.1.1 の場合、OpenSearch Ingestion はパイプラインをバージョン 2.1.1 でプロビジョニングします。パイプラインで実行されているマイナーバージョンは公開されません。

Data Prepper の新しいメジャーバージョンが利用可能になったときに、パイプラインをアップグレードするには、パイプライン設定を編集して新しいバージョンを指定します。パイプラインを以前のバージョンにダウングレードすることはできません。

**注記**  
OpenSearch Ingestion は、新しいバージョンの Data Prepper がリリースされてもすぐにはサポートしません。新しいバージョンが公開されてから OpenSearch Ingestion でサポートされるまでには、多少の遅れが生じます。さらに、OpenSearch Ingestion は特定のメジャーバージョンまたはマイナーバージョンを明示的にはサポートしていない場合があります。詳細な一覧については、「[サポートされている Data Prepper のバージョン](ingestion.md#ingestion-supported-versions)」を参照してください。

ブルー/グリーンデプロイメントを開始する変更をパイプラインに加えるたびに、OpenSearch Ingestion は、現在パイプラインに設定されているメジャーバージョンの最新マイナーバージョンにアップグレードできます。詳細については、「[パイプライン更新用のブルー/グリーンデプロイ](update-pipeline.md#pipeline-bg)」を参照してください。OpenSearch Ingestion では、パイプライン設定内の `version` オプションを明示的に更新しない限り、パイプラインのメジャーバージョンを変更することはできません。

## 取り込みパスの指定
<a name="pipeline-path"></a>

[OTel trace](https://opensearch.org/docs/latest/data-prepper/pipelines/configuration/sources/otel-trace/) や [OTel metrics](https://opensearch.org/docs/latest/data-prepper/pipelines/configuration/sources/otel-metrics-source/) などのプルベースのソースの場合、OpenSearch Ingestion ではソース設定に追加の `path` オプションが必要です。パスは `/log/ingest` のような文字列で、取り込み用の URI パスを示しています。このパスが、データをパイプラインに送信する際に使用する URI を定義します。

たとえば、HTTP ソースを持つパイプラインに次のパスを指定するとします。

![サンプル値 /my/test_path を含むパスフィールド。](http://docs.aws.amazon.com/ja_jp/opensearch-service/latest/developerguide/images/ingestion-path.png)


パイプラインに[データを取り込む](configure-client.md)ときは、クライアント設定で次のエンドポイントを指定する必要があります: `https://{{pipeline-name-abc123}}.{{us-west-2}}.osis.amazonaws.com/{{my}}/{{test_path}}`

パスはスラッシュ (/) から開始し、「-」、「\_」、「.、「/」などの特殊文字や `${pipelineName}` プレースホルダーを含めることができます。`${pipelineName}` を (`/${pipelineName}/test_path` のように) 使用すると、OpenSearch Ingestion は変数を関連するサブパイプラインの名前に置き換えます。

## パイプラインの作成
<a name="create-pipeline"></a>

このセクションでは、OpenSearch Service コンソールと AWS CLIを使用して、OpenSearch Ingestion パイプラインを作成する方法を説明します。

### コンソール
<a name="create-pipeline-console"></a>

パイプラインを作成するには、[https://console.aws.amazon.com/aos/osis/home](https://console.aws.amazon.com/aos/osis/home#osis/ingestion-pipelines) で Amazon OpenSearch Service コンソールにサインインし、**パイプラインの作成**を選択します。

空のパイプラインを選択するか、設定ブループリントを選択します。ブループリントには、さまざまな一般的なユースケース用に事前設定済みのパイプラインが含まれています。詳細については、「[ブループリントの使用](pipeline-blueprint.md)」を参照してください。

**[ブループリントを選択]** を選択します。

#### ソースを設定する
<a name="create-pipeline-console-source"></a>

1. 空のパイプラインから開始する場合は、ドロップダウンメニューからソースを選択します。使用可能なソースには、他のソース AWS のサービス、OpenTelemetry、または HTTP などがあります。詳細については、「[Amazon OpenSearch Ingestion パイプラインを他のサービスやアプリケーションと統合する](configure-client.md)」を参照してください。

1. 選択したソースに応じて、ソースの追加設定を行います。例えば、Amazon S3 をソースとして使用するには、パイプラインがメッセージを受信する Amazon SQS キューの URL を指定する必要があります。サポートされているソースプラグインのリストとドキュメントへのリンクについては、「[Amazon OpenSearch Ingestion パイプラインでサポートされているプラグインとオプション](pipeline-config-reference.md)」を参照してください。

1. 一部のソースでは、**[ソースネットワークオプション]** を指定する必要があります。**[VPC アクセス]** または **[パブリックアクセス]** を選択します。[**パブリックアクセス**] を選択した場合は、次のステップに進みます。**[VPC アクセス]** を選択した場合は、次の設定を行います。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/opensearch-service/latest/developerguide/creating-pipeline.html)

   詳細については、「[Amazon OpenSearch Ingestion パイプラインの VPC アクセスの設定](pipeline-security.md)」を参照してください。

1. **[Next]** (次へ) を選択します。

#### プロセッサを設定する
<a name="create-pipeline-console-processor"></a>

パイプラインに 1 つ以上のプロセッサを追加します。プロセッサは、ドメインまたはコレクションシンクにレコードを発行する前にイベントをフィルタリング、変換、強化できるサブパイプライン内のコンポーネントです。サポートされているプロセッサのリストとドキュメントへのリンクについては、「[Amazon OpenSearch Ingestion パイプラインでサポートされているプラグインとオプション](pipeline-config-reference.md)」を参照してください。

**[アクション]** を選択し、以下を追加できます。
+ **[条件付きルーティング]** – 特定の条件に基づいてイベントを異なるシンクにルーティングします。詳細については、「[Conditional routing](https://opensearch.org/docs/latest/data-prepper/pipelines/pipelines/#conditional-routing)」を参照してください。
+ **[サブパイプライン]** – 各サブパイプラインは、1 個のソース、0 個以上のプロセッサ、1 個のシンクの組み合わせです。外部ソースを持つことができるサブパイプラインは 1 つだけです。他のすべては、パイプライン設定全体で他のサブパイプラインであるソースが必要です。1 個のパイプライン設定には、1～10 個のサブパイプラインを含めることができます。

[**次へ**] を選択します。

#### シンクを設定する
<a name="create-pipeline-console-sink"></a>

パイプラインがレコードを発行する送信先を選択します。すべてのサブパイプラインには、少なくとも 1 つのシンクが含まれている必要があります。パイプラインには最大 10 個のシンクを追加できます。

OpenSearch については、以下のフィールドを設定します。


| 設定 | 説明 | 
| --- | --- | 
| [ネットワークポリシー名](サーバーレスシンクのみ) | OpenSearch Serverless コレクションを選択した場合は、**[ネットワークポリシー名]** を入力します。OpenSearch Ingestion は、ポリシーが存在しない場合は作成するか、存在する場合はパイプラインとコレクションを接続する VPC エンドポイントへのアクセスを許可するルールでポリシーを更新します。詳細については、「[Amazon OpenSearch Ingestion パイプラインにコレクションへのアクセス権を付与する](pipeline-collection-access.md)」を参照してください。 | 
| インデックス名 | パイプラインのデータ送信先となるインデックスの名前。OpenSearch Ingestion は、このインデックスがまだ存在しない場合に作成します。 | 
| [インデックスマッピングオプション] | パイプラインがドキュメントとそのフィールドを保存して OpenSearch シンクにインデックスを作成する方法を選択します。**[動的マッピング]** を選択すると、OpenSearch はドキュメントのインデックス作成時にフィールドを自動的に追加します。**[マッピングをカスタマイズ]** を選択した場合は、インデックスマッピングテンプレートを入力します。詳細については、「[Index templates](https://opensearch.org/docs/latest/im-plugin/index-templates/)」を参照してください。 | 
| [DLQ を有効にする] | パイプラインの Amazon S3 デッドレターキュー (DLQ) を設定します。詳細については、「[デッドレターキュー](osis-features-overview.md#osis-features-dlq)」を参照してください。 | 
| 追加設定 | OpenSearch シンクの詳細オプションを設定します。詳細については、Data Prepper ドキュメントの「[Configuration options](https://opensearch.org/docs/latest/data-prepper/pipelines/configuration/sinks/opensearch/#configuration-options)」を参照してください。 | 

Amazon S3 シンクを追加するには、**[シンクを追加]** と **[Amazon S3]** を選択します。詳細については、「[送信先としての Amazon S3](configure-client-s3.md#s3-destination)」を参照してください。

**[Next]** (次へ) を選択します。

#### パイプラインを設定する
<a name="create-console-pipeline"></a>

次の追加パイプライン設定を設定します。


| 設定 | 説明 | 
| --- | --- | 
| パイプライン名 | パイプラインに独自の名前を入力します。 | 
| [永続バッファ] | 永続的バッファリングは、複数の Availability Zones にまたがってディスクベースのバッファにデータを保存します。詳細については、「[永続的バッファリング](osis-features-overview.md#persistent-buffering)」を参照してください。<br />永続的バッファリングを有効にする場合は、バッファデータを暗号化するための AWS Key Management Service キーを選択します。 | 
| [パイプライン容量] | Ingestion OpenSearch Compute Unit (OCU) でパイプラインの最小キャパシティと最大キャパシティ。詳細については、「[Amazon OpenSearch Ingestion でのパイプラインのスケーリング](ingestion-scaling.md)」を参照してください。 | 
| パイプラインロール | パイプラインがシンクに書き込み、プルベースのソースから読み取るために必要なアクセス許可を提供する IAM ロール。ロールは自分で作成することも、選択したユースケースに基づいて OpenSearch Ingestion で作成することもできます。<br />詳細については、「[Amazon OpenSearch Ingestion のロールとユーザーの設定](pipeline-security-overview.md)」を参照してください。 | 
| タグ | パイプラインに 1 つ以上のタグを追加します。詳細については、「[Amazon OpenSearch Ingestion パイプラインのタグ付け](tag-pipeline.md)」を参照してください。 | 
| [ログ発行オプション] | Amazon CloudWatch Logs へのパイプラインログの発行を有効にします。パイプラインの問題をより簡単にトラブルシューティングできるように、ログの発行を有効にすることをお勧めします。詳細については、「[パイプラインのログのモニタリング](monitoring-pipeline-logs.md)」を参照してください。 | 

**[次へ]** を選択し、パイプライン設定を確認し、**[パイプラインを作成]** をクリックします。

OpenSearch Ingestion は、非同期プロセスを実行してパイプラインを構築します。パイプラインのステータスが `Active` になると、データの取り込みを開始できます。

### AWS CLI
<a name="create-pipeline-cli"></a>

[create-pipeline](https://docs.aws.amazon.com/cli/latest/reference/osis/create-pipeline.html) コマンドは、パイプライン設定を文字列として、または .yaml もしくは、.json ファイル内で受け入れます。設定を文字列として入力する場合、改行するたびに `\n` でエスケープする必要があります。例: `"log-pipeline:\n source:\n http:\n processor:\n - grok:\n ...`

次のサンプルコマンドは、以下にある設定でパイプラインを作成します。
+ 最低 4 つの取り込み OCU、最大 10 個の取り込み OCU
+ 仮想プライベートクラウド (VPC) 内でプロビジョニング
+ ログ発行の有効化

```
aws osis create-pipeline \
  --pipeline-name {{my-pipeline}} \
  --min-units 4 \
  --max-units 10 \
  --log-publishing-options  IsLoggingEnabled=true,CloudWatchLogDestination={LogGroup="{{MyLogGroup}}"} \
  --vpc-options SecurityGroupIds={{{sg-12345678}},{{sg-9012345}}},SubnetIds={{subnet-1212234567834asdf}} \
  --pipeline-configuration-body "file://{{pipeline-config.yaml}}" \
  --pipeline-role-arn  arn:aws:iam::{{1234456789012}}:role/{{pipeline-role}}
```

OpenSearch Ingestion は、非同期プロセスを実行してパイプラインを構築します。パイプラインのステータスが `Active` になると、データの取り込みを開始できます。パイプラインのステータスを確認するには、[GetPipeline](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_osis_GetPipeline.html) コマンドを使用します。

### OpenSearch Ingestion API
<a name="create-pipeline-api"></a>

OpenSearch Ingestion API を使用して OpenSearch Ingestion パイプラインを作成するには、[CreatePipeline](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_osis_CreatePipeline.html) オペレーションを呼び出します。

パイプラインが正常に作成されたら、クライアントを設定し、OpenSearch Service ドメインへのデータの取り込みを開始できます。詳細については、「[Amazon OpenSearch Ingestion パイプラインを他のサービスやアプリケーションと統合する](configure-client.md)」を参照してください。

## パイプラインの作成ステータスの追跡
<a name="get-pipeline-progress"></a>

OpenSearch Ingestion がパイプラインをプロビジョニングしてデータを取り込む準備をしているときに、パイプラインのステータスを追跡できます。

### コンソール
<a name="get-pipeline-progress-console"></a>

パイプラインを最初に作成した後、OpenSearch Ingestion がデータを取り込むための準備をするときに、パイプラインは複数の段階を経ます。パイプライン作成のさまざまな段階を確認するには、パイプライン名をクリックして**[パイプラインの設定]** ページを表示します。**[ステータス]** で、**[詳細を表示]** をクリックします。

パイプラインは、データの取り込みが可能になるまでに次の段階を経ます。
+ **検証** — パイプライン設定を検証する。この段階が完了すると、すべての検証が成功したことになります。
+ **環境の作成** — リソースの準備とプロビジョニングを行います。この段階が完了すると、新しいパイプライン環境が作成されます。
+ **パイプラインのデプロイ** — パイプラインをデプロイします。この段階が完了すると、パイプラインは正常にデプロイされます。
+ **パイプラインのヘルスチェック** — パイプラインのヘルス状態をチェックします。この段階が完了すると、すべてのヘルスチェックを通過したことになります。
+ **トラフィックの有効化** — パイプラインがデータを取り込むことができるようにします。この段階が完了すると、パイプラインへのデータの取り込みを開始できます。

### CLI
<a name="get-pipeline-progress-cli"></a>

[get-pipeline-change-progress](https://docs.aws.amazon.com/cli/latest/reference/osis/get-pipeline-change-progress.html) コマンドを使用して、パイプラインのステータスを確認します。次の AWS CLI リクエストは、 という名前のパイプラインのステータスをチェックします`my-pipeline`。

```
aws osis get-pipeline-change-progress \
    --pipeline-name {{my-pipeline}}
```

**レスポンス**:

```
{
   "ChangeProgressStatuses": {
      "ChangeProgressStages": [ 
         { 
            "Description": "Validating pipeline configuration",
            "LastUpdated": 1.671055851E9,
            "Name": "VALIDATION",
            "Status": "PENDING"
         }
      ],
      "StartTime": 1.671055851E9,
      "Status": "PROCESSING",
      "TotalNumberOfStages": 5
   }
}
```

### OpenSearch Ingestion API
<a name="get-pipeline-progress-api"></a>

OpenSearch Ingestion API を使用してパイプライン作成のステータスを追跡するには、[GetPipelineChangeProgress](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_osis_GetPipelineChangeProgress.html) オペレーションを呼び出します。