はじめに
先週辺りにAWS re:Invent 2023でs3の新しいストレージクラス「Amazon S3 Express One Zone」が発表された。これがどういうユースケースに刺さるか中々思いつかなったので、タイトルの通り、斜に構えてサービスを見て行く。
Key Take Aways
- 従来のs3よりI/Oが10倍早い
- 読み取り/書き込み料金は半額、なお保存単価は7倍
- 設計上の可用性は99.95%、公式的には99.9%の可用性SLAをアピールしてる
- 基本、AZ落ちたら詰み
従来のs3よりI/Oが10倍早い
新規に出来たディレクトリバケットを採用(s3は汎用バケット)。バケットパターンが違うため、今のs3から移行するにはs3 batch operation
を使う必要がある。
汎用バケット(General Purpose Buckets)
目的: 汎用バケットは、さまざまな種類のデータを保存するために使用されます。これには文書、画像、動画、ログファイルなどが含まれることがあります。
特徴: 柔軟性が高く、多様なデータタイプと互換性があります。一般に、パフォーマンスやアクセス頻度に基づいて最適化されているわけではありません。
用途: 汎用バケットは、特定の用途に限定されない幅広い用途に使用されます。日常的なデータストレージやバックアップ、アーカイブなどに適しています。
ディレクトリバケット(Directory Buckets)
目的: ディレクトリバケットは、ファイルシステムのように階層的なデータ構造を持つデータを整理して保存するために使用されます。
特徴: ファイルやフォルダを階層的に整理する機能を提供し、ファイルシステムのような操作が可能です。これにより、ファイルの検索や管理が容易になります。
用途: 主に、多数のファイルを効率的に管理する必要がある場合に使用されます。例えば、ウェブサイトのコンテンツ管理や大量のドキュメントの整理に適しています。
新しいバケットタイプに加えて、今までazに分散して書いてたのを単一az内で分散するようにする為(従来は3az)、リモートのazへの書き込み、読み込みが完了するまでのレイテンシが減るというのがI/Oが10倍早くなるカラクリ。当然az落ちたらすべてのデータにアクセスできなくなるのでそこは妥協できるとこで使いましょうというストレージクラスになる。
比較表
とても参考になる表があったので引用
S3 サービスの比較項目 | S3 Standard | S3 Express One Zone |
---|---|---|
ユースケース | 標準にアクセスされる利用用途 | 頻度にアクセスされる高速なストレージ |
レイテンシー | ミリ秒 | 1桁台のミリ秒 |
AZ | 複数3 | 1 |
耐久性 | 99.999999999% (11 nines) | 99.95% |
可用性 | 99.99% | 99.95% |
可用性SLA | 99.9% | 99.9% |
東京リージョンでの保存費用 | 1GB あたり $0.025 | 1GB あたり $0.18 |
東京リージョンでの読み取り費用 | 1K Request あたり $0.00037 | 1K Request あたり $0.00019 |
対応リージョン | 全世界リージョン | パースリージョン対象、バージニア、オレゴン、東京、ストックホルム |
ユースケース
やはり、気になるのは7倍近く高くなった価格。仮に1TBのデータを1ヶ月保存するとしたら、通常のs3で3,840円掛かるところが27,648円になってしまう(150円/USD)。
Express One Zoneを使う期間を1/7にしてあげればトントンだが、公式が想定するようなAIや機械学習のトレーニングデータが1TBで済むとは考えづらく、そんな大きなデータを節約の為に頻繁に動かすのも考え物だろう。
これまでに挙げた事を踏まえると
- 頻繁にアクセスする(レイテンシを活かす)
- データ量が極端に大きくならない(料金が高くなる)
- 最悪データが吹っ飛んでも良い(可用性が低いため)
- ファイルを扱う(文字列で済むならDBで良い)
これらに該当するユースケースを考えなければならない。結構限定的な感じがする(お金をケチる前提)
個人的には
- ウェブサイトやアプリケーションでの動画や画像ファイルの高速配信
- リアルタイムデータ処理やキャッシュとして使用
で短い期間で破棄するようなキャッシュ運用が妥当な気がした。