「もう少し読み込み速度が早くなればいいのに…」

現在1つ以上のホームページやメディア、ブログを運営している方であれば、このような悩みを持っているのではないでしょうか。

実際、Amazonの調査によれば、ページの表示速度が0.1秒遅くなるだけで、売り上げが1%低下することが分かっています。
ページの表示速度が早くなれば、PV数が増え、コストは減り、SEO上も優位に立ち上位表示される可能性も高くなります。

そこで本稿では、サーバーを引っ越しすることなく、AWS(Amazon Web Service)で設定を行うだけで既存のホームページを一気に高速化させる方法をご紹介します。
突発的に大量のアクセスが発生したり、長時間の動画ファイルを読み込んだりする場合にも、圧倒的なシェアを誇るAWSを使うので、レスポンス速度が低くなることは少なくなります。
設定も非常に簡単で、安価で始めることができるので、その手順を確認していきましょう。

「Amazon Web Service(AWS)」とは?

monotor.png
画像引用元:stock.io

Amazon Web Service(以下、AWS)は、Amazon社内でのビジネス課題を解決するために生まれたITインフラのノウハウをもとに、2006年3月にWebサービスという形態で開発されたサービスです。

AWSには、処理能力、ストレージオプション、ネットワーキングやデータベースなど、幅広いインフラストラクチャサービスがワンパッケージで準備されており、ユーザーは必要に応じてそれらのサービスを従量課金で利用することができます。
つまり、必要なときに、必要なだけ、非常に安価でITリソースを利用できるのが大きなメリットです。

今回使うのは「Amazon CloudFront」

今回は、既存のホームページの高速化を行うために、「Amazon CloudFront」と呼ばれるCDN(コンテンツデリバリーネットワーク)サービスを利用していきます。

Amazon CloudFrontでは、世界60箇所以上にキャッシュサーバーを配置して、最短距離コンテンツを配信することができます。
例えば、東京であれば東京近くのキャッシュサーバーから、ハワイであればハワイ近くのキャッシュサーバーからコンテンツを配信するといったように、ユーザーのアクセス位置に応じて最寄りの配信サーバーを指定し、高速配信することができるのです。

「Amazon CloudFront」3つのポイント

1. 大量アクセスをさばき、表示を高速化

Amazon CloudFrontでは、世界60箇所以上にキャッシュサーバーがあるため、画像や動画といった非常に容量の重いファイルでも、読み込み時間を軽減させることができます。

また、急な大量アクセスが発生しても、それぞれのキャッシュサーバーが処理を行うのでWebサーバーの負担が軽減され、サーバーがダウンしたり速度ダウンによる機会損失を減らすことができます。

独自SSL証明書にも対応しており、Amazon CloudFrontを通じて暗号化されたコンテンツの高速配信にも対応しています。

2. サーバーの引っ越し不要でそのまま使える

Amazon CloudFrontでは、現在お使いのサーバーをそのままオリジンサーバー(元データを格納するサーバー)として登録することで、特別な設定なく使うことができます

これにより、ホームページの来訪者の現在位置に合わせて最短距離でコンテンツが配信されるだけでなく、同一コンテンツに繰り返しアクセスのあるホームページには特にパフォーマスンス低下を防ぐことができます。

3. 1日から利用できて低価格

Amazon CloudFrontの使い方は非常に簡単で、現在利用中のサーバーを登録し、Webページ内のURLを修正するだけです。
利用は1日から使えるほか、1GBあたり月額20.9円〜という低価格です。
さらに、新規登録したユーザー
1年間の無料利用枠
が進呈されるので、まずどんなものなのか試してみることもできます。

「Amazon CloudFront」を使ってみよう

Amazon CloudFrontを使う手順は非常に簡単です。
まずAWSアカウントを作成する手順からご案内しますが、アカウントをすでにお持ちの方は読み飛ばしていただいて結構です。

1. AWSアカウントを作成

まずは、AWSアカウントを作成します。


スクリーンショット:2017年8月

AWSの公式サイトに行き、*「まずは無料ではじめる」をクリックします。
次に
「今すぐ無料アカウントを作成」*を選択します。


スクリーンショット:2017年8月

メールアドレスを入力し、「私は新規ユーザーです」にチェックを入れ、「サインイン」をクリックします。


スクリーンショット:2017年8月

次にログイン認証情報を入力してください。
ここで入力した情報は、AWSだけでなく、アメリカ合衆国のAmazonでもログインできます。
入力が完了したら「アカウントを作成」を入力します。


スクリーンショット:2017年8月

続いて、連絡先情報を入力します。
個人で使ってみる場合は「個人アカウント」にチェックを入れ、必要事項を入力します。
注意したいのは、アメリカ合衆国のアカウント作成画面と同じ順番になっているので、住所を入力する順番が逆になっています。

original__6_.png
スクリーンショット:2017年8月

次に、支払い情報を入力します。
登録自体は無料で、無料枠の利用内であれば請求はされません。

その後、指示にしたがって本人確認認証を行います。


スクリーンショット:2017年8月

続いて、サポートプランを選びます。
初めてAWSを使う場合には、「ベーシック」プランを選べば大丈夫です。


スクリーンショット:2017年8月

無事に「AWSマネジメントコンソール」と呼ばれる管理画面までたどり着いたら完了です。

2. Amazon CloudFrontの起動

次に、Amazon CloudFrontを起動します。
まず、マネジメントコンソールのAWSサービスの検索窓でCloudFrontを入力し、クリックしてCloudFrontの管理画面に移動します。

05.png
スクリーンショット:2017年9月

次に、Create Distributionをクリックします。

01.png
スクリーンショット:2017年9月

ディストリビューションにはWebとRTMPが用意されていますが、ここではWebのGet Startedをクリックします。

02.png
スクリーンショット:2017年9月

Origin Domain Nameの項目に、既存のレンタルサーバーのドメイン名を入力します(http://などは省く)。
ここにドメイン名を入力したら、自動でOrigin IDが入力されます。

03.png
スクリーンショット:2017年9月

他にもさまざまな設定項目がありますが、ここでは以上の欄だけ入力して、ページ下部のCreate Distributionをクリックしてディストリビューションを作成します。
一覧ページに今回作成したディストリビューションが表示されるので、ステータス欄が「In Progress」から「Deploy」に変わるのを待ちます(約10〜15分程度)。

04.png
スクリーンショット:2017年9月

デプロイが完了したら、ディストリビューション名をクリックして詳細を確認します。

06.png
スクリーンショット:2017年9月

Domain Nameと書かれたところがAmazon CloudFrontのエッジサーバー(ユーザーの最寄りにあるサーバー)経由のURLになります。
試しにブラウザで「http://」をつけてアクセスしてみるとオリジンサーバーと同じ内容なのが確認できるでしょう。

3. キャッシュの設定

Amazon CloudFrontでは、エッジサーバーに初期設定で24時間ファイルをキャッシュします。
そのため、サイトの更新を行ってブラウザをリフレッシュしても、エッジサーバー経由だとサイトが更新されていないという事態に直面することがあります。

キャッシュ時間を24時間以下にする場合には、オリジンサーバーにあるファイルにHTTPヘッダー情報を加える必要があります。
HTTPヘッダー情報を付け加えるには、HTMLファイルのheaderタグ内に以下のメタタグを設定するのが最も簡単です。

<meta http-equiv="Cache-Control" content=“日時または秒数” />
<meta http-equiv="expires" content=“日時または秒数” />

例えばキャッシュする時間を10分とする場合には、10分=600秒なので、content=“600”とすることで実現できます。

4. 独自ドメインの指定

Amazon CloudFrontから指定されたエッジサーバーのURLは冗長なもので、利便的な面でいうと不便であることが多いです。
しかし、このURLは独自ドメインで運用することもできます。

一度作成したディストリビューションの設定画面に戻り、editボタンを押すと、Alternative Domain Names(CNAMEs)の欄があります。

07.png
スクリーンショット:2017年9月

ここに独自ドメインを入力すれば、URLをだいたいすることができます。

まとめ

以上のような簡単な設定を行うだけで、Webサーバーのキャッシュを意図的に作り上げることができ、結果としてサーバーが安定化します。

また、Amazon CloudFrontにはこの他にもアクセスログを作成したり、レポーティングしたり、CloudWatchでサーバーの挙動をリアルタイムで監視したり、ユーザーがどの地域や国からアクセスしているのかを制御するジオターゲティング機能を活用したりなど、さまざまな機能が用意されています。

AWSというと難しいイメージかもしれませんが、ポイントを押さえれば使い方はシンプルです。
ぜひ、以下の記事も合わせてお読みいただき、AWSを活用してみましょう。

参考:
たった5分で構築完了!WordPressサイトをAWS(Amazon Web Service)で立ち上げる最短手順3ステップ