風俗革命では、AWS(アマゾンサーバ)でのCDN、「Cloud Front」 を利用しております。
CDNっていったい何?と思われている方もいらっしゃいますので、詳しく説明させて頂きます。

※CDNとは何か?
「Content Delivery Network」(コンテンツデリバリーネットワーク)の略称を「CDN」と呼びます。
これは、Webコンテンツが効率的に、かつ迅速にユーザーに配信されるよう工夫されたネットワークシステムのことです。
昨今では、ネット環境を利用するユーザーが急増していることに加え、インターネットに流れているWebコンテンツが大容量化しており、ネットワークに対する負荷がかなり高くなっているという現状があります。
このような問題解決のために構築されたシステムを、CDNといいます。

※AWSのCloudFrontとは何?
「Amazon Web Services」の略書をAWSといい、この用語はクラウド型のWebサービスに対する呼称となっています。
この用語から連想されるとおり、AWSは大手通販サイトである「Amazon」が管理していて、企業が必要とするコンピューターリソースを提供しています。また、様々な事業においての運用面のサポートを行っています。

※エッジサーバって何?
エッジサーバーとは、実際にユーザー様がWEBページを開いている拠点に近い側のコンピューターのことを指します。
エッジサーバーは、世界約100か所に設置されています。また、全てのエッジサーバー間で同じ内容が同期されるため、ユーザー様が国外へ移動等した場合にも安定してスムーズなコンテンツ閲覧が可能といったメリットがあります。

※オリジンサーバって何?
別名「キャッシュサーバー」と呼ばれており、デバイス等からデータ発生した箇所に近い部分にて処理されるサーバーのことをいいます。
オリジンを和訳すると「おおもとの」といった意味になります。その意味のとおり、オリジナルのコンテンツがある元データを入れているサーバーといった意味合いになります。
通常コンテンツやアプリケーションのデータ配信等になりますが、一時的に利用者が増えて混雑した場合、「オリジンサーバーよりコンテンツ取得の機会を必要最低限に絞る」といった方法をとることにより、オリジンサーバーそのものに負荷を軽減する効果があります。

※AWSでのCDNの利用のメリットは?
すでにAWSの機能の一つであることにより、他のAWSサービスと連携しやすい点が挙げられます。
バックエンドとして指定する際、ロードバランサーの「ALB」、ストレージの「S3」等が選択できます。すでにAWSを利用中であれば、CDNのサービスを利用することができます。

※キャッシュとオリジン
サービスを提供するサーバーがオリジンサーバーであり、キャッシュサーバーはCDNに該当します。キャッシュサーバーはオリジンサーバーよりあらかじめデータを取得しておき、保持します。
一般的に、DNSに登録された「ドメイン」に基づき、ユーザーはオリジンサーバーに接続しています。しかし、DNSの接続先ドメインそのものをキャッシュサーバーにすることにより、オリジンサーバーの負荷が軽減できるというメリットがあります。
Webサイト等にユーザーがアクセスする場合、オリジンサーバーではなくキャッシュサーバーが対応することで、サーバー負荷を減らせるといった効果があります。
流れとしては、DNSに基づいてCDNにアクセスした際に、キャッシュサーバーはあらかじめ保持しておいたオリジンサーバーの情報を戻す、といったシステムになっています。

※CDNはセキュリティ対策で防御に役立つ
「分散型サービス拒否攻撃」と訳されるDDoS攻撃というものがあります。特定のサービスに対し、大容量の要求を分散しながら送り付け、対象となるサーバーを負荷のかかった状態にし、サービスの提供を妨げるというものです。
CDNを利用することにより、キャッシュサーバーがオリジンサーバーの役割を果たし、DDoS攻撃を回避できるといったメリットがあります。
この「DDoS攻撃」は、情報処理推進機構(IPA)が掲げる「情報セキュリティ10大脅威」に含まれるほど代表的なサイバー攻撃であり、CDNシステム導入のメリットの1つになっています。

※AWSでのCDNの仕組み5つ
1:CDNからデータ送信ができる
CDNとは、一番近い場所にあるエッジサーバーからユーザーにデータ提供するシステムのことをいいます。CDNからデータ送信することで、よりユーザーに早くデータ提供できるといったメリットがあります。
また、他にも各種保護機能が組み込まれています。
2:コンテンツのキャッシュができる
通常は一時的な性質キャッシュで、高速のデータストレージレイヤーのことをいいます。コンテンツのキャッシュができることで、それより後に同質のデータリクエストが発現した際、より高速にデータ供給できるといったメリットがあります。
キャッシュのデータ保存場所は、一般的にはランダムアクセスメモリ(RAM)等の高速アクセスが可能なハードウェアになります。
キャッシュそのものの目的は、基盤であるストレージレイヤーにアクセスする頻度を減らすことにより、データ取得の際のパフォーマンス向上に役立てるといったことです。
3:ストリーミングデータの配信に対応している
WEBページの機能以外にも、動画や音声等のメディアストリーミングデータ配信に対応しているといった特徴があります。AWSでのCDNは、「Adobe Media Server」などの、複数の製品に対応しています。
ストリーミングのデータ処理のメリットについては、データ分析が洗練された形で行えること、またデータの中からより深いインサイトが抽出できるようになるといったことが挙げられます。
また、現状において人気のある動画を検出する際、減衰時間枠等のイベント処理アルゴリズムや複雑なストリームが適用されることで、充実したインサイトが届けられるといったメリットもあります。
4:ユーザーへコンテンツが配信できる
「Amazon CloudFrontAWS Elemental MediaStore」に保存してあるコンテンツが配信できる、といった特徴があります。
CDNは、ユーザーがリクエストしたコンテンツを一番レイテンシの低いエッジロケーションという場所へルーティングします。エッジロケーションにすでにコンテンツがキャッシュ済みであるならば、CDNシステムはコンテンツをすぐに配信します。
ただし、エッジロケーションに現在コンテンツがない場合は、CDNはオリジンより該当コンテンツを取得し、ユーザーへ配信します。
5:レポートの作成に使われる
AWSでのCDNの仕組みの一つとして、レポートの作成に使われるといった特徴があります。
キャッシュ統計レポートが利用できます。過去にさかのぼって60日間の1日、または1時間あたりにおける各ビューワーの使用状況、期間を選択したうえで合計の使用率、最大使用率、平均的な使用率が表示されます。
また、期間を指定したうえでの上位50位のキャッシュヒット回数、リクエスト回数、キャッシュミス回数、エラー率が表示される「人気オブジェクト」のレポート作成もできます。
さらに、エンドユーザーが所在する国、使用しているブラウザやデバイス、オペレーティングシステムまでもが表示される「ビューワーレポート」も作成可能です。
その他にも、「トップリファラーレポート」作成もできます。これは、末端のユーザーがどのドメインからWebサイトを参照したのかを確認できるものです。

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

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

2:高速なグローバル化
世界中に配置されているキャッシュサーバーであるエッジロケーションにより、コンテンツがより早く効率的に配信されるCDNが実現できるという特徴があります。
Amazonバックボーンネットワークの「復元性が高い」という特徴を活用し、エンドユーザーにとって効果的なパフォーマンス・可能性が実現できます。

3:AWSサービスの統合ができる
「Amazon CloudFront」は、Amazon EC2、Amazon S3、Elastic Load Balancing(ELB)、AWS Elemental Media Services、Amazon Route 53などのAWSのサービスと密接に統合されています。
その関係で、各サービスとの連携が容易になるといったメリットがあります。
すべて同じ管理コンソールよりサービスにアクセスでき、CDNの全ての機能を各種サービスと連携設定して展開できます。

4:エッジでのセキュリティ
Amazon CloudFrontは、「ネットワークレベル・アプリケーションレベルの双方から保護される」という安全性が高い特徴があります。
「AWS Shield標準」といった様々な組み込み保護機能がありますが、トラフィックとアプリケーションを利用できるといったメリットがあります。
また、ACM(AWS Certificate Manager)といった設定可能な機能を利用することにより、カスタムSSL証明書を作成、管理することもできます。

いかがだったでしょうか?
こちらではいろいろな「なぜ?」を今後も発信できればと思っております。