🥬

Amazon RDS Proxy監視

2022/08/29に公開

概要

Datadogを使ったAmazon RDS Proxyの監視について下記を参考にまとめていきます。

参考
https://www.datadoghq.com/ja/blog/monitor-rds-proxy-with-datadog/

Amazon RDS Proxyについて

Amazon RDS ProxyはRDS向けの高可用性フルマネージド型データベースプロキシで、アプリケーションのスケーラビリティやデータベース障害に対する回復力と安全性を高めます。

RDS Proxyではアプリケーションがデータベースと確立した接続をプールおよび共有でき、データベースの効率とアプリケーションのスケーラビリティが向上します。RDS Proxyを使用するとAuroraとRDSデータベースのフェイルオーバー時間が最大66%短縮し、AWS Secrets ManagerおよびAWS IAMとの統合によりデータベースの認証情報、認証、アクセスの管理が可能となります。

https://aws.amazon.com/jp/rds/proxy/

接続エラーの可視化

RDS Proxyには二つのタイプの接続があります。

  1. クライアント→RDS Proxyへの接続
  2. 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