AWS CLI を使用して S3 Glacier Flexible Retrival または S3 Glacier Deep Archive ストレージクラスから Amazon S3 オブジェクトを復元するにはどうすればよいですか?

所要時間2分
0

Amazon S3 Glacier Flexible Retrieval または Amazon S3 Glacier Deep Archive ストレージクラスに Amazon Simple Storage Service (Amazon S3) オブジェクトをアーカイブしました。AWS コマンドラインインターフェイス (AWS CLI) を使用してオブジェクトを復元したいと考えています。

解決方法

注: AWS CLI コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用していることを確認してください

復元リクエストを開始する

復元リクエストを開始するには、次のコマンドを実行します。サンプルコマンドのすべての値を、バケット、オブジェクト、および復元リクエストの値に置き換えます。

注: データ取り出しの料金はリクエストの量によって決まるため、復元リクエストのパラメータが正しいことを確認してください。

$ aws s3api restore-object --bucket awsexamplebucket --key dir1/example.obj --restore-request '{"Days":25,"GlacierJobParameters":{"Tier":"Standard"}}'

取り出しリクエストにより、S3 Standard ストレージクラスにデータの一時コピーが作成され、アーカイブされたデータはそのまま残ります。この例では、コピーが作成され、25 日間維持されます。低冗長化ストレージが S3 Standard よりも低価格の AWS リージョンでは、一時的に利用可能なデータは低冗長化ストレージとして請求されます。ただし、課金対象の低冗長性ストレージクラスにはデータの保存状態が反映されません。

コマンドには次の変更を加えることができます:

  • バージョニングされたバケット内の特定のオブジェクトバージョンを復元するには、--version-id オプションを含めて対応するバージョン ID を指定します。
  • S3 Glacier Flexible Retrieval ストレージクラスでは、Expedited、Standard、Bulk の取り出しオプションを使用できます。ただし、S3 Glacier Deep Archive ストレージクラスに使用できるのは、Standard または Bulk の取り出しオプションのみです。
  • この例の JSON 構文が Windows クライアントでエラーになる場合は、復元リクエストを次の構文に置き換えてください:
--restore-request Days=25,GlacierJobParameters={"Tier"="Standard"}

注: S3 Glacier Instant Retrieval に保存されているオブジェクトの場合、データの取り出しは瞬時に行われるため、復元操作を行う必要はありません。詳細については、「Amazon S3 ストレージクラス」を参照してください。

復元リクエストのステータスを監視する

復元リクエストのステータスを監視するには、次のコマンドを実行します:

aws s3api head-object --bucket awsexamplebucket --key dir1/example.obj

コマンド実行時に復元が進行中の場合は、次のようなメッセージが表示されます:

{  
    "Restore": "ongoing-request=\"true\"",  
    ...  
    "StorageClass": "GLACIER | DEEP_ARCHIVE",  
    "Metadata": {}  
}

復元が完了すると、次のようなメッセージが表示されます:

{  
    "Restore": "ongoing-request=\"false\", expiry-date=\"Sun, 13 Aug 2017 00:00:00 GMT\"",  
    ...  
    "StorageClass": "GLACIER | DEEP_ARCHIVE",  
    "Metadata": {}  
}

応答の expiry-date に注意してください。この時間までに、S3 Standard ストレージクラスに保存されている一時ストアオブジェクトにアクセスする必要があります。一時オブジェクトは、S3 Glacier Flexible Retrieval または S3 Glacier Deep ストレージクラスにあるアーカイブオブジェクトと一緒に使用できます。expiry-date が過ぎると、Amazon S3 は一時オブジェクトを削除します。一時オブジェクトの有効期限が切れる前に、オブジェクトのストレージクラスを変更する必要があります。expiry-date より後にオブジェクトのストレージクラスを変更するには、新しい復元リクエストを開始してください。

オブジェクトのストレージクラスを Amazon S3 Standard に変更する

オブジェクトのストレージクラスを Amazon S3 Standard に変更するには、copy を使用します。既存のオブジェクトを上書きするか、オブジェクトを別の場所にコピーできます。

警告: AWS CLI のバージョン 1.x を使用している場合は、オブジェクトをコピーする前に、マルチパートのしきい値が 5 GB に設定されていることを確認してください。そうでない場合は、オブジェクトサイズが AWS CLI のマルチパートしきい値を超えると、オブジェクトのユーザーメタデータが失われます。5 GB を超えるオブジェクトでユーザーメタデータを保存するには、AWS CLI のバージョン 2.x を使用します。

(オプション) AWS CLI のマルチパートしきい値を増加させるには、以下のコマンドを実行します:

aws configure set default.s3.multipart_threshold 5GB

既存のオブジェクトを Amazon S3 Standard ストレージクラスで上書きするには、次のコマンドを実行します:

aws s3 cp s3://awsexamplebucket/dir1/example.obj s3://awsexamplebucket/dir1/example.obj --storage-class STANDARD

プレフィックス全体の再帰コピーを実行し、既存のオブジェクトを Amazon S3 Standard ストレージクラスで上書きするには、次のコマンドを実行します:

aws s3 cp s3://awsexamplebucket/dir1/ s3://awsexamplebucket/dir1/ --storage-class STANDARD --recursive --force-glacier-transfer

**注:**S3 Glacier Flexible Retrieval にアーカイブされたオブジェクトの最小保存期間は 90 日です。S3 Glacier Deep Archive にアーカイブされたオブジェクトの最小保存期間は 180 日です。S3 Glacier Flexible Retrieval のオブジェクトを 90 日以上前に上書きした場合、90 日間の料金が請求されます。同様に、S3 Glacier Deep Archive で最低 180 日前に上書きしたオブジェクトについては、180 日間の料金が請求されます。

オブジェクトを別の場所にコピーするには、以下のコマンドを実行します:

aws s3 cp s3://awsexamplebucket/dir1/example.obj s3://awsexamplebucket/dir2/example2.obj

注: 停止中のバケットまたはバージョニングが有効になっているバケットの場合、このステップではオブジェクトのコピーが追加で作成されます。これらの追加オブジェクトにはストレージコストもかかります。ストレージコストを回避するには、まだ Amazon S3 Glacier ストレージクラスに残っている古いバージョンを削除してください。または、S3 ライフサイクルの有効期限ルールを作成してください。

関連情報

現在 S3 Glacier または S3 Glacier Deep Archive ストレージクラスにある大量の Amazon S3 オブジェクトの復元を開始する方法を教えてください。

Amazon S3 コンソールの復元階層を使用して、Amazon S3 Glacier ストレージクラスからアーカイブ済みのオブジェクトを復元するにはどうすればよいですか?

アーカイブされたオブジェクトの復元

AWS公式
AWS公式更新しました 10ヶ月前
コメントはありません

関連するコンテンツ