基礎学習で学んだコンテンツ配信サービス、CloudFrontについてハンズオンで学んでいきましょう!
【ハンズオン】CloudFrontを設定してみる
前回のハンズオンからの続きとなります。構成としては以下のような概念です。
利用者が多数の地域に存在しコンテンツを素早く届ける為に、ELB(ALB)の前段にCloudFrontを設置すると言うイメージになります。
【ハンズオン:01】追加の証明書を準備する。
証明書の準備について
CloudFrontでコンテンツ配信を行う際には1点注意が必要です。それは・・
バージニア北部リージョンで配信用の証明書を準備する事。
CloudFront設定する前に予め利用リージョンも再確認してください。
まずはリージョンをバージニア北部を選択します。
バージニア北部リージョンで証明書作成を行いますので、ACM(AWS Certificate Manager)を選択します。
証明書を新規追加します。
パブリック証明書のリクエストを行います。
ドメイン名ですが、「*.ドメイン名」となるように入力します。
ワイルドカード証明書発行
複数のホスト名で利用できるように「*」を指定するワイルドカード証明書となります。
次に進みます。
検証方法ではDNSを利用しますので、そのまま次へ
タグの入力はお好みでどうぞ。確認ボタンを押して進みます。
確定とリクエストボタンを押します。
検証画面が表示されます。先程入力したドメイン名をクリックし展開し、Route53でのレコードの作成ボタンを押します。
確認画面が出ますので作成ボタンを押します。
作成が成功しますので続行します。
少し待つと証明書の作成が完了します。(何度か再読み込みボタンを押して状況を更新してみてください)
【ハンズオン:02】CloudFrontを設定する。
証明書の準備が整いましたらCloudFrontの準備をします。今回はCloudFrontへのアクセスはhttps://cdn.ドメイン名となるように設定してみます。
CloudFrontを選択します。
CloudFrontは英語のみです
CloudFrontに関してはマネージメントコンソールの言語は英語のみとなります。
Create Distributionボタンで新しく作成していきます。
Webコンテンツの配信となります。Get Startedボタンで進みます。
Original Domain Nameでは既存のサイトのドメイン名を入力します。
コンテンツ配信元である既存サイトへのアクセスはhttpsのみにしましょう(あとでALBのhttpリスナー設定も消します)
次に下にスクロールして、Viewer Protocol Policyではhttpアクセスはhttpsへリダイレクトするように選択しましょう。(CloudFront側へhttpアクセスするとhttpsへ転送される設定です)
下にスクロールして、Cache Policyを検証用で作成しましょう。Create a new policyボタンを押します。
別タブでポリシー設定画面が表示されます。ポリシー名はわかりやすい名前に設定してください。またTTL Settings(キャッシュの生存期間)ですが以下のように設定してみます。
Minimum TTL:60
Maximum TTL:180
Default TTL:60
下にスクロールし、Create Cache policyボタンを押します。
ポリシーが作成されます。
CloudFrontの設定タブに戻ります。リロードボタンを押して・・
作成したばかりのポリシーを選択します。
Alternate Domain Namesでは、cdn.ドメイン名となるように入力します。
CloudFrontへはhttps接続するようにしますので証明書は先程作成した「*」がついた証明書を選択します。
他にも多数設定ありますが、今回は最小限の設定とします。そのまま下にスクロールします。Create Distributionボタンを押します。
全世界のエッジロケーションへの配信がはじまります。時間がかかりますのでStatus欄はIn Progresの状況で処理中です。(約5分ほど待ちます)
処理が完了するとStatusはDeployedになります。
試しにアクセスしてみましょう!IDをクリックして詳細画面を開きます。
Domain Name欄の内容をコピーします。
ブラウザのアドレス欄にコピーしたCloudFrontドメイン名を貼り付けてアクセスしてみます。
無事にアクセスできました。
【ハンズオン:03】Route53に追加設定をする。
cdn.ドメイン名でアクセスするためには、Route53側でレコードの追加が必要です。Route53の設定画面を選択します。
作成済みホストゾーンを選択します。
レコードを追加しますので、登録済みドメインを選択します。
次にブラウザで「cdn.ドメイン名」とアクセス出来るようにレコードを作成します。
クイック作成で作成作業を行いましょう。
レコード名は「cdn」と入力します。
トラフィックのルーティング先はCloudFrontを選択し、先程作成したDistributionを選択します。
最後にレコードの作成ボタンを押します。
レコードが作成できれば完了です。
動作検証でブラウザにアクセスしてみます。アクセス先はcdn.ドメイン名です。
【ハンズオン:04】動作テストをしてみる
CloudFrontでは60~180秒でキャッシュ内容が更新されるように設定しています。動作テストをしてみましょう!Systems Managerのセッションマネージャーなどでログインし、EC2に保存されているコンテンツ内容を書き換えて見ます。
書き換えるファイルは/var/www/htmlにある「index.html」です。
bash
cat /var/www/html/index.html
sudo echo Web01-cdn >> /var/www/html/index.html
cat /var/www/html/index.html
Webコンテンツ内容について
EC2インスタンスが複数ある場合には、インスタンス毎にWebコンテンツ内容を書き換えてください。
コンテンツの書き換えが終わった後に、改めてCloudFrontで配信するサイトにアクセスしてみます。
EC2からCloudFrontへの配信には少し時間を要します。数分まって再度アクセスするとコンテンツ内容が変わっています。
まとめ
コンテンツ配信のCloudFrontのハンズオンでしたが基礎的な内容でした。次はCloudFront利用時にELB(ALB)への接続を制限する内容を行ってみたいと思います。お時間ある方は次のレッスンに進んでください。
次のレッスンに進む場合にはリソースを残してください
次のレッスンも引続きCloudFront+ELB(ALB)の設定となります。引続きリソースは残してください。