メモ
以前取得したAWSの資格「クラウドプラクティショナー」に続き「ソリューションアーキテクトアソシエイト(SAA-C03)」取得を目指して勉強中!
いつも何か勉強するときは基本的に書きながら覚えるのでここでアウトプットします。
有益な情報かどうかは不明(笑)
スポンサーリンク
CloudFront
CloudFrontは、HTMLファイルやCSS、画像、動画といった静的コンテンツをキャッシュし、オリジンサーバーの代わりに配信するCDNサービス。
AWSには世界中に120を超えるエッジロケーションがあり、CloudFrontを使うと、利用者から最も近いエッジロケーションからコンテンツを高速に配信することができる。
画像や動画など、ファイルサイズが大きなコンテンツへのアクセスのたびにオリジンサーバーが処理すると、サーバーの負荷が高くなる。
サーバーの負荷が高くなるとサービスの安定した提供ができず、利用者にも不便をかけてしまう。
CloudFrontを使うことで、サーバーの負荷を下げながら安定したサービス提供ができるため、サービスの提供者・利用者のどちらにもメリットがあるシステムを構築できる。
CloudFrontのバックエンド
CloudFrontはCDNであるため、元となるコンテンツを保持するバックエンドサーバー(オリジンサーバー)が必要。
オリジンサーバーとしては、ELB、EC2、そしてS3の静的ホスティングを利用することができる。
また、オンプレミスのサーバーを指定することも可能なため、今のシステム構成を変更することなくCloudFrontを導入することで、イベントなどによる一時的なアクセス増に備えるといった使い方もできる。
また、URLのパスに応じて異なるオリジンサーバーを指定することで1つのドメインで複数のサービスを提供できるため、ドメイン名の統一など、企業のWebガバナンス戦略にも役立つ。
ディストリビューション
CloudFrontには、配信するコンテンツの内容によって異なる2つのディストリビューションがある。
ダウンロードディストリビューションとストリーミングディストリビューション。
ダウンロードディストリビューションはHTTPやHTTPSを使ってHTMLやCSS、画像などのデータを配信する際に利用する。
ストリーミングディストリビューションは、RTMP(2020年12月31日以降は非推奨)を使って動画のストリーミング配信をする際に利用する。
キャッシュルール
CloudFrontでは、拡張子やURLパスごとにキャッシュ期間を指定することができる。
頻繁にアップデートされる静的コンテンツ(HTMLなど)はキャッシュ期間を短くし、あまり変更されないコンテンツ(画像・動画)は長くする、といった設定ができる。
また、動的サイトのURLパスは、キャッシュを無効化することでCloudFrontネットワーク経路としてだけ利用することも可能。
CDNはキャッシュの扱いがとても重要。
キャッシュの強制的な削除運用なども含めて、必要なキャッシュが適切に使われるようにする。
★CloudFrontは静的コンテンツをキャッシュし、オリジンサーバーの代わりに配信するCDNサービス
★CloudFrontのバックエンドサーバーには、ELB、EC2、S3の静的ホスティング、オンプレミスのサーバーを利用できる
★CloudFrontには2つのディストリビューションがある。ダウンロードディストリビューションはHTML、CSS、画像などのデータを配信する際に利用し、ストリーミングディストリビューションは動画のストリーミング配信をする際に利用する
★CloudFrontでは、拡張子やURLパスごとにキャッシュ期間を指定できる
Route53
Amazon Route53は、ドメイン管理機能と権威DNS機能を持つサービス。
WebコンソールやAPIから、簡単にドメイン情報やゾーン情報を設定・管理できる。
Route53は単にドメインやDNS情報を管理するだけでなく、ネットワークトラフィックのルーティングや接続先のシステム状況に応じた接続先の変更など、オプション機能も持っている。
上手く使いこなすことで、可用性やレスポンスを高めることができる。
★Route53は、ドメイン管理機能と権威DNS機能を持つサービス
ドメイン管理
Route53で新規ドメインの取得や更新などの手続きができる。
このサービスを利用することで、ドメインの取得からゾーン情報の設定まで、Route53で一貫した管理が可能になる。
ドメインの年間利用料は通常のAWS利用料の請求に含まれるため、別途支払いの手続きをすることも不要。
また、自動更新機能もあるため、ドメインの更新漏れといったリスクも回避できる。
権威DNS
DNSとは、ドメイン名とIPアドレスを変換(名前解決)するシステム。
権威DNSとは、ドメイン名とIPアドレスの変換情報を保持しているDNSのことで、返還情報を保持していないDNS(キャッシュDNS)と区別するときに使う。
Route53は権威DNSのため、保持しているドメイン名以外の名前解決をリクエストしても応答しない。
キャッシュDNSは、別に用意する必要がある。
ホストゾーンとレコード情報
ホストゾーンとは、レコード情報の管理単位を表す。
通常はドメイン名。例えば、「example.com」のレコード情報は、「www.example.comはIPアドレスが192.168.0.100である」といった、ドメイン(またはサブドメイン)名とIPアドレスを返還するための情報。
レコード情報にはAレコード、MXレコード、CNAMEレコードといった種類があるが、Route53では特徴的なレコードとしてAliasレコードがある。
Aliasレコードは、レコード情報に登録する値として、CloudFrontやELB、S3などのAWSリソースFQDNを指定できる。
CNAMEでも同じような登録は可能だが、CNAMEとの違いの1つとして、Zone Apexも登録できることが挙げられる。
Zone Apexとは、最上位ドメイン(Route53の場合はホストゾーン名)のこと。
例えば、「example.com」をS3のWebホスティングサービスにアクセスする独自ドメインとして利用したい場合、Route53以外のDNSではCNAMEレコードの仕様上登録ができない。
しかしRoute53であれば、Aliasレコードを使って登録できる。
トラフィックルーティング
Route53にゾーン情報を登録する際、名前解決の問合せに対してどのように応答するかを決める7種類のルーティングポリシーがある。
要件や構成に応じて適切なトラフィックルーティングを指定することで、可用性や応答性の高いシステムを構築することができる。
・シンプルルーティングポリシー:特殊なルーティングを使わない標準的な1対1のルーティング
・フェイルオーバールーティングポリシー:アクティブ/スタンバイ方式で、アクティブ側のシステムへのヘルスチェックが失敗したときにスタンバイ側のシステムへルーティングするポリシー。本番システム障害時にSorryサーバーのIPアドレスをセカンダリレコードとして登録しておくと、自動的にSorryコンテンツを表示させることができる
・位置情報ルーティングポリシー:ユーザーの位置情報に基づいてトラフィックをルーティングする際に使用する。このルーティングポリシーを使うことで、日本からのアクセスは日本語のコンテンツが配置されたWebサーバーに接続する、といった制御ができる
・地理的近接性ルーティングポリシー:リソースの場所に基づいてトラフィックをルーティングし、必要に応じてトラフィックをある場所のリソースから別の場所のリソースに移動する際に使用する。地理的近接性ルーティングポリシーは、トラフィックフローを前提とする
・レイテンシールーティングポリシー:複数箇所にサーバーが分散されて配置されている場合に、遅延が最も少ないサーバーにリクエストをルーティングする。特定サーバーだけ高負荷になった場合にリクエストを分散することができる
・複数値回答ルーティングポリシー:1つのレコードに異なるIPアドレスを複数登録して、ランダムに返却されたIPアドレスに接続する。ヘルスチェックがNGになったIPアドレスは返却されないため、正常に稼働しているサーバーに対してのみアクセスを分散させることができる
・加重ルーティングポリシー:指定した比率で複数のリソースにトラフィックをルーティングする際に使用。拠点をまたがってリソースの異なるサーバーが配置されている場合にリクエスト比率を調整する、といったことができる。また、ABテストのために新サービスをリリースしたサーバーに一定割合のユーザーを誘導したい、といった場合にも使える。
ルーティングポリシーは、信頼性やパフォーマンスなど、何を重視するかで使い分ける必要がある。
それぞれの特徴をしっかり把握する。
トラフィックフロー
ルーティングポリシーを組み合わせることで様々なルーティング環境を構築することができるが、各レコード間の設定が複雑になることがある。
トラフィックフローはそれらの組み合わせをビジュアル的にわかりやすく組み合わせるためのツールを使って定義できる。
DNSフェイルオーバー
DNSフェイルオーバーは、Route53が持つフォールトトレラントアーキテクチャ。
フォールトトレラントアーキテクチャとは、システムに異常が発生した場合でも被害を最小限に抑えるための仕組み。
例えば、稼働中のシステムに障害が発生してWebサイトの閲覧ができなくなったとき、一時的に接続先をSorryサーバーに切り替えたいといった要件があった場合、Route53のDNSフェイルオーバー機能を使用することで簡単に要件を満たすことができる。
DNSフェイルオーバーはヘルスチェックの結果により発動する。
Route 53には3種類のヘルスチェックの種類がある。
これらもしっかり把握する。
スポンサーリンク
まとめ
CloudFront
・CloudFrontは、静的コンテンツをキャッシュし、オリジンサーバーの代わりに配信するCDNサービス
・CloudFrontのバックエンドサーバーには、ELB、EC2、S3の静的ホスティング、オンプレミスのサーバーを利用できる
・CloudFrontには2つのディストリビューションがある。ダウンロードディストリビューションはHTML、CSS、画像などのデータを配信する際に利用し、ストリーミングディストリビューションは動画のストリーミング配信をする際に利用する
・CloudFrontでは、拡張子やURLパスごとにキャッシュ期間を指定できる
Route53
・Route53は、ドメイン管理機能と権威DNS機能を持つサービス
・Route53には7種類のルーティングポリシーがあり、これらを組み合わせることで様々なルーティング環境を構築できる
・Route53には、障害時の被害を最小限に抑えるためのフォールトトレラントアーキテクチャとして、DNSフェイルオーバー機能がある