How to Copy Dynamodb Other Account
개발 계정에서 만들어진 dynamodb 테이블을 운영환경으로 이전하는 작업을 진행하려고 했다. 같은 계정에서 백업이나, 복구는 간단해 보이는데, 유독 다른 계정으로 이전시키는 방법이 EMR 이라던지, DataPipeline 이라던지, 배보다 배꼽이 큰 작업에 관련된 내용만 있었다.
우리가 필요한 것은 코드성 작은 테이블 몇 개일 뿐인데, 찾다 보니, 누군가 잘 만들어 놓은 패키지가 있었다.
서로 다른 계정에 있는 dynamodb 테이블을 복제하는 방법이다. 임의 빈 폴더에 아래 패키지를 설치한다.
npm i copy-dynamodb-table
그리고 임의 파일을 아래와 같이 만든다.
var copy = require('copy-dynamodb-table').copy
var globalAWSConfig = { // dynamodb 접근 권한이 있는 계정
accessKeyId: 'XXXXXXXX',
secretAccessKey: 'XXXXXXXXXXXXXXXXXXXXXXXX',
region: 'ap-northeast-2'
}
var sourceAWSConfig = { // 원복 접속 정보 - dynamodb 접근 권한이 있는 계정
accessKeyId: 'AAAAAAAA',
secretAccessKey: 'AAAAAAAAAAAAAAAAAAAAAAAA',
region: 'ap-northeast-2'
}
var destinationAWSConfig = {
accessKeyId: 'BBBBBBBB',
secretAccessKey: 'BBBBBBBBBBBBBBBBBBBBBBBB',
region: 'ap-northeast-2' // support cross zone copying
}
copy({
config: globalAWSConfig,
source: {
tableName: 'Origin-TableName', // 필수
config: sourceAWSConfig // 옵션, 없으면 globalAWSConfig
},
destination: {
tableName: 'Target-TableName', // 필수
config: destinationAWSConfig // 옵션, 없으면 globalAWSConfig
},
log: true,// 로그 표시 여부 없으면 false
create : true // 테이블이 없을 경우 만듬
},
function (err, result) {
if (err) {
console.log(err)
}
console.log(result)
})
그리고 실행하면 끝
node index.js
Copied XXXX items{ count: XXXX, status: 'SUCCESS' }
Read other posts