• 検索結果がありません。

コンテンツキャッシュを活用してWebサーバーの負荷を下げたい:IDCFクラウド活用マニュアル

N/A
N/A
Protected

Academic year: 2021

シェア "コンテンツキャッシュを活用してWebサーバーの負荷を下げたい:IDCFクラウド活用マニュアル"

Copied!
23
0
0

読み込み中.... (全文を見る)

全文

(1)

IDCFクラウド

活用マニュアル

〜コンテンツキャッシュを活用してWebサーバーの負荷を下げたい〜

コンテンツキャッシュを活用してWebサーバーの負荷を下げたい

目次

(1) Webサーバー(オリジンサーバー)の作成と設定 ... 3 (2) DNSの設定 ... 9 (3) コンテンツキャッシュの設定 ... 15 Column:HTTPSを使用したコンテンツキャッシュ ... 21 最終更新日:2015/11/23

(2)

2

コンテンツキャッシュを作成して

Webサーバーの負荷を下げたい

コンテンツキャッシュは高速なキャッシュサーバーの機能を提供するサービスです。Webサーバー には予め用意してある画像などの静的なコンテンツが幾つかあると思います。この画像へのアクセ スについては、Webサーバーが応答を返してコンテンツを渡すだけですので、画像のデータを高速 なキャッシュサーバーに置いて、応答をキャッシュサーバーからにすることにより、Webサーバー 側は応答処理をする必要がなくなり、その分負荷を下げながら高速なレスポンスを得る事ができま す。 コンテンツキャッシュを含めた形で構築するには、キャッシュしたコンテンツをコンテンツキャッ シュから読み出すように指定する必要があります。IDCFクラウドのオブジェクトストレージを使用 してキャッシュ連携させる方法もありますが、今回は独自ドメインを取得したWebサーバーにオリ ジナルのファイルを置いて、コンテンツキャッシュにキャッシュさせる形で構築します。 本書の中で一部Webサーバーを「オリジンサーバー」、コンテンツキャッシュを「キャッシュサー バー」と記載しています。またDNSの設定を行いますので、独自ドメインを取得している前提で記 載しております。

(3)

3

(1) Webサーバー(オリジンサーバー)の作成と設定

Webサーバー (オリジンサーバー)の作成は、「Webサイトの本番環境を構築したい(Web1台構成)」 を参照して行います。以降の手順は「Webサイトの本番環境を構築したい(Web1台構成)」のP.9 まで完了した状態からの手順となります。(http://www.idcf.jp/cloud/document.html#manual) 今回は画像をキャッシュさせる目的で構築しますので、画像ディレクトリを作成し、そのディレ クトリのルールにキャッシュヘッダ情報を追加します。 ① 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

② テスト用のインデックスファイルを作成し、ファイルができた事を確認します。

[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

③ 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 ~]# ④ apacheのコンフィグファイルを作成し、ヘッダ情報を追加します。

[root@web01 ~]# cat >> /etc/httpd/conf.d/cache.conf << EOF <Directory "/var/www/html/img">

Header always set Cache-Control "public" </Directory>

EOF

(4)

4

⑤ コンフィグチェックを行い設定を反映します。

[root@web01 ~]# apachectl configtest Syntax OK

[root@web01 ~]# service httpd restart

httpd を停止中: [ OK ] httpd を起動中: [ OK ]

⑥ 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 ~]# ⑦ キャッシュ指定ディレクトリに画像ファイルをアップロードします。 ここではwinscpを使用して説明します ホスト名に「IPアドレス」を記入します。ユーザ名に「root」を記入し、「設定」をク リックします。

(5)

5

⑧ 高度なサイトの設定画面で左メニューより「SSH-認証」をクリックします。認証条件の

秘密鍵にsshログインする際の秘密鍵を選択します。

⑨ 秘密鍵をPuTTY形式の鍵に変換するか確認のウィンドウが出ますので、OKをクリックし ます。(その後、noticeの画面が上がる場合がありますがOKをクリックします。)

(6)

6

⑩ ⑧の工程を再度実施します。鍵に今回作成したPuTTY形式の鍵を選択して「OK」をクリ ックします。 ⑪ ログインをクリックします。(初回アクセスの場合、警告の画面が出ますが、「はい」 をクリックします。) ⑫ 左側にローカル、右側にサーバーのディレクトリが表示されます(通常インストールの 場合)。右側のサーバーから「/root」のディレクトリ表示をダブルクリックします。

(7)

7

⑬ 「ディレクトリを開く」テキストボックスに、①で設定したキャッシュさせるimgディ レクトリ「/var/www/html/img」を入力し、「開く」をクリックします。 ⑭ アップロードしたいファイルを右側サーバーの部分にドラッグアンドドロップしてア ップロードします。アップロードできたら×を押してウィンドウを閉じます。(終了し てもよいか確認のウィンドウが上がりますのでOKをクリックします。)

(8)

8

⑮ サーバー上でアップロードできている事を確認します。 (本マニュアルでは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

⑯ アップロードしたファイルに対して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を設定して独 自ドメインでレコードの指定を行います。

(9)

9

(2) DNSの設定

コンテンツキャッシュを独自ドメインで使用する為には、IDCFクラウドが提供するキャッシュサ ーバーを独自ドメインで解決できるように、CNAMEレコードを追加する必要があります。今回は(1) で作成したWebサーバー(オリジンサーバー)にAレコードを作成し、コンテンツキャッシュ用に CNAMEレコードを作成します。 ① 「IDCF Cloud」のロゴマークをクリックしてトップ画面に戻り、グローバルセクション から「DNS」をクリックします。(初回アクセスの場合、サービス規約に同意してサー ビスを申し込む画面になります。サービスに申し込む事でDNSのコントロールパネルを 表示させる事が可能となります。) ② 「DNSゾーン作成」をクリックしてゾーン作成画面を表示します(契約後の初回アクセ スの場合、本画面は表示されずにDNSゾーン作成画面が直接表示される場合がありま す)。

(10)

10

③ DNSゾーン作成画面で以下のように設定して「作成する」をクリックします。 項目 設定内容 ゾーン名 独自ドメイン名 テンプレート 選択なし メールアドレス 管理者のメールアドレスを指定 TTL初期値 600 説明 任意にゾーンの説明を追加 ④ 確認画面が表示されますので[はい]をクリックしてDNSゾーンを新規に作成します。 ⑤ DNSゾーン一覧に作成したDNSゾーンが追加されます。 ⑥ 作成したDNSゾーン名をクリックしてレコード設定画面を表示します。

(11)

11

⑦ ゾーンは登録しただけでは利用できるようになりません。DNSサービスに認証させる必 要があります。[認証する]をクリックして認証の登録を行います。 ⑧ 認証方法は2種類ありますが、今回は新しいDNSゾーンの場合を説明します。Whois情 報に指定するネームサーバー情報の1行目~4行目までを指定の内容でレジストラへ登 録します。登録したら時間を置いて[認証する]をクリックして認証の確認を行います。 (確認画面で[はい]をクリックします。)※1時間~最大で1日程度かかる場合があり ます。

(12)

12

⑨ 認証処理が成功し、DNSゾーン登録が完了すると、認証結果画面でその後の作業指示が 出ます(失敗した場合は再度認証するように認証ボタンが表示されます)。レジストラ のネームサーバー情報から認証の為に設定したレコードを削除します。内容を確認した ら[閉じる]をクリックして画面を閉じます。 ⑩ 次にオリジンサーバーとキャッシュサーバーのレコードを登録する為、レコード設定画 面で[+レコード登録]をクリックします。

(13)

13

⑪ 先ず、オリジンサーバーを登録します。必要な内容を記入して[登録する]をクリック します。(確認メッセージが出るので、[はい]をクリックします。) 項目 設定内容 レコード名 任意(ここではwwwを指定) タイプ A 値 Web01のグローバルIPアドレス TTL 600 ⑫ 同じように[+レコード登録]からレコード登録画面を表示して、キャッシュサーバー (cdn001.idcfcloud.com)を登録します。必要な内容を記入して[登録する]をクリッ クします。(確認メッセージが出るので、[はい]をクリックします。) 項目 設定内容 レコード名 任意(ここではcacheを指定) タイプ CNAME 値 cdn001.idcfcloud.com TTL 600

(14)

14

⑬ 追加されたレコードに間違いが無いか確認します。

⑰ 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アドレス(可変)

⑭ 次に、Webサーバーにドメイン名でブラウザからアクセスをして表示できる事を確認し ます。(IDCFクラウド上からコマンド実行をした場合、IDCフロンティアのDNSサーバ ーに問合せに行くため、解決が早くなります。できる限りローカル環境にて、ブラウザ 確認ができてから作業を進めるようにしてください。) 以上でDNSの設定は完了です。次にコンテンツキャッシュを設定して独自ドメインでキ ャッシュさせるように指定を行います。

(15)

15

(3)コンテンツキャッシュの設定

コンテンツキャッシュの設定を行います。DNSで設定を行っていれば、あとはコントロールパ ネルだけで設定が完結します。 ※コンテンツキャッシュについての詳細やキャッシュ時間の調整などは、「コンテンツキ ャッシュスタートアップガイド」(http://www.idcf.jp/network/cache/faq/)を参照して ください。 ① 「IDCF Cloud」のロゴマークをクリックしてトップ画面に戻り、グローバルセクション から「コンテンツキャッシュ」をクリックします。(初回アクセスの場合、サービス規 約に同意してサービスを申し込む画面になります。サービスに申し込む事でコンテンツ キャッシュのコントロールパネルを表示させる事が可能となります。) ② キャッシュサーバー一覧画面にて「新規登録」をクリックします。

(16)

16

③ キャッシュサーバーの欄に必要事項を記入します。 項目 設定内容 利用ドメイン 独自ドメイン 通信プロトコル HTTP 利用キャッシュサーバー名 CNAMEレコードで指定したドメイン名(ここでは cache.ドメイン名) ディレクトリ名 作成したキャッシュ領域(ここでは/img/) 有効化希望日時 指定なし ④ 次にオリジンサーバーの必要事項を記入して[確認画面へ]をクリックします。 項目 設定内容 利用ドメイン 独自ドメイン 通信プロトコル HTTP 利用キャッシュサーバー名 CNAMEレコードで指定したドメイン名(ここでは cache.ドメイン名) ディレクトリ名 作成したキャッシュ領域(ここでは/img/) 有効化希望日時 指定なし

(17)

17

⑤ 入力内容確認画面で内容を確認し、[キャッシュサーバーを作成]をクリックします。 ⑥ 登録完了のメッセージが出るので×で閉じ、キャッシュサーバー一覧画面に戻ります。 ⑦ ブラウザでキャッシュサーバーにアクセスしてみて表示される事を確認します(表示さ れない場合は少し待ってから再度アクセスしてみて下さい)。10回程度ブラウザの更新 をかけて表示される事を確認します(ブラウザキャッシュにならないように、更新をか けます)。

(18)

18

⑧ 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 ~]#

⑨ 最後にコントロールパネルでもキャッシュされているか確認します。キャッシュサーバ ー一覧画面から対象のキャッシュサーバーをクリックします。

(19)

19

⑩ キャッシュサーバー詳細メニューが表示されます。[キャッシュ確認]をクリックしま

す。

(20)

20

⑫ 結果欄に「キャッシュサーバーに指定されたコンテンツがキャッシュされています」と 表示されている事を確認します。 これでコンテンツキャッシュを利用してWebサーバーの負荷を軽減させる事ができるよ うになりました。 例えば、キャッシュサーバーから画像ファイルをWebページ内に表示させたい場合は、 キャッシュサーバーのパス(今回の場合cache.ドメイン名)で画像ファイルを指定する事 で、Webサーバーではなく、キャッシュサーバーにアクセスを向ける事が可能となり、 アクセス負荷を軽減させる事や、ユーザーへの高速なレスポンスが可能となります。 完全にキャッシュされた状態でWebサーバーのアクセスログ(/var/log/httpd/access.log) を確認すると、ブラウザで表示してもWebサーバー側にアクセスが来ていない事が確認 できます。アクセスログを取得できなくなる事は留意しておく必要があります。 コンテンツ更新時にはキャッシュされるまでの間、古いコンテンツが表示されてしまう 為、キャッシュをコントロールパネルから削除したり、max-ageを指定してコンテンツ のキャッシュ時間を短くする等、予め運用方法を決めておく事をおすすめします。 この辺りの設定は、FAQもご覧下さい。 http://www.idcf.jp/network/cache/fag

(21)

21

Column:HTTPSを使用したコンテンツキャッシュ

本マニュアルでは、HTTPを使用してキャッシュサーバーを作成しました。SSL証明書を用意すれ ば、自分のドメイン名でHTTPSでの通信も可能となります。ここでは(3)コンテンツキャッシュの設 定の例を用いて、HTTPSでの設定方法について記載します。 ① キャッシュサーバーの新規登録画面を表示します。※ (3)コンテンツキャッシュの設定 ②参照 ② キャッシュサーバーの登録画面で通信プロトコルにHTTPSを選択します。SSL証明書を 用意してあるドメイン名(CNAMEレコード登録済み)を利用キャッシュサーバーに指定 します。それ以外の部分は(3)コンテンツキャッシュの設定③~⑥と同様にして進めます。 ③ キャッシュサーバー一覧画面にてステータスがSSL Waitingになっている事を確認し、対 象のキャッシュサーバー名をクリックします。

(22)

22

④ メニューよりサーバー証明書をクリックします。 ⑤ 必要事項を記入します。SSL証明書名にはドメイン名、SSL秘密キーは証明書発行時に使 用した秘密鍵、中間証明書はベンダーから提供されているものを入力します(中間証明 書が2つある場合は順番に重ねて記載します。)。最後に[入力内容を確認]をクリッ クし、確認画面で[サーバー証明書をインポート]をクリックします。

(23)

23

⑥ キャッシュサーバー一覧の画面で対象サーバーのステータスがEnableに変わった事を 確認します。(Enableにならなければキャッシュは始まらないので、必ずEnableになる 事を確認してください。) ⑦ 実際にブラウザを使ってhttpsでアクセスして確認をします。SSL証明書が問題なくイン ストールされブラウザ上で表示されます。 SSL証明書の更新についても同様の手順でコントロールパネル上で更新する事ができま す。

参照

関連したドキュメント

この項目の内容と「4環境の把 握」、「6コミュニケーション」等 の区分に示されている項目の

サーバー費用は、Amazon Web Services, Inc.が提供しているAmazon Web Servicesのサーバー利用料とな

200 インチのハイビジョンシステムを備えたハ イビジョン映像シアターやイベントホール,会 議室など用途に合わせて様々に活用できる施設

の他当該行為 に関して消防活動上 必要な事項を消防署 長に届け出なければ な らない 。ただし 、第55条の3の 9第一項又は第55 条の3の10第一項

(7)

 方針

こうした状況を踏まえ、厚生労働省は、今後利用の増大が見込まれる配食の選択・活用を通じて、地域高

15 校地面積、校舎面積の「専用」の欄には、当該大学が専用で使用する面積を記入してください。「共用」の欄には、当該大学が