Amazon RDS Proxy監視
概要
Datadogを使ったAmazon RDS Proxyの監視について下記を参考にまとめていきます。
参考
Amazon RDS Proxyについて
Amazon RDS ProxyはRDS向けの高可用性フルマネージド型データベースプロキシで、アプリケーションのスケーラビリティやデータベース障害に対する回復力と安全性を高めます。
RDS Proxyではアプリケーションがデータベースと確立した接続をプールおよび共有でき、データベースの効率とアプリケーションのスケーラビリティが向上します。RDS Proxyを使用するとAuroraとRDSデータベースのフェイルオーバー時間が最大66%短縮し、AWS Secrets ManagerおよびAWS IAMとの統合によりデータベースの認証情報、認証、アクセスの管理が可能となります。
接続エラーの可視化
RDS Proxyには二つのタイプの接続があります。
- クライアント→RDS Proxyへの接続
- RDS Proxy→Databaseへの接続
メトリクス:aws.rds.proxy.client_connections_setup_failed_auth
はクライアントとRDS Proxy間の接続エラー数を表示します。認証の設定ミスやTLSイシューやその他のエラーが原因になります。
aws.rds.proxy.database_connections_setup_failed
はRDS ProxyからDatabaseへの接続エラー数を示します。
このメトリクスの増加は IAM policyやSecurity Groupの問題やその他の認証に関するエラーを示唆します。
その他のメトリクスとしてaws.rds.proxy.availability_percentage
はRDS Proxyに紐付けられているターゲットが接続をアプリケーションへルーティング可能かどうかの割合を示します。
接続数の増強タイミングの可視化
モニタリングする際に現在の接続数(aws.rds.proxy.database_connections
)がクライアントの最大接続数(aws.rds.proxy.max_database_connections_allowed
)を超えていないことを保証したいと思います。
もし頻繁に最大接続数を超えるようであればrds instanceをスケールするかRDS Proxyのパラメータmax_connections
を増加する対応が必要になります。
接続パフォーマンスと再利用の可視化
RDS Proxyのパフォーマンスはセッション中のトランザクションごとの接続がどれだけ再利用されているかによります(multiplexing
と呼ばれます)。
メトリクスaws.rds.proxy.database_connections_currently_session_pinned
でアラートを設定したりaws.rds.proxy.database_connections_currently_borrowed
が閾値を超えたさいにアラート設定することでRDS Proxyのピン状態のモニタリングできます。
multiplexingの確認
またmultiplexing
が想定通り機能していることを可視化するためにクエリリクエスト(aws.rds.proxy.query_requests
)に対する接続リクエスト(aws.rds.proxy.database_connection_requests
)の割合を出してこの値が低く保たれていることで確認できます。
latencyのモニタリング
コネクションの再利用のモニタリングに加えて、RDS Proxyとデータベースがアプリケーションに対して効率よくレスポンスできているかを可視化するためにクエリのスループットとレイテンシをモニタリングすることは重要です。
メトリクスaws.rds.proxy.query_database_response_latency
や全リクエスト数(aws.rds.proxy.query_requests
)に対する割合aws.rds.proxy.query_response_latency
をモニタリングしてアプリケーションとデータベース間のlatencyが増加してないかどうかを監視します。
Discussion