はじめに
S3(Simple Storage Service)は、AWSが提供するオブジェクトストレージのサービスです。
オブジェクトストレージとは、データを「オブジェクト」という単位で管理するストレージです。
S3ではその特徴を活かして、高品質なスケーラビリティ、データ可用性、セキュリティ、パフォーマンスを提供しています。
S3を使う上で、最初に悩むのは「どのストレージクラスを選ぶか?」だと思います。
そのため、今回はストレージクラスの特徴を整理しました。
AWS S3の基礎知識
S3は、データ耐久性99.999999999%(イレブン9)を誇るオブジェクトストレージです。
データをファイルのような階層構造でなく、オブジェクトIDを利用したフラットかつ依存関係が無い状態で保存することで分散管理が可能となります。
この性質を利用して、データを複数のノード(サーバー等)に保存することで耐障害性を高めています。
また、ノードを追加すれば空き容量を増やせるため、無限にスケールアウトすることができます。
AWSでは、S3の格納可能なデータの総量とオブジェクトの数には制限はありません。
※ただし、1オブジェクト 5TB迄という制限があります。
ストレージクラスの整理
概要
ストレージクラス | 特徴 | 説明 |
---|---|---|
S3 Standar | 汎用 | 標準的なストレージクラス (迷ったらコレを選ぶ) |
S3 Intelligent-Tiering | 費用対効果 最適化 | アクセス頻度に基づいてデータを 費用対効果の高いアクセス階層に 自動的に移動 |
S3 Standard-IA | 低頻度 アクセス | 必要に応じて素早く取り出す データに利用 |
S3 1 Zone-IA | 低頻度 アクセス | S3 Standard-IAの特徴に加え、 データを1AZのみに保管 |
S3 Glacier Instant Retrieval | アーカイブ (低頻度・長期保存) | 必要に応じて素早く取り出す データに利用 |
S3 Glacier Flexible Retrieval | アーカイブ (低頻度・長期保存) | コストとアクセス時間などの バランスが取れた柔軟性が高い 取り出しオプションを提供 |
S3 Glacier Deep Archive | アーカイブ (低頻度・長期保存) | 超長期の保管で12時間以内に 取り出せれば良いデータに利用 |
比較表
ストレージクラス | AZ | 最小 利用期間 | 取り出し 料金 | 取り出し 開始時間 | 月額料金[USD/GB] (東京リージョン) |
---|---|---|---|---|---|
S3 Standard | ≧3 | なし | なし | ミリ秒 | 0.0230〜0.0250 |
S3 Intelligent-Tiering | ≧3 | なし | なし | ミリ秒 | 高頻度層:0.0230〜0.0250 低頻度層: 0.0050 +モニタリング料(1,000件毎) 0.0025[USD] |
S3 Standard-IA | ≧3 | 30日間 | あり | ミリ秒 | 0.0138 |
S3 1Zone-IA | 1 | 30日間 | あり | ミリ秒 | 0.0110 |
S3 Glacier Instant Retrieval | ≧3 | 90日間 | あり | ミリ秒 | 0.0050 |
S3 Glacier Flexible Retrieval | ≧3 | 90日間 | あり | 分〜時間 | 0.0045 |
S3 Glacier Deep Archive | ≧3 | 180日間 | あり | 時間 | 0.0020 |
どのストレージクラスを選べば良いか?
理想としては、比較表などを参考に「保管データの特性に合ったストレージクラス」を選択できると良いです。
しかし、慣れていない方もいらっしゃると思うので、個人的な見解を紹介します。
手作業でオブジェクトを振り分ける
アクセス頻度に絞ってS3 StandardとS3 Standard-IAに振り分けると良いでしょう。
低頻度アクセスにはS3 1Zone-IAもありますが、S3 Standard-IAと金額差が少ないためデータを振り分ける手間(コスト)に見合わないと考えます。
アクセス頻度に応じてオブジェクトクラスを移動させる
コストが安くなるようにオブジェクトクラスを変えたいならば、S3 Intelligent-TieringやS3ライフサイクル設定を検討します。
S3 Intelligent-Tieringを利用すれば、AWSがオブジェクトのアクセス頻度を分析して最適なストレージクラスへ移動してくれます。
ただし、大部分のオブジェクトが高頻度層に保管されると別途発生するモニタリング料の分だけ割高となるため注意が必要です。
ライフサイクル設定を利用すれば、オブジェクトが格納されてからの期間を設定して別のストレージクラスへ移動させてくれます。
これにより、下図のようにストレージクラスを移動させるだけでなく、最終的には削除まで行えます。
コメント