本記事では、CDNについての概要とCloudflareでドメインを管理する方法について紹介したい。

Cloudflareはアメリカの企業が提供しているDNS&CDNプロバイダーだが、無料プランでも非常に優秀なので是非導入して欲しい。

最近IPOをするという噂も聞くので、企業としても注目している(2019年9月かな?)。

CDNとは

まず、Cloudflareを説明する前にCDNについての概要を抑えておかなければならない。

CDNとはコンテンツデリバリネットワーク(Content Delivery Network)の略であり、世界中に張り巡らされたCDN専用の配信ネットワーク(CDNプラットフォーム)を利用して、ウェブサイトへアクセスしようとするエンドユーザに最も近いPoP(配信拠点)から、効率的かつ高速にウェブを配信する仕組みだ。

一般に、インターネット上でウェブサイトを運営する場合は配信元となるウェブサーバ(以下オリジン)をたて、そこへエンドユーザ(訪問者)を誘導する形でコンテンツの配信を行う。しかし、突発的にアクセスが増えるとオリジンサーバーがダウンしてしまうことや、配信元IPと物理的に遠い地域からアクセスしようとするとウェブサイトの表示に時間がかかってしまう。

これを避けるため、グローバルに事業を展開しているCDNプロバイダーは、PoPを世界中に設置し、そこに多数のウェブサーバー(以下CDNサーバー)を配置してCDNプラットフォームを構築しているのだ。それぞれのCDNサーバーにはオリジンサーバーから取得したコンテンツをキャッシュ(コピー)しておき、アクセスしてきたエンドユーザに最も近いCDNサーバがリクエストに応答することで、高速で安定した配信環境が保たれる。(引用:cdnetworks

要約すれば、オリジンサーバーへ常に送っていたリクエストを、CDNサーバーを介すことでオリジンサーバーの負荷軽減になり、最も近い位置からレスポンスを返すことでウェブサイトの表示速度を高速化できるのだ。

図にすると、以下のようになる(拙い図で申し訳ない)。

1.オリジンサーバーからエンドユーザーへレスポンスを返すパターン

CDN
オリジンサーバー to エンドユーザー

2.オリジンサーバーとエンドユーザーの間にCDNサーバーを介させたパターン

CDN
オリジンサーバー to CDNサーバー to オリジンサーバー

最近のユーザーはウェブサイトの表示速度に対して非常に敏感であるため、読み込み速度の高速化施策は必須事項だ。

なんでも、最初のページが表示される(読み込まれる)までに3秒以上かかると53%が離脱するらしい。

有名なCDNプロバイダー

有名なCDNプロバイダーには、以下のような企業がある。ネットワークは非常に重要なレイヤーのため、GoogleやAmazon、Microsoftといったサービスも力を入れている。

Cloudflareとは

Cloudflare

Cloudflareは、インターネットに接続された何百万ものウェブサイト、API、SaaSサービスを高速化&保護している。世界に180以上のデータセンターを有しており、CrunchbaseやZendesk、Mapbox、Discord、Marketo、DigitalOcean、Hubspotといった企業も使用しているサービスだ。攻撃を受けやすいcoinbaseといった仮想通貨取引所の多くも、DDOS対策などのためCloudflareを利用している。

Cloudflareを利用する目的は、おおよそ以下のように分けられるだろう。

  • CDN
  • Firewall
  • DDOS対策
  • ロードバランシング
  • WAF
  • SSL
  • 動画配信

CDNは上記で説明した。ロードバランシングは、その名の通り複数サーバー間でさらに負荷分散を行うもの。SSLは、要するに「https://」接続の設定だ。

分かりづらそうな、WAFとDDOSについて軽く説明する。

WAF

WAFはWeb Application Firewall(ウェブアプリケーションファイアウォール)の略で、SQLインジェクションやクロスサイトスクリプティングといった脆弱性を攻撃してくる行動を検知し、防ぐものである。

CloudflareのWAFは既存のインフラに変更を加えることなく実行できるので、非常に簡単かつ便利なソリューションだ。

オンプレミスのファイアウォールはすぐ時代遅れになり(クラッカーとのイタチごっこ)、新しい脅威から保護するために規則を定期的に更新する専門家と時間を必要とする。CloudflareのWAFは、新しいセキュリティの脆弱性がリリースされたとき自動的に更新することで、脅威に先行し続けることができる。

DDOS対策

近年のDDOS攻撃はどんどん高度化し、強力になっている。すなわち、人為的な大量トラフィックやアプリケーション層への侵入は常に試みられている。

Cloudflareを導入すると、オリジンサーバーのIPアドレスを簡易的に隠せるので、DDOS攻撃は減る。DDOS攻撃を初期段階でブロックできると、顧客情報の流出や悪意あるBotをブロックしコストを下げる事が可能となる。

DDOS

登録

では、Cloudflareを導入するために登録していこう。

このURLにアクセスし、サインアップをクリックする。

Cloudflare

メールアドレスとパスワードを指定し、アカウントを作成する。使用するメールプロバイダーはGmailやProtonmailが良いだろう。

指定したメールアドレスに認証リンクが送られるので、指定URLをクリックし承認する。

Cloudflare

導入

では、ウェブサイトを追加していこう。Add Siteからドメインを入力する。

Cloudflare

プランを選択。Freeでも十分に高機能だが、画像圧縮やスマートルーティング、WAFなどを使用したい場合はPro上を選択する。Pro以上の場合は、クレジットカードを用意しておこう。

Cloudflare

DNSをスキャンしてくれる。基本的に、まだ何もドメインをウェブサイトに紐付けたり、DNSを別プロバイダーで管理していない場合、各レコードは空である。

Cloudflare

Remove there nameserverには現在登録されているDNSプロバイダーのネームサーバー(NS)が記録されているので、既存のNSをCloudflareのNSに変更してあげる。

Cloudflare

ムームードメインでドメインを取得している人は、以下の記事で確認できる。

ダッシュボードで各種設定

では、各種設定項目を見ていこう。

Cloudflareには、本記事執筆現在以下のような項目がドメインのダッシュボードに表示される。

左から順番に、

  • 概要
  • 分析
  • DNS
  • 暗号化
  • ファイアウォール
  • アクセス管理
  • 高速化
  • キャッシュ
  • Workers(サーバーレスでJSを実行できる環境)
  • ページルール
  • ネットワーク
  • トラフィック
  • ストリーム(動画配信)
  • カスタムページ
  • アプリ(CloudflareからWelcome Barなどのアプリを追加できる)
  • スクレイプシールド

となっている。

フリープランで一般的なユーザーが使用するのは、主に以下の4つ。

  • DNS
  • 暗号化
  • 高速化
  • キャッシュ

Cloudflareは非常に高機能なのだが、これら4つを見ればいいと思う。Workersは開発者向け、カスタムページはPro以上向け、FirewallもPro以上向けだ。

Cloudflare

Overview

概要(Overview)はアナリティクスのようになっており、ユニークビジターやトータルリクエス地、キャッシュ、セーブしたデータ量などがグラフ化される。その横のAnalytics(分析)では、更に詳細な分析結果が出るので見ているだけでも楽しくなってくる。

以下画像は最近Cloudflareに登録したドメイン(新規サイト)なので、以下のようにほぼアクセスされていない。

Cloudflare

DNS

DNSは、その名の通りDNS管理に使用する。Aレコード、CNAME、TXT、MXといった各種サービスで用いるレコードは、すべてCloudflareで管理できるのだ。

他にも、DNSSECというDNS偽造を防ぐ機能もあるので、ドメインを取得したプロバイダーがDNSSECに対応していれば登録することで安全性を高めることができる(任意レベル)。

暗号化

暗号化では、SSLやTLS関連の設定を行える。脆弱性を含みレスポンスの遅いTLS1.1以前は対応しないといった事もボタンワンクリックで行える。ほか、自動でURLをhttpsに変更してくれる『Automatic HTTPS Rewrites』などもある。

Let’s Encryptやその他SSL証明書発行サービスで面倒な事をせずとも、Cloudflareだけで簡易的にSSL化は出来てしまうので非常に楽。ただし、簡易的なSSL化なのでウェブサイトとオリジンサーバー間は暗号化されないので気をつけてほしい。

Page Rulesで、「http://sample.com」を自動でhttpsに置き換える設定にしておくと良いだろう。

高速化

高速化では、Auto MinifyでJavaScript、CSS、HTMLを圧縮してくれる設定や、Brotli圧縮(BrotliはGoogleがファイルサイズをさらに縮小するために開発したオープンソースの新しいLZ77アルゴリズムをベースとした圧縮アルゴリズム)、JSの描画時間を短縮するRocket Loaderが無料で設定出来る。Pro以上であれば、画像圧縮やHTTP2の強制も設定可能。

スクレイプシールド

スクレイプシールドでHotlink Protectionを有効にすると画像を外部リンクから保護できるので、リンクサイトのような元リンクを記載せずにコンテンツをパクるウェブサイトから自身のコンテンツを保護できる。

まとめ

無料で最大限Cloudflareを利用する方法を解説してきた。Cloudflareのダッシュボードは直感的で非常に分かりやすく、初心者レベル2くらいでも扱えるCDNサービスである。

AWS CloudfrontやFastly、KeyCDNなども良いのだが、勿論お金はかかり少し分かりづらい。

サブドメインのみを管理するといったことは出来ないのだが、DNSプロバイダーとして十分利用する価値のあるサービスだ。

ウェブサイトの高速化、ならびにセキュリティ向上&保護のためCloudflareを活用してみよう。

昔からあるエンタープライズ向けにコンテンツデリバリネットワーク事業とクラウドセキュリティー事業を提供するAkamai(アカマイ)の書籍が面白い。

You May Also Like
シンタックスハイライト
続きを読む

【3行のコードだけ】手軽にシンタックスハイライトを導入できる「highlight.js」の使い方

テック系でブログを運営している人は、記事内にコードを記述するとき、何か味気ない感じがした経験はあると思う(プログラムの事を書く人)。 そんなとき、シンタックスハイライトを導入すれば、見栄えが良くなることをご存知だろうか。…