はじめに
私の担当しているプロダクトの画像配信システムは「Akamai + CloudFront + S3」の構成で運用しています。そこで、Akamai + CloudFront + S3の構成からAkamai + S3で配信するよう切り替えた際に、思ったよりコストが下がらなかったので自戒として記事に残しておきます。
S3の料金体系
S3のGETリクエストの料金 (S3標準)
1万GETリクエストあたりの料金 | |
---|---|
S3 標準 | USD 0.004 |
インターネットからS3へのデータ転送料金 (IN)
データ転送料金 | |
---|---|
すべてのデータ受信 | USD 0.00/GB |
S3のインターネットへのデータ転送料金 (OUT)
*CloudFront + S3構成の場合はこの料金かからない
データ転送料金 | |
---|---|
最初の10TB/月 | USD 0.09/GB |
次の40TB/月 | USD 0.085/GB |
次の100TB/月 | USD 0.07/GB |
150TB/月以上 | USD 0.05/GB |
CloudFrontの料金体系
CloudFrontのHTTP(S)リクエストの料金
1万リクエストあたりの料金(日本) | |
---|---|
最初の1,000 万件のHTTP(S)リクエスト | 無料 |
HTTPリクエスト | 0.0090 USD |
HTTPSリクエスト | 0.0120 USD |
インターネットへのリージョンレベルのデータ転送 (OUT)
データ転送料金(日本) | |
---|---|
最初の1TB | 無料 |
次の9TB | USD 0.114/GB |
次の40TB | USD 0.089/GB |
次の100TB | USD 0.086/GB |
次の350TB | USD 0.084/GB |
次の524TB | USD 0.080/GB |
次の4PB | USD 0.070/GB |
5PB以上 | USD 0.060/GB |
オリジンへのリージョンレベルのデータ転送 (OUT)
*CloudFront + S3構成の場合はこの料金かからない
データ転送料金(日本) | |
---|---|
すべてのデータ転送 | 0.060 USD |
結論
CloudFront + S3の場合
- S3へのリクエスト料金
- CloudFrontへのリクエスト料金
- CloudFrontからエンドユーザーへのデータ転送料金
S3の場合
- S3へのリクエスト料金
- S3からエンドユーザーへのデータ転送料金
の料金がかかってきます。
規模とアーキテクチャによって判断は異なりますが、私たちは前段のAkamaiでキャッシュを実施しているため、CloudFrontとS3へのリクエスト到達数は少ないです。そのため、主にデータ転送料金が費用差の要因となると考えられます。
S3のデータ転送料金
データ転送料金 | |
---|---|
最初の10TB/月 | USD 0.09/GB |
次の40TB/月 | USD 0.085/GB |
次の100TB/月 | USD 0.07/GB |
150TB/月以上 | USD 0.05/GB |
CloudFrontのデータ転送料金
データ転送料金(日本) | |
---|---|
最初の1TB | 無料 |
次の9TB | USD 0.114/GB |
次の40TB | USD 0.089/GB |
次の100TB | USD 0.086/GB |
次の350TB | USD 0.084/GB |
次の524TB | USD 0.080/GB |
次の4PB | USD 0.070/GB |
5PB以上 | USD 0.060/GB |
料金表を見る限り、数100TB規模であればさほど差が出ない印象です。
おわりに
クラウドのコスト体系って難しいですよね😓
事前に詳細なコストシミュレーションをしておきましょう