こんにちは、河合です。以前はIDCFクラウドDNS/GSLBのGSLB機能について紹介いたしました。振り返りになりますが、GSLBはDNSの名前解決を用いたロードバランシング機能です。ヘルスチェックや重み付けができるラウンドロビン方式による分散を実現します。 今月このGSLBの機能拡張がリリースされてCNAMEレコードにも対応可能となったので、それによりできるようになったことと活用事例をお伝えいたします!
関連記事
3ステップで導入!GSLBを使ってDR対策にトライ
CNAMEレコード対応でできること
これまではAレコードのみ分散対象として登録可能でした。そのため、たとえば図1のようなActive/Standby構成を実現したい場合は各環境のWebサーバー1台ずつに対してGSLBを設定していました。
▲図1 GSLBによるAレコード分散
example.comゾーン
gslb.example.com IN A 1.1.1.1 重み1 IN A 1.1.1.2 重み1 IN A 1.1.1.3 重み1 IN A 2.2.2.1 重み0 IN A 2.2.2.2 重み0 IN A 2.2.2.3 重み0
今回の機能アップデートではCNAMEレコードに対しGSLB設定をすることができるようになりました。これによって、たとえばこれまで多くのリクエストをいただいていたILBやコンテンツキャッシュとの連携が可能となります(図2)。
▲図2 分散対象としてILBを登録
example.comゾーン
gslb.example.com IN CNAME ilb1.idcfcloud.net 重み1 IN CNAME ilb2.idcfcloud.net 重み0
ドメインを直接指定できるようになったことでFQDN単位のサービスなどを分散先として登録可能になりました。実現したい構成に沿った、より柔軟な分散方法が選択できるようになりましたね!
実際のGSLB設定画面は図3のようになっています。Aレコードの設定時と同じ要領で、CNAMEレコードに対してもGSLBの「有効」を選択します。
▲図3 CNAMEレコード記述画面 GSLB有効化設定
そうするとFQDNの入力欄が表示されるので、プルダウン形式で任意のFQDNを選択します。ここで表示される選択肢は同一アカウント内で作成されているILBのFQDN・コンテンツキャッシュの独自ドメインとなります。もし別アカウントで作成しているILBやコンテンツキャッシュに分散したい場合はチケットからお問い合わせください。
また、オブジェクトストレージを直接指定することはできませんが、コンテンツキャッシュのオリジンサーバーとしてオブジェクトストレージを登録いただければ、連携させることが可能です。
重み付けに対する動作
GSLBでは重み付けラウンドロビンで分散を実現しているので、各レコードに対し0から10の重みを指定します。Aレコード/CNAMEレコードともに、通常時は重み0以外のレコードに対し設定された重み付けに従って応答します。重み付けがすべて0の場合、各レコードの応答仕様は次の通りとなります。
■Aレコード:クエリに対し、すべてのレコードが応答
■CNAMEレコード:クエリに対し、いずれかの1レコードが応答
ヘルスチェック動作
CNAMEレコードの場合、名前解決によって選択された1つのIPアドレスに対してヘルスチェックを行います。
その他の設定項目、挙動についてはこれまでのAレコードと同様となります。細かな仕様については次のFAQに掲載していますのでぜひご参照ください。
FAQ - GSLBのヘルスチェック仕様
活用事例
上記ではIDCFクラウド上のサービス連携についてお話してきましたが、マルチクラウドでご利用のケースにもご活用いただけます。たとえばIDCFクラウドとAWSの併用でELBを利用している環境(図4)では、GSLBの分散先としてそれぞれのFQDNを登録します。
※セキュリティ上GSLBの分散先として登録できる範囲を同一アカウント内のILB・コンテンツキャッシュに絞っていますので、次のようなケースでご利用になる場合もチケットにてお問い合わせください。
▲図4 マルチクラウド環境例
example.comゾーン
gslb.example.com IN CNAME ilb.idcfcloud.net 重み1 IN CNAME elb.aws.com 重み0
こうすることでマルチクラウド環境間でのActive/Activeの分散や、物理拠点を分けた分散による耐障害性の向上など自由度の高い構成が実現できます。みなさんの用途、要件に応じたご利用方法をぜひ検討してみてください。 なおDNSのルール上(RFC1912)、ホスト名なしのドメイン(ZoneApex)に対するCNAMEレコードは登録できませんのでご留意ください。