Amazon S3 のストレージ設計 - ストレージクラスの使い分けとライフサイクルポリシー
6 種類のストレージクラスとライフサイクルルールでコストを自動最適化する。バージョニング、レプリケーション、Object Lock の設計を紹介します。
S3 の概要
S3 はスケーラブルなオブジェクトストレージサービスで、99.999999999% (イレブンナイン) の耐久性を提供します。静的 Web サイトホスティング、データレイク、バックアップ、アーカイブなど、あらゆるストレージユースケースの基盤として使用されます。6 種類のストレージクラスとライフサイクルルールで、アクセスパターンに応じたコスト最適化を実現します。
ストレージクラスとライフサイクル
Standard は頻繁にアクセスするデータに最適で、最も低いレイテンシを提供します。Standard-IA は月 1 回程度のアクセスに適し、ストレージ単価が Standard の約 45% です。Glacier Instant Retrieval はミリ秒のアクセスが必要なアーカイブに、Glacier Flexible Retrieval は数時間の取得で許容されるアーカイブに、Glacier Deep Archive は年 1-2 回のアクセスに適しています。ライフサイクルポリシーで「作成後 30 日で Standard-IA に移行、90 日で Glacier に移行、365 日で Deep Archive に移行」といったルールを定義し、コストを自動最適化します。
バージョニングとレプリケーション
S3 バージョニングを有効にすると、オブジェクトの上書きや削除時に以前のバージョンが保持されます。ライフサイクルルールで古いバージョンを一定期間後に削除し、ストレージコストの増加を制御します。 S3 Replication (CRR/SRR) でバケット間のオブジェクトを自動レプリケーションし、 DR やコンプライアンス要件に対応します。 S3 Object Lock で WORM (Write Once Read Many) を実現し、規制要件でオブジェクトの削除を禁止する場合に使用します。 S3 Access Points でバケットへのアクセスを用途別に分離し、アクセス制御を簡素化します。 ストレージ設計のストレージ戦略を網羅的に学ぶなら、技術書 (Amazon)を参照してください。
S3 のコスト最適化
S3 Standard は 1 GB あたり月額約 0.023 ドル、Glacier Instant Retrieval は約 0.004 ドル、Glacier Deep Archive は約 0.00099 ドルです。ライフサイクルルールでアクセスパターンに応じたストレージクラスの自動移行を設定します。S3 Storage Lens でバケットごとのコスト内訳とアクセスパターンを可視化し、最適化の機会を特定します。不完全なマルチパートアップロードの自動削除ルールで、不要なストレージ消費を防止します。リクエスト料金は GET (1,000 リクエストあたり約 0.0004 ドル) と PUT (約 0.005 ドル) で異なるため、アクセスパターンに応じたストレージクラスの選択が重要です。
まとめ
S3 はオブジェクトストレージの基盤で、6 種類のストレージクラスとライフサイクルルールでコストを最適化します。バージョニングでオブジェクトの変更履歴を保持し、レプリケーションで DR とコンプライアンス要件に対応します。Object Lock で WORM を実現し、Access Points でバケットへのアクセスを用途別に分離して、セキュリティと運用効率を向上させます。