

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

# Amazon CloudWatch による MemoryDB のモニタリング
<a name="monitoring-cloudwatch"></a>

CloudWatch を使用して MemoryDB を監視できます。CloudWatch は raw データを収集し、それを読み取り可能なほぼリアルタイムのメトリクスに処理します。これらの統計は 15 か月間保持されるため、履歴情報にアクセスし、ウェブアプリケーションまたはサービスの動作をより的確に把握できます。また、特定のしきい値を監視するアラームを設定し、これらのしきい値に達したときに通知を送信したりアクションを実行したりできます。詳細については、「[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)」を参照してください。

以下のセクションでは、MemoryDB のメトリクスとディメンションを一覧表示しています。

**Topics**
+ [ホストレベルのメトリクス](metrics.HostLevel.md)
+ [MemoryDB のメトリック](metrics.memorydb.md)
+ [モニタリングすべきメトリクス](metrics.whichshouldimonitor.md)
+ [メトリクスの統計と期間の選択](metrics.ChoosingStatisticsAndPeriods.md)
+ [CloudWatch メトリクスを使用したモニタリング](cloudwatchmetrics.md)

# ホストレベルのメトリクス
<a name="metrics.HostLevel"></a>

`AWS/MemoryDB` 名前空間は、各ノードに対する以下のホストレベルのメトリクスが含まれます。

**以下の資料も参照してください**
+ [MemoryDB のメトリック](metrics.memorydb.md)


| メトリクス | 説明 | 単位 | 
| --- | --- | --- | 
| CPUUtilization |  ホスト全体の CPU 使用率の割合 (%)。Valkey および Redis OSS はシングルスレットであるため、4 個以上の vCPU を持つノードで EngineCPUUtilization メトリクスをモニタリングすることをお勧めします。 |  割合 (%)  | 
| FreeableMemory  |  ホストで使用可能な空きメモリの量。この数字は、OS によって解放できる可能性があるとレポートされる RAM のメモリとバッファから算出されます。 |  バイト  | 
| NetworkBytesIn |  ホストがネットワークから読み取ったバイト数。 |  バイト  | 
| NetworkBytesOut | すべてのネットワークインターフェイスでの、このインスタンスから送信されたバイトの数。 |  バイト  | 
| NetworkPacketsIn | すべてのネットワークインターフェイスでの、このインスタンスによって受信されたパケットの数。このメトリクスは受信トラフィックのボリュームを単一インスタンスでのパケット数として識別します。 | カウント  | 
| NetworkPacketsOut | すべてのネットワークインターフェイスでの、このインスタンスから送信されたパケットの数。このメトリクスは送信トラフィックのボリュームを単一インスタンスでのパケット数として識別します。 | カウント  | 
| NetworkBandwidthInAllowanceExceeded | インバウンドの集計帯域幅がインスタンスの最大値を超えたために形成されたパケットの数。 | カウント  | 
| NetworkConntrackAllowanceExceeded | 接続トラッキングがインスタンスの最大数を超え、新しい接続を確立できなかったために形成されたパケットの数。これにより、インスタンスとの間で送受信されるトラフィックのパケット損失が発生する可能性があります。 | カウント  | 
| NetworkBandwidthOutAllowanceExceeded | アウトバウンド集計帯域幅がインスタンスの最大値を超えたために形成されたパケットの数。 | カウント  | 
| NetworkPacketsPerSecondAllowanceExceeded | 1 秒あたりの双方向パケットがインスタンスの最大値を超えたために形成されたパケットの数。 | カウント  | 
| NetworkMaxBytesIn | 1 分間の受信バイトの最大毎秒バースト量。 | バイト | 
| NetworkMaxBytesOut  | 1 分間の送信バイトの最大毎秒バースト量。 | バイト | 
| NetworkMaxPacketsIn | 1 分間の受信パケットの最大毎秒バースト量。 | カウント  | 
| NetworkMaxPacketsOut | 1 分間の送信パケットの最大毎秒バースト量。 | カウント  | 
| SwapUsage |  ホストで使用されるスワップの量。 |  バイト  | 

# MemoryDB のメトリック
<a name="metrics.memorydb"></a>

`AWS/MemoryDB` 名前空間には、次のメトリクスが含まれます。

`ReplicationLag`、`EngineCPUUtilization`、`SuccessfulWriteRequestLatency`、および `SuccessfulReadRequestLatency` を除き、これらのメトリクスは、Valkey および Redis OSS の **info** コマンドから算出されます。各メトリクスは、ノードレベルで算出されます。

**INFO** コマンドの詳細なドキュメントについては、「[INFO](http://valkey.io/commands/info)」を参照してください。

**「」、「」も参照してください。**
+ [ホストレベルのメトリクス](metrics.HostLevel.md)

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/memorydb/latest/devguide/metrics.memorydb.html)

以下は特定の種類のコマンドの集計で、**info commandstats** から算出されています。コマンドスタッツのセクションには、呼び出し回数など、コマンドタイプに基づく統計情報が表示されます。

利用可能なコマンドの完全な一覧については、「[コマンド](https://valkey.io/commands)」を参照してください。


| メトリクス  | 説明  | 単位  | 
| --- | --- | --- | 
| EvalBasedCmds | eval ベースのコマンドの合計数。これは、eval、evalsha を合計することによって commandstats 統計から算出されます。 | カウント | 
| GeoSpatialBasedCmds | 地理空間ベースのコマンドの総数。これは commandstats 統計から算出されます。これは、すべての geo の種類のコマンド (geoadd、geodist、geohash、geopos、georadius、および georadiusbymember) を合計することによって算出されます。 | カウント | 
| GetTypeCmds | read-only 型のコマンドの合計数。これは、すべての read-only の種類のコマンド (get、hget、scard、lrange など) を合計することによって commandstats 統計から算出されます。 | カウント | 
| HashBasedCmds | ハッシュベースのコマンドの総数。これは、1 つ以上のハッシュに対して実行されるすべてのコマンド (hget、hkeys、hvals、hdel など) を合計することによって commandstats 統計から算出されます。 | カウント | 
| HyperLogLogBasedCmds | HyperLogLog ベースのコマンドの合計数。これは、すべての pf の種類のコマンド (pfadd、pfcount、pfmerge など) を合計することによって commandstats 統計から算出されます。 | カウント | 
|  JsonBasedCmds |  JSON ベースのコマンドの総数。これは、commandstats 統計に基づき、1 つ以上の JSON ドキュメントオブジェクトに対して実行されるすべてのコマンドを合計して算出されます。 | カウント | 
| KeyBasedCmds | キーベースのコマンドの総数。これは、複数のデータ構造で 1 つ以上のキーに対して実行されるすべてのコマンド (del、expire、rename など) を合計することによって、commandstats 統計から算出されます。 | カウント | 
| ListBasedCmds | リストベースのコマンドの総数。これは、1 つ以上のリストに対して実行されるすべてのコマンド (lindex、lrange、lpush、ltrim など) を合計することによって commandstats 統計から算出されます。 | カウント | 
| PubSubBasedCmds | pub/sub 機能のコマンドの総数。これは、pub/sub 機能で使用されるすべてのコマンド (psubscribe、publish、pubsub、punsubscribe、subscribe、unsubscribe) を合計することによって commandstats 統計から算出されます。 | カウント | 
| SearchBasedCmds | 読み取りコマンドと書き込みコマンドの両方を含む、セカンダリインデックスと検索コマンドの総数。これは、セカンダリインデックスに作用するすべての search コマンドを合計することにより、commandstats 統計から導出されます。 | カウント | 
| SearchBasedGetCmds | セカンダリインデックスと検索読み取り専用コマンドの総数。これは、すべてのセカンダリインデックスと search get コマンドを合計することによって、commandstats 統計から導出されます。 | カウント | 
| SearchBasedSetCmds | セカンダリインデックスと検索書き込みコマンドの総数。これは、すべてのセカンダリインデックスと search set コマンドを合計することによって、commandstats 統計から導出されます。 | カウント | 
| SearchNumberOfIndexes | インデックスの総数。 | カウント | 
| SearchNumberOfIndexedKeys | インデックス付きキーの総数  | カウント | 
| SearchTotalIndexSize | すべてのインデックスによって使用されるメモリ (バイト)。 | バイト | 
| SetBasedCmds | セットベースのコマンドの総数。これは、1 つ以上のセットに対して実行されるすべてのコマンド (scard、sdiff、sadd、sunion など) を合計することによって commandstats 統計から算出されます。 | カウント | 
| SetTypeCmds | write 型のコマンドの合計数。これは、データ上で動作する mutative の種類のすべてのコマンド (set、hset、sadd、lpop など) を合計することによって commandstats 統計から算出されます。 | カウント | 
| SortedSetBasedCmds | ソートされたセットベースのコマンドの総数。これは、1 つ以上のソートされたセットに対して実行されるすべてのコマンド (zcount、zrange、zrank、zadd など) を合計することによって commandstats 統計から算出されます。 | カウント | 
| StringBasedCmds | 文字列ベースのコマンドの総数。これは、1 つ以上の文字列に対して実行されるすべてのコマンド (strlen、setex、setrange など) を合計することによって commandstats 統計から算出されます。 | カウント | 
| StreamBasedCmds | ストリームベースのコマンドの総数。これは、1 つ以上のストリームデータの種類に対して実行されるすべてのコマンド (xrange、xlen、xadd、xdel など) を合計することによって commandstats 統計から算出されます。 | カウント | 

# モニタリングすべきメトリクス
<a name="metrics.whichshouldimonitor"></a>

次の CloudWatch メトリクスは、MemoryDB パフォーマンスを把握するのに役立ちます。ほとんどの場合、パフォーマンスの問題が発生する前に修正作業を行うことができるように、これらのメトリクスに CloudWatch アラームを設定することをお勧めします。

**Topics**
+ [CPUUtilization (CPU使用度)](#metrics-cpu-utilization)
+ [EngineCPUUtilization](#metrics-engine-cpu-utilization)
+ [SwapUsage](#metrics-swap-usage)
+ [Evictions](#metrics-evictions)
+ [CurrConnections](#metrics-curr-connections)
+ [メモリ](#metrics-memory)
+ [ネットワーク](#metrics-network)
+ [レイテンシー](#metrics-latency)
+ [レプリケーション](#metrics-replication)

## CPUUtilization (CPU使用度)
<a name="metrics-cpu-utilization"></a>

パーセント値でレポートされるホストレベルのメトリクスです。詳細については、「[ホストレベルのメトリクス](metrics.HostLevel.md)」を参照してください。

 2 個以下の vCPU を持つ小さなノードタイプの場合は、`CPUUtilization ` メトリクスを使用してワークロードをモニタリングします。

一般的に、利用可能な CPU の 90% にしきい値を設定することをお勧めします。Valkey および Redis OSS はシングルスレッドであるため、実際のしきい値はノードの総容量に占める割合のごく一部になるよう計算します。例えば、2 個のコアを搭載するノードタイプを使用しているとします。この場合、CPUUtilization のしきい値は 90/2、つまり 45% になります。ノードタイプに搭載されたコア数 (vCPU) を調べる方法については、「[MemoryDB 料金表](https://aws.amazon.com/memorydb/pricing/?p=ps)」を参照してください。

使用しているノードのコア数に基づいて独自のしきい値を決定する必要があります。このしきい値を超えた場合で、主なワークロードが読み込みリクエストから生成されている場合、リードレプリカを追加してクラスターをスケールします。主なワークロードが書き込みリクエストからのものである場合は、より多くのシャードを追加して、より多くのプライマリノード間で書き込みワークロードを分散することをお勧めします。

**ヒント**  
ホストレベルのメトリクス ‭`CPUUtilization`‬ を使用する代わりに、Valkey または Redis OSS エンジンコアの使用率をレポートするメトリクス ‭`EngineCPUUtilization`‬ を使用できる場合があります。‬‬‬ コードでこのメトリクスが利用できるかどうか、およびその詳細については、「[MemoryDB のメトリクス](https://docs.aws.amazon.com/memorydb/latest/devguide/metrics.memorydb.html)」を参照してください。

4 個以上の vCPU を持つ大きなノードタイプでは、Valkey または Redis OSS エンジンコアでの使用量のパーセント値をレポートする `EngineCPUUtilization` メトリクスを使用することをお勧めします。コードでこのメトリクスが利用できるかどうか、およびその詳細については、「[MemoryDB のメトリクス](https://docs.aws.amazon.com/memorydb/latest/devguide/metrics.memorydb.html)」を参照してください。

## EngineCPUUtilization
<a name="metrics-engine-cpu-utilization"></a>

4 個以上の vCPU を持つ大きなノードタイプでは、Valkey または Redis OSS エンジンコアでの使用量のパーセント値をレポートする `EngineCPUUtilization` メトリクスを使用することをお勧めします。コードでこのメトリクスが利用できるかどうか、およびその詳細については、「[MemoryDB のメトリクス](https://docs.aws.amazon.com/memorydb/latest/devguide/metrics.memorydb.html)」を参照してください。

## SwapUsage
<a name="metrics-swap-usage"></a>

バイト単位でレポートされるホストレベルのメトリクスです。詳細については、「[ホストレベルのメトリクス](metrics.HostLevel.md)」を参照してください。

`FreeableMemory` CloudWatch メトリクスが 0 に近い (つまり 100 MB 未満) 場合、または `SwapUsage` メトリクスが `FreeableMemory` メトリクスより大きい場合は、ノードがメモリプレッシャーを受けている可能性があります。

## Evictions
<a name="metrics-evictions"></a>

これは、エンジンのメトリクスです。アプリケーションニーズに基づいてこのメトリクスの独自のアラームしきい値を決定することをお勧めします。

## CurrConnections
<a name="metrics-curr-connections"></a>

これは、エンジンのメトリクスです。アプリケーションニーズに基づいてこのメトリクスの独自のアラームしきい値を決定することをお勧めします。

*CurrConnections* の値が大きくなった場合、アプリケーションに問題があることを示している可能性があります。アプリケーション動作を調査してこの問題を解決する必要があります。

## メモリ
<a name="metrics-memory"></a>

メモリは Valkey および Redis OSS の中核的な側面です。クラスターのメモリ使用率を理解することは、データの損失を回避し、データセットの将来の増加に対応するために必要です。ノードのメモリ使用率に関する統計は、[INFO](https://valkey.io/commands/info) コマンドのメモリセクションで確認できます。

## ネットワーク
<a name="metrics-network"></a>

クラスターのネットワーク帯域幅容量の決定要因の 1 つは、選択したノードの種類です。ノードのネットワーク容量の詳細については、「[Amazon MemoryDB 料金表](https://aws.amazon.com/memorydb/pricing/)」を参照してください。

## レイテンシー
<a name="metrics-latency"></a>

レイテンシーメトリクス `SuccessfulWriteRequestLatency` および `SuccessfulReadRequestLatency` は、Valkey エンジンの MemoryDB がリクエストに応答するのにかかる合計時間を測定します。

**注記**  
Valkey クライアントで CLIENT REPLY を有効にして Valkey パイプラインを使用すると、`SuccessfulWriteRequestLatency` および `SuccessfulReadRequestLatency` メトリクスの値が異常に大きくなる可能性があります。Valkey パイプラインは、個々のコマンドへの応答を待たずに複数のコマンドを一度に実行することでパフォーマンスを向上させる手法です。値が異常に大きくなるのを防ぐために、[CLIENT REPLY OFF](https://valkey.io/commands/client-reply/) の状態でコマンドをパイプラインするように Redis クライアントを設定することをお勧めします。

## レプリケーション
<a name="metrics-replication"></a>

レプリケーションされるデータの量は、`ReplicationBytes` メトリクスを介して見ることができます。レプリケーション容量のスループットに対して`MaxReplicationThroughput` を監視できます。レプリケーション容量のスループットが最大になったら、シャードを追加することをお勧めします。

`ReplicationDelayedWriteCommands` はまた、ワークロードが最大レプリケーション容量スループットを超えているかどうかもわかります。MemoryDB でのレプリケーションの詳細については、「[MemoryDB レプリケーションの概要](https://docs.aws.amazon.com/memorydb/latest/devguide/replication.html)」を参照してください

# メトリクスの統計と期間の選択
<a name="metrics.ChoosingStatisticsAndPeriods"></a>

CloudWatch では、各メトリクスの統計および期間を選択できますが、すべての組み合わせが役に立つとは言えません。例えば、CPUUtilization の Average、Minimum、および Maximum 統計は役に立ちますが、Sum 統計は役に立ちません。

MemoryDB のすべてのサンプルは、個々のノードに対して 60 秒間発行されています。任意の 60 秒間において、ノードメトリクスに含められるサンプルは 1 つだけです。

# CloudWatch メトリクスを使用したモニタリング
<a name="cloudwatchmetrics"></a>

MemoryDB と CloudWatch は、多様なメトリクスを収集できるように統合されています。CloudWatch を使用して、これらのメトリクスをモニタリングできます。

**注記**  
次の例には、CloudWatch コマンドラインツールが必要です。CloudWatch の詳細とデベロッパーツールのダウンロードについては、「[CloudWatch 製品ページ](https://aws.amazon.com/cloudwatch)」を参照してください。

次の手順は、CloudWatch を使用して、過去 1 時間のクラスターのストレージ領域統計を収集する方法を示しています。

**注記**  
以下の例で指定されている `StartTime` 値と `EndTime` 値は、例示を目的としています。実際のノードに適した開始時刻値および終了時刻値で置き換える必要があります。

MemoryDB の制限について詳しくは、「[AWS MemoryDB のサービス制限](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_memorydb)」を参照してください。

## CloudWatch メトリクスをモニタリングする (コンソール)
<a name="cloudwatchmetricsclusters.viewdetails"></a>

 **クラスターの CPU 使用率統計を収集するには** 

1. AWS マネジメントコンソール にサインインして、[https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/) で MemoryDB のコンソールを開きます。

1. メトリクスを表示するノードを選択します。
**注記**  
20 個を超えるノードを選択すると、コンソールでメトリクスを表示できなくなります。

   1. AWS マネジメントコンソールの **[クラスター]** ページで、1 つ以上のキャッシュクラスターの名前をクリックします。

      クラスターの詳細ページが表示されます。

   1. ウィンドウ上部にある **Nodes** タブをクリックします。

   1. 詳細ウィンドウの **[ノード]** タブで、メトリクスを表示するキャッシュノードを選択します。

      使用可能な CloudWatch メトリクスのリストがコンソールウィンドウの下部に表示されます。

   1. **CPU Utilization** メトリクスをクリックします。

      CloudWatch コンソールが開き、選択されたメトリクスが表示されます。**Statistic** および **Period** ドロップダウンリストボックスや **Time Range** タブを使用すると、表示されるメトリクスを変更できます。

## CloudWatch CLI を使用した CloudWatch メトリクスのモニタリング
<a name="cloudwatchmetrics.cli"></a>

 **クラスターの CPU 使用率統計を収集するには** 
+ 以下のパラメータを指定して、CloudWatch コマンド ‭**aws cloudwatch get-metric-statistics**‬ を使用します (示されている開始時刻と終了時刻は例です。適切な開始時刻と終了時刻に置き換える必要があります)。

  Linux、macOS、Unix の場合:

  ```
  1. aws cloudwatch get-metric-statistics CPUUtilization \
  2.     --dimensions=ClusterName=mycluster,NodeId=0002" \
  3.     --statistics=Average \
  4.     --namespace="AWS/MemoryDB" \
  5.     --start-time 2013-07-05T00:00:00 \
  6.     --end-time 2013-07-06T00:00:00 \
  7.     --period=60
  ```

  Windows の場合:

  ```
  1. mon-get-stats CPUUtilization ^
  2.     --dimensions=ClusterName=mycluster,NodeId=0002" ^
  3.     --statistics=Average ^
  4.     --namespace="AWS/MemoryDB" ^
  5.     --start-time 2013-07-05T00:00:00 ^
  6.     --end-time 2013-07-06T00:00:00 ^
  7.     --period=60
  ```

## CloudWatch API を使用した CloudWatch メトリックスのモニタリング
<a name="cloudwatchmetrics.api"></a>

 **クラスターの CPU 使用率統計を収集するには** 
+ 以下のパラメータを指定して、CloudWatch API `GetMetricStatistics` を呼び出します（示されている開始時刻と終了時刻は例です。適切な開始時刻と終了時刻に置き換える必要があります）。
  + `Statistics.member.1``=Average`
  + `Namespace``=AWS/MemoryDB`
  + `StartTime``=2013-07-05T00:00:00`
  + `EndTime``=2013-07-06T00:00:00`
  + `Period``=60`
  + `MeasureName``=CPUUtilization`
  + `Dimensions``=ClusterName=mycluster,NodeId=0002`  
**Example**  

  ```
   1. http://monitoring.amazonaws.com/
   2.     ?SignatureVersion=4
   3.     &Action=GetMetricStatistics
   4.     &Version=2014-12-01
   5.     &StartTime=2013-07-16T00:00:00
   6.     &EndTime=2013-07-16T00:02:00
   7.     &Period=60
   8.     &Statistics.member.1=Average
   9.     &Dimensions.member.1="ClusterName=mycluster"
  10.     &Dimensions.member.2="NodeId=0002"
  11.     &Namespace=Amazon/memorydb
  12.     &MeasureName=CPUUtilization						
  13.     &Timestamp=2013-07-07T17%3A48%3A21.746Z
  14.     &AWS;AccessKeyId=<&AWS; Access Key ID>
  15.     &Signature=<Signature>
  ```