#はじめに
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で取得したドメインを入力します。
タイプはパブリックゾーンを指定し、『ホストゾーンを作成』をクリックします。
これで、Route53のホストゾーンを作成することができました。
それでは、『シンプルルーティング』、『多重ルーティング』、『フェイルオーバールーティング』について、それぞれ設定をしていきます。
#シンプルルーティング
###目指す構成
以下の構成を目指していきます。
Route53に対して、紐づけは一つ(ALB)のみです。
###手順
これで、設定完了です。
試しにブラウザにhttp://test-aws123.tk を打つと、設定したページを表示させることができます。
#加重ルーティング
###目指す構成
以下の構成を目指していきます。
2つのVPCがありますが、これらのどちらのページを表示するかは、各リソースの重量の比率で変わってきます。
今回は2つのリソースとも重量を100に設定していきます(重量は0〜255まで設定が可能です)。
###手順
-
ルーティングポリシーを加重ルーティングに設定して、まずはALBの方をルーティングとして設定していきます。
レコードタイプは『A』で設定していきます。
また、今回は重量は『100』、レコードIDは『Test-record1』と設定しました。
-
次にEC2の方も同様に設定していきます。
レコードタイプは『A』で設定していきます。
また、今回は重量は『100』、レコードIDは『Test-record2』と設定しました。
ブラウザにhttp://test-aws123.tk を打ってみると、どちらかのページが表示されます。
今回は重量が同じ値であるため、ページの表示は半々です。
###補足
試しにブラウザをリロードしまくりましたが、なぜがページが変わらない現象がおきました。
原因はTTLが長すぎた(デフォルトの300秒に設定)ということがわかりました。
TTLを短くした結果、リロードでページを変更することができました。
※「TTLって何だっけ」という未来の自分に対して
TTLとはキャッシュサーバーにデータを保存しておく期間のようなものです(Time To Liveの略)。
名前解決をする際、クライアント(ブラウザ)はまずキャッシュサーバーに問い合わせます。
キャッシュサーバーはルートサーバー等各種サーバーに問い合わせて、リスポンスを返します。
この時、キャッシュサーバーが一々各種サーバーに問い合わせると時間がかかってしまうため、キャッシュサーバーに情報を一時的に残しておきます。
このキャッシュサーバーに残しておく時間をTTLと言います。
#フェイルオーバールーティング
最後にフェイルオーバールーティングを設定していきます。
###目指す構成
以下の構成を目指していきます。
ALBをプライマリに設定し、この通信が失敗した時にセカンダリであるS3のページを表示していきます。
###手順
その後、パブリックアクセスを許可します(『パブリックアクセスをすべてブロック』のチェックを外す)。
バケットを作成したら、次にファイルをアップロードしていきます。
バケットのページに移動し、画像をアップロードします(ドラッグ&ドロップでいけます)。
インデックスドキュメントに、アップロードしたファイル名を入力します。
エラードキュメントについては、仮で記載していきます(入力しないと前に進めないので、とりあえず入力します)。
バケットポリシーの部分を以下のように編集していきます。
※以下の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に設定します。
試しに、EC2インスタンスを停止しhttp://test-aws123.tk とブラウザに入力したところ、問題なくS3のページを表示させることができました。
#終わりに
以上『シンプルルーティング』『加重ルーティング』『フェイルオーバールーティング』の設定をしていきました。
実際に自分で手を動かすと、色々な発見があって勉強になります。
この記事はAWS初学者を導く体系的な動画学習サービス「AWS CloudTech」の課題カリキュラムで作成しました。
AWSについて、基本からしっかり学びたい方にはオススメです!
https://aws-cloud-tech.com