こんにちは、クラウドソリューション事業部の本田です。最近はWordPressを移行する案件を数件やっていて、Amazon Lightsail(以後Lightsail)、Cloudfrontを触る機会が多いです。AWSでCDNのサービスといえばCloudfrontが有名ですが、LightsailでもLightsail CDNという機能があり、こちらでもCDNを利用することができます。Lightsailを使うのでLightsail CDNで良いかなと思い設定を進めていくと、色々と違いがありましたのでまとめていきたいと思います。
CloudfrontとLightsail(Lightsail CDN)について
ご存知の方も多いかもですが簡単に両サービスについて軽くご紹介しておきます。Lightsail CDNのことは以下Lightsailと略して記載します。
Cloudfrontについて
高いパフォーマンス、セキュリティ、デベロッパーの利便性のために構築されたコンテンツ配信ネットワーク (CDN) サービスであり、世界中に張り巡らされたエッジローケーションと呼ばれるデータセンターのネットワークを経由してコンテンツを配信してくれます。静的なコンテンツなどをキャッシュしてくれて、かつリクエストした人の最も近いエッジロケーションから配信してくれるので、レイテンシーが短くなり、またオリジンサーバの負荷も下げてくれるといったメリットがあります。
Lightsail(Lightsail CDN)について
Amazon LightsailはAWSが提供しているVPS(Virtual Private Server)サービスであり、一般的なレンタルサーバーのようにLightsailの利用すれば、コンピューティング、ストレージやデータ転送といったWebサービスとして利用するために必要な機能をまとめて提供してくれます。WordPressが入ったイメージもあるので、こちらを使うと即座にWordPressサイトを立ち上げることもできます。
Lightsail CDNは、Lightsailと合わせて利用できるCDNサービスであり、元のサービスは、Cloudfrontとなっているようです。
それぞれのサービスの共通点について
まずは両サービスで共通してできることをみていきます。
独自ドメイン(SSL)が使える
CDNで動的に発行されるドメインではなく、表示させたい独自ドメインを利用することができます。合わせてACMで発行したSSL証明書が利用できます。Cloudfrontの方では事前に準備が必要で、Lightsailの方ではLightsailのコンソールから作成する必要があります。
ディレクトリ、パスでのキャッシュ設定ができる
Cloudfrontではビヘイビアの設定で、LightsailではCacheでの設定でディレクトやパスによってコンテンツをキャッシュさせるか否かの設定を行うことができます。後述しますが、キャッシュ以外のヘッダーなど細かい設定はLightsailの方では行えないようになっています。
キャッシュの削除ができる
キャッシュの削除は両方ともに行うことができます。異なる点としたは、Cloudfrontはパス単位で指定し、特定のファイルのキャッシュを削除することができますが、Lightsailでは細い指定はできず、一括での削除となります。
これらのことは、仕様が少し異なる点はありますが、共通してできることでした。では次に両者の違いについてまとめていきます。
Cloudfrontではできるが、Lightsail CDNではできないこと
以下に記載した以外にもLightsailできないことはありますが、WordPressサイトを運用するときには必要と感じた点について絞ってまとめています。
AWS WAFが使えない
セキュリティを強化したい、DDoSなどの対策でWAFを利用したいとなっても、LightsailではAWS WAFを利用できないので、この場合はCloudfrontを利用する必要があります。
カスタムヘッダーをつけれない
カスタムヘッダーとは、Cloudfrontを経由する通信に任意のヘッダーをつけることができます。WordPressなどで、オリジンサーバをEC2やLightsailとするときにはオリジンへの直接のアクセスを制御する必要があり、その際には任意のヘッダーの有無を確認して、apacheやnginx側でアクセスを制御するのがベターです。IPアドレスでもできないことはないですが、CloudfrontのIPアドレスは広範囲であり、また更新もされるのでオススメはできません。Lightsailの場合、カスタムヘッダーをつけることができずCDNを経由した際の固有のヘッダーを利用する必要があります。固有のヘッダーとなるため突破されてしまう可能性が高まりますので、セキュリティ面をより強固にするのであればCloudfrontでカスタムヘッダーを利用する必要があるかと思います。
ビヘイビア毎の設定ができない
上記で記載しましたがLightsailでも、ファイルやパス毎でキャッシュさせるか否かの設定は行うことができます。ただしCloudfrontのように、ビヘイビアを複数設定し、それぞれで許可するHTTPヘッダーを分ける、ヘッダー、Cookieなどを含めたキャッシュ設定を細く決めるといったことはできません。
最後に
主にWordPressサイトでCDNを利用するという観点にはなりましたが、CloudfrontとLightsail CDNの違いをまとめてみました。Lightsailのサービス自体が、VPSサービスになるのでCDNも簡単な設定で使えるように最低限の機能を提供してくれていると思います。セキュリティの要件次第ではありますが、Lightsail CDNでも十分な設定だとは思います。要件に合して最適な選択をおこなって頂ければと思います。