CloudFrontを利用するか判断する基準

CloudFrontは本を一冊でも購入することができるウェブサイト"Amazon"が提供するウェブサービスの一つで、世界中のサーバーからウェブサイトを分散して配信するというサービスなのですが、これを利用したほうがいいのか、よくないのかを一つの基準を考えてみました。

体感的にコンテンツの読み込みに時間がかかるかどうか

言ってしまえば、この点かなと思います。特に、日本とアメリカや日本とイギリス、のように海外をまたいでコンテンツを提供する場合に必要だと思います。

また、使用するファイルも色々と種類がありますが、JavaScriptや画像などサイズが重いもの(リンクして表示するもの)を利用すれば良いと思います。

作成してしばらくおいておくか、作成してもずっと更新し続けるか

CloudFrontにかぎらず、CDNサービスを使うときはそうなると思うのですが、作成してからずっと更新するコンテンツであればCDNは局部局部で利用し、更新が多いコンテンツ(テキスト)はあまり使わないようにすれば良いと思います。

また、CDNを使えば必ず早くなるというわけでもありません。画像サイズの最適化や画像の無駄なタグ(Exif情報)などを削除した上で表示速度が遅いのであれば利用すれば良いと思います。JavaScriptやCSSであれば、空白などを削除してサイズを圧縮し、.minファイルを作成した上で利用するのが適切ではないかと思います。

ここではツールの説明をする記事ではないので割愛しますが、Online JavaScript/CSS Compression Using YUI Compressorを利用すれば機械的にしてくれるので楽だと思います。

早くなるのは5回目以降と思っておいたほうが気が楽

早くなる、と言うのは読み込みの時間のことです。読み込み時間が早くなるのは1回目は元のオリジナルサーバー(CloudFrontだとS3とか)から読み込み、キャッシュしていくため、どうしても時間がかかってしまいます。しかし、読み込み回数が多くなるとCloudFront側にキャッシュされていきます。世界の各拠点で分散して配信されるため、どこで見ても表示速度が早くなったように思われます。

今後、Route53を使わなくてもS3を使ってキャッシュする方法を執筆しようか検討中です。(ちなみに、Route53少し高くて今はGehirn DNS使ってます。)