Question

AWS S3 이미지를 AWS 다른 계정으로 마이그레이션 하는 방법이 있나요?

EC2도 다른 계정으로 옮길 수 있는 방법이 있나요? 

Answer


  • 다른 계정으로 S3 Migration 하는 방법

<상황 가정>
계정 A: 소스 계정

계정 B: 대상 계정


  1. 소스 버킷(계정 A)에 대한 접근 권한 설정:

계정 A에서 S3 관리 콘솔로 이동합니다. 소스 버킷을 선택하고 '권한' 탭으로 이동한 다음 '버킷 정책'을 클릭합니다. 아래의 JSON 정책을 입력하고, <Account-B-ID>를 대상 계정의 ID로, <source-bucket>를 원본 버킷의 
이름으로 바꿉니다.


{

    "Version": "2012-10-17",

    "Statement": [

        {

            "Sid": "DelegateS3Access",

            "Effect": "Allow",

            "Principal": {"AWS": "arn:aws:iam::<Account-B-ID>:root"},

            "Action": ["s3:ListBucket","s3:GetObject"],

            "Resource": [

                "arn:aws:s3:::<source-bucket>",

                "arn:aws:s3:::<source-bucket>/*"

            ]

        }

    ]

}


이 정책을 저장합니다.


  1. 대상 버킷(계정 B)에 대한 접근 권한 설정

계정 B에서 S3 관리 콘솔로 이동합니다. 대상 버킷을 선택하고 '권한' 탭으로 이동한 다음 '버킷 정책'을 클릭합니다. 아래의 JSON 정책을 입력하고, <Account-A-ID>를 소스 계정의 ID로, <destination-bucket>를 대상 버킷의 이름으로 바꿉니다.


{

    "Version": "2012-10-17",

    "Statement": [

        {

            "Sid": "DelegateS3Access",

            "Effect": "Allow",

            "Principal": {"AWS": "arn:aws:iam::<Account-A-ID>:root"},

            "Action": ["s3:PutObject", "s3:DeleteObject"],

            "Resource": [

                "arn:aws:s3:::<destination-bucket>/*"

            ]

        }

    ]

}


이 정책을 저장합니다.

        3. AWS CLI를 사용하여 객체 이전(대상 계정에서 명령어 실행):

위의 설정이 완료되면, 이제 AWS CLI를 사용하여 객체를 복사하고 원본을 삭제하여 이전을 수행할 수 있습니다. 아래의 명령을 사용하면 됩니다.


aws s3 sync s3://<source-bucket> s3://<destination-bucket> --source-region <source-region> --region <destination-region>


aws s3 rm s3://<source-bucket> --recursive


<source-bucket>와 <destination-bucket>를 각각 원본 및 대상 버킷의 이름으로 변경하시면 됩니다.



        4. 정상적으로 마이그레이션 되는 것을 확인합니다.


aws s3 sync' 명령은 원본 버킷의 모든 객체를 대상 버킷으로 복사합니다. 이 작업이 완료된 후 'aws s3 rm' 명령을 사용하여 원본 버킷의 객체를 삭제합니다. 이렇게 하면 객체가 원본 버킷에서 대상 버킷으로 이전됩니다.



  • 다른 계정으로 EC2 공유하는 방법


  1. AMI 생성: 먼저, 공유하려는 EC2 인스턴스에 대한 AMI를 생성해야 합니다. AWS 관리 콘솔에서 EC2 대시보드로 이동합니다. '인스턴스'를 클릭하고 공유하려는 인스턴스를 선택합니다. 그런 다음 '작업' -> '이미지 및 템플릿' -> '이미지 생성'을 차례대로 클릭합니다. 이미지의 이름과 설명을 입력하고 '이미지 생성'을 클릭하여 AMI를 생성합니다.


  1. AMI 공유: 생성된 AMI를 다른 계정과 공유하려면, EC2 대시보드에서 'AMIs'를 클릭합니다. 생성된 AMI를 찾아서 선택한 후 '작업' -> 'AMI 권한 편집'을 클릭합니다. '계정 ID 추가' 를 클릭합니다. 빈칸에 공유하려는 계정의 ID를 입력하고, '권한 추가'를 클릭하여 해당 계정과 AMI를 공유합니다.


  1. 다른 계정에서 AMI 사용: 이제 다른 계정에서 해당 AMI를 통해 새로운 EC2 인스턴스를 시작할 수 있습니다. 다른 계정에서 EC2 대시보드로 이동하고, '인스턴스 시작'을 클릭합니다. '내 AMI' 탭을 선택하면 공유받은 AMI를 볼 수 있습니다. 이 AMI를 선택하고 필요한 설정을 완료하여 인스턴스를 시작합니다.


이렇게 하면 원본 계정의 EC2 인스턴스 설정이 포함된 AMI를 다른 계정에서 사용할 수 있습니다.