Amazon DocumentDB Serverless のモニタリング - Amazon DocumentDB

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

Amazon DocumentDB Serverless のモニタリング

Amazon DocumentDB でのモニタリングの詳細については、「Amazon DocumentDB のモニタリング」を参照してください。

メモリ不足: 互換性のないパラメータステータス

サーバーレスインスタンスの 1 つが常に最大容量の制限に達している場合、Amazon DocumentDB ではこの状態をインスタンスのステータスを [互換性のないパラメータ] に設定することで表示します。詳細については、「メモリ不足エラーを回避する」を参照してください。

DocumentDB サーバーレスの Amazon CloudWatch メトリクス

Amazon DocumentDB における CloudWatch の使用の詳細については、「Amazon DocumentDB と CloudWatch のモニタリング」を参照してください。

CloudWatch でサーバーレスインスタンスを表示すると、ServerlessDatabaseCapacity メトリクスで各インスタンスが消費する容量をモニタリングできます。また、DatabaseConnections やクエリなどの DocumentDB CloudWatch のスタンダードのメトリクスをすべてモニタリングできます。Amazon DocumentDB でモニタリング可能な CloudWatch メトリクスのすべてのリストは、「Amazon DocumentDB と CloudWatch のモニタリング」を参照してください。以下の CloudWatch インスタンスレベルのメトリクスは、DocumentDB サーバーレスインスタンスはスケールアップとスケールダウンを理解するうえで重要なモニタリングです。これらすべてのメトリクスは 1 秒ごとに計算されます。そうすれば、サーバーレスインスタンスの現在のステータスをモニタリングできます。サーバーレスインスタンスが容量に関連するメトリクスのしきい値に近づいた場合に通知するアラームを設定できます。最小容量と最大容量設定は適切か、調整が必要かを判断できます。データベースの効率を最適化するため、どこに注力すべきかを判断できます。

  • ServerlessDatabaseCapacity — インスタンスレベルのメトリクスとして、現在のインスタンスの容量で表される DCU 値を報告します。クラスターレベルのメトリクスとして、クラスター内のすべての DocumentDB サーバーレスインスタンスの ServerlessDatabaseCapacity 値の平均を表しています。

  • DCUUtilization. — このメトリクスは DocumentDB サーバーレスでは新しいものです。この値は割合 (%) で表されます。これは、ServerlessDatabaseCapacity メトリクスの値をクラスターの最大 DCU 値で割った値です。このメトリクスを解釈してアクションを実行するには、以下のガイドラインを考慮してください。

    • このメトリクスが 100.0 値に近づいた場合、インスタンスは限りなく大きくスケールアップしたことになります。クラスターの最大 DCU 設定を引き上げることを検討してください。これにより、ライターとリーダーの両方のインスタンスを、より大きな容量にスケーリングできます。

    • 読み取り専用のワークロードによって、リーダーインスタンスが DCUUtilization/100.0 に近づき、一方でライターインスタンスは最大容量に近づいていないとします。この場合は、クラスターにリーダーインスタンスを追加することを検討してください。これにより、ワークロードの読み取り専用部分のワークロードをより多くのインスタンスに分散することで、各リーダーインスタンスのロードを軽減できます。

    • パフォーマンスとスケーラビリティが主な考慮事項である本番アプリケーションを実行しているとします。この場合、クラスターの最大 DCU 値を大きい数値に設定できます。目標は、DCUUtilization のメトリクスが常に 100.0 未満であることです。DCU の最大値を大きくすると、データベースのアクティビティに予期しないスパイクが発生した場合でも十分な余裕があり、安心につながります。実際に消費されたデータベース容量に対してのみ課金されます。

  • CPUUtilization — このメトリクスは DocumentDB サーバーレスにおいて、プロビジョン済みのインスタンスとは異なる解釈がされます。DocumentDB サーバーレスの場合、この値は、現在の CPU の使用量をクラスターの最大 DCU 値で使用可能な CPU 容量で割った割合です。Amazon DocumentDB はこの値を自動的にモニタリングし、インスタンスが CPU 容量 を使用している割合が常に大きい場合、サーバーレスインスタンスをスケールアップします。

    このメトリクスが 100.0 値に近づいた場合、インスタンスは最大 CPU 容量に達しています。クラスターの最大 DCU 設定を引き上げることを検討してください。このメトリクスがリーダーインスタンスで 100.0 値に近づいた場合、クラスターにリーダーインスタンスを追加することを検討してください。これにより、ワークロードの読み取り専用部分のワークロードをより多くのインスタンスに分散することで、各リーダーインスタンスのロードを軽減できます。

  • FreeableMemory — この値は、DocumentDB サーバーレスインスタンスを最大容量にスケーリングしたときに利用できる未使用のメモリ量を表します。現在の容量が最大容量を下回る 各 DCU では、この値は約 2 GiB 増加します。したがって、インスタンスが限りなく大きくスケールアップされるまで、このメトリクスはゼロに近づきません。

    このメトリクスがゼロの値に近づいた場合、インスタンスは可能な限りスケールアップし、使用可能なメモリの上限に近づいています。クラスターの最大 DCU 設定を引き上げることを検討してください。このメトリクスがリーダーインスタンスでゼロの値に近づいた場合、クラスターにリーダーインスタンスを追加することを検討してください。これにより、ワークロードの読み取り専用部分のワークロードをより多くのインスタンスに分散することで、各リーダーインスタンスのメモリ使用量を軽減できます。

  • TempStorageIops — インスタンスにアタッチされたローカルストレージで実行された IOPS の数です。これには、読み取りと書き込みの両方の IOPS が含まれます。このメトリクスはカウントを表し、1 秒に 1 回測定されます。これは DocumentDB サーバーレスの新しいメトリクスです。詳細については、「Amazon DocumentDB と CloudWatch のモニタリング」を参照してください。

  • TempStorageThroughput — インスタンスに関連するローカルストレージとの間で転送されるデータの量です。このメトリクスはバイトを表し、1 秒に 1 回測定されます。これは DocumentDB サーバーレスの新しいメトリクスです。詳細については、「Amazon DocumentDB と CloudWatch のモニタリング」を参照してください。

通常、DocumentDB サーバーレスインスタンスのスケールアップの大部分は、メモリ使用率と CPU アクティビティに起因しています。TempStorageIops および TempStorageThroughput のメトリクスは、インスタンスとローカルストレージデバイス間の転送のためのネットワークアクティビティが、予期しない容量増加の原因となるまれなケースを診断するのに役立ちます。他のネットワークアクティビティを監視するには、以下の既存のメトリクスを使用できます。

  • NetworkReceiveThroughput

  • NetworkThroughput

  • NetworkTransmitThroughput

  • StorageNetworkReceiveThroughput

  • StorageNetworkThroughput

  • StorageNetworkTransmitThroughput

DocumentDB サーバーレス CloudWatch メトリクスが AWS 請求書にどのように適用されるか

AWS 請求書の DocumentDB サーバーレス料金は、モニタリングできるのと同じServerlessDatabaseCapacityメトリクスに基づいて計算されます。請求メカニズムでは、DocumentDB サーバーレスの容量を 1 時間の一部しか使用していない場合、このメトリクスで計算された CloudWatch の平均とは異なる場合があります。また、システムの問題で、短時間 CloudWatch メトリクスが利用できない場合にも異なる場合があります。したがって、お客様が ServerlessDatabaseCapacity の平均値から計算したものと、請求書に記載される DCU 時間の値が若干異なる場合があります。

DocumentDB サーバーレスメトリクスの Amazon CloudWatch CLI コマンドの例

次の AWS CLI 例は、DocumentDB サーバーレスに関連する最も重要な CloudWatch メトリクスをモニタリングする方法を示しています。いずれの場合も、--dimensions パラメータの Value= 文字列は、お客様の DocumentDB サーバーレスインスタンスの ID に置き換えてください。

以下の Linux の例では、インスタンスの最小、最大、平均の容量値を 1 時間で 10 分ごとに測定して表示しています。Linux の日付コマンドでは、現在の日付と時刻を基準にして開始時刻と終了時刻を指定します。--query パラメータの sort_by 関数は、Timestamp のフィールドに基づいて結果を時系列でソートします。

aws cloudwatch get-metric-statistics \ --metric-name "ServerlessDatabaseCapacity" \ --start-time "$(date -d '1 hour ago')" \ --end-time "$(date -d 'now')" \ --period 600 \ --namespace "AWS/DocDB" \ --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=my_instance \ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table

以下の Linux の例では、クラスター内のインスタンスの容量のモニタリングを示しています。インスタンスの最小、最大、平均の容量使用率を測定しています。測定は、1 時間に 1 回、3 時間にわたって行います。これらの例では、DCU の固定数を表すの ServerlessDatabaseCapacity の代わりに、DCU の上限に対する割合を表す DCUUtilization メトリクスを使用しています。そうすれば、容量範囲の最小と最大の DCU 値の実際の数値を知る必要はありません。割合は 0 から 100 までの範囲で表示できます。

aws cloudwatch get-metric-statistics \ --metric-name "DCUUtilization" \ --start-time "$(date -d '3 hours ago')" \ --end-time "$(date -d 'now')" \ --period 3600 \ --namespace "AWS/DocDB" \ --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=my_instance \ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table

以下の Linux の例では、前のものと同様の測定を実行します。この場合は、CPUUtilization のメトリクスのための測定になります。測定は、1 時間で 10 分ごとに行われます。この数値は、インスタンスの最大容量設定に利用可能な CPU リソースに基づき、利用可能な CPU リソースを表します。

aws cloudwatch get-metric-statistics \ --metric-name "CPUUtilization" \ --start-time "$(date -d '1 hour ago')" \ --end-time "$(date -d 'now')" \ --period 600 \ --namespace "AWS/DocDB" \ --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=my_instance \ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table

以下の Linux の例では、前のものと同様の測定を実行します。この場合は、FreeableMemory のメトリクスのための測定になります。測定は、1 時間で 10 分ごとに行われます。

aws cloudwatch get-metric-statistics \ --metric-name "FreeableMemory" \ --start-time "$(date -d '1 hour ago')" \ --end-time "$(date -d 'now')" \ --period 600 \ --namespace "AWS/DocDB" \ --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=my_instance \ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table

パフォーマンスインサイトによる DocumentDB サーバーレスパフォーマンスのモニタリング

パフォーマンスインサイトを使用して、DocumentDB サーバーレスインスタンスのパフォーマンスをモニタリングできます。パフォーマンスインサイトの手順については、「Performance Insights を使用したモニタリング」を参照してください。

以下の新しいパフォーマンスインサイトカウンターが DocumentDB サーバーレスインスタンスに適用されます。

  • os.general.serverlessDBCapacity - DCU 内のインスタンスの現在の容量。この値は、インスタンスの ServerlessDatabaseCapacity CloudWatch メトリクスに対応します。

  • os.general.dcuUtilization — 設定された最大容量のうち、現在の容量の割合。この値は、インスタンスの DCUUtilization CloudWatch メトリクスに対応します。

  • os.general.maxConfiguredDcu — この DocumentDB サーバーレスインスタンスのために設定された最大容量。これは、DCU で測定されます。

  • os.general.minConfiguredDcu — この DocumentDB サーバーレスインスタンスのために設定された最小容量。これは、DCU で測定されます。

パフォーマンスインサイトカウンターのすべてのリストは、「カウンターメトリクス用の Performance Insights」を参照してください。

パフォーマンスインサイトで DocumentDB サーバーレスインスタンスの vCPU 値が表示される場合、その値は、インスタンスの DCU 値に基づいた推定値を表します。デフォルトの 1 分間隔では、vCPU 値の小数分は整数に切り上げられます。それ以上の間隔の場合、表示される vCPU 値は、1 分ごとの vCPU 値の整数の平均になります。