IDCFクラウド 活 用 マニュアル コンテンツキャッシュを 活 用 してWebサーバーの 負 荷 を 下 げたい コンテンツキャッシュを 活 用 してWebサーバーの 負 荷 を 下 げたい 目 次 (1) Webサーバー(オリジンサーバー)の 作 成 と 設 定... 3 (2) DNSの 設 定... 9 (3) コンテンツキャッシュの 設 定... 15 Column:HTTPSを 使 用 したコンテンツキャッシュ... 21 最 終 更 新 日 :2015/11/23
コンテンツキャッシュを 作 成 してWebサーバーの 負 荷 を 下 げたい コンテンツキャッシュは 高 速 なキャッシュサーバーの 機 能 を 提 供 するサービスです Webサーバー には 予 め 用 意 してある 画 像 などの 静 的 なコンテンツが 幾 つかあると 思 います この 画 像 へのアクセ スについては Webサーバーが 応 答 を 返 してコンテンツを 渡 すだけですので 画 像 のデータを 高 速 なキャッシュサーバーに 置 いて 応 答 をキャッシュサーバーからにすることにより Webサーバー 側 は 応 答 処 理 をする 必 要 がなくなり その 分 負 荷 を 下 げながら 高 速 なレスポンスを 得 る 事 ができま す コンテンツキャッシュを 含 めた 形 で 構 築 するには キャッシュしたコンテンツをコンテンツキャッ シュから 読 み 出 すように 指 定 する 必 要 があります IDCFクラウドのオブジェクトストレージを 使 用 してキャッシュ 連 携 させる 方 法 もありますが 今 回 は 独 自 ドメインを 取 得 したWebサーバーにオリ ジナルのファイルを 置 いて コンテンツキャッシュにキャッシュさせる 形 で 構 築 します 本 書 の 中 で 一 部 Webサーバーを オリジンサーバー コンテンツキャッシュを キャッシュサー バー と 記 載 しています またDNSの 設 定 を 行 いますので 独 自 ドメインを 取 得 している 前 提 で 記 載 しております 2
(1) Webサーバー(オリジンサーバー)の 作 成 と 設 定 Webサーバー (オリジンサーバー)の 作 成 は Webサイトの 本 番 環 境 を 構 築 したい(Web1 台 構 成 ) を 参 照 して 行 います 以 降 の 手 順 は Webサイトの 本 番 環 境 を 構 築 したい(Web1 台 構 成 ) のP.9 まで 完 了 した 状 態 からの 手 順 となります (http://www.idcf.jp/cloud/document.html#manual) 今 回 は 画 像 をキャッシュさせる 目 的 で 構 築 しますので 画 像 ディレクトリを 作 成 し そのディレ クトリのルールにキャッシュヘッダ 情 報 を 追 加 します 1 Web 公 開 領 域 にImgディレクトリを 作 成 し ディレクトリができた 事 を 確 認 します [root@web01 ~]# mkdir /var/www/html/img [root@web01 ~]# ls -ld /var/www/html/img drwxr-xr-x 2 root root 4096 11 月 23 13:28 2015 /var/www/html/img 2 テスト 用 のインデックスファイルを 作 成 し ファイルができた 事 を 確 認 します [root@web01 ~]# echo "test" > /var/www/html/img/index.html [root@web01 ~]# ls -l /var/www/html/img/index.html -rw-r--r-- 1 root root 5 11 月 23 13:38 2015 /var/www/html/img/index.html 3 curlコマンドでヘッダ 情 報 を 確 認 し Cache-Control の 情 報 が 無 い 事 を 確 認 します [root@web01 ~]# curl --head http://ipアドレス/img/ HTTP/1.1 200 OK Date: Mon, 23 Nov 2015 04:43:52 GMT Server: Apache Last-Modified: Mon, 23 Nov 2015 04:38:03 GMT ETag: "5-5252dca67197c" Accept-Ranges: bytes Content-Length: 5 Connection: close Content-Type: text/html [root@web01 ~]# 4 apacheのコンフィグファイルを 作 成 し ヘッダ 情 報 を 追 加 します [root@web01 ~]# cat >> /etc/httpd/conf.d/cache.conf << EOF <Directory "/var/www/html/img"> Header always set Cache-Control "public" </Directory> EOF [root@web01 ~]# 3
5 コンフィグチェックを 行 い 設 定 を 反 映 します [root@web01 ~]# apachectl configtest Syntax OK [root@web01 ~]# service httpd restart httpd を 停 止 中 : [ OK ] httpd を 起 動 中 : [ OK ] 6 curlコマンドでヘッダ 情 報 を 確 認 し Cache-Control の 情 報 が 有 る 事 を 確 認 します [root@web01 ~]# curl --head http://ipアドレス/img/ HTTP/1.1 200 OK Date: Mon, 23 Nov 2015 05:01:12 GMT Server: Apache Cache-Control: public Last-Modified: Mon, 23 Nov 2015 04:38:03 GMT ETag: "5-5252dca67197c" Accept-Ranges: bytes Content-Length: 5 Connection: close Content-Type: text/html [root@web01 ~]# 7 キャッシュ 指 定 ディレクトリに 画 像 ファイルをアップロードします ここではwinscpを 使 用 して 説 明 します ホスト 名 に IPアドレス を 記 入 します ユーザ 名 に root を 記 入 し 設 定 をク リックします 4
8 高 度 なサイトの 設 定 画 面 で 左 メニューより SSH- 認 証 をクリックします 認 証 条 件 の 秘 密 鍵 にsshログインする 際 の 秘 密 鍵 を 選 択 します 9 秘 密 鍵 をPuTTY 形 式 の 鍵 に 変 換 するか 確 認 のウィンドウが 出 ますので OKをクリックし ます (その 後 noticeの 画 面 が 上 がる 場 合 がありますがOKをクリックします ) 5
10 8の 工 程 を 再 度 実 施 します 鍵 に 今 回 作 成 したPuTTY 形 式 の 鍵 を 選 択 して OK をクリ ックします 11 ログインをクリックします ( 初 回 アクセスの 場 合 警 告 の 画 面 が 出 ますが はい をクリックします ) 12 左 側 にローカル 右 側 にサーバーのディレクトリが 表 示 されます( 通 常 インストールの 場 合 ) 右 側 のサーバーから /root のディレクトリ 表 示 をダブルクリックします 6
13 ディレクトリを 開 く テキストボックスに 1で 設 定 したキャッシュさせるimgディ レクトリ /var/www/html/img を 入 力 し 開 く をクリックします 14 アップロードしたいファイルを 右 側 サーバーの 部 分 にドラッグアンドドロップしてア ップロードします アップロードできたら を 押 してウィンドウを 閉 じます ( 終 了 し てもよいか 確 認 のウィンドウが 上 がりますのでOKをクリックします ) 7
15 サーバー 上 でアップロードできている 事 を 確 認 します ( 本 マニュアルではMORIO.jpgというファイルをアップロードしました 以 降 MORIO.jpgという 部 分 は 自 身 のアップロードしたファイルと 読 み 替 えて 下 さい ) [root@web01 ~]# ls -l /var/www/html/img/ 合 計 16 -rw-r--r-- 1 root root 12097 11 月 20 21:52 2015 MORIO.jpg -rw-r--r-- 1 root root 5 11 月 23 13:38 2015 index.html 16 アップロードしたファイルに 対 してHTTPのヘッダ 情 報 を 確 認 し Cache-Controlのヘッ ダ 情 報 が 付 与 されている 事 を 確 認 します [root@web01 ~]# curl --head http://ipアドレス/img/morio.jpg HTTP/1.1 200 OK Date: Mon, 23 Nov 2015 06:45:48 GMT Server: Apache Cache-Control: public Last-Modified: Fri, 20 Nov 2015 12:52:35 GMT ETag: "2f41-524f85976cac0" Accept-Ranges: bytes Content-Length: 12097 Connection: close Content-Type: image/jpeg 以 上 でWebサーバー(オリジンサーバー) 側 の 作 業 は 完 了 です 次 にDNSを 設 定 して 独 自 ドメインでレコードの 指 定 を 行 います 8
(2) DNSの 設 定 [IDCFクラウド 活 用 マニュアル] コンテンツキャッシュを 作 成 してWebサーバーの 負 荷 を 下 げたい コンテンツキャッシュを 独 自 ドメインで 使 用 する 為 には IDCFクラウドが 提 供 するキャッシュサ ーバーを 独 自 ドメインで 解 決 できるように CNAMEレコードを 追 加 する 必 要 があります 今 回 は(1) で 作 成 したWebサーバー(オリジンサーバー)にAレコードを 作 成 し コンテンツキャッシュ 用 に CNAMEレコードを 作 成 します 1 IDCF Cloud のロゴマークをクリックしてトップ 画 面 に 戻 り グローバルセクション から DNS をクリックします ( 初 回 アクセスの 場 合 サービス 規 約 に 同 意 してサー ビスを 申 し 込 む 画 面 になります サービスに 申 し 込 む 事 でDNSのコントロールパネルを 表 示 させる 事 が 可 能 となります ) 2 DNSゾーン 作 成 をクリックしてゾーン 作 成 画 面 を 表 示 します( 契 約 後 の 初 回 アクセ スの 場 合 本 画 面 は 表 示 されずにDNSゾーン 作 成 画 面 が 直 接 表 示 される 場 合 がありま す) 9
3 DNSゾーン 作 成 画 面 で 以 下 のように 設 定 して 作 成 する をクリックします 項 目 設 定 内 容 ゾーン 名 独 自 ドメイン 名 テンプレート 選 択 なし メールアドレス 管 理 者 のメールアドレスを 指 定 TTL 初 期 値 600 説 明 任 意 にゾーンの 説 明 を 追 加 4 確 認 画 面 が 表 示 されますので[はい]をクリックしてDNSゾーンを 新 規 に 作 成 します 5 DNSゾーン 一 覧 に 作 成 したDNSゾーンが 追 加 されます 6 作 成 したDNSゾーン 名 をクリックしてレコード 設 定 画 面 を 表 示 します 10
7 ゾーンは 登 録 しただけでは 利 用 できるようになりません DNSサービスに 認 証 させる 必 要 があります [ 認 証 する]をクリックして 認 証 の 登 録 を 行 います 8 認 証 方 法 は2 種 類 ありますが 今 回 は 新 しいDNSゾーンの 場 合 を 説 明 します Whois 情 報 に 指 定 するネームサーバー 情 報 の1 行 目 ~4 行 目 までを 指 定 の 内 容 でレジストラへ 登 録 します 登 録 したら 時 間 を 置 いて[ 認 証 する]をクリックして 認 証 の 確 認 を 行 います ( 確 認 画 面 で[はい]をクリックします ) 1 時 間 ~ 最 大 で1 日 程 度 かかる 場 合 があり ます 11
9 認 証 処 理 が 成 功 し DNSゾーン 登 録 が 完 了 すると 認 証 結 果 画 面 でその 後 の 作 業 指 示 が 出 ます( 失 敗 した 場 合 は 再 度 認 証 するように 認 証 ボタンが 表 示 されます) レジストラ のネームサーバー 情 報 から 認 証 の 為 に 設 定 したレコードを 削 除 します 内 容 を 確 認 した ら[ 閉 じる]をクリックして 画 面 を 閉 じます 10 次 にオリジンサーバーとキャッシュサーバーのレコードを 登 録 する 為 レコード 設 定 画 面 で[+レコード 登 録 ]をクリックします 12
11 先 ず オリジンサーバーを 登 録 します 必 要 な 内 容 を 記 入 して[ 登 録 する]をクリック します ( 確 認 メッセージが 出 るので [はい]をクリックします ) 項 目 設 定 内 容 レコード 名 任 意 (ここではwwwを 指 定 ) タイプ A 値 Web01のグローバルIPアドレス TTL 600 12 同 じように[+レコード 登 録 ]からレコード 登 録 画 面 を 表 示 して キャッシュサーバー (cdn001.idcfcloud.com)を 登 録 します 必 要 な 内 容 を 記 入 して[ 登 録 する]をクリッ クします ( 確 認 メッセージが 出 るので [はい]をクリックします ) 項 目 設 定 内 容 レコード 名 任 意 (ここではcacheを 指 定 ) タイプ CNAME 値 cdn001.idcfcloud.com TTL 600 13
13 追 加 されたレコードに 間 違 いが 無 いか 確 認 します 17 DNS 反 映 の 時 間 (10 分 ~1 時 間 程 度 )を 待 って コマンド( 今 回 はhostコマンド)でDNS が 反 映 された 事 を 確 認 します [root@web01 ~]# host www.ドメイン 名 www.ドメイン 名 has address IPアドレス [root@web01 ~]# host cache.ドメイン 名 cache.ドメイン 名 is an alias for cdn001.idcfcloud.com. cdn001.idcfcloud.com is an alias for idcf.g.yimg.jp. idcf.g.yimg.jp has address キャッシュサーバーのIPアドレス( 可 変 ) 14 次 に Webサーバーにドメイン 名 でブラウザからアクセスをして 表 示 できる 事 を 確 認 し ます (IDCFクラウド 上 からコマンド 実 行 をした 場 合 IDCフロンティアのDNSサーバ ーに 問 合 せに 行 くため 解 決 が 早 くなります できる 限 りローカル 環 境 にて ブラウザ 確 認 ができてから 作 業 を 進 めるようにしてください ) 以 上 でDNSの 設 定 は 完 了 です 次 にコンテンツキャッシュを 設 定 して 独 自 ドメインでキ ャッシュさせるように 指 定 を 行 います 14
(3)コンテンツキャッシュの 設 定 コンテンツキャッシュの 設 定 を 行 います DNSで 設 定 を 行 っていれば あとはコントロールパ ネルだけで 設 定 が 完 結 します コンテンツキャッシュについての 詳 細 やキャッシュ 時 間 の 調 整 などは コンテンツキ ャッシュスタートアップガイド (http://www.idcf.jp/network/cache/faq/)を 参 照 して ください 1 IDCF Cloud のロゴマークをクリックしてトップ 画 面 に 戻 り グローバルセクション から コンテンツキャッシュ をクリックします ( 初 回 アクセスの 場 合 サービス 規 約 に 同 意 してサービスを 申 し 込 む 画 面 になります サービスに 申 し 込 む 事 でコンテンツ キャッシュのコントロールパネルを 表 示 させる 事 が 可 能 となります ) 2 キャッシュサーバー 一 覧 画 面 にて 新 規 登 録 をクリックします 15
3 キャッシュサーバーの 欄 に 必 要 事 項 を 記 入 します 項 目 設 定 内 容 利 用 ドメイン 通 信 プロトコル 利 用 キャッシュサーバー 名 ディレクトリ 名 有 効 化 希 望 日 時 独 自 ドメイン HTTP CNAMEレコードで 指 定 したドメイン 名 (ここでは cache.ドメイン 名 ) 作 成 したキャッシュ 領 域 (ここでは/img/) 指 定 なし 4 次 にオリジンサーバーの 必 要 事 項 を 記 入 して[ 確 認 画 面 へ]をクリックします 項 目 設 定 内 容 利 用 ドメイン 通 信 プロトコル 利 用 キャッシュサーバー 名 ディレクトリ 名 有 効 化 希 望 日 時 独 自 ドメイン HTTP CNAMEレコードで 指 定 したドメイン 名 (ここでは cache.ドメイン 名 ) 作 成 したキャッシュ 領 域 (ここでは/img/) 指 定 なし 16
5 入 力 内 容 確 認 画 面 で 内 容 を 確 認 し [キャッシュサーバーを 作 成 ]をクリックします 6 登 録 完 了 のメッセージが 出 るので で 閉 じ キャッシュサーバー 一 覧 画 面 に 戻 ります 7 ブラウザでキャッシュサーバーにアクセスしてみて 表 示 される 事 を 確 認 します( 表 示 さ れない 場 合 は 少 し 待 ってから 再 度 アクセスしてみて 下 さい) 10 回 程 度 ブラウザの 更 新 をかけて 表 示 される 事 を 確 認 します(ブラウザキャッシュにならないように 更 新 をか けます) 17
8 HTTPのヘッダにてキャッシュされているか 確 認 します キャッシュされていない 場 合 cmssfと 表 示 されます キャッシュされている 場 合 chsfと 表 示 されます キャッシュサーバーは 複 数 台 で 分 散 されている 為 キャッシュされていないサーバー が 見 受 けられる 場 合 があります その 場 合 は 数 回 同 じコマンドを 打 ってcHsfが 表 示 され るサーバーがある 事 を 確 認 します [root@web01 ~]# curl --head http://cache.ドメイン 名.info/img/MORIO.jpg HTTP/1.1 200 OK Date: Mon, 23 Nov 2015 13:48:46 GMT Server: ATS Cache-Control: public Last-Modified: Fri, 20 Nov 2015 12:52:35 GMT ETag: "2f41-524f85976cac0" Accept-Ranges: bytes Content-Length: 12097 Content-Type: image/jpeg Age: 365 Connection: keep-alive Via: http/1.1 cdn2005.idcf.djm.yahoo.co.jp (ATS [chs f ]) [root@haproxy ~]# 9 最 後 にコントロールパネルでもキャッシュされているか 確 認 します キャッシュサーバ ー 一 覧 画 面 から 対 象 のキャッシュサーバーをクリックします 18
10 キャッシュサーバー 詳 細 メニューが 表 示 されます [キャッシュ 確 認 ]をクリックしま す 11 アップロードした 画 像 ファイル 名 を 記 入 して[ 確 認 する]をクリックします 19
12 結 果 欄 に キャッシュサーバーに 指 定 されたコンテンツがキャッシュされています と 表 示 されている 事 を 確 認 します これでコンテンツキャッシュを 利 用 してWebサーバーの 負 荷 を 軽 減 させる 事 ができるよ うになりました 例 えば キャッシュサーバーから 画 像 ファイルをWebページ 内 に 表 示 させたい 場 合 は キャッシュサーバーのパス( 今 回 の 場 合 cache.ドメイン 名 )で 画 像 ファイルを 指 定 する 事 で Webサーバーではなく キャッシュサーバーにアクセスを 向 ける 事 が 可 能 となり アクセス 負 荷 を 軽 減 させる 事 や ユーザーへの 高 速 なレスポンスが 可 能 となります 完 全 にキャッシュされた 状 態 でWebサーバーのアクセスログ(/var/log/httpd/access.log) を 確 認 すると ブラウザで 表 示 してもWebサーバー 側 にアクセスが 来 ていない 事 が 確 認 できます アクセスログを 取 得 できなくなる 事 は 留 意 しておく 必 要 があります コンテンツ 更 新 時 にはキャッシュされるまでの 間 古 いコンテンツが 表 示 されてしまう 為 キャッシュをコントロールパネルから 削 除 したり max-ageを 指 定 してコンテンツ のキャッシュ 時 間 を 短 くする 等 予 め 運 用 方 法 を 決 めておく 事 をおすすめします この 辺 りの 設 定 は FAQもご 覧 下 さい http://www.idcf.jp/network/cache/fag 20
Column:HTTPSを 使 用 したコンテンツキャッシュ 本 マニュアルでは HTTPを 使 用 してキャッシュサーバーを 作 成 しました SSL 証 明 書 を 用 意 すれ ば 自 分 のドメイン 名 でHTTPSでの 通 信 も 可 能 となります ここでは(3)コンテンツキャッシュの 設 定 の 例 を 用 いて HTTPSでの 設 定 方 法 について 記 載 します 1 キャッシュサーバーの 新 規 登 録 画 面 を 表 示 します (3)コンテンツキャッシュの 設 定 2 参 照 2 キャッシュサーバーの 登 録 画 面 で 通 信 プロトコルにHTTPSを 選 択 します SSL 証 明 書 を 用 意 してあるドメイン 名 (CNAMEレコード 登 録 済 み)を 利 用 キャッシュサーバーに 指 定 します それ 以 外 の 部 分 は(3)コンテンツキャッシュの 設 定 3~6と 同 様 にして 進 めます 3 キャッシュサーバー 一 覧 画 面 にてステータスがSSL Waitingになっている 事 を 確 認 し 対 象 のキャッシュサーバー 名 をクリックします 21
4 メニューよりサーバー 証 明 書 をクリックします 5 必 要 事 項 を 記 入 します SSL 証 明 書 名 にはドメイン 名 SSL 秘 密 キーは 証 明 書 発 行 時 に 使 用 した 秘 密 鍵 中 間 証 明 書 はベンダーから 提 供 されているものを 入 力 します( 中 間 証 明 書 が2つある 場 合 は 順 番 に 重 ねて 記 載 します ) 最 後 に[ 入 力 内 容 を 確 認 ]をクリッ クし 確 認 画 面 で[サーバー 証 明 書 をインポート]をクリックします 22
6 キャッシュサーバー 一 覧 の 画 面 で 対 象 サーバーのステータスがEnableに 変 わった 事 を 確 認 します (Enableにならなければキャッシュは 始 まらないので 必 ずEnableになる 事 を 確 認 してください ) 7 実 際 にブラウザを 使 ってhttpsでアクセスして 確 認 をします SSL 証 明 書 が 問 題 なくイン ストールされブラウザ 上 で 表 示 されます SSL 証 明 書 の 更 新 についても 同 様 の 手 順 でコントロールパネル 上 で 更 新 する 事 ができま す 23