翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon OpenSearch Ingestion パイプラインの作成
パイプラインとは、Amazon OpenSearch Ingestion がデータをソース (データの取得元) からシンク (データの移動先) に移動するために使用するメカニズムです。OpenSearch Ingestion では、シンクは常に単一の Amazon OpenSearch Service ドメインになりますが、データのソースは Amazon S3、Fluent Bit、OpenTelemetry Collector などのクライアントである可能性があります。
詳細については、OpenSearch ドキュメントの「パイプライン
前提条件と必要な IAM ロール
OpenSearch Ingestion パイプラインを作成するには、次のリソースが必要です。
-
OpenSearch Ingestion がシンクに書き込むために引き受ける IAM ロール。このロールの ARN をパイプライン設定に含めます。
-
シンクとして機能する OpenSearch Service ドメインまたは OpenSearch Serverless コレクション。ドメインに書き込む場合、OpenSearch 1.0 以降、または Elasticsearch 7.4 以降を実行している必要があります。シンクには、IAM パイプラインロールに適切な許可を付与するアクセスポリシーが必要です。
これらのリソースの作成手順については、次の各トピックを参照してください。
注記
きめ細かなアクセスコントロールを使用するドメインに書き込む場合は、追加の手順を実行する必要があります。「ステップ 3: パイプラインロールをマッピングする (きめ細かいアクセスコントロールを使用するドメインについてのみ)」を参照してください。
必要な IAM 許可
OpenSearch Ingestion は、パイプライン作成時に次の IAM アクセス許可を使用します。
-
osis:CreatePipeline
— パイプラインを作成します。 -
osis:ValidatePipeline
— パイプライン設定が有効かどうかを確認します。 -
iam:PassRole
— パイプラインロールを OpenSearch Ingestion に渡し、ドメインにデータを書き込めるようにします。このアクセス許可は、パイプラインロールリソース (パイプライン設定のsts_role_arn
オプションで指定する ARN) にある必要があります。また、パイプラインごとに異なるロールを使用する場合は、*
を使用します。
例えば、次のポリシーは、パイプラインを作成するためのアクセス許可を付与します。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Resource":"*", "Action":[ "osis:CreatePipeline", "osis:ListPipelineBlueprints", "osis:ValidatePipeline" ] }, { "Resource":[ "arn:aws:iam::
your-account-id
:role/pipeline-role
" ], "Effect":"Allow", "Action":[ "iam:PassRole" ] } ] }
OpenSearch Ingestion には、osis:Ingest
というパーミッションも含まれています。これは、署名バージョン 4 を使用して署名付きリクエストをパイプラインに送信するために必要です。詳細については、「取り込みロールの作成」を参照してください。
注記
また、アカウントで最初にパイプラインを作成するユーザーは、iam:CreateServiceLinkedRole
アクションの許可を有している必要があります。詳細については、「パイプラインロールリソース」を参照してください。
各アクセス許可の詳細については、「サービス認証リファレンス」の「Actions, resources, and condition keys for OpenSearch Ingestion」を参照してください。
パイプラインのバージョンの指定
パイプラインを設定するときは、パイプラインを実行する Data Prepper のメジャーバージョン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 のバージョン」を参照してください。
パイプラインに変更を加えてブルー/グリーンデプロイを開始するたびに、OpenSearch Ingestion は、パイプラインの YAML ファイルで現在設定されているメジャーバージョンの最新マイナーバージョンにアップグレードできます。詳細については、「パイプライン更新用のブルー/グリーンデプロイ」を参照してください。OpenSearch Ingestion では、パイプライン設定内の version
オプションを明示的に更新しない限り、パイプラインのメジャーバージョンを変更することはできません。
取り込みパスの指定
OTel tracepath
オプションが必要です。パスは /log/ingest
のような文字列で、取り込み用の URI パスを示しています。このパスが、データをパイプラインに送信する際に使用する URI を定義します。
例えば、logs
という名前の取り込みパイプラインに次のエントリサブパイプラインを指定したとします。
entry-pipeline: source: http: path: "/
my
/test_path
"
パイプラインにデータを取り込むときは、クライアント設定で次のエンドポイントを指定する必要があります: https://logs-
abcdefgh
.us-west-2.osis.amazonaws.com/my
/test_path
パスはスラッシュ (/) から開始し、「-」、「_」、「.、「/」などの特殊文字や ${pipelineName}
プレースホルダーを含めることができます。${pipelineName}
(path:
"/${pipelineName}/test_path"
のように) を使用すると、変数は関連するサブパイプラインの名前に置き換えられます。この例では、https://logs.us-west-2.osis.amazonaws.com/
のようになります。entry-pipeline
/test_path
パイプラインの作成
このセクションでは、OpenSearch Service コンソールと AWS CLI を使用して、OpenSearch Ingestion パイプラインを作成する方法を説明します。
パイプラインを作成するには
-
Amazon OpenSearch Service コンソール (https://console.aws.amazon.com/aos/home
) にサインインします。 -
左側のナビゲーションペインで [パイプライン] をクリックし、次に [パイプラインを作成] をクリックします。
-
空のパイプラインを選択するか、設定ブループリントを選択します。ブループリントには、さまざまな一般的なユースケース用に事前設定済みの YAML および JSON 設定ファイルが含まれています。詳細については、「ブループリントを使用したパイプラインの作成」を参照してください。
[ブループリントを選択] を選択します。
-
パイプラインの名前を入力します。
-
(オプション) [永続的バッファリングを有効にする] を選択します。永続的バッファリングは、複数の AZ にまたがってディスクベースのバッファにデータを保存します。詳細については、「永続的バッファリング」を参照してください。永続的バッファリングを有効にする場合は、バッファデータを暗号化するための AWS Key Management Service キーを選択します。
-
Ingestion OpenSearch Compute Unit (OCU) でパイプラインの最小キャパシティと最大キャパシティを設定します。詳細については、「パイプラインのスケーリング」を参照してください。
-
[パイプライン設定] で、パイプライン設定を YAML 形式で入力します。ブループリントを使用している場合、設定は既に事前入力されていますが、いくつかの変更を加える必要があります。
1 個のパイプライン設定ファイルには、1~10 個のサブパイプラインを含めることができます。各サブパイプラインは、1 個のソース、0 個以上のプロセッサ、1 個のシンクの組み合わせです。OpenSearch Ingestion の場合、シンクは常に OpenSearch Service ドメインでなければなりません。サポートされているオプションのリストについては、「Amazon OpenSearch Ingestion パイプラインでサポートされているプラグインとオプション」を参照してください。
注記
各サブパイプラインには
sts_role_arn
オプションを含める必要があります。パイプラインは、sts_role_arn
で定義されたロールを前提として、ドメインへのリクエストに署名します。詳細については、「Amazon OpenSearch Ingestion パイプラインにドメインへのアクセスを付与する」を参照してください。以下のサンプル設定ファイルでは、HTTP ソースと Grok プラグインを使用して非構造化ログデータを処理し、OpenSearch Service ドメインに送信します。サブパイプラインには、
log-pipeline
という名前が付けられています。version: "2" log-pipeline: source: http: path: "/log/ingest" processor: - grok: match: log: [ '%{
COMMONAPACHELOG
}' ] - date: from_time_received: true destination: "@timestamp" sink: - opensearch: hosts: [ "https://search-my-domain
.us-east-1.es.amazonaws.com" ] index: "apache_logs" aws: sts_role_arn: "arn:aws:iam::123456789012
:role/{pipeline-role}
" region: "us-east-1
"独自のパイプライン設定を作成することもできますが、[ファイルをアップロード] をクリックして、セルフマネージド型の Data Prepper パイプラインの既存設定をインポートすることもできます。または、設定のブループリントを使用することもできます。
-
パイプラインを設定したら、[パイプラインを検証] をクリックして設定が正しいことを確認します。検証に失敗した場合、エラーを修正して検証を再実行します。
-
[ネットワーク設定] セクションで、[VPC アクセス] あるいは [パブリックアクセス] のどちらかを選択します。[パブリックアクセス] を選択した場合は、次のステップに進みます。[VPC アクセス] を選択した場合は、次の設定を行います。
設定 説明 [エンドポイントの管理] VPC エンドポイントを自分で作成するか、OpenSearch Ingestion で作成するかを選択します。エンドポイント管理のデフォルトは、OpenSearch Ingestion によって管理されるエンドポイントです。
VPC 使用する仮想プライベートクラウド (VPC) の ID を選択します。VPC とパイプラインは同じ AWS リージョン の中になければなりません。
サブネット 1 つ以上のサブネットを選択します。OpenSearch Service は VPC エンドポイントと Elastic Network Interface (ENI) をサブネットに配置します。
セキュリティグループ 必要なアプリケーションが、パイプラインによって公開されているポート (80 または 443) とプロトコル (HTTP または HTTP) で、OpenSearch Ingestion パイプラインに到達できるよう、1 つ以上の VPC セキュリティグループを選択します。
[VPC アタッチメントオプション] ソースがセルフマネージドエンドポイントの場合は、パイプラインを VPC にアタッチします。提供されているデフォルトの CIDR オプションのいずれかを選択するか、カスタム CIDR を使用します。
詳細については、「Amazon OpenSearch Ingestion パイプラインの VPC アクセスの設定」を参照してください。
-
(オプション) [タグ] で、1 つ以上のタグ (キーと値のペア) をパイプラインに追加します。詳細については、「Amazon OpenSearch Ingestion パイプラインのタグ付け」を参照してください。
-
(オプション) [ログ発行オプション] で、Amazon CloudWatch Logs へのパイプラインログの発行を有効にします。パイプラインの問題をより簡単にトラブルシューティングできるように、ログの発行を有効にすることをお勧めします。詳細については、「パイプラインのログのモニタリング」を参照してください。
-
[Next] を選択します。
-
パイプライン設定を確認したら、[作成] をクリックします。
OpenSearch Ingestion は、非同期プロセスを実行してパイプラインを構築します。パイプラインのステータスが Active
になると、データの取り込みを開始できます。
create-pipeline コマンドは、パイプライン設定を文字列として、またはは .yaml ファイル内で受け入れます。設定を文字列として入力する場合、改行するたびに \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
"
OpenSearch Ingestion は、非同期プロセスを実行してパイプラインを構築します。パイプラインのステータスが Active
になると、データの取り込みを開始できます。パイプラインのステータスを確認するには、GetPipeline コマンドを使用します。
OpenSearch Ingestion API を使用して OpenSearch Ingestion パイプラインを作成するには、CreatePipeline オペレーションを呼び出します。
パイプラインが正常に作成されたら、クライアントを設定し、OpenSearch Service ドメインへのデータの取り込みを開始できます。詳細については、「Amazon OpenSearch Ingestion パイプラインを他のサービスやアプリケーションと統合する」を参照してください。
パイプラインの作成ステータスの追跡
OpenSearch Ingestion がパイプラインをプロビジョニングしてデータを取り込む準備をしているときに、パイプラインのステータスを追跡できます。
パイプラインを最初に作成した後、OpenSearch Ingestion がデータを取り込むための準備をするときに、パイプラインは複数の段階を経ます。パイプライン作成のさまざまな段階を確認するには、パイプライン名をクリックして[パイプラインの設定] ページを表示します。[ステータス] で、[詳細を表示] をクリックします。
パイプラインは、データの取り込みが可能になるまでに次の段階を経ます。
-
検証 — パイプライン設定を検証する。この段階が完了すると、すべての検証が成功したことになります。
-
環境の作成 — リソースの準備とプロビジョニングを行います。この段階が完了すると、新しいパイプライン環境が作成されます。
-
パイプラインのデプロイ — パイプラインをデプロイします。この段階が完了すると、パイプラインは正常にデプロイされます。
-
パイプラインのヘルスチェック — パイプラインのヘルス状態をチェックします。この段階が完了すると、すべてのヘルスチェックを通過したことになります。
-
トラフィックの有効化 — パイプラインがデータを取り込むことができるようにします。この段階が完了すると、パイプラインへのデータの取り込みを開始できます。
get-pipeline-change-progress コマンドを使用して、パイプラインのステータスを確認します。次の 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 を使用してパイプライン作成のステータスを追跡するには、GetPipelineChangeProgress オペレーションを呼び出します。