前提
レプリケーション元のアカウントをA
レプリケーション先のアカウントをB
とする
手順
1. アカウントBにレプリケーション用のバケットを作成する
- このバケットには「プロパティ」からバージョニングの設定を行う
- また、必ずライフサイクルルールも設定しておく(これやっておかないと無限にバージョンが作られてめっちゃ料金かかります)
- 例えばこんな感じ(最新から3日前までのバージョンは保持する、最新バージョンが3日以上古くなったらストレージクラスをGlacierに移行する)
2. アカウントAのレプリケーションしたいバケットの「管理」からレプリケーションルールを作成する
- 「送信先」のアカウントIDにアカウントBのアカウントIDを入れる
- バケット名には先ほど作成したレプリケーション用のバケット名を入れる
- 「オブジェクト所有者を送信先バケット所有者に変更」にチェックを入れる
- IAMロールを作成もしくは選択する
- そのほかあれば設定し保存する
3. アカウントBのレプリケーション用のバケットの「管理」のレプリケーションルールから受信設定を行う
- レプリケーションルールのアクションから「レプリケートされたオブジェクトの受信」を選択
- ソースバケットアカウントIDにアカウントAのIDを入れて「ポリシーの作成」をクリック
- 「ケットポリシーの表示」をクリックして、「オブジェクト所有者を送信先バケット所有者に変更するアクセス許可を含める」にチェックを入れる(忘れがちなので注意)
- 「設定の適用」をクリックして閉じる
4. しばらく待つとレプリケーションされます
レプリケーションされない場合
- ファイルに更新がないとレプリケーションされないらしいので(もともとあったファイルはレプリケーションされない)、適当なファイルを追加してみてください
- それでもされない場合は、レプリケーションしてほしいファイルのプロパティの「オブジェクト管理の概要」にある「レプリケーションステータス」を確認してください
- ステータスがFAILになってる場合、こちらを参考にしてみてください
参考