AWSのS3にはいくつか種類(クラス)があるので、
・何があるのか
・どんな特徴があるのか
・代表的な用途
をまとめてみます。
S3とは
そもそも、S3って何なんでしょうか。Amazon Simple Storage Service は、インターネット用のストレージです。また、ウェブスケールのコンピューティングを開発者が簡単に利用できるよう設計されています。
Amazon S3 とは
AWS上のストレージサービスで、頭文字をとってS3と呼ばれているんですね。
そんなS3の特徴は以下の4つです。
・耐久性:99.999999999%(イレブンナイン)
・安価:月額1GB/約3円
・安定性:データは冗長化されて保存
・安全性:データを暗号化可能
ちなみに、アップロード可能な容量は1つのデータにつき5TBまでです。(デカすぎ)
補足
1オブジェクトのサイズが最大5TBで、1回のPUTオペレーションでアップ出来るオブジェクトのサイズが5GBとなります。
5GBを超える場合には、マルチパートアップロード(分割送信)を用いて並列してアップロードを行います。
S3のストレージクラス
S3には以下のストレージクラスが存在します。・Standard(標準)
・Standard-IA(低頻度アクセス)
・One Zone-IA(1ゾーン低頻度アクセス)
・Glacier(アーカイブ)
・Glacier Deep Archive(アーカイブ)
それぞれの特徴をみていきます。
Standard
標準的なストレージクラスです。複数のAZにまたがってデータを複製するため、耐久性が高い(99.999999999%)です。
遅延も少なく、スループットが高いので、幅広い用途に使用できます。
代表的な用途
・クラウドアプリケーション
・動的なウェブサイト
・コンテンツ配信
・モバイルやゲームのアプリケーション
・ビッグデータ分析
Standard-IA
アクセス頻度は低いけど、必要な時にすぐに取り出したいという用途で使用するストレージクラスです。Standardとスペックは同様なのに安価です。
しかし、こちらはデータを取り出す際に料金がかかります。
代表的な用途
・長期保存
・バックアップ
・災害対策ファイルのデータストア
One Zone-IA
Standard-IAのAZが1つになったバージョンです。Standard-IAは複数のAZにまたがってデータを保存しますが、
こちらは1つのAZ内にのみデータを保存するため、Standard-IAよりも20%ほど安価になります。
冗長性を気にしないようなデータの保存に向いています。
代表的な用途
・セカンダリバックアップのコピー
Glacier
セキュア・高耐久性・低価格の三拍子が揃ったストレージクラスです。 オンプレのストレージと同等か、それより低いコストでデータの保存が可能です。しかし、データの読み出しには数分〜数時間かかるため、長期間のデータアーカイブ用途がメインとなります。
代表的な用途
・メディア資産の保存
・ヘルスケア情報のアーカイブ
・規制及びコンプライアンスのアーカイブ
・科学的データのストレージ
・デジタル保存
Glacier Deep Archive
S3で最安のストレージクラスです。1年で1回か2回しかアクセスされないようなデータの長期保存に向いています。
Glacierに保存するものよりも、よりアクセス頻度が低いものを保存するイメージです。
その分、データの読み出しにはより長い時間(12時間以内)がかかります。
代表的な用途
・磁気テープの代替
・会計データ
・学籍情報
ストレージクラスの比較
それぞれの特徴をざっくり比較してみます。Standard | Standard-IA | One Zone-IA | Glacier | Glacier Deep Archive | |
---|---|---|---|---|---|
冗長性 | 高 | 高 | 低 | 高 | 高 |
読み出し料金 | なし | あり | あり | あり | あり |
読み出し時間 | 速 | 速 | 速 | 遅 | 遅 |
もっと詳しく知りたい方は、公式を参照してくださいな。
Amazon S3 ストレージクラス
Intelligent-Tiering
アクセス頻度ごとに自分でストレージクラス変えないといけないの!?めんどくさ!
と思った方もいるかと思います。
そんなことはありません。ちゃんといい感じのものが用意されています。
Intelligent Tieringは、それぞれのファイルへのアクセス頻度を計測して
OneZone-IAを除く上記4つのストレージクラスへ自動的にデータを振り分けてくれます。
(手動で振り分けを設定するライフサイクルポリシーというものもありますが、今回は割愛します。)
こちらを使用することで、コスト効率を最低化することができます。
デフォルトでは、以下のようにデータを振り分けます。(アーカイブアクセス有効化時)
・データをStandardへ保存
・30日連続でアクセスされなかったものはStandard-IAへ移動
・90日連続でアクセスされなかったものはGlacierへ移動
・上記+180日連続でアクセスされなかったものはGlacier Deep Archiveへ移動
また、下層のストレージクラスへ振り分けられたデータに再度アクセスがあった際には、
自動的に高頻度のアクセス階層へ移動してくれます。
例えば、Glacierに保存されているデータにアクセスがあった場合、
GlacierからStandardへ移動してくれるなど。
データをどのぐらいの頻度で使用するかわからない場合、Intelligent-Tieringを使用するのが良いでしょう。
代表的な用途
・ストレージアクセスパターンが不明なデータセットの保存
・データレイクのように予測できないアクセスパターンを持つデータセットの保存