投稿

8月, 2018の投稿を表示しています

DNSフェイルオーバー

イメージ
Markdown to HTML 初めまして、ASD堤です。 今回はAWSの DNSフェイルオーバー機能 を利用して、サーバレスなSorryページの構築を紹介したいと思います。 Sorryページとは、Webサイトなどが障害やメンテナンスなどで停止している際に、アクセスしてきた利用者にその旨を告げるページのことです。 DNSフェイルオーバーとは? そもそも、 DNSフェイルオーバー とは何なのかを軽く説明します。 DNSは、たとえば example.com = XXX.XXX.XXX.XXX (IPアドレス) のように、「ドメイン名」と「サーバのIPアドレス等」を紐付けています。 この時に、XXX.XXX.XXX.XXX(Webサーバ)に何らかの障害が発生し、 サービスを継続できない状態に陥った場合に、 example.com = ZZZ.ZZZ.ZZZ.ZZZ (別のIPアドレス) に自動で変更する仕組みを DNSフェイルオーバー といいます。 つまり、あるドメインへのリクエストを受けたサーバに何らかの障害が発生していた場合に、ドメイン名を変更せずにそのドメインへのリクエストの受け先を変更する仕組みのことです。 ※ Route53が返却するIPアドレス 正常時: Primary ServerのIPアドレス 異常時: Secondary ServerのIPアドレス サーバレスなSorryページの構築 以下のような構成で構築していきましょう。 Route53がELBのヘルスチェックのステータスを確認し、ELBがhealthy(正常)ならばELB側のレコードを、ELBがunhealthy(異常)ならばCloudFront側のレコードをアクセス元に返すようになっています。 構築手順 ELB または EC2 ELBやEC2インスタンス等の特別な設定はありません。 S3 S3では以下の対応を行います。 Sorryページ用のBucketの作成 (Bucket名はドメイン名と同様) SorryページのHTMLをBucket直下に配置してアクセス権限をパブリックに変更 CloudFront CloudFrontでは以