S3
storageclass

S3のストレージタイプ(標準, 低頻度,1ゾーン低頻度)を使い分けてストレージコストを最小化する


概要

S3には4つのストレージタイプがあり用途によって使い分けることでコストを最小化できます。

例えばWebサービスで配信する画像のように「頻繁にアクセスする」用途では「標準」が最適ですが、バックアップデータ(データベースダンプやサイトを構成するファイル群)やログファイルのように「たまにしか使わないけど、必要になった場合はすぐに取り出したい」というような用途の場合は「低頻度ストレージ(標準 or 1ゾーン)」を利用することでストレージコストを低減できます。

この記事では、以下について検討してみました。


  • 低頻度ストレージを利用するとどれくらい料金が節約できるのか?

  • どのような用途の時に利用すればよいのか?

  • 留意点(落とし穴)は何か?

(公式)ストレージクラス - Amazon S3(クラウドストレージ)|AWS


ストレージタイプの比較

ストレージタイプ
識別子
用途
レイテンシ
保管されるゾーン数
最小ストレージ期間
可用性
保管料金(1)
標準を100とした場合の料金

標準
STANDARD
配信画像・映像、分析データなど
ミリ秒
3以上

99.99%
0.025
100

標準/低頻度
STANDARD_IA
バックアップ
ミリ秒
3以上
30日
99.90%
0.019
76

1ゾーン/低頻度
ONEZONE_IA
ログ
ミリ秒
1
30日
99.50%
0.0152
60.8

Glacer
REDUCED_REDUNDANCY
長期アーカイブ
分または時(選択)
3以上
90日
該当なし
0.005
20

※低頻度ストレージタイプの識別子に含まれる"IA"はInfrequent Access(まれなアクセス)の略です。


低頻度ストレージを利用するとどれくらい料金が節約できるのか?

「保存」に関してだけで考えると約25%~40%の低減が可能です。(上述した比較表の「標準を100とした場合の料金」を参照)

ただし、「データの保管期間が短い場合」や「取り出し頻度が多い場合」は「低頻度ストレージ」のほうが「標準ストレージ」より高額になることもありえるので注意が必要です。詳しくは後述。


低頻度ストレージ検討時の留意点

低頻度ストレージを選ぶ場合は、「最小ストレージ期間」に注意が必要です。

これは1日や1週間しか保存しないデータでも30日分の料金が請求されるという意味です。

例えば毎日上書きするデータや1週間しか保存しないデータは「標準」で保存したほうが有利です。

また保管料金そのものは「標準ストレージ」と比べると安いですが、データの取り出し時に料金が加算されることの考慮も必要です。(目安としては0.01USD/GB)

料金(低頻度アクセス) - Amazon S3(クラウドストレージ)|AWS

表現を変えると「取り出し時課金」がないので、頻繁にアクセスされるデータは「標準ストレージ」を選択します。

以上より以下のような特徴のある場合は低頻度ストレージで保管するのに適していると言えます。


  • 頻繁にはアクセスしない

  • 必要になった場合は迅速に取り出したい

  • 30日以上保管する2

  • (さらに1ゾーンの場合は)重要度が低い(万が一消えても復元できる)


AWS CLIでの利用

aws cliで利用する場合は、 --storage-class <識別子> と指定することでストレージクラスを指定できます。

以下は、1ソーン/低頻度を指定した例です。(指定しない場合は「標準(STANDARD)」と扱われます)

aws s3 cp /path/to/object s://bucket/path/to/ --acl private  --storage-class ONEZONE_IA

※識別子ONEZONE_IA は aws-cliのバージョン1.15.83以降でないと利用できません。(1.14だと以下のエラーが発生します。)

aws: error: argument --storage-class: Invalid choice, valid choices are:

STANDARD | REDUCED_REDUNDANCY
STANDARD_IA





  1. GBあたりの単価で単位はUSD。東京リージョンの最初の50TB 



  2. オブジェクトの上書きでも削除されたとみなされるので注意。毎日上書きする場合は1ヶ月で30オブジェクトx30日分の課金発生