

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

# Amazon MQ for RabbitMQ でのネットワークの耐障害性とモニタリングのベストプラクティス
<a name="best-practices-network-resilience"></a>

 信頼性の高いメッセージングアプリケーションを維持するには、ネットワークの耐障害性とブローカーメトリクスのモニタリングが不可欠です。自動復旧メカニズムとリソースモニタリング戦略を実装するには、次のベストプラクティスを実行します。

## ステップ 1: ネットワーク障害から自動的に回復する
<a name="automatically-recover-from-network-failures"></a>

RabbitMQ ノードへのクライアント接続が失敗した場合の大幅なダウンタイムを防ぐため、自動ネットワークリカバリを常に有効にしておくことをお勧めします。バージョン `4.0.0` 以降の RabbitMQ Java クライアントライブラリは、自動ネットワークリカバリをデフォルトでサポートします。

自動接続リカバリは、接続の I/O ループで未処理の例外がスローされた場合、ソケット読み取り操作のタイムアウトが検出された場合、またはサーバーが[ハートビート](https://www.rabbitmq.com/heartbeats.html)を受信しない場合にトリガーされます。

クライアントと RabbitMQ ノード間の初期接続が失敗した場合、自動リカバリはトリガーされません。アプリケーションコードは、接続の再試行によって、初期接続障害を考慮するように記述することをお勧めします。以下の例は、RabbitMQ Java クライアントライブラリを使用した初期ネットワーク障害の再試行を示しています。

```
ConnectionFactory factory = new ConnectionFactory();
// enable automatic recovery if using RabbitMQ Java client library prior to version 4.0.0.
factory.setAutomaticRecoveryEnabled(true);
// configure various connection settings

try {
  Connection conn = factory.newConnection();
} catch (java.net.ConnectException e) {
  Thread.sleep(5000);
  // apply retry logic
}
```

**注記**  
アプリケーションが `Connection.Close` メソッド使用して接続を閉じる場合、自動ネットワークリカバリは有効化またはトリガーされません。

## ステップ 2: ブローカーメトリクスとアラームをモニタリングする
<a name="monitor-metrics-alarms"></a>

 Amazon MQ for RabbitMQ ブローカーの [CloudWatch メトリクス](amazon-mq-accessing-metrics.md)とアラームを定期的にモニタリングして、メッセージングアプリケーションに影響を与える前に潜在的な問題を特定して対処することをお勧めします。プロアクティブモニタリングは、回復力のあるメッセージングアプリケーションを維持し、最適なパフォーマンスを確保するために不可欠です。

 Amazon MQ for RabbitMQ は、ブローカーのパフォーマンス、リソース使用率、メッセージフローに関するインサイトを提供するメトリクスを CloudWatch に発行します。モニタリングする主なメトリクスには、メモリ使用量とディスク使用量が含まれます。ブローカーがリソース制限に近づいたり、パフォーマンスが低下したりしたときの [CloudWatch アラーム](https://docs.aws.amazon.com/Ihttps://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Alarm-On-Metrics.html)を設定できます。

次の必須メトリクスをモニタリングします。

**`RabbitMQMemUsed` および `RabbitMQMemLimit`**  
メモリ使用量をモニタリングして、メッセージの発行をブロックする可能性のあるメモリアラームを防止します。

**`RabbitMQDiskFree` および `RabbitMQDiskFreeLimit`**  
ディスクの使用状況をモニタリングして、ブローカーの障害の原因となるディスク容量の問題を回避します。

 クラスターデプロイでは、[ノード固有のメトリクス](rabbitmq-logging-monitoring.md#security-logging-monitoring-cloudwatch-destination-metrics-rabbitmq)もモニタリングして、ノード固有の問題を特定します。

**注記**  
高メモリアラームを防ぐ方法の詳細については、「[Address and prevent high memory alarm](troubleshooting-action-required-codes-rabbitmq-memory-alarm.md#address-prevent-high-memory-alarm)」を参照してください。