

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

# Amazon DocumentDB のエラスティッククラスターのベストプラクティス
<a name="elastic-best-practices"></a>

Amazon DocumentDB のエラスティッククラスターを使用するためのベストプラクティスについて説明します。[インスタンスベースの Amazon DocumentDB クラスターのベストプラクティス](https://docs.aws.amazon.com/documentdb/latest/developerguide/best_practices.html)はすべて、エラスティッククラスターに適用されます。新しいベストプラクティスが確認されると、このセクションは更新されます。

**Topics**
+ [シャードキーの選択](#choosing-shard-keys)
+ [接続管理](#connection-management)
+ [非シャード型コレクション](#unsharded-collections)
+ [エラスティッククラスターのスケーリング](#scaling)
+ [エラスティッククラスターのモニタリング](#monitoring-elastic-clusters)

## シャードキーの選択
<a name="choosing-shard-keys"></a>

以下は、シャードキーの作成に関するガイドラインです。
+ クラスター内のすべてのシャードにデータを分散するには、均等分散型のハッシュキーを使用する (ホットキーの使用は避ける)。
+ スキャッターギャザークエリを回避するには、読み取り/更新/削除リクエストでシャードキーを使用する。
+ 読み取り/更新/削除操作では、入れ子型のシャードキーの使用を避ける。
+ バッチ操作では、すべてのシャードが並列実行され、レイテンシーが改善されるよう `ordered` を false に設定する。

## 接続管理
<a name="connection-management"></a>

以下は、データベースへの接続管理に関するガイドラインです。
+ 接続数、および、新しい接続の開閉の頻度をモニタリングする。
+ アプリケーションの設定のすべてのサブネットに接続を分散する。複数のサブネットにクラスターを設定しているにもかかわらず、サブネットの一部しか使用されないと、最大接続数でボトルネックが発生する可能性があります。

## 非シャード型コレクション
<a name="unsharded-collections"></a>

以下は、非シャード型コレクションに関するガイドラインです。
+ 非シャード型コレクションで負荷を分散するには、使用率の高い非シャード型コレクションを複数のデータベースに保存するようにする。Amazon DocumentDB のエラスティッククラスターは、データベースを複数のシャードに配置します。この時、同じデータベースの非シャード型コレクションは、同じシャードに配置されます。

## エラスティッククラスターのスケーリング
<a name="scaling"></a>

以下は、エラスティッククラスターのスケーリングに関するガイドラインです。
+ スケーリング操作によって、データベースエラーやネットワークエラーが短時間断続的に発生する場合があります。可能な限り、ピーク時間帯のスケーリングは避けてください。スケーリングは、メンテナンスウィンドウ中に行うようにしてください。
+ コンピュートを増やす場合は、シャード数を増減するよりも、シャードの容量を増減 (各シャードの vCPU 数の変更) することをお勧めします。高速であり、データベースやネットワークの断続的なエラーが発生する時間が短くなります。
+ 成長が見込まれる場合は、シャード容量をスケールするではなく、シャード数を増やすことをお勧めします。シャード容量を増やしてクラスターをスケールすることで、迅速なスケーリングが必要とされる状況に対応できます。
+ クライアント側の再試行ポリシーをモニタリングして、エクスポネンシャルバックオフとジッターを試し、スケーリング中にエラーが発生したときにデータベースが過負荷にならないようにしてください。

## エラスティッククラスターのモニタリング
<a name="monitoring-elastic-clusters"></a>

以下は、エラスティッククラスターのモニタリングに関するガイドラインです。
+ 各シャードのメトリクスのピーク対平均比を追跡して、トラフィックが不均等 (ホットキー/ホットスポットがある) になっていないか判断してください。ピーク対平均比を追跡するための主なメトリクスは次のとおりです。
  + `PrimaryInstanceCPUUtilization`
    + これはシャード単位にモニタリングできます。
    + クラスターレベルでは、平均から p99 までのスキューをモニタリングできます。
  + `PrimaryInstanceFreeableMemory`
    + これはシャード単位にモニタリングできます。
    + クラスターレベルでは、平均から p99 までのスキューをモニタリングできます。
  + `DatabaseCursorsMax`
    + スキューを判断するには、シャード単位でモニタリングする必要があります。
  + `Documents-Inserted/Updated/Returned/Deleted`
    + スキューを判断するには、シャード単位でモニタリングする必要があります。