CDNというIT用語があるのをご存知ですか?
CDNとは”Content Delivery Network”の略で、簡単に言うと、世界中に多数のコンテンツ配信用のキャッシュサーバを設置しておき、
利用者に対して、コンテンツ配信元のサーバからではなく、一番近いキャッシュサーバにアクセスさせることでネットワーク遅延を軽減してくれるものです。
一般的には、画像や動画配信であればCDNを利用した方が速くなると言われています。
AWSサービスの中ではCloudFrontがその役割を担っています。
「うんうん、性能面から見てCDNを使うメリットがあるのはわかった!」
「で、価格的にはどうなん?」
「やっぱりCDNを利用している分、高くなるよね?」
そして、インターネットへのデータ転送料についても気になるところです。
CDNをかませているため、「配信元→CDN→インターネット」とデータ転送が1回増えているので、その分はどうなるのだろうかと。
今回は、とあるWEBサイトを例にしてCloudFrontを利用した場合の料金面についてお話しします!
WEBサイトのAWS構成比較
今回は、写真画像をメインにしたWEBサイトを例にして、以下のケースで料金を考えていきたいと思います。
- EC2単体でWEBサイトを構築した場合
- S3単体でWEBサイトを構築した場合
- EC2+CloudFrontでWEBサイトを構築した場合
- S3+CloudFrontでWEBサイトを構築した場合
わかりやすくするために、ELBやRoute53、その他もろもろのAWSサービスは使わず、
またEC2の冗長化といったこともせず、シンプルな構成で考えたいと思います。
EC2単体でWEBサイトを構築した場合
◆AWS構成図
S3単体でWEBサイトを構築した場合
◆AWS構成図
EC2+CloudFrontでWEBサイトを構築した場合
◆AWS構成図
S3+CloudFrontでWEBサイトを構築した場合
◆AWS構成図
価格比較 調査結果
では、上記の構成比較を中心に価格比較結果をお話します。
今回は、単純にサイトから写真画像を配信することを例に、データ転送料について着目します。
そのため、EC2やEBSの利用料やS3のストレージ料金については比較対象外とさせていただきます。
また、S3やCloudFrontにはリクエスト料というGET等のリクエスト命令自体にかかる料金もありますが、データ転送料に比べると微々たるもののため、それらも比較対象からは外させていただきます。
まずは比較表から!
こちらは月間100GBのデータを、同リージョンのインターネットへ転送した場合の比較表です。
※東京リージョンから日本国内へ配信した場合
EC2単体 | S3単体 | CloudFront+EC2 | CloudFront+S3 | |
---|---|---|---|---|
オリジン(EC2またはS3)からCloudFrontへの転送料 | - | - | 0USD | 0USD |
インターネットへの転送料 | 1GB:0USD 99GB:11.286USD (0.114USD×99) | 1GB:0USD 99GB:11.286USD (0.114USD×99) | 100GB:11.4USD (0.114USD×100) | 100GB:11.4USD (0.114USD×100) |
データ転送料合計 | 11.286USD | 11.286USD | 11.4USD | 11.4USD |
※EC2単体やS3単体にある「1GB」と「99GB」が分かれているのは、EC2もS3も1GB以下のデータ転送料は無料だからです。
1GBを超えてからは料金がかかる仕組みとなります。
次に、同じく月間100GBのデータを、リージョンとは異なる地域のインターネットへ転送した場合です。
※東京リージョンから海外(米国・カナダ・欧州)へ配信した場合
EC2単体 | S3単体 | CloudFront+EC2 | CloudFront+S3 | |
---|---|---|---|---|
オリジン(EC2またはS3)からCloudFrontへの転送料 | - | - | 0USD | 0USD |
インターネットへの転送料 | 1GB:0USD 99GB:11.286USD (0.114USD×99) | 1GB:0USD 99GB:11.286USD (0.114USD×99) | 100GB:8.5USD (0.085USD×100) | 100GB:8.5USD (0.085USD×100) |
データ転送料合計 | 11.286USD | 11.286USD | 8.5USD | 8.5USD |
調べていてわかったのですが、私自身少し勘違いしていた部分がありました。
というのも、「EC2→CloudFront」または「S3→CloudFront」へ転送する際にもデータ転送料がかかると思っていたんですが、そんなことはないんですね。
AWSの場合ですと、配信元サーバ(EC2、S3)からCloudFrontへのデータ転送料は無料となります。
あと、CloudFrontはどの地域へ配信するかよって単価が変わってきます。
上記のようにEC2やS3単体で配信するのに比べて安くなることもありますし、
逆に高くなることがあります。
CloudFrontの地域別データ転送料(1GBあたり) ※10TBまでの単価 |
|
---|---|
米国およびカナダ | 0.085USD |
欧州 | 0.085USD |
南アフリカと中東 | 0.110 USD |
日本 | 0.114 USD |
オーストラリア | 0.114 USD |
シンガポール、韓国、台湾、香港、フィリピン | 0.140 USD |
インド | 0.170 USD |
南米 | 0.250 USD |
地域限定というのであれば、CloudFrontを利用せず、その地域のリージョンにEC2を立ててしまうという手段もあります。
※(注)価格については2019.2.21時点の価格となります。
まとめ
CloudFrontを利用しなければ、距離的に離れていればいるほどネットワーク遅延問題が発生してしまいます。
また、離れていなくても利用しなければ配信元のサーバーに負荷がかかりますので、やはりレスポンス問題に発展します。
一方、CloudFrontを利用すればそのような問題は解消されます。
地域毎に単価は異なりますので、一概にCloudFrontを使った方が良いとは言えませんが、
それでもあまり金額差がないのであれば、CloudFrontを使わない手は無いのではないでしょうか。
多少設定が面倒ではありますが、そこまで難しいものではありませんので、
積極的にCloudFrontを利用していきましょう。
以上、hidesanでした!