[CloudFlare] 無料CDNサーバ「CloudFlare」のご紹介

前回は、Unityに関する、意外と知らない機能についてご紹介しました。
今回は、簡単ではありますが、CloudFlareについてご紹介いたします。

■CloudFlareとは?
 CloudFlareには色々な機能がありますが、大まかに以下の2つの機能が「無料で」利用できます。
 ・CDNサーバーとして機能します
 ・SSL機能を利用できます

 無料で利用できるということで、既に世界中で利用されています。
 (世界中のコンテンツの4%は、CloudFlare経由であるという統計情報もあります)

■CDNとは
 CDNサーバー(Content Delivery Network)というのは、簡単に言うと「キャッシュサーバー」です。
 静止画や動画のような、静的なコンテンツをキャッシュし、オリジナルのWebサーバーに変わって
 応答してくれるものです。

 プログラムを実行して、動的にコンテンツを作るような部分には利用できませんが、
 静止画や動画等は、一度Webサイトに公開した後は、基本的に変わることがありません。
 にも関わらず、これらのコンテンツはサイズが大きく、Webサーバー側の負担が大きいです。

 このため、これらの静的コンテンツを、CloudFlareにキャッシュしてもらうと、Webサーバーの負担が減ります。
 他にもCDNサーバーはいろいろとありますが、CloudFlareは「無料」です。

■SSL/TLS
 SSL/TLS(Secure Sockets Layer)(Transport Layer Security)というのは、簡単に言うと「暗号化技術」です。
 インターネットを利用するとき、「https://~」から始まるURLの場合、SSLが利用されています。

 通常、SSL/TLSを利用しようと考えた場合には、ざっくり以下のような手順を踏みます。
 1)自分でSSL/TLS証明書を作り
 2)認証局へ証明書発行の申請を行い
 3)自分のWebサーバーに、その証明書を設定する

 そして、2)の部分で料金がかかります。
 また、SSLには「有効期限」があるので、有効期限が切れたら、更新のために、また料金がかかります。

 認証局を通さずに、SSLを適用することもできますが、
 そのようなサイトにブラウザから接続すると、「このサイトは安全ではない可能性があります」
 という画面が表示されますし、自作したスマホアプリからアクセスすることも、基本的には出来ません。

 これが、CloudFlareを利用すると、SSL機能も「無料」です。

■AWS(Amazon Web Service)を利用しつつ、CDNサーバだけCloudFlareを利用するかどうか
 AWSは、個人的には非常に良いサービスだと感じます。
 Webサーバ/DBサーバ/キャッシュサーバ/コンテンツサーバ等を、自由に組み合わせることができ、
 スペックも自由に変更できます。

 AWSにもCDNサーバー(CloudFrontという名称です)がありますので、
 もしCDN機能を利用したいなら、これを使うのが良いと思うのですが、この機能は従量課金制です。

 料金だけで考えると、頻繁に更新がかかるようなサイトではないなら、
 CDNサーバーについてはCloudFlareを利用する方が有利です。

 CDNサーバーでどちらを利用するべきなのかは、その時々で変わると思いますので、
 判断に利用する際の情報をまとめます。

 1)日本国内の拠点数が、CloudFlareは1拠点、AWSは3拠点
  CDNサーバーを利用する場合に、導入の理由が「速度を早くする」点にあった場合、
  物理的に、どこにサーバーがあるのかが重要になります。

  CDNサーバーの応答が早いのは、世界中に多くのキャッシュサーバーを置いておいて、
  アクセスされた場所に最も近いところにあるキャッシュサーバーから
  必要なコンテンツを返却するからです。

  AWSは、日本国内だけで3拠点あります。
  CloudFlareは1拠点だけです。
  このため、CloudFlareはアクセスする場所によっては、応答時間が長くなります。
  また、もし物理的な障害(たとえば、大規模な地震)が起きた場合、
  3拠点あるAWSの方が、より安全です。

 2)セキュリティ設定をはじめとする、各種設定をすべてで共用できるかどうか
  CloudFront以外の部分を、AWSで構築しているのでしたら、
  CloudFront部分も含めて一元で管理できる方が良いです。

 3)Amazonのサービスは手厚い
  AWSを利用していて感じるのは、Amazonのサービスの手厚さです。
  日本語のドキュメントも多いですし、どうしても不明な点があっても電話等で対応してくれます。
  また、AWSコンソールも利用しやすいなと感じます。

  CloudFlareも、問い合わせサービス自体は手厚いと感じますが、日本語のドキュメントはありません。
  何かやりたいことがあった時に、実際にはCloudFlareで簡単に設定できるものであっても、
  なかなか探し出すことが出来ません。

 4)それでも、CloudFlareは無料である
  1)~3)のように、様々な部分でAWSの方が良いなと感じるものの、
  単純に安くCDNサーバーを利用しようと考えた場合は、無料であるCloudFlare一択です。

  ただし、コンテンツサーバーに、AWSのS3を利用する場合には、
  CloudFlareとS3間での通信には、AWS側の料金が発生します。

  静的コンテンツ自体を頻繁に更新するようなサービスでなければ、
  さほど問題にならないかなと思いますが、
  実際に導入する場合には、AWS側の料金表を参照してください。

■AWSを利用しつつ、CloudFlareを利用する方法
 CloudFlareでアカウントを作成後、サイトを登録します。





 AWSで設定済みの、EC2やS3に対して、ルーティング設定をします。
 この時、DNS名で登録する場合は「CNAME」、IPアドレスで登録するなら「A」です。
 また、Statusがオレンジ色の雲なら、CDNが有効になります。灰色の雲なら、DNSサーバーとしてのみ機能します。



 プランを設定します。ここでは無料にしています。



 ここまで進むと、ネームサーバーを以下の通り切り替えてください、と言われます。

 CloudFlare側は、このまま「Continue」ボタンで先に進むので問題ないですが、
 AWSのRoute56や、他のサービスでドメインを取得しているものと思いますので、
 そちら側でも、このネームサーバーの設定に自分で切り替える必要があります!



 最後に、AWSのS3に対してルーティングを行う設定を行います。



■SSLの設定も行う
 これまでの説明では、EC2側はDNSサーバーとしてのみ機能するようにしていましたが、
 SSLを設定する場合には、ここからさらに設定を行います。

 画像では、SSLの設定値を、「Flexible」にしています。
 他に、「Full」「Full(Strict)」の設定値もありますが、違いは以下の通りです。
 導入対象のWebサーバにあわせて、適時変更してください。

 ・Frexible:
  ブラウザ⇒CloudFlareまでがHTTPS、その先がHTTP
  つまり、AWSのEC2側には、SSL設定が必要ありません。
  とても画期的な設定ですが、WordPressを利用していたり、各種広告をサイト上に表示している場合には、
  そのままでは正常に動かないケースがあります。
  その場合には、個別に対応を行う必要があります。
 ・Full:
  ブラウザ⇒CloudFlare⇒その先までがHTTPS
  AWSのEC2側で設定しているSSL証明書が、認証局を通したものでなくても動作します。
 ・Full(Strict):
  ブラウザ⇒CloudFlare⇒その先までがHTTPS
  AWSのEC2側で設定しているSSL証明書が、認証局を通したものでなければ動きません。



 SSLを適用する場合には、DNS設定で、オレンジ色の雲マークに変更します。
 雲マークをクリックすることで、切り替わります。



■その他、注意点
 CDNサーバーの設定も、SSLの設定も、
 特にCloudFlareの無料プランの場合は、反映に時間を要しますのでご注意ください。

■まとめ
 CDNもSSLも無料で利用できる、CloudFlareは、とても良いサービスです。
 ご覧いただいた通り、特に難しい設定もなく、比較的簡単に設定できます。

 もし、Webサーバーの負荷が高く、CDNサーバーの導入を検討されているようでしたら、
 CloudFlareのご利用も検討してみてはいかがでしょうか?


弊社では全国各地の請負い(ご自宅)で作業協力頂ける、フリーランスエンジニアの方を常時探しております。
ご興味ある方は、お気軽にお問い合わせ下さい。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*