LoginSignup
2
1

More than 1 year has passed since last update.

独自ドメインを設定する / 障害時はSORRYページへ通信を流す

Last updated at Posted at 2021-06-23

内容

この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com
前回の「スケーラビリティのあるブログサービスを構築する」のレッスンに引き続き、今回はRoute53とS3の機能を使い、独自ドメインを設定と障害時にSORRYページへ通信を流すという設定を行なっていきたいと思います。

前回の記事

現状は、クライアントのブラウザのURL欄にロードバランサーのドメイン名を入力すると、ロードバランサーまでアクセスでき、ブログが表示される状態です。
今回は、まずFreenomというサービスを利用して無料のドメインを取得します。
取得したドメインでアクセスできるようにRoute53に設定変更を加えていきます。
Route53は外部のサービスで取得したドメインも設定ができます。
その後、フェイルオーバールーティングの設定を行います。
S3にHTMLファイルをアップロードして、S3の静的ウェブサイトホスティング機能でSorryサイトを作成します。
プライマリの通信に問題が発生した場合は、セカンダリに通信を流す設定を行います。
スクリーンショット 2021-06-23 12.21.48.png

実施手順

前回の記事の構成がされていることを前提で進めていきます。

準備

  1. EC2インスタンスが2台立ち上がっていることを確認
  2. RDSを削除した場合は、スナップショットから復元しておく。
  3. 復元したデータベースのステータスが利用可能になるまで待つ。
  4. ロードバランサーのIPアドレスでブログが閲覧できることを確認しておく。

ドメインの取得とRoute53の設定

今回は無料でドメインを取得できるFreenomというサービスを利用します。

Freenom https://www.freenom.com/ja/index.html

  1. Freenomにアクセスし、新しい無料ドメインを探しますと表示されている検索窓から希望するドメイン名を検索する。
  2. 検索結果が表示されるので、一覧の中から今すぐ入手!を選択
  3. 今すぐ入手!選択となったらチェックアウトを選択
  4. Periodで使用する期間を選択(12ヶ月までは無料)
  5. Continueを選択
  6. ログインしていない場合はGoogleのアカウントなどと紐づけておく。
  7. ログイン後、右上のタブから名前を選択、view cartを選択すると、カートの中身が表示されるので、利用規約確認のチェックボックスにチェックをいれ、Complete Orderを選択
  8. 画面が切り替わるので、上部のServicesタブからMy Domainsを選択
  9. 入手したドメインのManage Domainを選択
  10. Management ToolsタブからNameserversを選択
  11. Use custom nameservers (enter below)のラジオボタンをチェック
  12. ネームサーバーの記入箇所が出てくるので開いたままにしておく。
現状だと、Freenomの方でDNSレコードの設定などの作業が必要になるので、ドメインの管理サーバーをRoute53のネームサーバーに書き換えます。
  1. Route53の画面を開き、ホストゾーンの作成を選択
  2. ドメイン名:先ほど入手したドメイン名を入力
  3. ホストゾーンの作成を選択
  4. レコードの値/トラフィックのルーティング先の4つの値を1つずつ先ほどのFreenomのネームサーバーの記入箇所にコピーする。
  5. Change Nameserversを選択
上記の作業は、「取得したドメインは、Route53で管理します。」とFreenomに教えてあげているイメージになります。

取得したドメインとロードバランサーを紐づける

  1. Route53のホストゾーンから作成したドメイン名を選択し、レコードを作成を選択
  2. ルーティングポリシーはシンプルルーティングを選択して次へ進む。
  3. シンプルなレコードを定義を選択
  4. レコード名:blogと入力
  5. 値/トラフィックのルーティング先:Application Load BalancerとClassic Load Balancerへのエイリアスを選択
  6. リージョンは東京を選択
  7. シンプルなレコードを定義を選択
  8. レコードを作成を選択
  9. 取得したドメイン名をブラウザのURL欄に貼り付けて、ブログにアクセスできることを確認する。

S3バケットの作成

S3の静的ウェブサイトホスティング機能でSorryサイトを作成します。
S3バケットの名前をドメインの名前と同じにする必要があるので注意しましょう。
  1. S3の画面に移動し、バケットを作成を選択
  2. バケット名にはドメイン名を入力
  3. パブリックアクセスをすべてブロックのチェックを外す。
  4. 現在の設定により、このバケットとバケット内のオブジェクトが公開される可能性があることを承認します。にチェックをつける。
  5. バケットを作成を選択

Sorryページの設定

  1. 作成したバケットを選択
  2. アップロードを選択
  3. ファイルを追加フォルダを追加を選択して表示させたいファイルやフォルダを選択
  4. アップロードを選択
  5. 閉じるを選択
  6. プロパティタブを選択
  7. 下にスクロールすると静的ウェブサイトホスティングの項目があるので編集を選択
  8. 静的ウェブサイトホスティング有効にするにチェックをつける。
  9. インデックスドキュメントを入力(HTMLファイルの名前)
  10. エラードキュメントを入力(error.htmlでOK)
  11. 変更の保存を選択
  12. アクセス許可タブを選択
  13. バケットポリシーの項目の編集を選択
  14. AWS公式サイトのバケットポリシーのサンプルコードをコピーしてペースト(https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/WebsiteAccessPermissionsReqd.html)
  15. サンプルコードでBucket-Nameとなっている箇所をバケット名に変更する。
  16. 変更の保存を選択
  17. プロパティタブの静的ウェブサイトホスティングからバケットウェブサイトエンドポイントを選択し、Sorryページが表示されることを確認する。

フェイルオーバールーティングの設定

プライマリの通信に異常があった場合にセカンダリとしてSorryページが表示されるように設定します。
  1. Route53を開き、レコード名がドメイン名のものを選択し、レコードを編集を選択
  2. ルーティングポリシーフェイルオーバーに変更
  3. フェイルオーバーレコードタイププライマリを選択
  4. レコードIDを入力(例. LB-P)
  5. 保存を選択
続いてセカンダリ用のRoute53のDNSレコードを作成します。
  1. レコードを作成を選択
  2. フェイルオーバーを選択して次へ
  3. レコード名はプライマリと合わせる。
  4. TTL (秒)はテストなので60としておく。
  5. フェイルオーバーレコードを定義を選択
  6. 値/トラフィックのルーティング先:S3 ウェブサイトエンドポイントへのエイリアスを選択
  7. リージョンは東京を選択
  8. S3バケットの項目は先ほど作成したバケットを選択
  9. フェイルオーバーレコードタイプ:セカンダリを選択
  10. レコードIDを入力(例. LB-S)
  11. フェイルオーバーレコードを定義を選択
  12. レコードを作成を選択

設定した機能を確認

  1. 一度取得したドメイン名でアクセスして問題なく閲覧できることを確認
  2. サービスに障害が発生したと仮定して、EC2インスタンスを2台とも停止させる。
  3. インスタンス停止後に再度アクセスしてSorryページが表示されることを確認する。
  4. EC2インスタンスを2台とも起動させる。
  5. インスタンス起動後に再度アクセスして通常のページが閲覧できることを確認できればOK
2
1
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
2
1