前回の記事で触れたスケジュールバックアップのリリースと同時期にクロスリージョンバックアップ機能がリリースされました。
せっかくなのでスケジュールバックアップと組み合わせてクロスリージョンバックアップ機能をCLIで試してみます。
東京リージョンのスナップショットをバージニアリージョンに取得する前提で進めます。
AWS CLIのバージョン
最新版のAWS CLIを使用します。
aws --version
結果(例):
aws-cli/2.18.15 Python/3.12.6 Darwin/23.6.0 exe/x86_64
スナップショットスケジュール作成
作成方法は前回の記事を参照してください。
テスト用に毎時でスナップショットを取得するスケジュールを作成します。
hourly00(例):
{
"scheduledAction": {
"namespaceName": "testnamespace",
"nextInvocations": [
"2024-10-30T11:25:00+09:00",
"2024-10-30T12:25:00+09:00",
"2024-10-30T13:25:00+09:00",
"2024-10-30T14:25:00+09:00",
"2024-10-30T15:25:00+09:00"
],
"roleArn": "arn:aws:iam::xxxxxx:role/redshiftschedulerrole",
"schedule": {
"cron": "25 * * * ? *"
},
"scheduledActionName": "hourly00",
"scheduledActionUuid": "d9a1ac7c-b400-42d9-8ff2-b937617f92bf",
"state": "ACTIVE",
"targetAction": {
"createSnapshot": {
"namespaceName": "testnamespace",
"retentionPeriod": 7,
"tags": []
}
}
}
}
クロスリージョンバックアップ機能を有効化
クロスリージョンバックアップを有効化するnamespaceとバックアップ先のリージョンを指定します。今回はus-east1(バージニア)を指定します。
オプションでスナップショットの保持期間とKMSキーを指定できます。今回は保持期間を1日、KMSキーはデフォルトのマネージドキーを使用します。
aws redshift-serverless create-snapshot-copy-configuration \
--destination-region us-east-1 \
--namespace-name hoshitest \
--snapshot-retention-period 1
結果(例):
{
"snapshotCopyConfiguration": {
"destinationKmsKeyId": "AWS_OWNED_KMS_KEY",
"destinationRegion": "us-east-1",
"namespaceName": "testnamespace",
"snapshotCopyConfigurationArn": "arn:aws:redshift-serverless:ap-northeast-1:xxxxxx",
"snapshotCopyConfigurationId": "xxxxxx",
"snapshotRetentionPeriod": 1
}
}
これでクロスリージョンバックアップ機能の有効化ができました。
マネジメントコンソールで確認
指定したnamespaceでクロスリージョンバックアップが有効化されていることが確認できます。
マネジメントコンソールで確認
まずは東京リージョン側でスケジュールスナップショットが取得されていることを確認します。
取得できていますね。
続いてバージニアリージョンにスナップショットが取得されていることを確認します。
同時刻/同サイズのスナップショットが保存されています。
おそうじ
最後にクロスリージョンバックアップの設定を削除します。
aws redshift-serverless delete-snapshot-copy-configuration --snapshot-copy-configuration-id "作成したクロスリージョンバックアップのsnapshotCopyConfigurationId"
結果(例):
{
"snapshotCopyConfiguration": {
"destinationKmsKeyId": "AWS_OWNED_KMS_KEY",
"destinationRegion": "us-east-1",
"namespaceName": "testnamespace",
"snapshotCopyConfigurationArn": "arn:aws:redshift-serverless:ap-northeast-1:xxxxxx:snapshotcopyconfiguration/79f672a3-4ef1-4828-9bac-128932c2c717",
"snapshotCopyConfigurationId": "79f672a3-4ef1-4828-9bac-128932c2c717",
"snapshotRetentionPeriod": 1
}
}
保持期間を設定していない場合はスナップショットが残り続けますので忘れず手動で削除しましょう。
まとめ
クロスリージョンバックアップ機能により別リージョンへのスナップショットバックアップが可能になりました。
スケジュールスナップショットと組み合わせることでバックアップ/リストアレベルのDRが容易になったのは嬉しいですね。