

Amazon Timestream for LiveAnalytics に類似した機能をご希望の場合は Amazon Timestream for InfluxDB をご検討ください。リアルタイム分析に適した、シンプルなデータインジェストと 1 桁ミリ秒のクエリ応答時間を特徴としています。詳細については、[こちら](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html)を参照してください。

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

# API を使用する
<a name="Using.API"></a>

 [SDK](getting-started-sdks.md) に加えて、Amazon Timestream for LiveAnalytics は*エンドポイント検出パターン*を介して REST API への直接アクセスを提供します。エンドポイント検出パターンとそのユースケースを以下に示します。

## エンドポイント検出パターン
<a name="Using-API.endpoint-discovery"></a>

Timestream for LiveAnalytics の SDK は、サービスエンドポイントの管理やマッピングなど、サービスのアーキテクチャと透過的に連携するように設計されているため、ほとんどのアプリケーションで SDK を使用することをお勧めします。ただし、次のようないくつかのインスタンスでは、Timestream for LiveAnalytics REST API のエンドポイント検出パターンの使用が必要です。
+ [Timestream for LiveAnalytics で VPC エンドポイント (AWS PrivateLink)](VPCEndpoints.md) を使用している
+ アプリケーションで、SDK をまだサポートしていないプログラミング言語を使用している
+ クライアント側の実装をより適切に制御する必要がある

このセクションでは、エンドポイント検出パターンの仕組み、エンドポイント検出パターンの実装方法、使用上の注意について説明します。詳しくは、下記のトピックを選択してください。

**Topics**
+ [エンドポイント検出パターン](#Using-API.endpoint-discovery)
+ [エンドポイント検出パターンの仕組み](Using-API.endpoint-discovery.how-it-works.md)
+ [エンドポイント検出パターンの実装](Using-API.endpoint-discovery.describe-endpoints.implementation.md)

# エンドポイント検出パターンの仕組み
<a name="Using-API.endpoint-discovery.how-it-works"></a>

 Timestream は、スケーリングとトラフィック分離のプロパティ向上を確保するため、[セルラーアーキテクチャ](architecture.md#cells)を使用して構築されています。各カスタマーアカウントはリージョン内の特定のセルにマッピングされるため、アプリケーションはアカウントがマッピングされたセル固有の正しいエンドポイントを使用する必要があります。SDK を使用する場合、透過的にこのマッピングが処理されるため、セル固有のエンドポイントを管理する必要はありません。ただし、REST API に直接アクセスする場合は、適切なエンドポイントを自分で管理してマッピングする必要があります。このプロセスを示した*エンドポイント検出パターン*の詳細は次のとおりです。

1.  エンドポイント検出パターンは、`DescribeEndpoints` アクション ([https://docs.aws.amazon.com/timestream/latest/developerguide/API_Reference.html](https://docs.aws.amazon.com/timestream/latest/developerguide/API_Reference.html) のセクションで説明) の呼び出しから始まります。

1.  エンドポイントはキャッシュに保存され、返される time-to-live (TTL) 値 ([https://docs.aws.amazon.com/timestream/latest/developerguide/API_Endpoint.html#timestream-Type-Endpoint-CachePeriodInMinutes.html](https://docs.aws.amazon.com/timestream/latest/developerguide/API_Endpoint.html#timestream-Type-Endpoint-CachePeriodInMinutes.html)) で指定された時間だけ再利用されます。その後、TTL の期間中に Timestream for LiveAnalytics API を呼び出すことができます。

1.  TTL の有効期限が切れたら、DescribeEndpoints への新しい呼び出しを行ってエンドポイントを更新する必要があります (つまりステップ 1 からやり直す)。

**注記**  
 `DescribeEndpoints` アクションの構文、パラメータ、およびその他の使用情報は、[API リファレンス](https://docs.aws.amazon.com/timestream/latest/developerguide/API_DescribeEndpoints.html)で説明されています。`DescribeEndpoints` アクションは両方の SDK を介して使用でき、それぞれについて同じであることに注意してください。

エンドポイント検出パターンの実装については「[エンドポイント検出パターンの実装](Using-API.endpoint-discovery.describe-endpoints.implementation.md)」を参照してください。

# エンドポイント検出パターンの実装
<a name="Using-API.endpoint-discovery.describe-endpoints.implementation"></a>

 エンドポイント検出パターンを実装するには、API (書き込みまたはクエリ) を選択して **DescribeEndpoints** リクエストを作成し、返された TTL 値 (複数可) の期間中に、返されたエンドポイント (複数可) を使用します。実装手順は次のとおりです。

**注記**  
[使用上の注意](#Using-API.endpoint-discovery.describe-endpoints.usage-notes)をよく理解するようにしてください。

## 実装手順
<a name="Using-API.endpoint-discovery.describe-endpoints.implementation.procedure"></a>

1.  [https://docs.aws.amazon.com/timestream/latest/developerguide/API_DescribeEndpoints.html](https://docs.aws.amazon.com/timestream/latest/developerguide/API_DescribeEndpoints.html) リクエストを使用して、([Write](https://docs.aws.amazon.com/timestream/latest/developerguide/API_Operations_Amazon_Timestream_Write.html) または [Query](https://docs.aws.amazon.com/timestream/latest/developerguide/API_Operations_Amazon_Timestream_Query.html)) に対して呼び出しを行う API のエンドポイントを取得します。

   1.  以下に説明する 2 つのエンドポイントのいずれかを使用して、対象の API ([Write](https://docs.aws.amazon.com/timestream/latest/developerguide/API_Operations_Amazon_Timestream_Write.html) または [Query](https://docs.aws.amazon.com/timestream/latest/developerguide/API_Operations_Amazon_Timestream_Query.html)) に対応する [https://docs.aws.amazon.com/timestream/latest/developerguide/API_DescribeEndpoints.html](https://docs.aws.amazon.com/timestream/latest/developerguide/API_DescribeEndpoints.html) のリクエストを作成します。リクエストの入力パラメータはありません。以下の注意事項を必ずお読みください。  
*Write SDK:*  

      ```
      ingest.timestream.<region>.amazonaws.com
      ```  
*Query SDK:*  

      ```
      query.timestream.<region>.amazonaws.com
      ```

      `us-east-1` リージョンの CLI 呼び出しの例を次に示します。

      ```
      REGION_ENDPOINT="https://query.timestream.us-east-1.amazonaws.com"
      REGION=us-east-1
      aws timestream-write describe-endpoints \
      --endpoint-url $REGION_ENDPOINT \
      --region $REGION
      ```
**注記**  
 HTTP「ホスト」ヘッダーには API エンドポイントも*含める必要があります*。ヘッダーが入力されていない場合、リクエストは失敗します。これは、すべての HTTP/1.1 リクエストの標準要件です。1.1 以降をサポートしている HTTP ライブラリを使用する場合は、HTTP ライブラリによってヘッダーが自動的に入力されます。
**注記**  
*<region>* を、リクエストが行われているリージョンのリージョン識別子に置き換えます (例: `us-east-1`)。

   1. レスポンスを解析してエンドポイント (複数可) を抽出し、TTL 値 (複数可) をキャッシュに保存します。レスポンスは、1 つ以上の [`Endpoint` オブジェクト](https://docs.aws.amazon.com/timestream/latest/developerguide/API_Endpoint.html)の配列です。各 `Endpoint` オブジェクトには、エンドポイントアドレス (`Address`) とそのエンドポイントの TTL (`CachePeriodInMinutes`) が含まれます。

1.  指定された TTL までエンドポイントをキャッシュに保存します。

1.  TTL が切れたら、実装のステップ 1 からやり直して新しいエンドポイントを取得します。

## エンドポイント検出パターンの使用上の注意
<a name="Using-API.endpoint-discovery.describe-endpoints.usage-notes"></a>
+ **DescribeEndpoints** アクションは、Timestream for LiveAnalytics のリージョンエンドポイントが認識する唯一のアクションです。
+ レスポンスには、Timestream for LiveAnalytics API コールを行うエンドポイントのリストが含まれています。
+  レスポンスが成功するには、リストに少なくとも 1 つのエンドポイントが存在する必要があります。リストに複数のエンドポイントがある場合、それらのエンドポイントは API コールに等しく使用でき、呼び出し元は使用するエンドポイントをランダムに選択することができます。
+ エンドポイントの DNS アドレスに加えて、リスト内の各エンドポイントは、エンドポイントの使用を許可する分単位で指定される有効期限 (TTL) を指定します。
+ エンドポイントは、キャッシュに保存し、返された TTL 値で指定された時間 (分単位) 再利用する必要があります。TTL の有効期限が切れるとエンドポイントが機能しなくなるため、TTL の有効期限が切れたら **DescribeEndpoints** への新しい呼び出しを実行して、使用するエンドポイントを更新する必要があります。