当社では、プライベート DNS に Route53 を使用しています。具体的には、ダンプ/遅延ロード バランシングのヘルス チェックなしで、マルチ値回答ルーティング ポリシーを使用しています。
これは私たちにとってはうまく機能していましたが、昨日奇妙な動作に気づきました。
ro.mysql.foo.bar.com
読み取り専用 MySQL レプリカの IP を含む のレコード セットがあります。
DIG を実行するとこれが反映されます。
dig A ro.mysql.foo.bar.com
;; QUESTION SECTION:
;ro.mysql.foo.bar.com. IN A
;; ANSWER SECTION:
ro.mysql.foo.bar.com. 4 IN A 10.2.2.2
ro.mysql.foo.bar.com. 4 IN A 10.2.2.3
ro.mysql.foo.bar.com. 4 IN A 10.2.2.4
予想される動作は、mysql がヒットするとro.mysql.foo.bar.com
、ランダムな負荷分散方式で 3 つのホストの 1 つにランダムに接続します。これは昨日まで正常に動作していました。
もし私が走ったら
mysql -h ro.mysql.foo.bar.com -e "select @@hostname;"
の出力は、、、@@hostname
の間で変化すると予想されます。10.2.2.2
10.2.2.3
10.2.2.4
代わりに、3 つの IP 間でトラフィックをランダムにルーティングするのではなく、1 つの IP のみを使用します。
+-----------------------------------+
| @@hostname |
+-----------------------------------+
| 10.2.2.3 |
+-----------------------------------+
DNS から削除すると、10.2.2.3
使用が停止されます。再度追加すると、再び使用され続けます10.2.2.3
。
当社では PowerDNS (段階的に廃止予定) 経由で独自のリゾルバを実行していますが、当社が確認した限りではそこに障害は見当たりません。PowerDNS の DNS キャッシュも消去されています。