LoginSignup
0
0

More than 1 year has passed since last update.

Route53ヘルスチェックを使用しリカバリサーバーを用意する方法

Posted at

完成図

プライマリサーバが正常に動作しなくなった時、検知してリカバリサーバにルーティングを変更する構成。

リージョンを分けることで冗長化

Untitled (1).png
やってないけど、Route 53 のヘルスチェック先とレコードを変更すれば S3 静的ホスティングとかでもいける、たぶん...

必要リソース

  • EC2インスタンス x2

    • プライマリインスタンス
    • セカンダリインスタンス(プライマリとは別のリージョンに作成)
  • Route53 ヘルスチェック x2

    • プライマリ用
    • セカンダリ用
  • Route53 レコード x2

    • プライマリ用
    • セカンダリ用

ホストゾーンの作成は割愛

  • CloudWatch アラーム x2

    • プライマリ用(ヘルスチェック作成で自動作成)
    • セカンダリ用(ヘルスチェック作成で自動作成)
  • SNS トピック x1

    • プライマリ用(ヘルスチェック作成で自動作成)

構築手順

1. オリジンの作成

EC2インスタンス x2 を別々のリージョンに作成
(S3 静的ホスティングの場合は S3 x2)

2. ヘルスチェックの作成

Route53 ヘルスチェックをプライマリ用、セカンダリ用それぞれ作成

ヘルスチェック作成時に CloudWatch アラーム、SNS トピックが自動的に作成される

作成された段階で SNS トピックから登録したメールアドレスに認証メールが来る、認証を完了しないと通知が来ないので注意

  • 名前 : 適当
  • モニタリング対象 : エンドポイント
  • エンドポイント : ドメイン名
  • プロトコル : HTTP
  • ドメイン名 : EC2のパブリック IPv4 DNS
  • ポート : 80
  • アラームの作成 : はい
  • 通知の送信先 : 新しいSNSトピック
  • トピック名 : 適当
  • Eメール受け取りのアドレス : 適当

image.png
image.png

3. Route 53 レコードの作成

ホストゾーンの作成は割愛
Route53 レコードをプライマリ用、セカンダリ用それぞれ作成

  • レコード名 : ドメイン
  • レコードタイプ : AかAAAA
  • 値 : EC2インスタンスを指定
  • エイリアス : いいえ
  • TTL : 用途に応じて
  • ルーティングポリシー : Failover
  • フェイルオーバーレコードタイプ : プライマリ、セカンダリ
  • ヘルスチェックID : Route53 ヘルスチェック
  • レコードID : プライマリとセカンダリで別のID

スクリーンショット 2022-06-23 17.20.11.png

4. CloudWatch アラームの設定変更

Route 53 ヘルスチェック時に自動的に CloudWatch アラームが作成される。
このままだとヘルスチェックのエラーは設定したメールに通知してくれるが、エラーが解除され正常に戻ったことは通知してくれない。
エラー状態の解除も通知するように設定を追加する。

  1. 作成された CloudWatch アラームを Route 53 ヘルスチェクから確認
  2. アクションのプルダウンから編集を選択
  3. アクションの設定で通知の追加をクリック、以下のようにOKを選択

スクリーンショット 2022-06-23 17.52.19.png

動作テスト

プライマリを手動で停止しセカンダリに切り替わること、再び起動したらプライマリに戻ることを確認する

動作テスト中は一時的にTTLを短くすると、プライマリを停止してからセカンダリ切り替わるまでが早い

参考までに TTL 10sec でのプライマリ停止後に切り替わるまでの時間は3分弱ほどだった

ターミナルで実行
>dig [レコード名] @1.1.1.1
~
;; ANSWER SECTION:
[レコード名]. 60 IN	A	[primary Elastic IP]
~

プライマリ停止

>dig [レコード名] @1.1.1.1
~
;; ANSWER SECTION:
[レコード名]. 60 IN	A	[secondary Elastic IP]
~

プライマリ起動

>dig [レコード名] @1.1.1.1
~
;; ANSWER SECTION:
[レコード名]. 60 IN	A	[primary Elastic IP]

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0