AWSでのストレージサービスS3には幾つかタイプがあり、非常に大まかに大別すると「読み出しに費用がかからないタイプ」と「読み出し毎に費用が発生するタイプ」に分けられます。
更に読み出し毎に費用が発生するタイプはデータの重要性やアクセス頻度によって細かく分類されます。ここでは、S3とCloudwatchに関するコスト削減の方法と期待できる効果についてご紹介いたします。
※大容量(数十TB)のファイルを長期保存したりしなければ、S3の費用は100GBで月額3,000円程度ですので、全体に占める割合は極めて低くなります。従って検討工数をかけるか否かは、システム要件と照らし合わせて上流工程で決定しておくのが望ましいです。
読み出し時に費用が発生せず、HDDのように手軽に利用したい場合
S3 standard: レイテンシーの低いまたアクセス頻度の高いデータ向け
保存コスト:高
読み出しコスト:無し
読み出し時間:早
可用性:高
※読み出しコスト「無し」としていますが、厳密にはGETやSELECTなどのリクエスト1000回あたり0.0047USD費用が発生します。
100,000回でも0.47USDと少額な為、コストはほとんど発生しないものとしています。
利用例
読み出し費用が発生しない為、動画などの大きなデータを保存し頻繁に読み出すサービスに適しています。
コスト
ストレージ料金
0.025 USD/GB
保存コスト
合計 10240 GB(10TB)のファイル
1ヶ月保存 256USD
3ヶ月保存 768USD
6ヶ月保存 1536USD
コスト削減率
S3標準(これが基準となる)
データを長期保存したいが、設計段階ではアクセス頻度が決められない場合
S3 Intelligent-Tiering: アクセス頻度に基づいてデータを最も費用対効果の高いアクセス階層に自動的に移動しますが場合によってオブジェクトにアクセスする時少しのレイテンシーが発生します。
保存コスト:低
読み出しコスト:可変(アクセス数が一定数を超えると高)
読み出し時間:中
可用性:中
利用例
S3バケットに多種多様なファイルがあり、アクセスパターンが変化する場合は、利用すべきです。コストを削減できるように自動的に該当の階層に移行します。
※ 注意点: アーカイブインスタントアクセスティアのデータ取り出しコストがかかります。
コスト
ストレージ料金
・高頻度アクセスティア: 0.025 USD/GB
・低頻度アクセスティア: 0.0138 USD/GB
・アーカイブインスタントアクセスティア: 0.005USD/GB
データ取り出しの料金
– アーカイブインスタントアクセスティア: 11.00 USD/1000 リクエスト 0.033 USD/GB
保存コスト
合計 10240 GB(10TB)のファイル 低頻度アクセス
1ヶ月保存 142USD
3ヶ月保存 426USD
6ヶ月保存 852USD
コスト削減の例
低頻度アクセスティアのデーターなら45%程コストカットできます。
アーカイブインスタントアクセスティアのデーターなら80%程コストカットできます。
データの保存期間が短期的(1ヶ月)で且つアクセス頻度が低い場合
S3 Standard-Infrequent Access: アクセス頻度は低いが、必要に応じてすぐに取り出すことが必要なデータに適しています。アクセスする時データ取り出しの料金(Retrieval Fee)が発生します。レイテンシーが低いです。(ミリ秒単位)
保存コスト:中
読み出しコスト:低
読み出し時間:早
可用性:中
利用例
アクセス頻度の低いオブジェクトを保存するのに適したプランです。少なくとも 30 日間保存する必要があります。
コスト
ストレージ料金
0.0138 USD/GB
データ取り出しの料金
0.01 USD/GB
保存コスト
合計 10240 GB(10TB)のファイル
1ヶ月保存 142USD
3ヶ月保存 426USD
6ヶ月保存 852USD
コスト削減率
45%程コストカットできます。
データの保存期間が短期的(1ヶ月)で且つアクセス頻度が低い場合(検証用)
S3 One Zone-Infrequent Access: Standard-Infrequent Access と同様ですがデーターは1つのアベイラビリティーゾーン (AZ) だけに保存されます。
保存コスト:中
読み出しコスト:低
読み出し時間:早
可用性:低
利用例
アクセス頻度の低いオブジェクトを保存するのに適したプランです。データーが単一のアベイラビリティーゾーン (AZ) に保存されるので本番環境には不向きです。少なくとも 30 日間保存する必要があります。
コスト
ストレージ料金
0.011 USD/GB
データ取り出しの料金
0.01 USD/GB
保存コスト
合計 10240 GB(10TB)のファイル
1ヶ月保存 113USD
3ヶ月保存 339USD
6ヶ月保存 678USD
コスト削減率
56%程コストカットできます。
データの保存期間が中・長期的で且つアクセス頻度が極めて低い場合
S3 Glacier Instant Retrieval: ミリ秒単位の取り出しが必要な、長期間有効なデータ用に低いコストのストレージ
保存コスト:低
読み出しコスト:低
読み出し時間:早
可用性:高
利用例
ログ、レポートなどの保存に適したプランです。必要に応じてすぐに取り出すことが可能ですが少なくとも 90 日間保存する必要があります。
コスト
ストレージ料金
0.005 USD/GB
データ取り出しの料金
0.03 USD/GB
保存コスト
合計 10240 GB(10TB)のファイル
1ヶ月保存 N/A
3ヶ月保存 156USD
6ヶ月保存 312USD
コスト削減率
80%程コストカットできます。
※S3 Glacier Flexible Retrieval(旧S3 Glacier)は運用設計上において S3 Glacier Instant Retrieval や S3 Glacier Deep Archive に置き換わる事が多い為、本記事では説明を割愛させて頂いております。
データの保存期間が長期的(180日以上が確定)で且つアクセス頻度が極めて低い場合
S3 Glacier Deep Archive:長期保存する場合最もコストが低いストレージとなります。但しデータの読み出しの際、最長12時間必要な場合があります。
保存コスト:低
読み出しコスト:高
読み出し時間:遅
可用性:高
利用例
ログ、レポートなどの保存に適したプランです。少なくとも 180 日間保存する必要があります。
コスト
ストレージ料金
0.002 USD/GB
データ取り出しの料金
0.022 USD/GB
0.005 USD/GB(1GB以上の大容量ファイルの場合)
保存コスト
合計 10240 GB(10TB)のファイル
1ヶ月保存 N/A
3ヶ月保存 N/A
6ヶ月保存 126USD
コスト削減率
92%程コストカットできます。
参考資料
Amazon S3 の料金
Column
Web のアクセスログに関して
apache のダミーログを出力する物を作っている方がいらっしゃったので、参考にさせていただきログの量を計算します。
10行のダミーログを出力します。
Book-Pro:logtest $ apache-loggen --limit=10 > access_log_sample
ダミーログの容量を確認します。
Book-Pro:logtest $ ls -lah
total 8
drwxr-xr-x 3 sun.staff staff 96B 9 7 10:45 .
drwxr-xr-x+ 144 sun.staff staff 4.5K 9 7 10:19 ..
-rw-r--r-- 1 sun.staff staff 2.1K 9 7 10:45 access_log_sample
ダミーログの中身はこのような形式です。(IPアドレス等、全てダミーですが一部 XXXに加工しております)
Book-Pro:logtest $ cat access_log_sample
44.147.184.XXX - - [07/Sep/2022:10:45:15 +0900] "GET /category/games HTTP/1.1" 200 47 "/item/office/4829" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1"
204.132.64.XXX - - [07/Sep/2022:10:45:15 +0900] "GET /item/books/1701 HTTP/1.1" 200 44 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"
224.195.145.XXX - - [07/Sep/2022:10:45:15 +0900] "GET /item/software/1819 HTTP/1.1" 200 96 "/category/networking" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"
80.30.90.XXX - - [07/Sep/2022:10:45:15 +0900] "GET /category/software HTTP/1.1" 200 112 "/item/networking/1185" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
204.132.64.XXX - - [07/Sep/2022:10:45:15 +0900] "GET /category/electronics HTTP/1.1" 200 138 "-" "Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3"
36.96.35.XXX - - [07/Sep/2022:10:45:15 +0900] "GET /category/games HTTP/1.1" 200 49 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
164.24.181.XXX - - [07/Sep/2022:10:45:15 +0900] "GET /category/electronics HTTP/1.1" 200 56 "/item/software/407" "Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3"
48.198.185.XXX - - [07/Sep/2022:10:45:15 +0900] "GET /category/books HTTP/1.1" 200 107 "/category/cameras?from=10" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C)"
224.222.207.XXX - - [07/Sep/2022:10:45:15 +0900] "GET /item/games/91 HTTP/1.1" 200 78 "/search/?c=Games+Electronics" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"
148.135.189.XXX - - [07/Sep/2022:10:45:15 +0900] "GET /item/giftcards/2227 HTTP/1.1" 200 125 "/category/sports" "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"
本来エラーログや様々なログが出力されますが、今回は大雑把に計算しますと10アクセスで2Kのログとして考えます。
10行で2K
10,000行で 2M
10,000,000行で(10M行)で 2GB(2ギガバイト)
これを月間アクセス数と想定します。
これは1PVあたり10アクセスとすれば単純計算で
1日33万アクセス
1時間では13,889アクセス
1分間では 231アクセス
1秒間4アクセス
(小数点第一位を四捨五入としています)
秒間にすると大したアクセスでないように感じられるかもしれませんが、訪問者が10ページ表示したとするとざっくりとした計算ですが月間100万PVのサイトとなります。そのような人気サイトのログだとしても数GBの量なので S3 へのログアーカイブ保管料金は AWS利用料全体を見るとどのプランを選択しても非常に安価に保管できると言えます。