6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

さくらインターネットAdvent Calendar 2019

Day 20

本番サイトにウェブアクセラレータを導入した話

Last updated at Posted at 2019-12-20

この記事は [さくらインターネット Advent Calendar 2019][0] 20日目の記事です。
[0]:https://qiita.com/advent-calendar/2019/sakura

はじまり

とあるサイトにCDNを導入してほしいとの依頼があり、弊社サービスのウェブアクセラレータを導入することになりました。そのサイトは本番稼働中で今後トラフィックが増加するのでその前に対応したいとのことでした。引き受けたのは良いのですが、本番稼働中というのが気になります。。。

稼働中の環境

サイトはさくらのクラウド上で稼働していました。GSLBを使っておりサイトのドメインはGSLBへのCNAMEが設定されている状態です。(構成についてはGSLBの概要を参照ください。)

DNSは以下のような設定です。

サイトドメイン レコード種別 設定
www.example.com CNAME xxxx.gslb1.sakura.ne.jp.

ウェブアクセラレータの導入方法

詳しくはマニュアルに記載されてるのですが、導入方法に3パターンあります。

  1. 独自ドメイン利用
  2. 独自ドメインに新しくサブドメインを作成して利用
  3. サブドメイン利用

2、3の方法ではキャッシュしたいファイルのURLが変更になり、コンテンツの修正が必要でした。このため、今回は1の方法で導入することになりました。1の方法だとコンテンツを修正する必要がありません。

導入テスト

本番サイトに導入する前にまずテストサイトで動作を試してみます。ウェブアクセラレータの設定は概ね以下の通り進めました。

1.オリジンサーバ(ウェブサーバ)でCache-controlヘッダを設定
2.コントロールパネルからサイトを追加
3.コントロールパネルからサイトを有効化
4.DNSの設定

(詳しくは初期設定(独自ドメイン利用)を参照ください。)

テストサイトでは以下のようにDNSを設定しました。

サイトドメイン レコード種別 設定
test.example.com CNAME xxxx.user.webaccel.jp.

設定後にテストサイトへアクセスするとレスポンスヘッダに x-cache: HIT と付与されています。無事にウェブアクセラレータを利用できてるようです。

本番への導入

テストドメインで無事動作確認できたので、続いて本番に導入していきます。しかし、ここで問題が発生しました。

テストドメインと同様にオリジンサーバの設定、コンパネからサイトを追加と行なって、コンパネからサイトを有効化しようとした時にサイトが有効化できません。この状態ではウェブアクセラレータにリクエストが到達しても、もちろんリクエストは処理されません。

サイトの有効化について

コンパネからサイトを追加するときに公開ドメイン名を登録するのですが、この公開ドメイン名の所有権を確認できた時に初めてサイトの有効化が行えるようになっていました。

所有権の確認は次のどちらかの方法で行えます。

  1. 公開ドメイン名のCNAMEレコードを設定する
  2. 公開ドメイン名のTXTレコードを設定する

テストサイトでは1の方法が使えたのですが、本番サイトはすでにCNAMEが設定されていてこの方法が使えません。またCNAMEを設定しているので2の方法も使えませんでした。

このままでは本番サイトへの導入時に数分のサイト断が発生してしまう状況です。やっぱり本番サイトの構成変更では何か起こりますよね。。。

解決

断を無くしたいなぁと考えていたところ、どこからともなく話を聞きつけたウェブアクセラレータの開発者が現れました。現在の構成を説明すると

開発者)あー、その構成だと断発生しちゃいますね
自分)そうですよねー
開発者)ちょっと待って他の開発メンバーと相談してみる
自分) お、お願いします。
開発者)有効にできるからサイト教えて
自分)これこれこのサイトです。(有効にできるだって?)
開発者)設定したから見てみて
自分)有効になってる!ありがとう

なんとも裏技的ですがサイトの有効化ができちゃいました、構成を説明しただけで解決までもっていってくれています。担当者が途中からまかせっきりですがいいんでしょうか?(今度何か奢っておこうと思います。)

その後

導入作業

無事サイトの有効化が行えたので、導入作業はDNSの設定変更を行えば完了です。実際に↓のように切り替えました。

サイトドメイン レコード種別 設定
作業前 www.example.com CNAME xxxx.gslb1.sakura.ne.jp.
作業後 www.example.com CNAME xxxx.user.webaccel.jp.

キャッシュするファイルやコンテンツしだいですが、導入後のウェブサーバへのリクエスト数は1/3に減りました。(対象のサイトは静的コンテンツがメインのサイトで、キャッシュに設定したのは画像ファイルやjsファイルです。)このサイトでは結果としてウェブアクセラレータの導入でウェブサーバの数が減らせるようになりました。

話の続き

今回の件を受けて、CNAMEで運用されているサイトにも導入しやすいように所有者のチェックについて機能追加が行われることになりました。サイトのサブドメインにTXTレコードを設定して所有者の確認が行えるようになるそうです。近々リリースされる予定なので同じような構成で困っておられた方はぜひ利用してもらえればと思います。

2020年01月23日 追記

件の機能がリリースされていました!
公開ドメインに既に別の CNAME レコードが設定されている場合

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?