[新機能]S3で新しいストレージクラス Glacier Deep Archive が使えるようになりました

はじめに

こんにちは、岩城です。

昨年のre:Inventで発表されていた Glacier Deep Archive が利用できるようになりました。
早速確認していきたいと思います。

【速報】【新サービス】爆安バックアップ!Glacier Deep Archiveが発表されました! #reinvent

Glacier Deep Archive 3行まとめ

  • Glacier よりもコストが低く、全てのストレージクラスで最も低コスト
  • 最小保存期間は180日で、最低180日よりも前にオブジェクトを削除した場合、180日分課金される
  • 復元オプションの標準取り出しで12時間以内、一括取得で48時間以内待つ必要がある

Glacier と Glacier Deep Archive の比較

Glacier Glacier Deep Archive
ストレージ料金(東京) 0.005USD/GB 0.002USD/GB
ストレージ料金(バージニア) 0.004USD/GB 0.00099USD/GB
最小保存期間 90日 180日
迅速取り出し時間 250 MB 以下の取り出しの場合、通常 1~5 分以内 -
標準取り出し時間 3~5時間 12時間以内
一括取得時間 5~12時間 48時間以内

Amazon S3 Pricing

ストレージクラスのおさらい

ストレージクラスのおさらいです。読み飛ばしても問題ありません。
S3 には、バケットに格納したオブジェクトのユースケースに応じてストレージクラスを選択できます。
ストレージクラスには以下の種類があります。

  • アクセス頻度の高いオブジェクトのストレージクラス
    • STANDARD
      • デフォルトのストレージクラス
    • REDUCED_REDUNDANCY
      • 低冗長化ストレージクラス
      • それほど重要ではない再生可能なデータを STANDARD より低いレベルの冗長性で保存する
      • コスト効果が良いのは STANDARD とされており、使用は推奨されていない
  • アクセス頻度が高いオブジェクトと低いオブジェクトを自動的に最適化するストレージクラス
    • INTELLIGENT_TIERING
      • アクセス頻度から長時間アクセスされていない場合、オブジェクトを低コストで低頻度のアクセス階層に移動する
      • 移動した後にオブジェクトにアクセスした場合、高頻度のアクセス階層に移動する
  • アクセス頻度の低いオブジェクトのストレージクラス
    • STANDARD_IA
      • 複数のアベイラビリティーゾーンにまたがってオブジェクトデータを冗長に格納する
    • ONEZONE_IA
      • 1つのアベイラビリティーゾーンにのみ格納するため、STANDARD_IA よりも安価である
  • Glacierストレージクラス
    • GLACIER
      • データの一部を数分、数時間で取得する必要があるデータのアーカイブに使用する
    • DEEP_ARCHIVE
      • アクセスする必要がほとんどないデータのアーカイブに使用する

やってみた

アップロード時のストレージクラスの指定

オブジェクトアップロード時のストレージクラスにGlacier Deep Archiveがあります。

Glacier Deep Archive_upload

ストレージクラスの変更

すでにあるオブジェクトのストレージクラスを変更する際のリストにもGlacier Deep Archiveがあります。

Glacier Deep Archive_change

復元

続いて復元を確認してみましょう。一括取得標準取り出しに掛かる時間を確認できます。

Glacier Deep Archive_restore

CLIからの操作

続いてCLIから操作をしてみたいと思います。
ストレージクラスにDEEP_ARCHIVEを指定してオブジェクトをputします。

$ aws s3api put-object --bucket iwaki-deeparchive --key object3 --storage-class DEEP_ARCHIVE
{
    "ETag": "\"d41d8cd98f00b204e9800998ecf8427e\""
}

putしたオブジェクトのメタデータを確認します。ストレージクラスがDEEP_ARCHIVEであることが分かります。


$ aws s3api head-object --bucket iwaki-deeparchive --key object3
{
    "AcceptRanges": "bytes",
    "ContentType": "binary/octet-stream",
    "LastModified": "Thu, 28 Mar 2019 09:03:05 GMT",
    "ContentLength": 0,
    "ETag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
    "StorageClass": "DEEP_ARCHIVE",
    "Metadata": {}
}

試しに取得してみようとしますが、アーカイブされているのでエラーになります。

$ aws s3api get-object --bucket iwaki-deeparchive --key object3 outfile
An error occurred (InvalidObjectState) when calling the GetObject operation: The operation is not valid for the object's storage class

おわりに

本エントリがどなたかのお役に立てれば幸いです。