概要
Amazon S3 は、データの完全性チェックを高速化する複数のチェックサムオプションを提供します。これらの機能は、お客様がオブジェクトをアップロードしたときにファイルのチェックサムを計算します。Amazon S3 に大量のデータを移行するお客様は、耐久性のベストプラクティスとしてこれらの完全性チェックを実行し、すべてのバイトが変更されずに転送されていることを確認したいと考えています。これにより、お客様はエンドツーエンドのデータの完全性を維持できます。チェックサムはオブジェクトがアップロードされた瞬間に作成され、オブジェクトの存続期間を通じて保存されます。エンドツーエンドのデータの完全性を提供するために、オブジェクトがダウンロードされる際、同じチェックサムが最後に検証されます。Amazon S3 でサポートされる追加のアルゴリズムは、SHA-1、SHA-256、CRC32、および CRC32-C です。これらの新しいデータの完全性チェック機能を使用すると、データ転送中、またはアップロードもしくはダウンロード中に、ファイルが変更されていないことを確認できます。
実行するアクション
- Amazon S3 にファイルをアップロードする
- Amazon S3 のチェックサムとローカルファイルを比較して、データの完全性を検証する
前提条件
AWS の使用経験
初心者
所要時間
20 分
完了までのコスト
1 USD 未満 (Amazon S3 料金ページ)
必要なもの
AWS アカウント
利用するサービス
最終更新日
2022 年 8 月 15 日
実装
ステップ 1: Amazon S3 バケットを作成する
- 1.1 – Amazon S3 コンソールにサインインする
- まだ作成していない場合は AWS アカウントを作成します。
- アカウント情報を使用して、AWS マネジメントコンソールにログインします。
- AWS コンソールのサービス検索バーから、S3 と入力します。 サービス検索結果セクションで、[S3] を選択します。S3 Glacier のオプションが表示される場合があります。このオプションは、Amazon S3 と統合する前の Glacier サービス用です。Amazon S3 Glacier ユーザーには、より優れたユーザーエクスペリエンスのために Amazon S3 コンソールを使用することをお勧めします。
- まだ作成していない場合は AWS アカウントを作成します。
- 1.2 – S3 バケットを作成する
- 左側の Amazon S3 メニューから [バケット] を選択し、[バケットを作成] ボタンを選択します。
- 1.3
- バケット用に、グローバルに一意であるわかりやすい名前を入力してください。バケットを作成する [AWS リージョン] を選択します。デフォルトの [ブロックパブリックアクセス] 設定はこのワークロードに適しているため、このセクションはそのままにしておきます。
- 残りのオプションはデフォルトのままにすることができます。ページの一番下に移動して、[バケットを作成] を選択します。
ステップ 2: ファイルをアップロードして、チェックサムアルゴリズムを指定する
- 2.1 – オブジェクトをアップロードする
- AWS マネジメントコンソールセッションからログアウトした場合、ログインし直します。S3 コンソールに移動し、[バケット] メニューオプションを選択します。利用可能なバケットのリストから、先ほど作成したバケットのバケット名を選択します。
- 2.2
- 次に、[オブジェクト] タブを選択します。その後、[オブジェクト] セクション内で [アップロード] ボタンを選択します。
- 2.3 – ファイルを追加する
- [ファイルを追加] ボタンを選択し、ファイルブラウザからアップロードするファイルを選択します。
- 2.4 – プロパティを展開する
- ページを下方向に移動して、[プロパティ] セクションを見つけます。その後、[プロパティ] を選択してセクションを展開します。
- 2.5 – 追加のチェックサムを選択する
- [追加のチェックサム] で [オン] オプションを選択し、[SHA-256] を選択します。
オブジェクトが 16 MB 未満で、既に SHA-256 チェックサム (base64 エンコード) を計算している場合は、それを [事前計算済みの値] の入力ボックスに入力できます。16 MB を超えるオブジェクトでこの機能を使用するには、CLI または SDK を使用できます。Amazon S3 はオブジェクトを受け取ると、指定されたアルゴリズムを使用してチェックサムを計算します。チェックサムの値が一致しない場合、Amazon S3 は、スクリーンショットに示すように、エラーを生成してアップロードを拒否します。
- 2.6 – アップロードする
- ページを下方向に移動して、[アップロード] ボタンを選択します。
- 2.7
- アップロードが完了したら、[閉じる] ボタンを選択します。
ステップ 3: チェックサムを検証する
- 3.1
- ファイル名を選択して、アップロードしたファイルを選択します。これにより、[プロパティ] ページに移動します。
- 3.2 – チェックサムの値を見つける
- [プロパティ] ページを下方向に移動すると、[追加のチェックサム] セクションが表示されます。
- このセクションには、Amazon S3 がアップロード時に計算および検証した base64 でエンコードされたチェックサムが表示されます。
- 3.3 – 比較する
- ローカルコンピュータ内のオブジェクトを比較するには、ターミナルウィンドウを開き、ファイルがある場所に移動します。
- shasum などのユーティリティを使用してファイルを計算します。次のコマンドは、同じファイルに対して sha256 計算を実行し、16 進数出力を base64 に変換します: shasum -a 256 image.jpg | cut -f1 -d\ | xxd -r -p | base64
- この値を比較する場合、Amazon S3 コンソールの値と一致する必要があります。
ステップ 4: クリーンアップ
- 4.1 – テストオブジェクトを削除する
- AWS マネジメントコンソールセッションからログアウトした場合、ログインし直します。S3 コンソールに移動し、[バケット] メニューオプションを選択します。最初に、テストバケットからテストオブジェクトを削除する必要があります。このチュートリアルのために作業しているバケットの名前を選択します。テストオブジェクト名の左側にあるチェックボックスにチェックマークを付けて、[削除] ボタンを選択します。[オブジェクトを削除] ページで、削除する適切なオブジェクトを選択していることを確認し、[オブジェクトを完全に削除] 確認ボックスに完全に削除と入力します。その後、[オブジェクトを削除] ボタンを選択して続行します。次に、削除が成功したかどうかを示すバナーが表示されます。
- 4.2 – テストバケットを削除する
- 最後に、作成したテストバケットを削除する必要があります。アカウント内のバケット一覧に戻ります。このチュートリアル用に作成したバケットの左側にあるラジオボタンを選択し、[削除] ボタンを選択します。警告メッセージを確認します。このバケットの削除を続行する場合は、[バケットを削除] 確認ボックスにバケット名を入力し、[バケットを削除] を選択します。
まとめ
次のステップ
チェックサムの詳細については、次のリソースにアクセスしてください。
Amazon S3 のその他のチェックサムの詳細については、リリースブログと「オブジェクトの整合性をチェックする」ドキュメントにアクセスしてください。
Amazon S3 は、AWS SDK の新機能である追跡チェックサムも導入しました。SDK は、追跡チェックサムを使用して、ファイルを Amazon S3 にアップロードするときに単一のパスでチェックサムを計算します。詳細については、ブログ記事「Building scalable checksums」でお読みいただけます。