route53とはAWSが提供するDNSサービスくらいに考えていました。
実はroute53にはそれ以外にも多くの便利な機能があり、図解を用いてELBをわかりやすく解説します。
主にソリューション アーキテクト向けで勉強した内容をまとめています。
目次
route53とは
route53とは簡単に言うとDNS(ドメイン管理サービス)+aws独自の機能を付加したサービスであり、主に下記3つの役割があります。
- ドメイン名の管理
- ドメイン名⇄IPアドレスの名前解決
- リソースのヘルスチェック&フェイルオーバ機能
さらに、AWSが管理しているのでスケーリング(負荷が高くなったら自動的にサーバ台数増やしたり、サーバ強化したりすること)をしてくれます。
この機能によりAWSで運用されるサービスは高可用性(サービスが継続的に提供し続けられること)を担保できるのです。
それでは、Route53の機能についてより詳しく見ていきましょう。
ドメイン名の管理
まず最初のRoute53の提供する機能はDNS本来の機能でもあるドメイン名の管理です。
要点をまとめると、以下がRoute53が提供するDNSの機能です。
- route53、および外部のDNSサービスで取得したドメインもルーティングできる
- ドメイン取得をRoute53で行なった場合はRoute53自身が権威サーバとなる
- Hosted Zoneとして登録が可能
- Hosted Zoneとは特定のドメインに対する複数のレコードの集まりのこと
- route53はNSレコードとSOAレコードを自動で生成する
- 1つのHosted Zoneは4つのNSレコードを生成する
route53の名前解決のフロー
- ユーザからのアクセス先ドメイン情報がDNSリゾルバに送られる
- 途中でroute53上のネームサーバにてIP情報を取得しユーザに返却する
- ユーザは返却されたIPアドレスから目的のウェブサーバへアクセスする
- リクエストに応じて目的のウェブページをユーザに返すことでWebページが閲覧できるようになる
ヘルスチェック機能
続いてはヘルスチェック機能です。
ヘルスチェック機能の要点は以下4点です。
- 正常に稼働しているのかどうかを判断するために、EC2インスタンス等のリソースに対してroute53がリクエストを送る
- レスポンスが正常の場合、そのEC2インスタンスを正常と判断する
- レスポンスが異常の場合、異常レスポンスの数をカウントする
- カウント数が一定の閾値に達した場合、Cloudwatchにインスタンスが異常だと報告する
フェイルオーバ機能
続いてはフェイルオーバー機能です。
インスタンスに問題が起きた際にサービスを継続して提供するためにも非常に重要な機能なので知っておいた方が良いです。
- route53フェイルオーバ機能により、Route53は異常と判断されたインスタンスにはリクエスト送信をストップする。
- 自動的に正常なセカンダリインスタンスにルーティングする ように設定を切り替える
※プライマリサーバが正常に戻った際には、自動的にスタンバイからプライマリに戻る。
フェイルオーバーの仕組み
続いてフェイルオーバーの仕組みについて詳しく説明します。
- Active-Active:プライマリもセカンダリもDNSクエリに回答する
- もしもDNSサーバに異常があればクエリに応答しないようにする
- Active-Passive: プライマリサーバのみが基本DNSクエリに回答する。
- もしもプライマリに問題が起きたらセカンダリサーバがクエリに応答する
Aliasレコードとは
Aliasレコードとは route53で使われる仮想のレコードを指す。
- Hosted Zone内リソースのレコードをawsリソース(ELBや,s3,cloudfront等)と紐付ける
- Zone Apexの名前解決ではAliasレコードが使われる
※Zone Apexの場合はCNAMEレコードは使えずAliasレコードを使う必要がある
さいごに
ここまでお読みいただきありがとうございました。
Route53について調べると本当にたくさんの記事がヒットしますが、AWSソリューションアーキテクトアソシエイトの試験をクリアするために必要な事項をまとめました。
参考までに今私が勉強の教材として使っている Udemyのおすすめ教材を載せます。
UdemyではAWS以外でもプログラミングに関する動画教材が豊富で 短時間でスキルを身につけるにはとても効率的な教材だと思います。
速習!おすすめプログラミング勉強法【Udemy】
いくつかプログラミング学習サービスを利用しましたが、一番効率よく勉強できると感じたのはUdemyでした。
Udemyでは動画での説明や解説等もあり親切で、学習教材も豊富にあることから プログラミング初学者の方が短期間でエンジニアを目指したいのであれば、非常に良い教材だと思います。
ちなみに私は文系卒で社会人になってから独学でudemyを使ってプログラミングの勉強をして、実際にエンジニアとして採用されました
Udemyのコースは1つ1,000円ほどなので、ITの参考本を一冊(3,000円)を買うよりもUdemyのコースを購入する方が安い上により効率的にプログラミングを勉強できると思います。
世界最大級のオンライン学習サイトUdemy
また、別記事にてダナンでの生活やIT関連についても記事を書いていますのでクリックいただけると嬉しくて踊ります💃