※本件、カスタムエンドポイントで確認。
(Reader Endpointで同様に起こるかは未確認)
Auroraにはオートスケーリング機能があり、一定時間高い負荷がかかると自動的にインスタンスが増える仕組みになっています。
しかしながら、この設定を戻す時(インスタンスが減る時)にアクセス不能になる不具合があります。
Auroraを減らす前は以下のように正常にANSER SECTIONが返ってきますが、
$ dig xxxxx-ro-service.cluster-custom-xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.68.rc1.58.amzn1 <<>> xxxxx-ro-service.cluster-custom-xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26437
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;xxxxx-ro-service.cluster-custom-xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com. IN A
;; ANSWER SECTION:
xxxxx-ro-service.cluster-custom-xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com. 1 IN CNAME xxxxx003.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com.
xxxxx003.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com. 5 IN A 10.0.151.166
;; Query time: 4 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Mon Nov 16 10:15:54 2020
;; MSG SIZE rcvd: 151
手動でカスタムエンドポイントから増えたインスタンスを削除すると、ANSWER SECTIONが返ってこない状態になります。(約15分間、返ってきたりこなかったりする)
$ dig xxxxx-ro-service.cluster-custom-xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.amzn2.0.4 <<>> xxxxx-ro-service.cluster-custom-xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 43227
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xxxxx-ro-service.cluster-custom-xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com. IN A
;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Mon Nov 16 10:33:18 JST 2020
;; MSG SIZE rcvd: 108
AWSに本件を質問したところ、以下の回答でした。
(2020/11/16現在、まだ改善はされていない様子)
カスタムエンドポイントからインスタンスを削除した際、
しばらくAレコードが返却されなくなるのは、恐れ入りますが、
現在の仕様となっております。
したがって、こちらを発生させないようにすることはできません。
ご期待に沿えない回答となり申し訳ございません。
代替案としては、変更後のカスタムエンドポイントを別に作成いただき、
アプリケーション側でエンドポイントを切り替えることで変更する方法が考えられます。
アプリケーション側の改修が必要となってしまい恐縮ですが、
ご検討いただけますと幸いです。
なお、こちらの仕様については、他のお客様からも機能改善のご要望をいただいており、
現在サービス担当部署にて検討中となっております。
具体的な日時等詳細は未定ですが、
本ケースもサービス担当部署へフィードバックさせていただきました。
回避方法
ワークアラウンドとして、カスタムエンドポイントをもう一つコピーしておき、以下の手順で都に戻します。
- アプリケーション側でコピーしたカスタムエンドポイントに切り替える
- カスタムエンドポイントから増えてしまったAuroraをエントリから外す
- 増えてしまったAuroraを削除する
- ↑の15分後に、アプリケーション側で元のカスタムエンドポイントに戻す