MENU

CDN AWSとはなにか?仕組みや手順とあわせて利点についても解説

CDNとはなにか?


「Content Delivery Network」(コンテンツデリバリーネットワーク)の略称を「CDN」と呼びます。これは、Webコンテンツが効率的に、かつ迅速にユーザーに配信されるよう工夫されたネットワークシステムのことです。

昨今では、ネット環境を利用するユーザーが急増していることに加え、インターネットに流れているWebコンテンツが大容量化しており、ネットワークに対する負荷がかなり高くなっているという現状があります。

このような問題解決のために構築されたシステムを、CDNといいます。

AWSのCloudFrontとは?


「Amazon Web Services」の略書をAWSといい、この用語はクラウド型のWebサービスに対する呼称となっています。

この用語から連想されるとおり、AWSは大手通販サイトである「Amazon.com」が管理していて、企業が必要とするコンピューターリソースを提供しています。また、様々な事業においての運用面のサポートにあたっています。

AWSの利用を検討する場面としては、ITインフラの整備、多様なWeb機能を一括したサービスでまとめたいときが考えられます。

エッジサーバー

エッジサーバーとは、ビューワーの拠点に近い側のコンピューターのことを指します。

エッジサーバーは、世界100か所に設置されています。また、全てのエッジサーバー間で同じ内容が同期されるため、ユーザーが国外移動等した場合にも安定してスムーズなコンテンツ閲覧が可能といったメリットがあります。

オリジンサーバー

別名「キャッシュサーバー」と呼ばれており、デバイス等からデータ発声した箇所に近い部分にて処理されるサーバーのことをいいます。

オリジンを和訳すると「おおもとの」といった意味になります。その意味のとおり、オリジナルのコンテンツがある元データを入れているサーバーといった意味合いになります。

通常コンテンツやアプリケーションのデータ配信等になりますが、一時的に利用者が増えて混雑した場合、「オリジンサーバーよりコンテンツ取得の機会を必要最低限に絞る」といった方法をとることにより、オリジンサーバーそのものの負荷を軽減する効果があります。

AWSでのCDNの利用


AWSでのCDN利用のメリットとしては、すでにAWSの機能の一つであることにより、他のAWSサービスと連携しやすい点が挙げられます。

バックエンドとして指定する際、ロードバランサーのALB、ストレージのS3等が選択できます。すでにAWSを利用中であれば、別途にCDNのサービスを契約せず利用できます。そのため、AWS利用者にとっておすすめといえるでしょう。

キャッシュとオリジン

サービスを提供するサーバーがオリジンサーバーであり、キャッシュサーバーはCDNに該当します。キャッシュサーバーはオリジンサーバーよりあらかじめデータを取得しておき、保持します。

一般的に、DNSに登録された「ドメイン」に基づき、ユーザーはオリジンサーバーに接続しています。しかし、DNSの接続先ドメインそのものをキャッシュサーバーにすることにより、オリジンサーバーの負荷が軽減できるというメリットがあります。

Webサイト等にユーザーがアクセスする場合、オリジンサーバーではなくキャッシュサーバーが対応することで、サーバー負荷を減らせるといった効果があります。

流れとしては、DNSに基づいてCDNにアクセスした際に、キャッシュサーバーはあらかじめ保持しておいたオリジンサーバーの情報を戻す、といったシステムになっています。

セキュリティ対策で防御に役立つ

「分散型サービス拒否攻撃」と訳されるDDoS攻撃というものがあります。特定のサービスに対し、大容量の要求を分散しながら送り付け、対象となるサーバーを負荷のかかった状態にし、サービスの提供を妨げるというものです。

CDNを利用することにより、キャッシュサーバーがオリジンサーバーの役割を果たし、DDoS攻撃を回避できるといったメリットがあります。

この「DDoS攻撃」は、情報処理推進機構(IPA)が掲げる「情報セキュリティ10大脅威」に含まれるほど代表的なサイバー攻撃であります。そのため、CDNシステム導入のメリットの1つにもなっています。

AWSでのCDNの仕組み5つ


AWSでのCDNの仕組みには、一体どのようなものがあるでしょうか。ここでは、具体的にそのシステムについて5つ挙げて解説します。AWSでのCDNの仕組みを知り、実務に生かしましょう。

1:CDNからデータ送信ができる

CDNとは、一番近い場所にあるエッジサーバーからユーザーにデータ提供するシステムのことをいいます。CDNからデータ送信することで、よりユーザーに早くデータ提供できるといったメリットがあります。

また、他にも各種保護機能が組み込まれており、追加料金なしに利用できるのも特徴です。

2:コンテンツのキャッシュができる

通常は一時的な性質キャッシュで、高速のデータストレージレイヤーのことをいいます。コンテンツのキャッシュができることで、それより後に同質のデータリクエストが発現した際、より高速にデータ供給できるといったメリットがあります。

キャッシュのデータ保存場所は、一般的にはランダムアクセスメモリ(RAM)等の高速アクセスが可能なハードウェアになります。

キャッシュそのものの目的は、基盤であるストレージレイヤーにアクセスする頻度を減らすことにより、データ取得の際のパフォーマンス向上に役立てるといったことです。

3:ストリーミングデータの配信に対応している

ウェブページの機能以外にも、動画や音声等のメディアストリーミングデータ配信に対応しているといった特徴があります。AWSでのCDNは、「Adobe Media Server」などの、複数の製品に対応しています。

ストリーミングのデータ処理のメリットについては、データ分析が洗練された形で行えること、またデータの中からより深いインサイトが抽出できるようになるといったことが挙げられます。

また、現状において人気のある動画を検出する際、減衰時間枠等のイベント処理アルゴリズムや複雑なストリームが適用されることで、充実したインサイトが届けられるといったメリットもあります。

4:ユーザーへコンテンツが配信できる

「Amazon CloudFrontAWS Elemental MediaStore」に保存してあるコンテンツが配信できる、といった特徴があります。

CDNは、ユーザーがリクエストしたコンテンツを一番レイテンシの低いエッジロケーションという場所へルーティングします。エッジロケーションにすでにコンテンツがキャッシュ済みであるならば、CDNシステムはコンテンツをすぐに配信します。

ただし、エッジロケーションに現在コンテンツがない場合は、CDNはオリジンより該当コンテンツを取得し、ユーザーへ配信します。

5:レポートの作成に使われる

AWSでのCDNの仕組みの一つとして、レポートの作成に使われるといった特徴があります。

キャッシュ統計レポートが、追加料金なしで利用できます。過去にさかのぼって60日間の1日、または1時間あたりにおける各ビューワーの使用状況、期間を選択したうえで合計の使用率、最大使用率、平均的な使用率が表示されるシステムがあります。

レポートを表示するやり方としては、まずAmazon CloudFront に移動し、ナビゲーションペイン内の「Reports and Analytics」リンクの中にある「Cache Statistics」を選択することで可能になります。

また、期間を指定したうえでの上位50位のキャッシュヒット回数、リクエスト回数、キャッシュミス回数、エラー率が表示される「人気オブジェクト」のレポート作成もできます。

さらに、エンドユーザーが所在する国、使用しているブラウザやデバイス、オペレーティングシステムまでもが表示される「ビューワーレポート」も作成可能です。

その他にも、「トップリファラーレポート」作成もできます。これは、末端のユーザーがどのドメインからWebサイトを参照したのかを確認できるものです。

出典:Amazon CloudFront のレポートと分析|AWS
参照:https://aws.amazon.com/jp/cloudfront/reporting/

AWSのCloudFrontの利点5つ


AWSのCloudFrontを使用する際、どのような利点があるのでしょうか。ここでは、そのメリットを具体的に5つ挙げながら解説していきます。メリットを知り、実際の業務に活用してみましょう。

1:費用対効果が高い

普段からCloudFrontを使用しているうえにアプリケーションもAWSのEC2等を使用している場合、CloudFrontから先にある「ELB, EC2, S3」からのデータ取得に関しては無料で利用できるメリットがあります。

また、AWSオリジンを利用している場合に関して、Amazon CloudFrontの「オリジンフェッチ」(オリジンよりエッジロケーションへのデータ転送)は無料となります。

AWSにおいて元来アプリケーションを動作させているケースであるのならば、通信費用が節約できるといった効果があります。

2:高度なプログラムを組むことができる

AWSのCloudFrontの利点として、高度なプログラムを組める特徴があります。

ネイティブなAWSツールを利用することにより、現代におけるDevOps(開発と運用)、及び継続的インティグレーションであるCI/CD環境用のツール、ソフトウェア自動化インターフェイスとの統合サポートなど、高度なプログラムが組めるメリットがあります。

3:高速なグローバル化

世界中に配置されているキャッシュサーバーであるエッジロケーションにより、コンテンツがより早く効率的に配信されるCDNが実現できるという特徴があります。

Amazonバックボーンネットワークの「復元性が高い」という特徴を活用し、エンドユーザーにとって効果的なパフォーマンス・可能性が実現できます。

4:AWSサービスの統合ができる

「Amazon CloudFront」は、Amazon EC2、Amazon S3、Elastic Load Balancing(ELB)、AWS Elemental Media Services、Amazon Route 53などのAWSのサービスと密接に統合されています。

その関係で、各サービスとの連携が容易になるといったメリットがあります。

すべて同じ管理コンソールよりサービスにアクセスでき、CDNの全ての機能を各種サービスと連携設定して展開できます。なお、設定の際は、「AWSマネジメントコンソール」を使用して行います。

5:エッジでのセキュリティ

Amazon CloudFrontは、「ネットワークレベル・アプリケーションレベルの双方から保護される」という安全性が高い特徴があります。

「AWS Shield標準」といった様々な組み込み保護機能がありますが、トラフィックとアプリケーションを追加の費用なしで利用できるといったメリットがあります。

また、ACM(AWS Certificate Manager)といった設定可能な機能を利用することにより、追加コスト不要でカスタムSSL証明書を作成、管理することもできます。

AWSのCloudFrontを利用する5つの手順


それでは実際にAWSのCloudFrontを利用する際、どのような手順を踏めばよいのでしょうか。ここでは具体的な手順について解説します。手順や流れを知り、実務に役立てましょう。

1:Amazon CloudFrontの設定をする

まず初めに、Amazon CloudFrontの設定をしましょう。Amazon CloudFrontサイトにアクセスし、Create Distributionを選択すると、画面が遷移します。

コンテンツの配信方法については、「Web」を選択しましょう。

2:オリジンサーバーの用意をする

あらかじめ、「元となる自分のサイト」オリジンサーバーを準備しておきます。準備が終わりましたら、「Origin Domain Name」の項目に、サイトのドメイン名を入力します。

こちらに指定されたサーバーが、オリジンサーバーとなります。Origin IDに関しては自動で割り振られるため、入力不要です。

また、WebサイトにおいてHTTPSを使用している際は「Match Viewer」を選択しましょう。さらに、 HTTP → HTTPSへのリダイレクトの設定をしている際には、「Redirect HTTP to HTTPS」も選択しておきましょう。

つぎに、「Create DistriBution」をクリックします。するとディストリビューションの作成が開始されます。

おおよそ10分ほどでStatus→Deployedにかわり、ディストリビューションの作成が終わります。「Domein Name」の箇所に表示されている部分が、Amazon CloudFrontのURLになります。

3:コンテンツの修正をする

CloudFrontの特性として、設定価格クラスや、関連する位置情報のデータベース、EDNS0-Client-Subnetのサポートに基づきトラフィックをルーティングするといったことが挙げられます。

これらの因子の組み合わせにより、ユーザーが予期しないエッジロケーションにルーティングされるといったケースが発生します。この件でのトラブルシューティングを行う際は、以下の3点の項目を確認しましょう。

価格クラスが、予想するエッジロケーションをサポートしているのかどうか、DNSリゾルバーがAnycastルーティング・EDNS0-Client-Subnetをサポートしているのかどうかといった部分を確認し、コンテンツの修正を行いましょう。

4:キャッシュ時間の設定をする

CDNにおいて、ブラウザのキャッシュとCloudFrontエッジキャッシュという2種類のキャッシュがあります。

これらのキャッシュが効き過ぎてしまいますと、オリジンでコンテンツを変更した際にもエッジキャッシュやブラウザ等で古いコンテンツが保持されてしまうといった事象が発生します。そのため、CloudFrontを利用する際、それぞれのキャッシュ時間の設定をしましょう。

5:アクセスのテストをする

アクセスのテストをしておきましょう。特にお使いのWebサイトがHTTPSの場合、念のためアクセスのテストをするのがおすすめです。curlでアクセスしてみると、最初のアクセスでは「x-cache: Miss from cloudfront」と表示されます。

次のアクセスでは、「x-cache: Hit from cloudfront」と表示されます。これは、キャッシュが作成されたことを意味します。

AWSのCloudFrontが解決してくれる問題について


AWSのCloudFrontは、どのような問題を解決してくれるのでしょうか。ここでは実際に解決できる問題を2点挙げながら解説していきます。問題解決の事例を参考にして、実務に役立てましょう。

ネットワークレイテンシの低減ができる

CloudFrontを使用し海外のサーバーから配信することにより、ネットワークレイテンシを低減できます。

もしサーバーを国内に設置した場合、海外からのアクセスにおいてレイテンシが長くなるといった事象が発生します。コンテンツがキャッシュされているという点において、ユーザーが安定した応答を得られるといったメリットがあります。

サーバーへの負荷軽減をしてくれる

CloudFrontからコンテンツ配信することにより、サーバーへのアクセスを減らせるといった利点があります。動的なコンテンツをキャッシュすることで、データベースの負荷軽減も可能になるためおすすめです。

また、クラウドサーバーにおいて、必要な実体数(インスタンス数)を減らせ、コスト削減につながるといったメリットがあります。

AWSのCloudFrontの利用料金形態3つ


AWSのCloudFrontの利用料金形態について解説します。3つのケースにより加算される仕組みになっています。AWSのCloudFrontの利用を検討されている方は、参考にしましょう。

1:エッジサーバーにデータ転送での料金

CloudFrontがオブジェクトに対するリクエストにレスポンスした場合、CloudFrontの料金が発生する仕組みになっています。インターネットへのリージョンデータ転送アウトは、10TBまで、1GBあたり$0.114かかる計算になります。

出典:Amazon CloudFront の料金|AWS
参照:https://aws.amazon.com/jp/cloudfront/pricing/

2:オリジンサーバーにデータ転送での料金

API GatewayやEC2などの、オリジンサーバーに転送する際(POSTリクエスト・PUTリクエスト等において)にかかる料金のことをいいます。1GBあたり$0.060かかります。

出典:Amazon CloudFront の料金|AWS
参照:https://aws.amazon.com/jp/cloudfront/pricing/

3:ユーザーにデータ転送での料金

ユーザーがデータをオリジンに転送した際、CloudFront料金が発生するシステムになっています。

HTTP メソッドのリクエスト料金は、1万件あたりで換算します。HTTPアクセスの場合は$0.0090かかり、HTTPSアクセスの場合は $0.0120かかります。

出典:Amazon CloudFront の料金|AWS
参照:https://aws.amazon.com/jp/cloudfront/pricing/

CDN AWSについて理解を深めよう


CDN AWSは、閲覧する頻度の高いコンテンツをユーザーから近い場所に置き、スムーズに閲覧できると共に、サーバーへの負荷軽減になるなど、配信者側とユーザーにとってお互いにメリットのあるシステムです。

大容量のデータ配信サイトなどでユーザーが多い場合に、特に活用頻度の高い傾向があります。CDN AWSについて理解を深め、実務に役立てましょう。