Global Acceleratorを利用してDNSレコードのTTL設定を延長してみた

2019.10.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSチームのすずきです。

2019/10/22 日本時間の午前中、Route53に対するDDoS攻撃が発生、 その緩和処置の副作用が一部のISPに波及した事で、DNSを利用したAWSリソースの名前解決が局所的に不安定となる事象が発生しました。

Service Health Dashboard

Route53で発生した問題についてはAWS側で対策が取られるとされていますが、 利用者側で可能な対策として DNSレコードのTTLの延長をAWS Global Accelerator の固定IPを用いて設定する機会がありましたので、紹介させていただきます。

構成

設定

Global Accelerator

Global Accelerator は 以下で設定済みのものを利用しました。

Global AcceleratorのDNS名を利用したエイリアス設定を試してみた

Route53

名前解決設定をエイリアス指定から、以下に変更しました。

  • タイプ: Aレコード (A - IPv4 アドレス)
  • TTL: 10800秒 (3時間)
  • 値: Global Accelerator の固定IPアドレス

確認

変更前

Global Accelerator を Route53のエイリアスとして設定中のTTLは 5分でした。

;; ANSWER SECTION:
dev.classmethod.jp.	299	IN	A	13.248.154.248
dev.classmethod.jp.	299	IN	A	76.223.19.169

[Amazon Route 53]初めて知ったALIASレコード利用時のTTL

変更後

Route53の Aレコードとして登録した 長いTTL(3時間)設定が確認できました。

;; ANSWER SECTION:
dev.classmethod.jp.	10800	IN	A	76.223.19.169
dev.classmethod.jp.	10800	IN	A	13.248.154.248

まとめ

ALBの名前解決は、Route53のエイリアス、またはCNAMEでの設定が必要ですが、 Global Accelerator を利用する事で、固定IPを Aレコード として設定可能です。

DNSレコードのTTL値を延長する事により、DNSキャッシュが機能する範囲となりますが、一時的な名前解決の問題の回避が期待できます。

東京リージョンのELBで稼働する国内向けサービスでGlobal Accelerator を利用すると、1時間あたり0.025 USDの費用と、1GBあたり0.01 USD(日本国内) プレミアムデータ課金。 Route53の名前解決をエイリアスでなくAレコードで指定すると、100 万件のクエリごとに 0.400 USD (標準クエリ)の課金が発生します。

ALBを利用するシステムでこれらの費用が許容出来る場合には、Global Accelerator の固定IPを利用した Aレコード設定をお試しください。

尚、長過ぎるTTL設定はDNSの名前解決設定を変更する際、問題となる可能性もありますのでご注意ください。