43.CloudFront実習①

このレッスンを表示するには41.ELB実習①-複数インスタンスへの振り分けを完了してください

基礎学習で学んだコンテンツ配信サービス、CloudFrontについてハンズオンで学んでいきましょう!

【ハンズオン】CloudFrontを設定してみる

courier, night, panning-1214227.jpg

前回のハンズオンからの続きとなります。構成としては以下のような概念です。

利用者が多数の地域に存在しコンテンツを素早く届ける為に、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)の設定となります。引続きリソースは残してください。

戻る: AWS基礎コース > AWS基礎-ネットワーク各機能実習