LoginSignup
1
1

S3クロスアカウントレプリケーションでs3バケットを移行した

Posted at

まえがき

弊社、全ての部署で1つのAWSアカウントを共有しており、どのリソースをどの部署が管理しているのか誰も全容を把握しておりません

今更ながらそれ不味いだろうという事で、自分の部署のリソースを別アカウントに移行する事を決意
S3の移行を任されたため、まずレプリケーションでオブジェクトを移動します
今後のために手順をメモとして残します

移行元/移行先s3バケット作成

移行元s3バケットを作成

  • 移行先s3バケットと同じリージョンに作成する必要あり(東京だとap-northeast-1)
  • バージョニングが有効化されている必要あり

移行元s3に必要なバケットポリシー

なし

{}

移行先s3バケットを作成

  • 移行元s3バケットと同じリージョンに作成する必要あり(東京だとap-northeast-1)
  • バージョニングが有効化されている必要あり

移行先s3に必要なバケットポリシー

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::[移行先バケット名]/*"
        },
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:ReplicateObject",
                "s3:ReplicateDelete"
            ],
            "Resource": "arn:aws:s3:::[移行先バケット名]/*"
        },
        {
            "Sid": "Permissions on bucket",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:List*",
                "s3:GetBucketVersioning",
                "s3:PutBucketVersioning"
            ],
            "Resource": "arn:aws:s3:::[移行先バケット名]"
        }
    ]
}

レプリケーションルールの設定

移行元バケット → 管理 → レプリケーションルール → レプリケーションルールを作成

レプリケーションルールの設定

レプリケーションルール名

適当でOK。「移行先バケット名_replication」とか

ステータス

有効

rule.png

ソースバケット

ルールスコープを選択

バケット内のすべてのオブジェクトに適用

sourcebucket.png

送信先

送信先

別のアカウントのバケットを指定する

アカウント ID

移行先AWSアカウントid 12桁の数字

バケット名

移行先s3バケット名

sendaddress.png

IAM ロール

既存の IAM ロールから選択

IAM ロール

新しいロールの作成

iamrole.png

暗号化

AWS Key Management Service (AWS KMS)で暗号化されたオブジェクトをレプリケーション

バケットが暗号化されていればチェック

angouka.png

送信先ストレージクラス

レプリケートされたオブジェクト用のストレージクラスを変更

必要であれば変更

storageclass.png

追加のレプリケーションオプション

必要であればチェックして保存ボタン

tuika.png

既存のオブジェクトをレプリケートしますか?のモーダル

移行元に既に入っているオブジェクトも必要であれば「はい」にして送信

kizon.png

バッチオペレーションジョブを作成します

ジョブ設定

準備ができたらジョブを自動的に実行します

operationjob.png

完了レポート

完了レポートの生成

失敗したタスクのみ。成功したのは不要。

完了レポートの送信先へのパス

レポートの保存先を指定。

アクセス許可

既存の IAM ロールから選択 - 新しいロールの作成

report.png

バッチオペレーションでレプリケーション進捗を確認する

バッチオペレーション(東京リージョン)
https://s3.console.aws.amazon.com/s3/jobs?region=ap-northeast-1

ステータスが「完了済み」になったらOK

失敗した合計が 0% でなければ、ログを確認する

batchoperation.png

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1