0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Redshift Provisioned(暗号化なし)のスナップショットを、別アカウントのServerlessで復元する

Last updated at Posted at 2024-12-02

はじめに

Redshiftには、スナップショット機能(自動/手動)があり、これを使うことでバックアップや復元などが簡単に行えます。

また、この機能はクラスター間の移行にも使うことができますが、タイトルの条件の場合に少しハマったので記事にしておきます。

今回は、アカウントAからアカウントBにデータを移行する場合を考えます。

前提条件

  • 移行元
    • アカウントA
    • Redshift Privisioned
    • DC2タイプ
    • 暗号化なし
  • 移行先
    • アカウントB
    • Redshift Serverless

実施方法

アカウントAのクラスターのスナップショットを取得

ここは、通常の手動スナップショット取得手順でOKです。

クラスター詳細画面から、右上「アクション」→「スナップショットを作成」をクリックし、識別子と保持期間を入力して作成をクリックします。

スナップショットをアカウントBに共有

ここが注意ポイントです。

まずは、左メニューから「クラスター>スナップショット」をクリックして一覧を表示させ、先ほど取得したスナップショットにチェックを入れます。

image.png

その後、右上の「アクション」→「サーバーレスアカウントへのアクセス許可」をクリックし、共有したいアカウントIDを入力、「変更を保存」をクリックします。

image.png

これで、別のAWSアカウントのRedshift Serverlessへのスナップショットの共有ができました。

アカウントBのServerlessに復元

ここも一般的な手順でOKです。

アカウントBの方にログインしなおして、Redshift Serverlessのコンソールの「データバックアップ」に先ほど共有したスナップショットが表示されていることを確認します。

その後、そのスナップショットをクリックして、右上の「アクション」→「サーバーレス名前空間への復元」をクリックし、名前空間を選択して「復元」をクリックで完了です。

注意

  • 今回の手順がそのまま使えるのは、暗号化なしの場合です。暗号化している場合は、暗号化に使われているKMSキーも別アカウントに共有しないといけません
    • 共有=キーポリシーで許可するということなので、CMK(カスタマーマネージドキー)でのみ可能となります。AWSマネージドキーを使っている場合はキーポリシーの編集ができないため、スナップショットの共有ができません
  • 今回、スナップショットの共有の際に「サーバーレスアカウントへのアクセス許可」を実施しました。共有の方法は、これ以外にも「手動スナップショットの設定」から「アクセスを管理」でアカウント追加もできますが、この方法だとサーバーレスに復元することが出来ません
    • 以下のようなエラーが出ます
AccessDeniedException
Cannot find resource policy for snapshot: arn:aws:redshift:ap-northeast-1:999999999999:snapshot:test-dc2-2/snapshot-dc2-20241201
  • 復元するとき、名前空間すべてを上書きしてしまうので、必要なデータがある場合は退避させておきましょう

おわりに

スナップショットの共有と復元ですが、意外とやってみると詰まることが多かったです。パターンも結構ある(暗号化あり/なし、プロビジョンド/サーバーレスなど)ので、ご自身のパターンで一度試しておくことをお勧めします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?