S3 のレプリケーションで既存のオブジェクトが複製されないときの確認ポイント ── クロスリージョンレプリケーションとバッチレプリケーション
記事の「実践」を 1 項目ずつ進めるためのページです。AWS マネジメントコンソールで操作したら、右の一覧にチェックを入れてください。チェックはこのブラウザに保存されます。
前提条件
- リージョン: 送信元は
ap-northeast-1(東京)、送信先はap-northeast-3(大阪) - 以下のリソースが作成済みであること
まだ用意していない場合は、「作り方の参考」の記事の手順で作れます。リソース名は、この記事の名前に読み替えてください。
| リソース種別 | リソース名 | 内容 | 作り方の参考 |
|---|---|---|---|
| S3 バケット(送信元・東京) | soa-crr-src-<アカウントID> | バージョニング有効。existing/report-2026-09.txt と existing/report-2026-10.txt が入っている | Amazon S3 でバケットを作成しオブジェクトを管理する |
| S3 バケット(送信先・大阪) | soa-crr-dst-<アカウントID> | 空。バージョニングは無効 | 同上 ※リージョンは ap-northeast-3(大阪) |
| IAM ロール | soa-crr-replication-role | レプリケーションルールで S3 が引き受けるロール(技術解説の権限) | AWS IAM でユーザー・ロール・ポリシーを作成しアクセス制御する |
| IAM ロール | soa-crr-batch-role | バッチレプリケーションのジョブが引き受けるロール | 同上 |
作成するリソース一覧
| リソース種別 | リソース名 | 用途 |
|---|---|---|
| レプリケーションルール | soa-crr-rule | 送信元の新しいオブジェクトを送信先へ複製する |
| S3 バッチオペレーションのジョブ | (自動で ID が付く) | 既存のオブジェクトを 1 回だけ複製する |
手順 1: 送信先のバケットでバージョニングを有効にする
AWS マネジメントコンソールにログインし、上部の検索バーに S3 と入力して「S3」を選択します。
左側ナビゲーションの「汎用バケット」を選択し、soa-crr-src-<アカウントID> を開きます。「プロパティ」タブの「バケットのバージョニング」が「有効」になっていることを確認します。
続けて、バケットの一覧から soa-crr-dst-<アカウントID>(リージョンが「アジアパシフィック (大阪)」のもの)を開きます。「プロパティ」タブの「バケットのバージョニング」で「編集」をクリックし、「Enabled」を選択して「変更の保存」をクリックします(選択肢は「Suspended」と「Enabled」の 2 つです)。
手順 2: レプリケーションルールを作る
送信元の soa-crr-src-<アカウントID> を開き、「管理」タブの「レプリケーションルール」で「レプリケーションルールを作成」をクリックします。以下を設定します。
- レプリケーションルール名:
soa-crr-rule - ステータス: 「有効」
- ソースバケットの「ルールスコープを選択」: 「バケット内のすべてのオブジェクトに適用」
- 送信先: 「このアカウントのバケットを選択」を選び、バケット名に
soa-crr-dst-<アカウントID>を入力(または「S3 を参照」から選択)。送信先のリージョンに「アジアパシフィック (大阪) ap-northeast-3」と自動で表示されることを確認します - IAM ロール: 「既存の IAM ロールから選択」で
soa-crr-replication-roleを選択 - 暗号化・送信先ストレージクラス・追加のレプリケーションオプション(RTC、削除マーカーのレプリケーションなど): デフォルトのまま
「保存」をクリックします。ルールが保存され、続けて「既存のオブジェクトをレプリケートしますか?」というダイアログが表示されます。ここでは既定の「いいえ、既存のオブジェクトをレプリケートしません。」のまま「送信」をクリックします。新しいオブジェクトだけが届くことを先に確かめるためです(既存のオブジェクトは手順 4 で送ります)。
手順 3: 新しいオブジェクトだけが届くことを確かめる
送信元の soa-crr-src-<アカウントID> の「オブジェクト」タブで「フォルダの作成」から new フォルダを作り、その中に任意のテキストファイル(例: report-2026-11.txt)をアップロードします。
1 分ほど待ってから、送信先の soa-crr-dst-<アカウントID> を開きます。new/report-2026-11.txt は届いていますが、existing/ フォルダはありません。ルールを作る前からあったオブジェクトは複製されないことが分かります。
new/report-2026-11.txt を開くと、「プロパティ」タブの「オブジェクト管理の概要」で「レプリケーションステータス」が REPLICA になっています。送信元の同じオブジェクトでは COMPLETED と表示されます(複製の途中なら PENDING)。
手順 4: バッチレプリケーションで既存のオブジェクトを送る
S3 コンソールの左側ナビゲーションの「バッチオペレーション」を選択し、リージョンが ap-northeast-1(東京)であることを確認して「ジョブの作成」をクリックします。「リージョンとスコープを選択」で以下を設定して「次へ」をクリックします。
- オブジェクトリスト: 「レプリケーション設定に基づいてオブジェクトリストを生成」
- ソース:
s3://soa-crr-src-<アカウントID> - オブジェクトフィルター: 指定しない
「オペレーションを選択」では、オペレーションに「レプリケート」が選ばれていることを確認して「次へ」をクリックします。「追加のオプションを設定」で以下を設定し、「次へ」をクリックします。
- ジョブ実行設定: 「実行前に確認」のまま
- 完了レポート: 「完了レポートの生成」のチェックを外す
- IAM ロール: 「既存の IAM ロールから選択」で
soa-crr-batch-roleを選択
確認画面で内容を確かめ、「送信」をクリックします。数十秒でジョブのステータスが「実行のための確認待ち」になります。ジョブ ID のリンクからジョブの詳細を開いて上部の「ジョブを実行」をクリックし、「ジョブの実行」画面でもう一度「ジョブを実行」をクリックします。
1〜2 分でステータスが「完了」になります。ジョブの詳細で、成功したタスクの数を確認します。対象は送信元のすべてのオブジェクトなので、既存の 2 つに手順 3 の new/report-2026-11.txt を加えた 3 件が成功しています(オブジェクトフィルターを指定しなかったので、すでに複製済みのオブジェクトも対象に入りました)。
手順 5: 既存のオブジェクトが届いたことを確かめる
送信先の soa-crr-dst-<アカウントID> を開き直すと、existing/ フォルダが追加され、report-2026-09.txt と report-2026-10.txt が入っていることを確認できます。