

# Amazon CloudWatch メトリクスで Aurora MySQL インスタンスの使用量を評価する
<a name="AuroraMySQL.BestPractices.CW"></a>

CloudWatch メトリクスを使用して、DB インスタンスのスループットをモニタリングし、DB インスタンスクラスがアプリケーションに十分なリソースを供給しているかどうかを判断できます。DB インスタンスクラスの制限に関する詳細については、「[Aurora 用の DB インスタンスクラスのハードウェア仕様](Concepts.DBInstanceClass.Summary.md)」を参照してください。DB インスタンスクラスの仕様を検索して、ネットワークパフォーマンスを確認します。

DB インスタンスの使用量がインスタンスクラスの限界に近い場合、パフォーマンスが低下し始める可能性があります。CloudWatch メトリクスによってこの状況を確認できるので、より大きなインスタンスクラスへの手動スケールアップを計画できます。

以下の CloudWatch メトリクス値を組み合わせて、インスタンスクラスの限界に近づいているかどうかを確認します。
+ **NetworkThroughput** - Aurora DB クラスター内の各インスタンスについて、各クライアントによって送受信されたネットワークスループットの量。このスループット値には、DB クラスターとクラスターボリューム内のインスタンス間のネットワークトラフィックは含まれません。
+ **StorageNetworkThroughput** – Aurora DB クラスター内の各インスタンスによって Aurora ストレージサブシステムとの間で送受信されたネットワークスループットの量。

**NetworkThroughput** を **StorageNetworkThroughput** に加えると、Aurora DB クラスター内の各インスタンスによって Aurora ストレージサブシステムとの間で送受信されたネットワークスループットになります。インスタンスのインスタンスクラス限界は、この 2 つのメトリクスの合計よりも大きい必要があります。

 以下のメトリクスを使用して、送受信時のクライアントアプリケーションからのネットワークトラフィックの詳細を確認できます。
+ **NetworkReceiveThroughput** – Aurora MySQL DB クラスター内の各 DB インスタンスがクライアントから受信したネットワークスループットの量。 DB クラスターとクラスターボリューム内のインスタンス間のネットワークトラフィックは、このスループットに含まれません。
+ **NetworkTransmitThroughput** – Aurora DB クラスター内の各インスタンスが各クライアントに送信したネットワークスループットの量。 DB クラスターとクラスターボリューム内のインスタンス間のネットワークトラフィックは、このスループットに含まれません。
+ **StorageNetworkReceiveThroughput** – DB クラスター内の各インスタンスが Aurora ストレージサブシステムから受信したネットワークスループットの量。
+ **StorageNetworkTransmitThroughput** – DB クラスター内の各インスタンスが Aurora ストレージサブシステムに送信したネットワークスループットの量。

これらすべてのメトリクスを合計して、ネットワーク使用量と DB インスタンスクラスの制限との比較を評価します。インスタンスクラス限界は、これらのメトリクスの合計よりも大きい必要があります。

ストレージのネットワーク制限と CPU 使用率は直接関係しています。ネットワークのスループットが増加すると、CPU 使用率も増加します。CPU とネットワークの使用状況を監視すると、リソースがどのくらい枯渇しているのか、またなぜ枯渇しているのかについての情報が得られます。

ネットワークの使用量を最小限に抑えるには、次のことを検討してください。
+ より大きな DB インスタンスクラスを使用します。
+ 書き込みリクエストをバッチに分割して、トランザクション全体を減らします。
+ 読み取り専用ワークロードを読み取り専用インスタンスに転送します。
+ 未使用のインデックスをすべて削除します。