【AWS】S3ストレージクラスの選び方
SAA勉強時のAWSサービスまとめシリーズ。今回はS3です。
AWSサービスにおいて、ファイルを保管する際にお世話になるアレですね。あまり意識しないで使っているかもしれませんが、実は用途によって複数のサービスが提供されています。
使い方によっては利用料金が抑えられるかもしれませんので、しっかりとポイントを押さえておきましょう。
<2023/11/29追記>
re:Invent2023にて新たなストレージクラスである「Amazon S3 Express One Zone」が発表されました。
S3の利用用途がさらに広がりますね。詳細確認取れ次第、このページも更新いたします。
ストレージクラスの選び方まとめ
結論を急ぐ方はこちらのフローチャートをご参照ください。
ストレージクラスの設定
S3にファイルをアップロードするとデフォルトでStandardが選択されますので、あまり意識していない方もいらっしゃると思います。
ファイルアップロード後にバケットを選択し、上記のようにストレージクラスを選択することができます。
それぞれのストレージクラスの説明は記載されていますが、これだけれは分かりづらい点もあるかと思いますので
各ストレージクラスについて解説をしていきます。
S3のストレージクラスは何種類あるの?
2022年8月時点では7種類のサービスが提供されています。
一時的なファイルの保管からアーカイブ用のストレージまで、用途に応じて様々なサービスが提供されています。一番新しいストレージクラスは2018年に追加されたS3 Intelligent-Tieringです。こちらは随時アップデートされており益々使いやすくなっています。
汎用的なストレージ
S3 Standard
いわゆる標準的なS3です。難しく考えたくない場合はシンプルにこちらを選択すればいいかと思います。
低レイテンシーかつ高スループットでありながら、可用性も高くお値段もお手頃というすばらしいサービスですね。
料金はだいたい0.025USD/GBです。
ポイント
- もっとも汎用的なストレージクラス
- ストレージ利用料金はだいたい 0.025USD/GB
S3 Intelligent-Tiering
一番新しいストレージクラスです。
なにがIntelligentかというと、アクセス頻度に基づいてデータを最も費用対効果の高いアクセス階層に自動的に移動することで自動でコスト削減してくれます。
S3に入れたけどほとんどアクセスされていないログファイルのようなものは、自動でアーカイブ用の深い階層に移動しコストを抑えてくれます。賢い。
ポイント
- アクセス頻度に応じて自動でアクセス階層を移動してくれる
- ストレージ利用料金は 0.004USD/GB ~ 0.0025USD/GB
- データのモニタリングに別途費用発生 オブジェクト 1,000 件あたり 0.0025USD
低頻度アクセス用
S3 Standard-IA
IAはInfrequent Accessの略です。あまりアクセスしないデータ用という事ですね。
S3 Standardとは可用性などの指標は変わりませんが、大きく異なってくるのが料金体系です。
S3 Standardではデータ取り出しに課金がありませんが、低頻度アクセス用のストレージクラスは0.01USD/GBの課金体系になります。
ファイルを置いておくだけであればS3 Standardより価格は安くなりますが、アクセスが多くなってくると逆転してしまいますので注意が必要です。
ポイント
- ストレージ利用料金だけだとStandardより50%お得 (0.0125USD/GB)
- データの取り出し等に費用が発生 0.01USD/GB
- ストレージ利用料金は最低でも30日分の費用が発生
S3 One-Zone IA
Standard-IAの兄弟のようなストレージクラスです。
何が違いかというと「データを保存先のリージョンが1つのみ」になり、可用性を下げることでコストをさらに抑えたストレージクラスです。
マスタとなるストレージから再作成可能なデータを保存する場合などに利用します。
ポイント
- ストレージ利用料金だけだとStandardより60%お得 (0.01USD/GB)
- データの取り出し等に費用が発生 0.01USD/GB
- 他のストレージクラスは3リージョン以上にレプリケーションしているが、このストレージクラスはレプリケーションなし
- ストレージ利用料金は最低でも30日分の費用が発生
アーカイブ用
S3 Glacier Instant Retrieval
めったに取り出さないけど、必要な時に迅速にデータが取り出せるようにしたいという用途のためのストレージクラスです。
四半期に一度データにアクセスするようなケースを想定されています。
ファイルの保存自体はS3 Standardと比較して最大約80%ほどもコストを削減できますが、取り出しにかかる費用は低頻度アクセス用のストレージクラスと比較して3倍になります。
ポイント
- ストレージ利用料金だけだとStandardより84%お得 (0.004USD/GB)
- データの取り出し等に費用が発生 低頻度ストレージクラスの3倍 (0.03USD/GB)
- ストレージ利用料金は最低でも90日分の費用が発生
S3 Glacier Flexible Retrieval
アーカイブとして保存し、取り出し時にある程度猶予を持てる場合のストレージクラス。
取り出しに1 分から 12 時間かかります。制限がある分取り出し費用も安めに設定されています。
1 年に 1〜2 回アクセスされるようなデータを想定されています。
ポイント
- ストレージ利用料金だけだとStandardより約85%お得 (0.0036USD/GB)
- データの取り出し等に費用が発生 迅速取り出しの場合は低頻度ストレージクラスの3倍 (0.03USD/GB)
- データ取り出し時は速度等によって料金体系が異なる
- ストレージ利用料金は最低でも90日分の費用が発生
S3 Glacier Deep Retrieval
一番深くアーカイブするストレージクラス。こちらも取り出しには時間がかかり、12 時間以内に復元可能です。
こちらも1 年に 1〜2 回アクセスされるようなデータを想定されています。
長期保管用となっており、最小ストレージ期間は180日です。
ポイント
- ストレージ利用料金だけだとStandardよりなんと約96%お得 (0.00099USD/GB)
- データの取り出し等に費用が発生 低頻度ストレージクラスの2倍 (0.02USD/GB)
- ストレージ利用料金は最低でも180日分の費用が発生
どのストレージクラスを選ぶか
各ストレージクラスをマッピングするとこのようなカバー範囲かと思います。
Intelligent-Tieringはアクセス頻度に応じて自動で階層を移動してくれるので、他のサーバクラスと被らせています。
よく使うデータであれば迷わずS3 Standardで問題ありません。
低頻度のアクセスであったりアーカイブ用データのストレージクラスを選択する場合かと思います。
そこで、ストレージクラスの選択に迷った際の手引きとなるよう簡単にフローを作成してみました。
アクセス頻度やアーカイブ期間などを考慮しコスト等を総合的に考えると、下記のような判断基準になってきます。
S3には他にもデータ転送時の料金体系など様々比較軸はありますが、メインとなるものはこちらの図で表現できておりますのでストレージクラスの選択に迷った場合は参考にしてみてください。
アーカイブ用ストレージクラスの取り出し時間
ストレージクラスまたは階層 | 迅速 | Standard | 大容量 |
S3 Glacier Flexible Retrieval S3 Intelligent-Tiering Archive | 1~5 分 | 3~5 時間 | 5~12 時間 |
S3 Glacier Deep Archive S3 Intelligent-Tiering Deep Archive | 利用不可 | 12 時間以内 | 48 時間以内 |
まとめ
S3にファイルをアップロードしたままではデフォルト設定になっていますが、ストレージクラスを選択することでコストを抑えられる可能性があります。
私もSAAの勉強をするまで知りませんでしたが、大規模にS3を使っている場合は必ずチェックした方がいいですね。
用途によってさまざまなサービスを提供しているAWSは本当に奥が深いです。