2011年05月16日

Amazon S3とCloudFrontを利用したホスティングの正しい利用方法

AWSのAmazon EC2を利用せずに、静的ファイル(HTML/CSS/JS/画像/動画/Flashなど)のみを対象としたホスティングを行うことが可能で、
Amazon S3を利用した「S3ホスティング」とAmazon CloudFrontを利用した「CDNホスティング」の2種類の方法があります。
(読み方は、人それぞれ違うかも?)

実際にそれぞれのホスティングを利用し、気づいた点があったのでまとめてみました。

実験したサイトは、http://www.iret.co.jp/ で、以下のようにホスティングを変更してみました。
-----
一般的なDC

CDNホスティング(運用期間:約6ヶ月)

S3ホスティング(運用期間:約2ヶ月〜)
-----
※ちなみに構成ファイルは同じで、企業サイトなのでほぼ更新していません。

まず一般的なDCにデータを置いていた際、どういう状態だったかというと、
各種検索エンジンで、http://www.iret.co.jp/ の全ページがインデックスされており、
「iret」「アイレット」「アイレット株式会社」などのキーワードで1位表示。
尚、Googleで、サイトリンクが表示されていました。

上記の状態からCDNホスティングへ変更し、約6カ月運用している間に、
「サイトリンクの消滅」という現象が起こりました。
※サイトリンクの詳細は、サイトリンク - ウェブマスターツールヘルプをご確認ください。

元々サイトリンクの出ているサイトは、サーバを変更してもドメインが同じですので、
基本的サイトリンクが消滅することはありません。
しかしCDNホスティングの場合、サイトリンクは消えてしまいました・・・。

次にこの状態から、S3ホスティングに変更し、現時点で約2ヶ月間運用してみたところ、
DCで運用していた頃と同じように、サイトリンクの復活が見られました。

s3hosting01.jpg


何故CDNホスティングの場合に、サイトリンクが消えてしまうのでしょうか?
それとも、S3ホスティングとCDNホスティングで違いがあるのか?

とりあえずは、レスポンスヘッダーを確認してみました。

○S3ホスティングで運用しているサイト
s3hosting02.jpg

○CDNホスティングで運用しているサイト
s3hosting03.jpg
※2011/05現在では、ANDROID IRETは、CDNホスティングしています。

レスポンスヘッダーを見てみると、CDNホスティングの場合には、「X-Cache: Hit from cloudfront」とあり、
CloudFrontから配信されていることが分かります。
また「X-Cache」と表示されているので、キャッシュコンテンツと考えられると思います。


ではサイトリンクが出ている際のインデックス数はどうだったか?
DCに置いていた時と、S3ホスティングは、以下になります。
s3hosting04.jpg


じゃあ、CDNホスティングの場合は、どうかというと・・・
s3hosting05.jpg


結果として、CDNホスティングを利用していた場合には、インデックス数の減少し、
Googleウェブマスターツール側でも、サイトリンクは表示されていないとでていました。

Googleのアルゴリズムは公開されていませんので憶測になってしまいますが、
個人的な見解としては、上記を考慮するとCloudFrontによるCDNホスティングを利用し、HTMLファイルを置いているの場合、
キャッシュコンテンツと認識されて、サイトとして見られず、インデックス数が減少していったものと思っています。
尚、この状態を継続していく場合、インデックスが無くなるもしくはTOPページのみになる可能性も考えられるので、
他の方法でのホスティングに切り替える必要があります。

ちなみに上記でも記載しましたが、http://www.iret.co.jp/ は、S3ホスティングへ切り替えて、
約1カ月ちょっと運用したところ、サイトリンクおよびインデックス数が復活しました。
(※構成ファイルは、DCで運用していたものと同様)
元々サイトリンクが出ていたから早かったのかな...


上記に書いた内容をまとめるとS3ホスティングとCDNホスティングの正しい利用方法は、
以下のようにするのが望ましいと思います。
-----
S3ホスティング:  静的サイトまるごと。
CDNホスティング: CSSやJSといったファイルのみ。
-----

CDNなので、一般的な使い方をしてくださいってことになるんですね。

ただしCDNホスティングは、低コストで世界対応が出来るホスティングなので、
短期間集中型の静的キャンペーンサイトなら、広告でアクセスを集めてもインデックスされる必要はないので、
利用は問題ないかなと思います。

正しい使い方をしないと、痛い目をみてしまいますね。
ご利用は計画的に。
posted by memo4me at 23:35 | Comment(0) | TrackBack(0) | aws | このブログの読者になる | 更新情報をチェックする

2011年05月10日

IISでのSSI利用方法について

開発時にApacheを利用するため、静的サイトを作成するときは、
IISを利用してサイトの作成を行っています。

今回、自分の関わっているサイトのページ数も多くなり、
共通部分を何百ページも変更してられないので、SSIを導入することにしました。

SSIを導入するとなると、サーバでSSI設定箇所に必要情報がインクルードされますが、
ローカルでもインクルードされないと表示上に問題あるかの確認ができません。
僕の環境はApacheではないためがないので、IISでSSIが使えるように設定する必要があります。

設定方法は、以下になります。
(※IIS7.0で設定です。)

(1)サーバー側インクルードを許可する
Windowsの機能の有効化または無効化よりインフォメーションインターネットサービスの
World Wide Webのアプリケーション開発機能よりサーバ側インクルードにチェックを入れて、OKを押します。

(2)shtmlでの読込が可能になったかを確認
コンピューターの管理から、インフォメーションインターネットサービス(IIS)マネージャーを開き、
ハンドラマッピングを選択して、以下の内容があるかを確認。
-----
SSINC-shtm
SSINC-shtml
SSINC-stm
-----

(3)htmlでSSIを可能にする
(2)で開いている画面より、「モジュールマップの追加」をクリック。
以下の内容を登録する。
-----
要求パス:     *.html
モジュール:    ServerSideIncludeModule
実行可能ファイル: 空欄でOKです
名前:       SSINC-html
-----

次に、「要求の制限」をクリック
「マップ」タブを選び、チェックボックスにチェックを入れ、ファイルを選択。
そして「動詞」タブを選び、「次の動詞のうちの1つ」をチェックし、テキストエリアには、「GET,POST」と記入。
最後に「アクセス」タブを選び、スクリプトを選んでOKを押します。

(4)htmlでSSIが可能になったかを確認
(2)で開いたハンドラマッピングを開きます。
(3)の内容を設定すると、一覧の中に「SSINC-html」が入っています。

これでSSIの利用ができる状態になります。
タグ:IIS SSI Windows
posted by memo4me at 03:06 | Comment(0) | TrackBack(0) | other | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。