aws s3 cp 를 사용해서 버킷 복제하기
최근에 회사에서 AWS 계정간 마이그레이션 작업을 해야했는데요. Terraform 등을 통해서 프로비저닝만 새로 해주면 이전할 수 있는 리소스가 있는 반면, 계정간 마이그레이션이 골치 아픈 리소스들도 역시 있었어요. 예를들면 S3 버킷이나, SSM Parameter Store 였는데요. 예전에도 이런 기능이 있었는지 모르겠지만, S3는 다음의 `aws s3 cp` 커맨드로 간단히 버킷간 데이터를 복제할 수 있었어요. ``` $ aws s3 cp s3:// DOC-EXAMPLE-BUCKET-SOURCE / \ s3:// DOC-EXAMPLE-BUCKET-TARGET / \ --recursive --source-region SOURCE-REGION-NAME --region DESTINATION-REGION-NAME ``` 이 때 하나의 AWS Profile을 사용해서, 2개의 S3 버킷에 엑세스 해야하기 때문에 Target이 되는 버킷에는 Cross Account Access가 가능하도록 Bucket Policy 설정을 해줘야 해요. 좀 더 자세한 내용은 아래 post에서 확인할 수 있어요. https://repost.aws/knowledge-center/move-objects-s3-bucket SSM Parameter Store 역시 골치아픈 문제였는데, https://github.com/binxio/aws-ssm-copy 라는 프로젝트를 사용해서 멀티 계정간 쉽게 복제할 수 있었어요. 복제를 위해서는 2개의 AWS Profile이 필요하고, Target Profile을 기반으로 `--source-profile` 을 별도 옵션으로 전달하는 형태로 사용 가능해요. 이 문서에서 좀 더 자세한 내용을 확인할 수 있어요. https://xebia.com/blog/how-to-copy-aws-ssm-parameters-from-one-account-to-another/