株式会社ライブキャストロゴ 株式会社ライブキャスト

前回のエントリで、Amazon S3ホスティングを試してみました。今回は、CloudFrontを試してみましたので、その手順を簡単にまとめておきたいと思います。

CloudFrontとは、Amazon Web Serviceの提供するコンテンツ配信のサービスです。Amazon S3と併用して使います。CloudFrontでは、まず、一度アクセスされたS3のオブジェクトをエッジサーバーにキャッシュします。以降のアクセス時にはそれを利用するため、比較的容量が大きく、頻繁にアクセスされるようなコンテンツに最適です。
※ キャッシュには有効期限があり、期限がきれると再度、S3からオブジェクトを取得してエッジサーバーにキャッシュします。

詳しくはこちらをどうぞ

当初、Amazon S3ホスティングを試してみるで試したStray ChildでCloudFrontを利用しようと思っていましたが、Stray Childはアクセス数も少なく、その大部分をGoogle Mapsが占めているのでやめました。その代わりに、一応世界中からアクセスのあるgTranslatorの案内ページや、ブログなどで画像やサンプルソースなどを配信している、当サイトの一部にCloudFrontを利用することにしました。

各リージョンでの使用料は以下のようになっています(7月27日現在)。

データ転送料とリクエスト数に応じた課金になります。他のコンテンツ配信サービスに比べて、気軽に利用できる非常にリーズナブルな料金設定になっているかと思います。

サインアップする

AWS Management Consoleにログインして、CloudFrontタブを開きます。

「Sing Up For Amazon CloudFront」ボタンをクリックして、サインアップします。サインアップが完了すると以下の画面が表示されます。

以上でサインアップは完了です。非常に簡単です。

Distributionを作成する

続いて、Distributionを作成します。Amazon S3上のオブジェクトをCloudFront経由で配信するためのお作法だと思っていただければ良いと思います。

サインアップ後に再度、AWS Management ConsoleのCloudFrontタブを開くと、CloudFrontの機能が利用できるようになっています。

「Create Distribution」ボタンをクリックして、利用するCloudFrontのDistributionを作成します。

Amazon S3のBucketを選択する画面が表示されます。Bucketを選択して「Continue」ボタンをクリックします。

CloudFrontに独自ドメイン名を使用してアクセスさせたいので、CNAMEsにドメイン名を入力します。独自ドメイン名を使用しない場合は、CloudFrontで自動的に割り振られるxxx.cloudfront.net形式のドメイン名でも配信が可能です。

但し、ここでCNAMEを設定するだけではCloudFrontを独自ドメインで利用することはできません。別途、DNSの設定が必要になります(後述)。

Default Root ObjectにはDocument Rootのデフォルトページを指定することができます。但し、サブディレクトリのデフォルトページには設定できないようです。とりあえず、index.htmlを指定して「Continue」ボタンをクリックします。

作成するDistributionの内容を確認して、「Create Distribution」ボタンをクリックしてしばらくすると、

Distributionが作成されました。
Distributionが有効(アクセス可能)になるまで数分程度かかると思います。

有効になりました。

DNSを設定する

最後に、DNSの設定をして完了です。

cname static df3igozwbgebr.cloudfront.net.

DNS設定が伝搬し終わると、独自ドメイン名を使用したコンテンツ配信が可能になります。

livecast:~ asato$ nslookup static.live-cast.asia
Server: xxx.xxx.11.1
Address: xxx.xxx.11.1#53

Non-authoritative answer:
static.live-cast.asia canonical name = df3igozwbgebr.cloudfront.net.
df3igozwbgebr.cloudfront.net canonical name = df3igozwbgebr.nrt4.cloudfront.net.
Name: df3igozwbgebr.nrt4.cloudfront.net
Address: 216.137.53.26
Name: df3igozwbgebr.nrt4.cloudfront.net
Address: 216.137.53.106
Name: df3igozwbgebr.nrt4.cloudfront.net
Address: 216.137.53.123
Name: df3igozwbgebr.nrt4.cloudfront.net
Address: 216.137.53.167
Name: df3igozwbgebr.nrt4.cloudfront.net
Address: 216.137.53.170
Name: df3igozwbgebr.nrt4.cloudfront.net
Address: 216.137.53.194
Name: df3igozwbgebr.nrt4.cloudfront.net
Address: 216.137.53.234
Name: df3igozwbgebr.nrt4.cloudfront.net
Address: 216.137.53.15

当サイトはAmazon EC2のMicro Instanceを利用して運営しています。静的コンテンツにはCloudFrontやAmazon S3ホスティングを利用するなど、Amazon Web Serviceの提供しているサービスを組み合わせることで、Instanceにかかる負荷を極力軽減させ、Micro Instanceを単体利用しているとき以上のパフォーマンスを引き出すことも可能ではないかと思います。また、その組み合わせを考え、構築していくというのもなかなか楽しいものです。

Amazon Web Serviceには、ここでご紹介したもの以外にも便利なサービスがたくさんありますので、今後も色々工夫して、世界各国からのアクセスに対してもそれなりのレスポンスで閲覧可能なサイトにし、その結果を、こちらで紹介していきたいと思います。