

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

# Amazon CloudSearch ドメインへのデータのアップロード
<a name="uploading-data"></a>

**重要**  
Amazon CloudSearch ドメインにデータをアップロードする前に、次のガイドラインに従ってください。  
ドキュメントをアップロードする前にグループ化して*バッチ*します。1 つのドキュメントのみで構成されるバッチを連続してアップロードすると、Amazon CloudSearch が更新を処理できる速度に大きな悪影響が出ます。代わりに、できるだけ制限に近いバッチを作成し、アップロードする頻度を少なくしてください。最大バッチサイズとアップロード頻度の詳細については、「[Amazon CloudSearch の制限を理解する](limits.md)」を参照してください。
ドメインのドキュメントエンドポイントと検索エンドポイントは、ドメインが存在している間変わりません。すべてのアップロードリクエストや検索リクエストの前にエンドポイントを取得するのではなく、エンドポイントをキャッシュに保存してください。各リクエストの前に `aws cloudsearch describe-domains` または `DescribeDomains` を呼び出すことによって Amazon CloudSearch 設定サービスにクエリを実行すると、リクエストが調整される可能性があります。

Amazon CloudSearch ドメインにアップロードするデータを記述するためのドキュメントバッチを作成します。ドキュメントバッチは追加および削除操作のコレクションであり、ドメインで追加、更新、削除するドキュメントを表します。バッチは JSON または XML で記述できます。ドキュメントバッチをドメインにアップロードすると、ドメインのインデックス作成オプションに従って自動的にデータのインデックスが作成されます。

データが変更されたら、バッチをアップロードして、インデックスのドキュメントを追加、変更、または削除します。Amazon CloudSearch は更新を継続的に適用します。明示的にデータのインデックスを再作成する必要があるのは、ドメインが `NEEDS INDEXING` 状態になる設定変更を実行した場合、または、サジェスタを更新する必要がある場合のみです。

**ドメインにデータをアップロードするには、データが有効な JSON または XML バッチ形式である必要があります。**各ドキュメントに指定されたフィールドは、ドメイン用に設定されたインデックスフィールドに対応する必要があります。ただし、設定されたすべてのインデックスフィールドをドキュメントが含んでいる必要はありません。ドキュメントバッチの作成方法については、「[データの準備](preparing-data.md)」を参照してください。ドメインのインデックスフィールドの設定については、「[インデックスフィールドの設定](configuring-index-fields.md)」を参照してください。

削除操作を行うバッチも含めて、検索ドメインにアップロードしたドキュメントバッチの合計数に対して請求されます。Amazon CloudSearch の料金の詳細については、[aws.amazon.com/cloudsearch/pricing/](https://aws.amazon.com/cloudsearch/pricing/) を参照してください。

ドキュメントバッチは[Amazon CloudSearch console](#uploading-data-console)、、 AWS CLI、または を使用してドメインのドキュメントサービスエンドポイント[posting it directly](#uploading-data-api)に送信できます。

ドキュメントサービス API の詳細については、「[ドキュメントサービス API リファレンス](document-service-api.md)」を参照してください。

**Topics**
+ [Amazon CloudSearch ドメインへのドキュメントのアップロードリクエストの送信](submitting-doc-requests.md)
+ [Amazon CloudSearch での一括アップロード](#bulk-uploads)
+ [Amazon CloudSearch console](#uploading-data-console)
+ [を使用したデータのアップロード AWS CLI](#uploading-data-clt)
+ [posting it directly](#uploading-data-api)

# Amazon CloudSearch ドメインへのドキュメントのアップロードリクエストの送信
<a name="submitting-doc-requests"></a>

**重要**  
Amazon CloudSearch ドメインにデータをアップロードする前に、次のガイドラインに従ってください。  
ドキュメントをアップロードする前にグループ化して*バッチ*します。1 つのドキュメントのみで構成されるバッチを連続してアップロードすると、Amazon CloudSearch が更新を処理できる速度に大きな悪影響が出ます。代わりに、できるだけ制限に近いバッチを作成し、アップロードする頻度を少なくしてください。最大バッチサイズとアップロード頻度の詳細については、「[Amazon CloudSearch の制限を理解する](limits.md)」を参照してください。
ドメインのドキュメントエンドポイントと検索エンドポイントは、ドメインが存在している間変わりません。すべてのアップロードリクエストや検索リクエストの前にエンドポイントを取得するのではなく、エンドポイントをキャッシュに保存してください。各リクエストの前に `aws cloudsearch describe-domains` または `DescribeDomains` を呼び出すことによって Amazon CloudSearch 設定サービスにクエリを実行すると、リクエストが調整される可能性があります。

ドキュメントのアップロードリクエストを送信するには、いずれかの AWS SDKsまたは AWS CLI を使用することをお勧めします。SDKsと はリクエスト署名 AWS CLI を処理し、すべての Amazon CloudSearch アクションを実行する簡単な方法を提供します。Amazon CloudSearch コンソールを使用して、個々のバッチをアップロードし、DynamoDB または S3 からデータをインポートすることもできます。

例えば、次のリクエストは、 AWS CLIを使用してバッチをアップロードします。

```
aws cloudsearchdomain --endpoint-url http://doc-movies-y6gelr4lv3jeu4rvoelunxsl2e.us-east-1.cloudsearch.amazonaws.com upload-documents --content-type
 application/json --documents movie-data-2013.json
```

開発およびテストの目的で、ドメインのドキュメントサービスへの匿名アクセスを許可し、署名のない HTTP POST リクエストをドメインのドキュメントサービスに直接送信できます。実稼働環境では、ドメインへのアクセスを特定の IAM ロール、グループ、またはユーザーに制限し、署名付きリクエストを送信します。Amazon CloudSearch のアクセス制御の詳細については、「[Amazon CloudSearch のアクセスの設定](configuring-access.md)」を参照してください。リクエストの署名の詳細については、[「AWS API リクエストの署名」](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)を参照してください。

例えば、次の POST リクエストは、JSON でフォーマットされたドキュメントのバッチをドメインエンドポイント doc-movies-123456789012.us-east-1.cloudsearch.amazonaws.com にアップロードします。

```
curl -X POST --upload-file data1.json doc-movies-123456789012.us-east-1.cloudsearch.amazonaws.com/2013-01-01/documents/batch --header "Content-Type: application/json"
```

## Amazon CloudSearch での一括アップロード
<a name="bulk-uploads"></a>

ドキュメントバッチは 10 秒ごとに 1 つ、バッチあたり 5 MB に制限されます。詳細については、「[制限](limits.md)」を参照してください。ただし、バッチを並行してアップロードして、すべてのデータをアップロードするのにかかる時間を短縮することができます。

一括アップロードを実行するには、以下に従います。
+ 必要なインスタンスタイプを、デフォルトの `search.small` より大きなインスタンスタイプに設定します。使用できるアップロードスレッドの数は、ドメインで使っている検索インスタンスのタイプ、データの性質、インデックス作成オプションによって異なります。インスタンスタイプが大きいほど、アップロード容量が大きくなります。`search.small` インスタンスにバッチを並列アップロードしようとすると、通常は、高い確率で 504 または 507 エラーが発生します。必要なインスタンスタイプの設定の詳細については、「[Amazon CloudSearch でのスケーリングオプションの設定](configuring-scaling-options.md)」を参照してください。
+ 設定の変更がアクティブになったら、データのアップロードを開始します。5xx エラーが高い確率で発生する場合は、アップロードレートを減らすか、サイズの大きいインスタンスタイプに切り替える必要があります。最大のインスタンスタイプを既に使っている場合は、望ましいパーティション数を増やしてアップロード容量をさらに増やすことができます。
**重要**  
ドメインが「PROCESSING」状態の間に大量の更新を送信した場合、更新が検索インデックスに適用されるまでの時間が長くなることがあります。これを回避するには、ドメインが「ACTIVE」状態になるまで待ってから一括アップロードを開始してください。
+ 一括アップロードが終了すると、必要なインスタンスタイプを、小さなインスタンスタイプに戻すことができます。小さなタイプにインデックスが収まる場合は、Amazon CloudSearch が自動的にドメインをスケールダウンします。Amazon CloudSearch は、ドメインに設定された必要なインスタンスタイプより小さいインスタンスタイプにスケールダウンすることはありません。

 データが 1 GB 未満や 100 万個未満の 1 KB ドキュメントのデータセットの場合は、小さな検索インスタンスで十分です。1 GB～8 GB のデータセットをアップロードするには、アップロードを開始する前に、目的のインスタンスタイプを `search.large` に設定することをお勧めします。8 GB～16 GB のデータセットについては、`search.xlarge` で開始します。16 GB～32 GB のデータセットについては、`search.2xlarge` で開始します。32 GB を超えるアップロードの場合は、`search.2xlarge` インスタンスタイプを選択し、データセットに合わせて必要なパーティション数を増やします。各パーティションには、32 GB までのデータを格納できます。より多くのアップロード容量が必要な場合、またはインデックスに 500 GB を超える場合は、[サービス引き上げ限度リクエスト](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-cloudsearch-partitions-and-instances)を送信します。

## Amazon CloudSearch コンソールを使用したデータのアップロード
<a name="uploading-data-console"></a>

Amazon CloudSearch コンソールでは、ドメインダッシュボードを使って、ローカルファイルシステムや Amazon S3 からドメインにデータをアップロードできます。コンソールは、アップロード処理中に以下のファイルタイプを自動的にドキュメントバッチに変換します。
+ JSON または XML (.json、.xml) でフォーマットされたドキュメントバッチ
+ カンマ区切り値 (.csv)
+ テキストドキュメント (.txt)

また、DynamoDB テーブルの項目を変換してアップロードすることもできます。詳細については、「[Uploading DynamoDB Data](searching-dynamodb-data.md#searching-dynamodb-data-console)」を参照してください。

**注記**  
Amazon S3 または DynamoDB からデータをアップロードするには、サービスとアップロードするリソースの両方に対するアクセス許可が必要です。詳細については、「[バケットポリシーとユーザーポリシーの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingIAMPolicies.html)」および「[IAM を使用して DynamoDB リソースへのアクセスをコントロールする](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/UsingIAMWithDDB.html)」を参照してください。

CSV ファイルは行単位で解析され、行ごとに別のドキュメントが生成されます。その他のファイルタイプはすべて単一ドキュメントとして扱われます。ドキュメントバッチの自動生成の詳細については、「[データの準備](preparing-data.md)」を参照してください。

**インデックス作成のためにデータをドメインに送信するには**

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

1. 左側のナビゲーションペインで **[Domains]** (ドメイン) を選択します。

1. ドメイン名を選択し、ドメイン設定を開きます。

1. **[アクション]**、**[ドキュメントをアップロード]** の順に選択します。

1. ドメインにアップロードするデータの場所を選択します。
   + ローカルマシン
   + Amazon S3
   + Amazon DynamoDB
   + サンプルデータ

   ドキュメントバッチとしてフォーマットされていないデータをアップロードすると、アップロード処理中に自動的に変換されます。
**注記**  
 バッチが無効になっている場合、Amazon CloudSearch は 1 つのコンテンツフィールドと汎用メタデータフィールドを含む有効なバッチにコンテンツを変換します。これらは通常、ドメイン用に設定されたフィールドではないため、フィールドが存在しないことを示すエラーが発生します。

1. データをアップロードします。

   1. ローカルファイルをアップロードする場合は、**[ファイルを選択]** を選択して、アップロードするファイルを探します。

   1. Amazon S3 からオブジェクトをアップロードする場合は、アップロード元となるバケットの URL を指定します。

   1. DynamoDB から項目をアップロードする場合は、アップロード元となるテーブルを選択します。テーブルからの読み取り時に消費可能な読み取りキャパシティユニットを制限するには、読み取りキャパシティユニットの最大パーセンテージを入力します。特定の項目から読み取りを開始するには、[ハッシュキーを開始] を指定します。

   1. 定義済みのサンプルデータをアップロードする場合は、使用するデータセットを選択します。

1. [**続行**] をクリックしてください。

1. アップロードするドキュメントを確認し、**[ドキュメントをアップロード]** を選択します。

1. **[アップロードの概要]** で、ドキュメントバッチがデータから自動生成されている場合は、**[生成されたドキュメントバッチをダウンロード]** を選択して、そのバッチを取得できます。**[閉じる]** を選択してドメインダッシュボードに戻ります。

## を使用したデータのアップロード AWS CLI
<a name="uploading-data-clt"></a>

`aws cloudsearch upload-documents` コマンドを使って、ドキュメントバッチを検索ドメインに送信できます。のインストールとセットアップの詳細については AWS CLI、 [AWS Command Line Interface ユーザーガイド](https://docs.aws.amazon.com/cli/latest/userguide/)を参照してください。

**インデックス作成のためにドキュメントバッチをドメインに送信するには**
+ `aws cloudsearchdomain upload-documents` コマンドを実行して、ドメインにバッチをアップロードします。

  ```
  aws cloudsearchdomain upload-documents --endpoint-url http://doc-movies-y6gelr4lv3jeu4rvoelunxsl2e.us-east-1.cloudsearch.amazonaws.com --content-type application/json --documents document-batch.json
  {
      "status": "success", 
      "adds": 5000, 
      "deletes": 0
  }
  ```

## HTTP 経由で Amazon CloudSearch ドメインのドキュメントサービスエンドポイントにドキュメントを投稿
<a name="uploading-data-api"></a>

`documents/batch` リソースを使用して、ドメインにドキュメントバッチを投稿し、ドキュメントを追加、更新、または削除します。例:

```
curl -X POST --upload-file movie-data-2013.json doc-movies-123456789012.us-east-1.cloudsearch.amazonaws.com/2013-01-01/documents/batch --header "Content-Type:application/json"
```