📘

CloudFront使って、キャッシュを利用してみた

2021/03/31に公開

はじめに

CloudFrontはAWSのCDN(Contents Delivery Network)サービスです。
CDNはキャッシュサーバーを使って、コンテンツを高速で配信するシステムのことです。

本記事では、CloudFrontの使い方をハンズオンで説明していきます。
またACM(AWS Certificate Manager)を用いて、https通信にも対応させます。

目次

目指す構成

以下のインフラ構成図を目指します。
インフラ構成図

【補足】

  • EC2には簡単なページを表示できるように、apacheをインストールしており、ホーム画面にて『テストページです』という画面が表示されるように設定しています。

  • 『user.test-aws123.tk』はCloudFrontに紐づいておりUserがこのドメインを入力すると、CloudFrontのCacheの情報が返ってきます。『alb.test-aws123.tk』はALBと紐づいており、このURLを入力すると、EC2インスタンスの内容を返します。

  • ACMを使ってhttps通信にも対応していきます。

注意点

本記事では、CloudFrontの立ち上げとACMの利用のみを扱います。
そのため、以下の部分に関しては、実装している前提で進みます。

  • VPCの立ち上げとEC2の起動
  • ALBの設定
  • Route53の作成(CloudFrontに関係する部分のみ、本記事で扱います)
  • 独自ドメインの取得(今回はfreenomというサービスでtest-aws123.tkというドメインを取得しています)

VPCやEC2の設定をやってみたいという方は以下の記事も参考にしてみてください!
(いずれも著者が過去に書いた記事ですが笑)

以降の内容では、以下の構成図の状態からスタートしますので、ご了承ください。

記事開始時のインフラ構成図

実装①~ALBへのACMのアタッチ~

それでは、まずALBにACMをアタッチしていきます。

  • EC2のページからロードバランサーを開きます。
    対象のロードバランサーを選択し、リスナーの追加をクリックします。
    リスナーの追加

  • プロトコルをHTTPSに設定し、デフォルトアクションを転送先に設定します。転送先のターゲットグループは、今回はTest-TGにしています。
    転送先

ターゲットグループ

  • ここで新しいACM証明書をリクエストをしていきま。
    ACM証明書のリクエスト

  • ドメイン名の箇所に『*.ドメイン名』を記載していきます(ドメイン名の箇所にはご自身で取得したドメイン名 を記入してください)。
    ドメイン名の入力

  • あとは、デフォルト設定のまま、次へボタンを押し続けて、確定とリクエストをしていきます。

  • 次の画面で、Route53でのレコード作成を押し、CNAMEレコードを作成していきます。
    ACM証明書の発行

  • ACM証明書を無事取得できたら、先程のリスナーの追加画面に戻ります。

  • 更新ボタンを押して、先程取得したACM証明書を選択したら保存を押します。
    ロードバランサーへのACMの付与

これで、ALBへのACMのアタッチは完了です。
『alb.test-aws123.tk』のhttps通信が可能になりました!

実装②~CloudFrontの設定~

それでは、実際にCloudFrontを設定していきましょう。
まずCloudFront用のACM証明書を発行したのち、CloudFrontの立ち上げをしていきます。
CloudFrontは東京リージョンでは対応できないため、バージニアリージョンにて進めていきます。

  • リージョンを変更したら、ACMのページにいき、『証明書のリクエスト』を押します。

  • 先程のACM発行と同じ画面になりますので、同様にドメイン名を『*.ドメイン名』で設定し、ACMを発行していきます。


    次にCloudFrontを立ち上げていきます。

  • まずはCloudFrontのページにいきましょう。
    ※CloudFrontは日本語に対応していないので、ご注意ください。

  • 『Create Distribution』を押します。

  • 次の画面で『Get Started』を押していきます。

ここからCloudFrontの詳細な設定に入っていきます。

  • まずはorigin Domainを設定します。
    Origin Domain Nameはサーバー側のドメインのことです。今回は『alb.test-aws123.tk』を設定しています。
    origin doimain setting

  • 次に、『Origin Protocol Policy』と『Viewer Protocol Policy』をHTTPS Onlyにしていきます。
    Origin Protocol Policy
    Viewer Protocol Policy

  • そしてchacheポリシーの設定をしていきます。まずは新しいキャッシュポリシーを作っていきます。『Create a new policy』を押しましょう!
    Create a new policy

  • Nameを『ShortCache』、TTL Settingを60秒に設定していきます。
    TTLとはchacheを保存しておく時間のことです。
    Name&TTL

  • 先程の画面に戻り、作成したcache policyを選択していきます。
    chacheの選定

  • SSl Certificateの部分をCustom SSL Certificateにチェックをつけます。また自身で作成したACMを選択していきます。
    Custom SSL Certificate

  • 他の設定はデフォルトのままで、『Create Distribution』を押していきます

  • 最後にRoute53を設定していきます。設定は以下の通りです。

設定対象 設定値
レコード名 user.ドメイン名
レコードタイプ Aレコード
トラフィックルーティング先 CroudFrontのドメイン名
ルーティングポリシー シンプルルーティング

Route53

これで設定は終わりです。
現在は、『https://alb.test-aws123.tk/ 』『https://user.test-aws123.tk/ 』 にてアクセスすることができます。
https://user.test-aws123.tk/ はcacheサーバーからのリスポンスであるため、alb.test-aws123.tkよりも1分ほど、遅くページが更新されます(今回の設定の場合)。

最後に

以上でCloudFrontとACMの設定は終わりです。
キャッシュサーバーは通信の速度にも関わる重要な因子ですので、今後もぜひ使っていきたいですね!

Discussion