Amazon CloudFront について
はじめに
Webサイト上のコンテンツやWebページなどをユーザーにスムーズに届けるための技術として、コンテンツデリバリーネットワーク(CDN、Content Delivery Network)というサービスがあります。今回は数ある CDN の中から、前払い料金や長期契約を必要としない、Amazon S3 や Amazon EC2 などの AWS の各種機能と連携することで、ユーザーに対して最高のパフォーマンスと高度なセキュリティを提供することができる Amazon CloudFront の特徴についてまとめます。
Amazon CloudFront とは
Amazon CloudFront は、Amazon Web Services(AWS) より提供される、ユーザに対して静的および動的ウェブコンテンツを配信するネットワークサービスです。コンテンツをサーバーから直接配信せずに Amazon CloudFront を介してユーザーへ配信を行うことで、サーバーの負荷を減らし、レスポンスを高速化させることができます。
Amazon CloudFront の特徴
Amazon CloudFront には、以下のような特徴があります。
高速・高パフォーマンス
Amazon CloudFront では、エッジロケーション※1を通じて最高のパフォーマンスでコンテンツが配信されます。これにより、以下のメリットがあります。
レイテンシの低減
世界中のあらゆる場所からのアクセスにも低いレイテンシ(転送要求を出してから実際にデータが送られてくるまでに生じる通信の遅延時間が短い)の高速転送が可能です。これは世界各地に配備されているエッジサーバーから、ユーザーと最も近いサーバーを使用してコンテンツ配信が行われることにより実現されています。
サーバー負荷の軽減
ユーザからリクエストを受けたエッジサーバーは、要求されたコンテンツファイルをオリジンサーバーから取得してユーザーに配信します。その際に取得したファイルをキャッシュしており、リクエストされたコンテンツファイルがキャッシュされている間はオリジンサーバーへアクセスはせず、エッジサーバーでキャッシュされたファイルを配信します。これによりオリジンサーバーへのアクセスを減らし、負荷を軽減します。
可用性の向上
上述しました通り、世界中の Amazon CloudFront のエッジロケーションにコンテンツをキャッシュし、必要なときにのみオリジンサーバーからコンテンツを取得することで、オリジンサーバーの負荷を軽減することができ、結果として可用性を高めることができます。
また、Amazon CloudFront のオリジンフェイルオーバー機能を使用することで複数のオリジンを設定することができ、何かしらの障害等でプライマリオリジンが使用できない場合には、他のバックアップオリジンから自動的にコンテンツを配信することができます。これにより、オリジンに冗長性を持たせることができます。なお、オリジンフェイルオーバーで設定できるオリジンは、EC2 インスタンスや Amazon S3 バケット等の AWS オリジンの他にも、オンプレミス HTTP サーバーなどの非 AWS オリジンとすることもできます。
安全性の高いセキュリティ
Amazon CloudFront では高度な SSL 機能が提供されており、自動的に有効になります。また、AWS Certificate Manager(ACM) を使用することで、容易に独自の SSL 証明書を作成して、Amazon CloudFront ディストリビューションに無料でデプロイすることができます。この他にも、コンテンツに対するアクセスを制限することができたり、AWS の各種機能(例えば、AWS Shield や AWS Web Application Firewall (WAF)など)とシームレスに連携することで、DDoS 攻撃など複数の攻撃に対して柔軟で階層化されたセキュリティで対応することができ、高性能なセキュリティを実現しています。
コストの削減
Amazon CloudFront の料金は基本的に以下の項目により決まります。
- ユーザーへのデータ転送量
エッジサーバーからユーザーに転送されたデータ量に応じて課金されます。 - オリジンサーバーへのデータ転送量
エッジサーバーからオリジンサーバーへのデータ転送量に応じて課金されます。ただし、Amazon S3、Amazon EC2 や Elastic Load Balancing といった AWS オリジンを使用する場合、それらのサービスと Amazon CloudFront との間のデータ転送には料金が発生しません。 - エッジサーバーへのリクエスト数
エッジサーバーへの HTTP/HTTPS リクエスト数に応じて課金されます。
なお、新規ユーザーは12か月の間 AWS の無料利用枠として、Amazon CloudFront における 50GB のデータ送信と 2,000,000 件の HTTP/HTTPS リクエストが無料となります。
オリジンサーバーの要件
Amazon CloudFront は、ユーザーからファイルのリクエストを受け取ると、配布するコンテンツの元ファイルを格納する場所(オリジン)にアクセスしてエッジロケーションで配信するファイルを取得します。その為、Amazon CloudFront を使用するにあたり、オリジンサーバーを設定する必要があります。オリジンサーバーの要件としては、1つ以上の Amazon S3 バケット(ファイルやフォルダを含めることができるコンテナのこと)、もしくは HTTP サーバーとなります。HTTP サーバーとして、Amazon EC2 インスタンス、または独自の HTTP サーバーを使用することもできます。
まとめ
CDN は古くから考えられてきたサービスであり、現在も複数の種類があります。その中でも特に Amazon S3 や Amazon EC2 などをオリジンとして既に利用している、もしくは利用する予定である場合には、Amazon S3 や Amazon EC2 と Amazon CloudFront 間でのデータ転送の料金が発生しないことからコストを抑えることができるため、Amazon CloudFront は非常に有力な候補となるでしょう。
<注釈>
※1 … エッジロケーション とは
AWSによって維持されるネットワーク拠点を指します。世界中の主要都市のほとんどに設置されており、ユーザーにコンテンツを配信する際にエッジロケーションのグローバルネットワークが使用されることで、ユーザに対してネットワーク的に最も近い拠点からコンテンツの配信を行うことができ、データ転送の待ち時間を短縮することができます。