RDS Proxy 経由の Blue/Green Switchover では AdminShutdown ではなく SSL 切断が発生する
RDS Proxy 経由の Blue/Green Switchover を検証していて気づいた。ドキュメントでは Aurora PostgreSQL の Switchover 中のエラーとして AdminShutdown: terminating connection due to administrator command が記載されているが、RDS Proxy 経由では別のエラーが返ってきた。
SSL connection has been closed unexpectedly
connection to server was lostドキュメントの AdminShutdown は Blue が read-only モードに入った後にクライアントが直接受け取るエラーだ。RDS Proxy 経由の場合、Proxy が過渡期にクライアント接続を維持したまま内部で Blue にルーティングを継続し、Switchover 完了を検知した時点で接続をドロップすると考えられる。そのため、クライアントが受け取るのは AdminShutdown ではなく SSL 切断になる。
アプリケーション側のエラーハンドリングで AdminShutdown だけを捕捉していると、RDS Proxy 経由の Switchover を検出できない。接続プールのヘルスチェックや、SSL/接続切断系のエラーも含めてリトライ対象にしておく必要がある。
