ウェブアクセラレータ

さくらのクラウドで提供中のCDN(Content Delivery Network)サービス「ウェブアクセラレータ」を利用して、仮想サーバの負荷を減らしウェブサイトの表示を安定させる方法をご案内します。

さくらのVPSでは「root権限(管理者権限)」を利用できることから、Apacheやnginxの設定ファイルを変更して、ある程度はウェブサイトのエラー対策が行えます。

しかしながら、それを上回るアクセス過多が発生した場合、サーバリソース不足が原因となりエラーが表示されることもあるため、ウェブアクセラレータの利用が対策として有効です。

用語説明

オリジンサーバ ウェブアクセラレータで配信するコンテンツデータのもとを保持しているサーバ。ここではさくらのVPSです。
ゾーンアペックス example.jpのようにドメインの前に何もない名前です。
リソースレコード AレコードやMXレコードなどの設定情報です。

前提条件・事前確認

前提条件

ウェブアクセラレータでは利用するドメインについて、以下の3パターンがあります。( 5. 各機能の利用の流れ

  • 利用手順(独自ドメイン)
  • 利用手順(独自ドメインにサブドメインを新規設定)
  • 利用手順(サブドメイン)

このチュートリアルでは「利用手順(独自ドメイン)」による、コンテンツの配信にお客様がお持ちのドメインを利用し、かつすでに稼働中のサイトのドメインにキャッシュを設定する際の使い方をご案内しています。

独自ドメインの利用では、ドメインのCNAMEレコードを編集します。CNAMEは仕様上、ゾーンアペックスには設定できません。www.example.jpのようにサブドメインが設定されている必要があります。

独自ドメインを利用する設定例として、ドメインを以下のように定義しています。

www.example.jp 公開しているサイトのホスト名
example.jp オリジンサーバ指定用のFQDN(ドメイン名、ホスト名)

さくらのクラウドアカウントをお持ちでない場合、 新規登録の手続き をおこなってください。

さくらのクラウドに新規登録してみよう(2018年2月版) – 「楽しいさくらのクラウド」(20)

事前確認

お客様のオリジンサーバやネームサーバにて、以下の設定ができるかをご確認ください。設定できない場合は、このページの方式でのウェブアクセラレータの利用はできません。

  • お客様がお持ちのドメインのCNAMEレコード、Aレコード、TXTレコードが編集できること。
  • 既存のドメインをそのまま使う場合はお客様のドメインのAレコードを削除し、CNAMEレコードに変更しますので、TTLを変更できる場合は作業前に300秒程度にしておくことをおすすめします。
  • キャッシュしたいファイルに対してHTTPレスポンスヘッダーを追加できること。(Apacheであれば.htaccessが使用できる、nginxの場合はnginxの設定ファイルが編集できれば可能です)

事前準備

オリジンサーバにてコンテンツのキャッシュ設定

ウェブサーバの設定ファイル記述方法をご紹介します。この設定は必須のため、適切に設定されていない場合はキャッシュ配信が行われません。

nginxの場合

デフォルトの設定ファイルであるnginx.conf、またはincludeされる設定ファイルに記載します。
以下は拡張子「gif」「jpg」「png」「ico」のファイルをキャッシュ時間1日(86400秒)としてウェブアクセラレータにキャッシュすることができます。
対象ファイルは「 | 」(パイプ)で区切ることで追加できます。

location ~* \.(gif|jpg|png|ico)$ {
 add_header Cache-Control "s-maxage=86400, public";
}

Apacheの場合

この設定は .htaccess、httpd.conf、またはincludeされるApacheの設定ファイルに記載されている必要があります。
以下は拡張子「gif」「jpg」「png」「ico」のファイルをキャッシュ時間1日(86400秒)としてウェブアクセラレータにキャッシュすることができます。
対象ファイルは「 | 」(パイプ)で区切ることで追加できます。

<Files ~ "\.(gif|jpg|png|ico)$">
  Header set Cache-Control "s-maxage=86400, public"
</Files>

キャッシュサーバからオリジンサーバへのアクセスポートの開放

ウェブアクセラレータのキャッシュサーバは、以下のネットワークよりオリジンサーバへの通信を行っています。オリジンサーバにて以下ネットワークからのHTTP(80)の通信を許可するよう設定をお願い致します。

133.167.4.0/24
153.121.0.0/24(2017/1/31追加)

※ 設備増強により接続元IPアドレスが増加することがあります。

DNS設定の変更

さくらのVPSは無料でさくらのネームサーバを利用できます。( ネームサーバ利用申請

ここではさくらのネームサーバの利用を前提としてご説明していますが、他社ネームサーバでもウェブアクセラレータはご利用可能です。他社ネームサーバの設定については、他社サポートサイト等をご参考いただき、お客様にて設定をお願いいたします。

なお、レコードリソースの設定が誤っているとメールの受信などができなくなりますので、正しく入力するようご注意ください。
また、DNS設定の反映には時間を要しますので、 ウェブアクセラレータの設定を行う1日以上前に実施ください。

ネームサーバの利用するには会員メニューへログインします。

「契約情報」→「契約ドメインの確認」の順にクリックします。

ページ下部にある「ドメインメニュー」をクリックします。

「ネームサーバ新規登録」をクリックします。

独自ドメイン「example.jp」を入力し、「送信する」をクリックします。

これでネームサーバの登録は完了しました。「ドメインメニューへ」から次に進んでください。

ネームサーバに登録した独自ドメイン「example.jp」の「ゾーン編集」をクリックします。

さくらインターネットのネームサーバに設定する(詳細設定)の「送信する」をクリックします。

初期状態ではNSのみ設定されています。「変更」をクリックして「example.jp」のリソースレコードを登録してください。

公開しているサイトのドメイン「www.example.jp」のAレコードはTTLの指定を300にして「新規登録」をクリックします。

全てのリソースレコードの登録が完了したら、「データ送信」をクリックして設定を反映させます。

ドメインメニューのWHOIS情報編集でネームサーバを変更します。
例として以下はさくらインターネットで管理しているドメインのWHOIS情報画面です。他社ネームサーバが設定されている場合は「ns1.dns.ne.jp」「ns2.dns.ne.jp」に変更します。

ウェブアクセラレータの設定

ウェブアクセラレータ ダッシュボードへのアクセス手順

さくらのクラウドのログイン画面から「さくらのクラウドユーザとしてログイン」します。

「ウェブアクセラレータ」のアイコンをクリックすると、ダッシュボードが表示されます。

サイトの新規追加

ウェブアクセラレータを利用するウェブサイトを新規追加します。左メニューの「サイト追加」をクリックして情報を入力します。

ドメイン種別 独自ドメイン
サイト名 コントロールパネルに表示される名前
公開ドメイン名 公開中のドメイン名(例では www.example.jp)
オリジンサーバ オリジンサーバのドメイン名(例では example.jp)

入力後は「保存」をクリックします。

これでサイトの新規追加は完了です。サイトの詳細な情報を確認するには「追加サイトの詳細」をクリックします。

新規追加時はウェブアクセラレータが無効になっています。有効にするため「CNAME先」の情報(00000000.user.webaccel.jp)をメモ等に控えてください。

DNS設定(TXTレコードの追加)

ウェブアクセラレータのサイト有効化前にCNAMEを設定するとサイトが閲覧できなくなります。 そのため、すでに稼働中のサイトで独自ドメイン設定を行う場合はTXTレコードによる事前認証を行います。

会員メニューにログインした後、「契約情報」→「契約ドメインの確認」の順にクリックします。
ページ下部にある「ドメインメニュー」から進み、独自ドメインの「ゾーン編集」をクリックします。

「変更」をクリックします。

TXTレコードの情報を入力した後、「新規登録」をクリックします。値にはサイト新規追加時に控えておいた情報を用います。

エントリ名 www
種別 テキスト(TXT)
webaccel=00000000.user.webaccel.jp

「データ送信」をクリックすることで、TXTレコードの設定が反映します。

ステータスの有効化

さくらのクラウドのログイン画面から、ウェブアクセラレータのダッシュボードに移動します。初期状態では「ステータス無効」になっていますので「設定」をクリックします。

「有効にする」をクリックすると、「ステータスを有効に切り替えますか?」とメッセージが表示されます。内容を確認して問題がなければ「有効に切り替える」をクリックします。

この画面が表示されたら有効化は完了です。

DNS設定(CNAMEへ変更)

CNAMEレコードはAレコードやTXTレコードとの共存ができません。Aレコードや事前認証のために設定したTXTレコードは削除が必要です。 なお、Aレコードを削除するとAレコードに設定したTTLの時間が経過した時点でサイトが閲覧できなくなります。削除後はできるだけ早くCNAMEレコードを設定してください。

会員メニューにログインした後、「契約情報」→「契約ドメインの確認」の順にクリックします。ページ下部にある「ドメインメニュー」から進み、独自ドメインの「ゾーン編集」をクリックします。

「変更」をクリックします。

事前認証で使用したTXTレコードは「削除」をクリックして削除します。

CNAMEレコードの情報を入力した後、「変更」をクリックします。この変更により「www.example.jp」のAレコードが削除されます。

エントリ名 www
種別 別名(CNAME)
00000000.user.webaccel.jp.

「データ送信」をクリックすることで、CNAMEレコードの設定が反映します。

CNAMEの設定を行ってから最大でAレコードのTTL値分(ここでは300秒)の時間が経過するとキャッシュが有効になります。

ウェブサイトの確認

Google Chromeなどのブラウザで、「www.example.jp」にアクセスします。デベロッパーツールを使用して、オリジンサイトの画像ファイルがウェブアクセラレータ経由(独自ドメイン:www.example.jp)になっていることを確認します。

また、キャッシュされているファイルはレスポンスヘッダー「X-Cache」が「HIT」になります。東京リージョンと大阪リージョンで最低2回のキャッシュ用アクセスが必要ですので、2回以上、複数回アクセスしてからご確認ください。

※ 以下の画像はGoogle Chromeのデベロッパツールにおける「Network」の「Headers」

DNS設定(CNAMEのTTL変更)

動作に問題が無いことが確認できれば、「www.example.jp」に設定したCNAMEのTTLを3600に戻します。
「www.example.jp」のゾーン編集画面に入り「00000000.user.webaccel.jp.」をクリックすると、「エントリの追加と変更」に情報が入力されます。
このまま「変更」→「データ送信」をクリックすることで、TTLが3600になります。

以上でウェブアクセラレータの設定は完了です。