Help us understand the problem. What is going on with this article?

Route53を利用した障害時のDNS自動切り替え

サーバー障害時にDNSを切り替えて予備系に流したり、メンテ中の表示を出すのに自動でDNSを切り替える事ができないかな...と思い立ってやってみました。

使うもの

  • AWS Route53

費用

AWSエンドポイント対しては50件までは無料なはずです。AWS外の場合は$0.75/月のようです。

トラフィックフローの場合は$50/月なのでフェイルオーバーだけの目的であれば、月約100円で安心が買えます。

  • 新規および既存のお客様は、AWS アカウント内にあるか、AWS アカウントにリンクされた最大 50 個の AWS エンドポイントに対してヘルスのェックを無料で利用できます (オファー)。

https://aws.amazon.com/jp/route53/pricing/

設定方法

ヘルスチェック

DNSの切り替えるための死活監視のために、まずはRoute53のヘルスチェックの設定をします。

  • 「ヘルスチェックの作成」を選択します。
  • 環境設定で名称を入れ、モニタリングの対象にエンドポイントを選択します。

スクリーンショット_2019-02-25_10_55_28.png

  • エンドポイントの監視の部分にはチェック対象のIPアドレスを設定します。

スクリーンショット_2019-02-25_10_55_28.png

DNS設定

プライマリー側

  • TTLは切り替えを考慮して60secが推奨のようです。「1m」を押すと60が入ります。
  • Routing Policyに「Failover」を設定し、メインのFailover Rocord Type に「Primary」を設定します。Seit-IDは自動作成されます(特に変更する必要は無いようです)
  • Associate With Health Check に「Yes」を設定し、先ほどヘルスチェックで設定した名称を入れます。

スクリーンショット_2019-02-25_10_58_37.png

セカンダリー側

  • セカンダリー側も同じサブドメインで設定します。
  • TTLは切り替えを考慮して60secが推奨のようです。「1m」を押すと60が入ります。
  • Routing Policyに「Failover」を設定し、メインのFailover Rocord Type に「Secondary」を設定します。

スクリーンショット_2019-02-25_10_58_44.png

  • セカンダリーは生きている前提なのでAssociate With Health Check は「No」で良いかと思います(節約)

テスト方法

サーバーを落とす方法もありますが、ヘルスチェックの「高度な設定」で「ヘルスチェックステータを反転」にチェックを入れる事でDNSの切り替わりが確認できると思います。

スクリーンショット_2019-02-25_11_04_02.png

ごにょごにょ

ヘルスチェックはICMP Pingが使えないので、ルータなどの場合はどこか監視用のTCPポートを開けておく必要があります。また、HTTPの場合200が返ってくるのが条件なので、適当に設定して404等になっているとヘルスチェック失敗になりますのでご注意ください(知らなかった。

ただ、これをうまく利用すると、特定のHTMLファイルが無い時にはDNSの向き先が変わるような設定ができるので保守時などにも使えるような気がします。

参考

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/dns-failover.html

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした