{Redshiftクラスタ}別の AWS リージョンにスナップショットをコピーする


-- 1. クラスターの作成
redshift01 <-- 暗号化なし
redshift02 <-- 暗号化有

aws redshift create-cluster \
--db-name test \
--cluster-identifier redshift01 \
--cluster-type single-node \
--node-type dc2.large \
--master-username test \
--master-user-password 'password' \
--no-allow-version-upgrade \
--no-publicly-accessible \
--automated-snapshot-retention-period 0

aws redshift create-cluster \
--db-name test \
--cluster-identifier redshift02 \
--cluster-type single-node \
--node-type dc2.large \
--master-username test \
--master-user-password 'password' \
--no-allow-version-upgrade \
--no-publicly-accessible \
--automated-snapshot-retention-period 0 \
--encrypted


aws redshift describe-clusters
aws redshift describe-clusters --cluster-identifier redshift01
aws redshift describe-clusters --cluster-identifier redshift02

 

-- 2. クロスリージョンスナップショットコピー設定

-- ①暗号化されていないスナップショットのコピー設定


aws redshift enable-snapshot-copy \
--cluster-identifier redshift01 \
--destination-region ap-northeast-3 \
--retention-period 1 \
--manual-snapshot-retention-period 1


-- ②暗号化されたスナップショットのコピー設定

export AWS_DEFAULT_REGION=ap-northeast-3

aws redshift create-snapshot-copy-grant \
--snapshot-copy-grant-name scg01

aws redshift describe-snapshot-copy-grants

export AWS_DEFAULT_REGION=ap-northeast-1


aws redshift enable-snapshot-copy \
--cluster-identifier redshift02 \
--destination-region ap-northeast-3 \
--retention-period 1 \
--snapshot-copy-grant-name scg01 \
--manual-snapshot-retention-period 1

 

-- 3. スナップショットの作成

aws redshift create-cluster-snapshot \
--cluster-identifier redshift01 \
--snapshot-identifier snap01

aws redshift create-cluster-snapshot \
--cluster-identifier redshift02 \
--snapshot-identifier snap02

aws redshift describe-cluster-snapshots


-- 4. クラスタースナップショットの共有

-- ①暗号化されていないスナップショットの共有
-- 共有の追加
aws redshift authorize-snapshot-access \
--snapshot-identifier snap01 \
--account-with-restore-access 888888888888

-- 共有の削除
aws redshift revoke-snapshot-access \
--snapshot-identifier snap01 \
--account-with-restore-access 888888888888

-- ②暗号化されたスナップショットの共有
-- 共有の追加
aws redshift authorize-snapshot-access \
--snapshot-identifier snap02 \
--account-with-restore-access 888888888888

-- 共有の削除
aws redshift revoke-snapshot-access \
--snapshot-identifier snap02 \
--account-with-restore-access 888888888888

★共有先で暗号化スナップショットを復元するとAWS管理CMKが使用される

 


-- 5. クリーンアップ

-- クラスターの削除

aws redshift delete-cluster \
--cluster-identifier redshift01 \
--skip-final-cluster-snapshot

aws redshift delete-cluster \
--cluster-identifier redshift02 \
--skip-final-cluster-snapshot

-- スナップショットの削除

aws redshift delete-cluster-snapshot --snapshot-identifier snap01
aws redshift delete-cluster-snapshot --snapshot-identifier snap02

export AWS_DEFAULT_REGION=ap-northeast-3

aws redshift delete-cluster-snapshot --snapshot-identifier copy:snap01
aws redshift delete-cluster-snapshot --snapshot-identifier copy:snap02

export AWS_DEFAULT_REGION=ap-northeast-1


-- スナップショットコピー許可の削除
export AWS_DEFAULT_REGION=ap-northeast-3

aws redshift delete-snapshot-copy-grant --snapshot-copy-grant-name scg01

aws redshift describe-snapshot-copy-grants

export AWS_DEFAULT_REGION=ap-northeast-1