AWS CLIを使用して大きなアーカイブをアップロードする - Amazon Glacier

このページは、Vaults と 2012 年の元の REST API を使用する Amazon Glacier サービスの既存のお客様専用です。

アーカイブストレージソリューションをお探しの場合は、Amazon Glacier Amazon S3、S3 Glacier Flexible Retrieval、S3 S3 Glacier Deep Archive の Amazon Glacier ストレージクラスを使用することをお勧めします。これらのストレージオプションの詳細については、Amazon Glacier ストレージクラス」を参照してください。

Amazon Glacier (元のスタンドアロンボールトベースのサービス) は、2025 年 12 月 15 日以降、既存の顧客に影響を与えずに新規顧客を受け入れなくなります。Amazon Glacier は、ボールトにデータを保存する独自の APIs を備えたスタンドアロンサービスであり、Amazon S3 および Amazon S3 Glacier ストレージクラスとは異なります。既存のデータは Amazon Glacier で無期限に安全でアクセス可能です。移行は必要ありません。低コストの長期アーカイブストレージの場合、 は Amazon S3 Glacier ストレージクラス AWS を推奨します。これにより、S3 バケットベースの APIs、フル AWS リージョン 可用性、低コスト、 AWS サービス統合で優れたカスタマーエクスペリエンスを実現できます。拡張機能が必要な場合は、Amazon Glacier ボールトから Amazon S3 Glacier ストレージクラスにデータを転送するためのソリューションガイダンスを使用して、Amazon S3 Glacier ストレージクラスへの移行を検討してください。 AWS Amazon Glacier Amazon S3

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CLIを使用して大きなアーカイブをアップロードする

AWS Command Line Interface () を使用して、Amazon Glacier (Amazon Glacier) にアーカイブをアップロードできますAWS CLI。大規模なアーカイブのアップロードエクスペリエンスを向上させるために、Amazon Glacier にはマルチパートアップロードをサポートするいくつかの API オペレーションが用意されています。これらの API オペレーションを使用すると、アーカイブを分割してアップロードできます。パートは、任意の順序で独立かつ並列にアップロードされます。パートのアップロードが失敗した場合、アーカイブ全体ではなく、失敗したパートのみを再度アップロードするだけで済みます。マルチパートアップロードは、1 バイトから約 40,000 ギビバイト (GiB) までのサイズのアーカイブに対して使用できます。

Amazon Glacier マルチパートアップロードの詳細については、「」を参照してくださいパート単位での大きなアーカイブのアップロード (マルチパートアップロード)

(前提条件) のセットアップ AWS CLI

  1. AWS CLIをダウンロードして設定します。手順については、「AWS Command Line Interface ユーザーガイド」の次のトピックを参照してください。

    のインストール AWS Command Line Interface

    の設定 AWS Command Line Interface

  2. コマンドプロンプトで次のコマンドを入力して、 AWS CLI セットアップを確認します。これらのコマンドは、いずれも認証情報を明示的に提供しないため、デフォルトプロファイルの認証情報が使用されます。

    • help コマンドを使用してください。

      aws help
    • 設定されたアカウントの Amazon Glacier ボールトのリストを取得するには、 list-vaults コマンドを使用します。123456789012 を AWS アカウント ID に置き換えます。

      aws glacier list-vaults --account-id 123456789012
    • の現在の設定データを表示するには AWS CLI、 aws configure list コマンドを使用します。

      aws configure list

(前提条件) Python のインストール

マルチパートアップロードを完了するには、アップロードするアーカイブの SHA256 木構造ハッシュを計算する必要があります。これは、アップロードするファイルの SHA256 木構造ハッシュを計算することとは異なります。アップロードするアーカイブの SHA256 木構造ハッシュを計算するには、Java、C# (.NET を使用)、または Python を使用できます。この例では、Python を使用します。Java または C# を使用する手順については、「チェックサムの計算」を参照してください。

Python のインストールの詳細については、「Boto3 デベロッパーガイド」の「Python のインストールまたは更新」を参照してください。

(前提条件) Amazon Glacier ボールトを作成する

次の例を使用するには、少なくとも 1 つの Amazon Glacier ボールトを作成する必要があります。ボールトの作成方法の詳細については、「Amazon Glacier でのボールトの作成」を参照してください。

例: を使用してパート単位で大きなアーカイブをアップロードする AWS CLI

この例では、ファイルを作成し、マルチパートアップロード API オペレーションを使用してそのファイルをパート単位で Amazon Glacierにアップロードします。

重要

この手順を開始する前に、前提条件となる手順をすべて実行しておくようにしてください。アーカイブをアップロードするには、ボールトを作成して AWS CLI を設定し、Java、C#、または Python を使用して SHA256 木構造ハッシュを計算できるように準備しておく必要があります。

次の手順では、initiate-multipart-upload、、upload-multipart-partおよび complete-multipart-upload AWS CLI コマンドを使用します。

これらのコマンドそれぞれの詳細については、「AWS CLI コマンドリファレンス」の「initiate-multipart-upload」、「upload-multipart-part」、「complete-multipart-upload」を参照してください。

  1. initiate-multipart-upload コマンドを使用して、マルチパートアップロードリソースを作成します。リクエストで、パートサイズをバイト数で指定します。アップロードする各パートは、最後のパートを除き、すべてこのサイズになります。アップロードを開始する際にアーカイブ全体のサイズを把握している必要はありません。ただし、最後の手順でアップロードを完了するときには、各パートの合計サイズ (バイト単位) が必要になります。

    次のコマンドで、--vault-name パラメータと --account-ID パラメータの値を独自の情報に置き換えます。このコマンドは、ファイルごとに 1 メビバイト (MiB) (1024 x 1024 バイト) のパートサイズのアーカイブをアップロードするよう指定します。必要に応じてこの --part-size パラメータ値を置き換えます。

    aws glacier initiate-multipart-upload --vault-name awsexamplevault --part-size 1048576 --account-id 123456789012

    正常な出力:

    { "location": "/123456789012/vaults/awsexamplevault/multipart-uploads/uploadId", "uploadId": "uploadId" }

    完了すると、コマンドはマルチパートアップロードリソースのアップロード ID と場所を Amazon Glacier に出力します。後の手順で、このアップロード ID を使用します。

  2. この例では、次のコマンドを使用して 4.4 MiB のファイルを作成し、1 MiB のチャンクに分割して、各チャンクをアップロードできます。独自のファイルをアップロードするには、データをチャンクに分割し、各パートをアップロードする、同様の手順に従います。

    Linux または macOS

    次のコマンドは、Linux または macOS 上に file_to_upload という名前の 4.4 MiB ファイルを作成します。

    mkfile -n 9000b file_to_upload
    Windows

    次のコマンドは、Windows 上に file_to_upload という名前の 4.4 MiB ファイルを作成します。

    fsutil file createnew file_to_upload 4608000
  3. 次に、このファイルを 1 MiB のチャンクに分割します。

    split -b 1048576 file_to_upload chunk

    これで、次の 5 つのチャンクができます。最初の 4 つは 1 MiB で、最後の 1 つは約 400 キビバイト (KiB) です。

    chunkaa chunkab chunkac chunkad chunkae
  4. upload-multipart-part コマンドを使用して、アーカイブの一部をアップロードします。アーカイブのパートは任意の順序でアップロードできます。パートを並行してアップロードすることもできます。マルチパートアップロードでは、最大 10,000 パートをアップロードできます。

    次のコマンドで、--vault-name--account-ID--upload-id のパラメータの値を置き換えます。アップロード ID は、initiate-multipart-upload コマンドの出力として指定された ID と一致する必要があります。--range パラメータは、サイズが 1 MiB (1024 x 1024 バイト) のパートをアップロードするよう指定します。このサイズは、initiate-multipart-upload コマンドで指定したサイズと一致する必要があります。必要に応じてこのサイズ値を調整します。--body パラメーターは、アップロードするパートの名前を指定します。

    aws glacier upload-multipart-part --body chunkaa --range='bytes 0-1048575/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID

    正常にアップロードできると、コマンドはアップロードされたパートのチェックサムを含む出力を生成します。

  5. upload-multipart-part コマンドをもう一度実行して、マルチパートアップロードの残りのパートをアップロードします。アップロードするパートと一致するように、各コマンドの --range パラメータと –-body パラメータの値を更新します。

    aws glacier upload-multipart-part --body chunkab --range='bytes 1048576-2097151/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkac --range='bytes 2097152-3145727/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkad --range='bytes 3145728-4194303/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    aws glacier upload-multipart-part --body chunkae --range='bytes 4194304-4607999/*' --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID
    注記

    アップロードの最後のパートが 1 MiB 未満なので、最後のコマンドの --range パラメータ値は小さくなります。正常にアップロードできると、それぞれのコマンドはアップロードされた各パートのチェックサムを含む出力を生成します。

  6. 次に、アーカイブを組み立てて、アップロードを終了します。アーカイブの合計サイズと SHA256 木構造ハッシュを含める必要があります。

    アーカイブの SHA256 木構造ハッシュを計算するには、Java、C#、または Python を使用できます。この例では、Python を使用します。Java または C# を使用する手順については、「チェックサムの計算」を参照してください。

    Python ファイル checksum.py を作成し、次のコードを挿入します。必要に応じて、元のファイルの名前を置き換えます。

    from botocore.utils import calculate_tree_hash checksum = calculate_tree_hash(open('file_to_upload', 'rb')) print(checksum)
  7. checksum.py を実行して SHA256 木構造ハッシュを計算します。次のハッシュは出力と一致しないことがあります。

    $ python3 checksum.py $ 3d760edb291bfc9d90d35809243de092aea4c47b308290ad12d084f69988ae0c
  8. complete-multipart-upload コマンドを使用してアーカイブのアップロードを終了します。--vault-name--account-ID--upload-ID--checksum のパラメータの値を置き換えます。--archive パラメータ値は、アーカイブの合計サイズをバイト単位で指定します。この値には、アップロードした個々のパートのすべてのサイズの合計値を指定する必要があります。必要に応じてこの値を置き換えます。

    aws glacier complete-multipart-upload --archive-size 4608000 --vault-name awsexamplevault --account-id 123456789012 --upload-id upload_ID --checksum checksum

    完了すると、コマンドはアーカイブの ID、チェックサム、および Amazon Glacier 内の場所を出力します。