6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Route53を使って、色々なルーティングを試してみた。

Last updated at Posted at 2021-02-10

#はじめに
Route53はAWSのDNS(Domain Name System)サービスです。
DNSとはドメイン(例:google.co.jp)とIPアドレス(例:172.217.161.35)を紐づけてくれるシステムのことです。

Route53には様々なルーティングポリシーがあります(以下表参照)。

ルーティングポリシーの種類 簡単な説明
シンプルルーティング 単一のリソースに対してルーティングを行う
加重ルーティング 複数のリソースに対して、指定した比率でルーティングを行う
位置情報ルーティング ユーザーの位置に基づいて、リージョンを選択してルーティングを行う
レイテンシールーティング 一番応答時間が短いリージョンのルーティングを行う。
複数値回答ルーティング 複数のリソースに対して、ランダムにルーティングを行う(最大8つのレコードを使用することができる)
フェイルオーバールーティング プライマリとセカンダリにルーティングを分けて、プライマリのヘルスチェックに失敗すると、セカンダリにルーティングを行う。

本記事では、上記の中でも、『シンプルルーティング』『加重ルーティング』『フェイルオーバールーティング』を設定していきます。

#前提

  • 本記事で扱うこと
    本記事では、Route53の設定とS3の設定(フェイルオーバールーティングの時)のみ扱い、簡単な手順を記載していきます。
    VPC, EC2等の設定やドメインの取得については記載をしません。

  • 使用するドメインについて
    今回は、『test-aws123.tk』というドメインをfreenomというサービスで無料で作成していきます。
    【URL】https://www.freenom.com

  • EC2インスタンスについて
    今回、EC2インスタンスにはapacheをインストールしており、簡単なページを表示できるようにしています。

#ホストゾーンの作成

まずはRoute53に使用するドメインを登録していきます。
Route53のページにいき、『ホストゾーンを作成』をクリックします。
freenomで取得したドメインを入力します。
タイプはパブリックゾーンを指定し、『ホストゾーンを作成』をクリックします。
スクリーンショット 2021-02-09 17.27.19.png

これで、Route53のホストゾーンを作成することができました。
それでは、『シンプルルーティング』、『多重ルーティング』、『フェイルオーバールーティング』について、それぞれ設定をしていきます。

#シンプルルーティング

###目指す構成
以下の構成を目指していきます。

スクリーンショット 2021-02-09 18.18.31.png

Route53に対して、紐づけは一つ(ALB)のみです。

###手順

  • レコードを作成していきます。
    スクリーンショット 2021-02-09 17.30.35.png

  • レコードタイプは『A』で、Test-LBというロードバランサーに紐づけていきます。
    スクリーンショット 2021-02-09 17.45.16.png

これで、設定完了です。
試しにブラウザにhttp://test-aws123.tk を打つと、設定したページを表示させることができます。

#加重ルーティング
###目指す構成
以下の構成を目指していきます。
スクリーンショット 2021-02-10 15.39.26.png

2つのVPCがありますが、これらのどちらのページを表示するかは、各リソースの重量の比率で変わってきます。
今回は2つのリソースとも重量を100に設定していきます(重量は0〜255まで設定が可能です)。

###手順

  • ルーティングポリシーを加重ルーティングに設定して、まずはALBの方をルーティングとして設定していきます。
    レコードタイプは『A』で設定していきます。
    また、今回は重量は『100』、レコードIDは『Test-record1』と設定しました。
    スクリーンショット 2021-02-10 16.40.33.png

  • 次にEC2の方も同様に設定していきます。
    レコードタイプは『A』で設定していきます。
    また、今回は重量は『100』、レコードIDは『Test-record2』と設定しました。
    スクリーンショット 2021-02-10 16.41.08.png

ブラウザにhttp://test-aws123.tk を打ってみると、どちらかのページが表示されます。
今回は重量が同じ値であるため、ページの表示は半々です。

###補足
試しにブラウザをリロードしまくりましたが、なぜがページが変わらない現象がおきました。
原因はTTLが長すぎた(デフォルトの300秒に設定)ということがわかりました。
TTLを短くした結果、リロードでページを変更することができました。

「TTLって何だっけ」という未来の自分に対して
TTLとはキャッシュサーバーにデータを保存しておく期間のようなものです(Time To Liveの略)。

名前解決をする際、クライアント(ブラウザ)はまずキャッシュサーバーに問い合わせます。
キャッシュサーバーはルートサーバー等各種サーバーに問い合わせて、リスポンスを返します。

この時、キャッシュサーバーが一々各種サーバーに問い合わせると時間がかかってしまうため、キャッシュサーバーに情報を一時的に残しておきます。
このキャッシュサーバーに残しておく時間をTTLと言います。

#フェイルオーバールーティング
最後にフェイルオーバールーティングを設定していきます。
###目指す構成
以下の構成を目指していきます。
スクリーンショット 2021-02-10 15.52.27.png

ALBをプライマリに設定し、この通信が失敗した時にセカンダリであるS3のページを表示していきます。

###手順

  • S3のバケットを作成します。この時、バケット名はRoute53のドメイン名(今回は『test-aws123.tk』)に設定します。
    スクリーンショット 2021-02-10 17.03.04.png

その後、パブリックアクセスを許可します(『パブリックアクセスをすべてブロック』のチェックを外す)。
スクリーンショット 2021-02-10 17.03.14.png

バケットを作成したら、次にファイルをアップロードしていきます。
バケットのページに移動し、画像をアップロードします(ドラッグ&ドロップでいけます)。
スクリーンショット 2021-02-10 17.05.31.png

アップロードをし終わったら、プロパティを設定します。
スクリーンショット 2021-02-10 17.07.39.png

静的webサイトホスティングを有効にします。
スクリーンショット 2021-02-10 17.07.52.png

インデックスドキュメントに、アップロードしたファイル名を入力します。
エラードキュメントについては、仮で記載していきます(入力しないと前に進めないので、とりあえず入力します)。
スクリーンショット 2021-02-10 17.08.50.png

設定が終わったら、最後にアクセス許可をしていきます。
スクリーンショット 2021-02-10 17.09.17.png

バケットポリシーの部分を以下のように編集していきます。
※以下のURLを参照
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/user-guide/static-website-hosting.html

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::test-aws123.tk/*"
        }
    ]
}

S3の設定は以上になります。

  • Route53で、フェイルオーバールーティングを設定していきます。
    プライマリをALBに、セカンダリをS3に設定します。

【プライマリの設定】
スクリーンショット 2021-02-10 17.13.01.png
【セカンダリの設定】
スクリーンショット 2021-02-10 17.13.59.png

試しに、EC2インスタンスを停止しhttp://test-aws123.tk とブラウザに入力したところ、問題なくS3のページを表示させることができました。

#終わりに
以上『シンプルルーティング』『加重ルーティング』『フェイルオーバールーティング』の設定をしていきました。
実際に自分で手を動かすと、色々な発見があって勉強になります。

この記事はAWS初学者を導く体系的な動画学習サービス「AWS CloudTech」の課題カリキュラムで作成しました。
AWSについて、基本からしっかり学びたい方にはオススメです!
https://aws-cloud-tech.com

6
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
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?