さくらのエンハンスド LBのVIPフェイルオーバーでハマったこと
はじめに
さくらのクラウドの「エンハンスドロードバランサ」には、障害時に自動的に接続先を切り替える「VIPフェイルオーバー機能」というものがある。
この機能を使用した際にいくつかハマったポイントがあったので備忘録としてまとめる。
VIPフェイルオーバーとは?
エンハンスドロードバランサではクライアントがエンハンスドロードバランサに接続する際に使用する仮想IP(VIP)アドレスの到達性を常時監視しています。「VIPフェイルオーバ機能」はDDoS攻撃などによりIPアドレスへの到達が失われ、疎通が取れなくなった場合に自動的に別のVIPアドレスに変更する機能です。これによりサイトへの接続ができない状態が継続することを防ぎ、より可用性を高めることが可能となります。
参照
何らかの原因で、ロードバランサのVIPへの到達性が失われた場合、自動で別のVIPに切り替える機能。追加で料金がかからないので、「じゃあ有効にして損はないか」と思った。
VIPフェイルオーバー設定時の注意点
1. CNAMEでの設定が必要
VIPフェイルオーバ機能を有効にすると、VIPアドレスとDNS名が払い出される。
公式でも推奨されているがDNS名に対しCNAMEをしなければならない。
VIPをAレコードでDNSに登録していた場合、障害時にVIPが切り替わっても名前解決ができないため、アクセス不能となる可能性がある。
ただし、example.com のようなApexドメインには、DNS仕様上CNAMEを設定できない。(RFC 1034の仕様により、CNAMEを設定するとSOAやNSなどの他のレコードと共存できなくなるため)
後からApexドメインにレコード設定することに気づいて、後悔した。
2. VIPフェイルオーバは作成後に設定変更ができない
VIPフェイルオーバを無効にできないかと確認してみたが、しっかりできないと記載されていた
エンハンスドロードバランサの作成完了後にVIPフェイルオーバ機能の有効/無効を切り替えることはできません。
ApexドメインにVIPフェイルオーバーを使いたい場合の対応策
以下の対応策が考えられる
ALIAS対応DNSサービスを使う
さくらのクラウドのFQDNであれば、さくらのドメインではApexにALIASレコードを設定可能。
wwwサブドメインを使う構成に変更
www.example.com にCNAMEを設定し、example.com からリダイレクトする構成に変更。
エンハンスドロードバランサを再作成
VIPフェイルオーバーを無効化して再作成
まとめ
VIPフェイルオーバーは便利な機能ですが、事前にCNAMEが設定できるか確認しておく必要がある。
VIPフェイルオーバーではFQDNが払い出され、CNAMEで設定する前提
ApexドメインではCNAMEが使えないため、ALIASが使えるDNSサービスか、構成変更が必要
構築前にフェイルオーバー有無を検討することが大切
Discussion