Route 53 のフェイルオーバー機能を利用したウォームスタンバイ構成の EC2 構築

2021.06.21

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

はじめに

アノテーション株式会社の hato です。

本記事は Route 53 のフェイルオーバー機能を利用したウォームスタンバイ構成を構築する方法をご紹介します。

ウォームスタンバイ?

本記事は次の定義を使用します。

ウォームスタンバイ(warm standby)とは - IT用語辞典 e-Words

ウォームスタンバイとは、機器やシステムを冗長化して信頼性を向上させる手法の一つで、待機系を起動状態にしておくが本番系と同期などは取らず、障害時にシステムを稼動状態に移行して切り替えを行う方式。

AWS でウォームスタンバイ構成にする方法は色々な選択肢がありますが、今回はマネージメントコンソールをポチポチするだけで簡単に構築できる Route 53 のフェイルオーバー機能を使用します。

注意:DNSによるフェイルオーバーは、クライアント側のキャッシュ状況等に依存するため確実な切替にならない場合があります。確実な切替が必要な場合はELB等のフェイルオーバーをご検討ください。

完成図

次のような二台の EC2 によるウォームスタンバイ構成を目指します。

平常時は末尾.250の EC2 (プライマリサーバ)でリクエストを処理し、Route 53 のヘルスチェックが失敗となった際は、自動的に末尾.76の EC2 (セカンダリサーバ)にリクエストを向けるという仕組みです。

前提

手順

  1. プライマリ監視用ヘルスチェックの作成
  2. プライマリレコードの登録
  3. セカンダリレコードの登録

1.プライマリー監視用ヘルスチェックの作成

Route 53 コンソールのナビゲーションペインから「ヘルスチェック」を選択して、「ヘルスチェックの作成」を選択します。

次の値を指定して「次へ」を選択します。
(値について詳しくはこちら)

  • 名前:任意の名前
  • IPアドレス:xxx.xxx.xxx.250

「ヘルスチェックの作成」を選択します。

作成されたヘルスチェックの「ステータス」が「正常」になることを確認します。
※作成直後は「不明」のため、しばらくお待ちください。

2.プライマリレコードの登録

Route 53 コンソールのナビゲーションペインから「ホストゾーン」を選択して、「レコードの作成」を選択します。

次の値を指定して「レコードの作成」を選択します。

  • レコード名:www
  • レコードタイプ:A
  • 値:xxx.xxx.xxx.250
  • ルーティングポリシー:フェイルオーバー
  • フェイルオーバーレコードタイプ:プライマリ
  • ヘルスチェック:作成したヘルスチェックの名前
  • レコードID:任意の値

3.セカンダリレコードの登録

プライマリ同様に「レコードの作成」から、次の値を指定して「レコードの作成」を選択します。

  • レコード名:www
  • レコードタイプ:A
  • 値:yyy.yyy.yyy.76
  • ルーティングポリシー:フェイルオーバー
  • フェイルオーバーレコードタイプ:セカンダリ
  • ヘルスチェック:未選択(※指定しない)
  • レコードID:(プライマリとは異なる)任意の値

最終的に次のような設定になります。

障害時の挙動

設定したヘルスチェックが失敗し、「ステータス」が「異常」になると、次のようにDNSのIPアドレスが自動的に変更されます。
(「ステータス」が「正常」に戻ると、IPアドレスも戻ります)

# 平常時
$ nslookup www.hato.example.com 1.1.1.1
Server:		1.1.1.1
Address:	1.1.1.1#53

Non-authoritative answer:
Name:	www.hato.example.com
Address: xxx.xxx.xxx.250

# 障害時
$ nslookup www.hato.example.com 1.1.1.1
Server:		1.1.1.1
Address:	1.1.1.1#53

Non-authoritative answer:
Name:	www.hato.example.com
Address: yyy.yyy.yyy.76

参考資料

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。