Route 53の機能でS3のウェブサイトホスティングにフェイルオーバーしてみた
今回のエントリは前回の続きを書く予定だったのですが、本日Route 53から面白そうな機能がリリースされたので、自分のテスト環境(EC2東京リージョン)と組み合わせてみたくなりました。
【AWS発表】Route53にDNSフェイルオーバー機能が追加。S3のウェブホスティング機能と連携したバックアップサイトを作成可能に。
S3でバックアップサイトを構築
今回の機能はAmazon S3のウェブサイトホスティング機能と組み合わせる事で、バックアップサイトを構築出来るという事なのでバックアップサイトを構築します。
まずはManagement ConsoleでS3にバケットを作成します。(バケット名はアクセスされるFQDNと同じにして下さい)
※せっかくなので今回はテスト環境とは異なるリージョンに作成しています。
次にバックアップページのコンテンツをアップロードします。
作成したバケットを選択して、ActionsからUploadを選択します。
用意していたコンテンツをアップロードします。
コンテンツ(オブジェクト)に対してアクセス許可をするためにコンテンツを選択してActionsからMake Publicを実行します。
次にウェブサイトホスティング機能を有効にするためにバケットの一覧からバケットプロパティを変更して保存します。
Route 53のHealth Checksを設定
次にRoute 53からの監視設定を行います。
Management ConsleからRoute 53を表示させ、Health Checkを作成します。
以下のようにHealth Checkに必要な情報を入力していきます。
- Protocol
- 死活監視用のプロトコルを選択します
- IP Address
- 死活監視対象のIPアドレスを入力します
- Host Name
- 死活監視対象のホスト名を入力します
- Path
- ヘルスチェック用コンテンツのパスを入力します
Create Health Checkをクリックすると、以下のように作成されたものが確認出来ます。
Route 53のHosted Zoneを編集(プライマリ側)
Health Checkが完了したら今度はRoute 53のHosted Zoneの設定を行います。
対象のHosted Zoneを選択して(Go to Record Setsをクリック)対象レコード(www.okochang.com)を編集して保存します。
※Hosted Zoneがない方はCreate Hosted Zoneから作成し、レコードを追加します。
- TTL(Seconds)
- 切り替わりの時間にも影響するので、60秒以下が推奨なようです
- Routing Policy
- Failoverを選択します
- Failover Record Type
- Primaryを選択します
- Set ID
- www-Primaryのように分かりやすいIDを設定します
- Health Check to Associate
- 先ほど作成したヘルスチェックを指定します
Route 53のHosted Zoneを追加(セカンダリ側)
次にバックアップ用のレコードセットを追加します。
Create Record Setsをクリックしてレコードを追加して保存します。
- Name
- wwwのようなサブドメインがある場合は入力します
- Alias
- yesを選択します
- Alias Target
- 作成したS3バケットのエンドポイントを選択します
- Routing Policy
- Failoverを選択します
- Failover Record Type
- Secondaryを選択します
- Set ID
- www-Secondaryのように分かりやすいIDを設定します
- Evaluate Target Health
- Noを選択します
- Associate with Health Check
- Noを選択します
動作確認
Webサーバを停止して動作確認すると、無事にS3にアップしたコンテンツに切り替わった事が確認出来ました。
名前解決をすると、しっかりとS3へのフェイルオーバーが確認出来ました。
フェイルオーバー前
$ dig www.okochang.com any --省略-- ;; ANSWER SECTION: www.okochang.com. 60 IN A 54.249.39.173 --省略--
フェイルオーバー後
$ dig www.okochang.com any --省略-- ;; ANSWER SECTION: www.okochang.com. 60 IN A 103.246.148.166 --省略--
※もちろんですが、Webサーバを起動すると正常系に切り戻されました。