AWSを使った、サーバへの負荷軽減やパフォーマンを向上させるデザインパターンとして、Amazon S3 から直接コンテンツ配信をする「Web Storageパターン」と、Amazon CloudFront いわゆるCNDを使う「Cache Distributionパターン」の2つがあります。今回は、コンテンツ配信をする上での Amazon S3 と CloudFront の機能面における違いと、利用料金を比較してみました。
先にまとめ
記事が長くなったので、先にまとめです。
- グローバル配信が必要 → CloudFront
- WEBサイトがHTTPS → CloudFront
- 運用で楽をしたい → CloudFront
- 上記以外 → Amazon S3
料金の目安
月間の転送量が「100GB」の場合の月額料金の目安です。(2016年12月4日時点)
- Amazon S3 約2,000円/月
- CloudFront HTTPリクエスト 約2,600円/月
- CloudFront HTTPSリクエスト 約3,000円/月
機能比較
コンテンツ配信をする上での Amazon S3 と CloudFront の機能面における違いは2つあります。(2016年12月4日現在)
グローバル配信 | 標準ドメイン | 独自ドメイン | |||
---|---|---|---|---|---|
HTTP | HTTPS | HTTP | HTTPS | ||
S3 | × | ○ | ○ | ○ | × |
CloudFront | ○ | ○ | ○ | ○ | ○ |
1つは CNDサービスの CloudFront は、コンテンツ配信サーバが世界中にあるため、グローバルでのパフォーマン向上が期待できますが、Amazon S3 は、ひとつのリージョン(例えば東京)からのコンテンツ配信になるため、遠い地域からのアクセスはどうしても遅くなります。
2つめは、CloudFront は、独自ドメインで HTTPS が使えますが、Amazon S3 は独自ドメインでは HTTPS が使えません。ただし Amazon S3 でも、標準ドメイン( ~ amazonaws.com)であれば、HTTPS が使えます。
ただ、障害対応の観点からは、コンテンツ配信元は独自ドメインで運用することが望ましいと考えています。万が一、Amazon S3 や CloudFront に障害が発生し、コンテンツ配信ができなくなった場合でも、独自ドメインであれば、コンテンツ配信元を変えることで障害対応ができるからです。
Amazon S3 や CloudFront に障害が発生する可能性はかなり低いですが、CloudFront は、2014年11月に障害が発生したこともありました。絶対に障害の無いサービスはありえません、備えあれば憂いなしです。
運用面での比較
Amazon S3 「Web Storageパターン」
Amazon S3 からコンテンツ配信をする「Web Storageパターン」は、動画や高画質の画像、Zipファイルなどの容量の大きいファイルを Amazon S3 にアップロードしておく必要があります。
CloudFront 「Cache Distributionパターン」
Amazon CloudFront を使う「Cache Distributionパターン」の場合は、オリジンサーバをWEBサーバ(図のEC2)としておけば、動画や画像のリンクURLを CloudFront に向けるだけでOKです。
運用面では、Amazon CloudFront を使う方が、個人的にはオススメです。CloudFront は、画像などを更新する場合、ファイル名を変更する(Rename Distributionパターン)という手間がありますが、Amazon S3 でコンテンツ配信を行う場合、 1つのサイトのコンテンツが、WEBサーバと Amazon S3 分散するので、管理が煩雑になり、ミスも起こりやすくなります。
料金比較
2016年12月4日時点の料金での比較です。月間の転送量が「100GB」、リクエスト数は「10,000,000」として計算しました。
Amazon S3
Amazon S3 は東京リージョンの料金で計算しました。
単価 | 利用分 | 小計 | ||
---|---|---|---|---|
Amazon S3 からインターネットへのデータ送信(アウト) | ||||
最初の 1 GB/月 | $0.000 | 1 GB あたり | 1GB | $0.00 |
10 TB まで/月 | $0.140 | 1 GB あたり | 99GB | $13.86 |
GET および他のすべてのリクエスト | $0.0037 | 10,000 リクエストあたり | 10,000,000リクエスト | $3.70 |
合計 | $17.56 |
現在の為替レート(1ドル=115円)をあてはめると、月2,000円くらいになります。
CloudFront
CloudFront は日本からのアクセスが100%として計算しています。データ転送量金は、Amazon S3 と同じですが、リクエストの料金が、少し高くなっています。
単価 | 利用分 | 小計 | ||
---|---|---|---|---|
インターネットへのリージョンデータ転送送信(GB 単位) | $0.14 | 1 GB あたり | 100GB | $14.00 |
HTTP リクエスト | $0.009 | 10,000 リクエストあたり | 10,000,000リクエスト | $9.00 |
HTTPS リクエスト | $0.012 | 10,000 リクエストあたり | 10,000,000リクエスト | $12.00 |
HTTP の場合 | 合計 | $23.00 | ||
HTTPS の場合 | 合計 | $26.00 |
現在の為替レート(1ドル=115円)をあてはめると、HTTPの場合は月2,600円くらい、HTTPSの場合は3,000円くらいになります。
料金的には、やはり Amazon S3 に軍配があがります。
おわりに
今回の記事を書くのにあたって「Amazon Web Services クラウドデザインパターン実装ガイド 改訂版」を参考にさせて頂きました。コンテンツ配信以外のデザインパターンもたくさん紹介されています。また、「実装ガイド」だけあって、実際にデザインパターンをAWSで設定する手順を具体的に分かりやすく書かれていますので、これからAWSを使う方にもオススメの書籍です。
コメント