TOP>コラム一覧>Amazon RedShiftをAmazon RedShift Serverlessに移行してみた

Amazon RedShiftをAmazon RedShift Serverlessに移行してみた

はじめに

こんにちは、高橋です。
みなさん、Amazon RedShift Serverlessをご存じでしょうか。こちらのサービスは2022年7月12日に正式リリースされたサービスとなります。

https://aws.amazon.com/jp/about-aws/whats-new/2022/07/amazon-redshift-serverless-generally-available/

このサービスはその名の通り、Amazon RedShiftが普段はインスタンスを持たず需要に応じてインスタンスを起動/拡張し、Amazon RedShiftの持つ全ての機能を利用できるため、費用と性能を最適に利用することができるサービスとなっています。今回はAmazon RedShift Serverlessに目を付けたお客様からAmazon RedShiftからAmazon RedShift Serverlessへの移行方法についてご質問を頂き、それを試したので、その結果をまとめてみました。

1.Amazon RedShiftとは?

Amazon RedShiftはAWSが提供するデータウェアハウスサービスです。Amazon RedShiftは列指向ストレージ、複数のコンピュータノードを用いた並列処理が可能なアーキテクチャーにより、大量のデータからさまざまなインテリジェンスを高速に抜き出すことが可能なサービスとなっています。

図1.Amazon RedShiftの構造
図1.Amazon RedShiftの構造

当社のAWSの売り上げ分析のバックエンドでもAmazon RedShiftを活用しており、高速に欲しい情報を抽出することができています。

ただし、これまではサービスを起動する際に、必ずコンピュート数を指定してプロビジョニングをしなければならなかったため、使っていなくても課金が発生し、それを避けたい場合は都度手動で一時停止と再開をしなければなりませんでした(一時停止/再開は最近の機能で、それができる以前はスナップショットを取得して、インスタンスを削除し、必要になったらスナップショットから復旧していました)。これがAmazon RedShift Serverlessに移行することで、余計は課金や運用の手間を掛けずにAmazon RedShiftの機能を利用することができるようになったのです。

Amazon RedShift Serverlessはアクティブなときに消費するコンピューティング性能(RPU)に対して課金されます。Amazon RedShift Serverlessは、ワークロードの需要に合わせて自動的にスケールアップ/ダウンし、未使用時はシャットダウンされるため、性能とコストを最適化することができます。また、RPUはベースラインと最大値を設定することができるため、急な需要増加や誤ったプログラムによって大量のリクエストが発生しても、無制限にスケールアップするわけではないので、想定外のコスト増を防ぐことも可能です。

2.Amazon RedShiftからAmazon RedShift Serverlessへの移行

ここからはAmazon RedShiftからAmazon RedShift Serverlessへ移行方法について見てみたいと思います。

ただし、残念ながら現在(2022年10月7日時点)Amazon RedShiftからAmazon RedShift Serverlessへの移行はコンソールのメニューからワンクリックでできるようになってはいませんでした。

Amazon RedShiftからAmazon RedShift Serverlessへの移行

そのため、Amazon RedShiftからAmazon RedShift Serverlessへ移行するためには以下の3つのステップを実行する必要があります。

  1. ①移行先となるAmazon RedShift Serverlessを作成する
  2. ②移行元のAmazon RedShiftでスナップショットを作成する
  3. ③移行先で②で取得したスナップショットからデータをリストアする

では、実際に移行を実施してみたいと思います。

① ルール自動更新

Amazon RedShift Serverlessを作成するには、AWSコンソールのAmazon RedShiftのページで「Amazon RedShift サーバーレス」をクリックします。

ルール自動更新

最初に「デフォルト設定を使用」か「設定をカスタマイズ」を選択して作成します。

ルール自動更新

Amazon RedShift Serverlessの作成には以下のものを必須で設定する必要があります。

  1. 1. 名前空間の名前
  2. 2. 管理ユーザ名とパスワード
  3. 3. 関連付けるIAMロール
  4. 4. (データを暗号化する)暗号化キー
  5. 5. ワークグループ名
  6. 6. Amazon RedShiftを展開するVPC/サブネット(3つ以上が必須)/セキュリティグループ

「デフォルト設定を使用」を選んだ場合、関連付けるIAMロール以外、変更することはできません。

ルール自動更新

それ以外を変更したい場合、「設定をカスタマイズ」を選択する必要がありますので、適宜選択、設定して作成してください。構成を入力して、保存すると数分(今回は3分程度)で作成が完了します。

ルール自動更新

② 移行元のAmazon RedShiftでスナップショットを作成する

スナップショットの作成はAWSコンソールのAmazon RedShiftのページに戻って、左のメニューから「クラスター」を選択し、移行元のAmazon RedShiftクラスターを選択し、「アクション」→「スナップショットを作成」を選択します。

移行元のAmazon RedShiftでスナップショットを作成する

次の画面で任意の名前と保存期間を選択し、スナップショットの作成をします。

移行元のAmazon RedShiftでスナップショットを作成する

あとは出来上がるのを待ちます(時間は容量によって変動します)。

移行元のAmazon RedShiftでスナップショットを作成する

③ 移行先で②で取得したスナップショットからデータをリストアする

スナップショットから移行先のAmazon RedShift Serverlessにデータをリストアするには、スナップショットのページ(先程のページ)で復元元のスナップショットを選択し、「スナップショットを復元」→「サーバーレス名前空間への復元」を選択します。

移行先で②で取得したスナップショットからデータをリストアする

次の画面で復元先のAmazon RedShift Serverlessを選択し、復元をクリックすれば、データのリストアが実行されます。

移行先で②で取得したスナップショットからデータをリストアする

ステータス(状態)がAvailableになれば、移行は完了となります。

移行先で②で取得したスナップショットからデータをリストアする

最後に移行したAmazon RedShift Serverlessにアクセスして、利用可能な確認をしてみます。なお、移行によってAmazon RedShift自体は別のものになっているため、エンドポイントも変更されています。そのため、実際の運用ではアプリケーション側で接続先を変更する必要があります。エンドポイント名は左のメニューにて「ワークスペースの設定」をクリックし、移行先のワークスペースを選択して開いたページで確認できます。

移行先で②で取得したスナップショットからデータをリストアする

こちらが実際にAmazon RedShift Serverlessのエンドポイントに接続し、テーブル一覧やテーブルからデータを出力した結果となりますが、問題なく移行されていることが確認できました。

移行先で②で取得したスナップショットからデータをリストアする

さいごに

今回Amazon RedShiftからAmazon RedShift Serverlessへの移行を行ってみましたが、簡単な手順で(スナップショットの取得/リストア時間を除くと10分とかからず)で実施することができました。もし、現在Amazon RedShiftを利用しているものの、常時利用しているない場合は、Amazon RedShift Serverlessへ移行してみてはいかがでしょうか。

CTCは、AWSのビジネス利活用に向けて、お客様のステージに合わせた幅広い構築・運用支援サービスを提供しています。
経験豊富なエンジニアが、ワンストップかつ柔軟にご支援します。
ぜひ、お気軽にお問い合わせください。

お問い合わせ

【著者プロフィール】

高橋 繁義(たかはし しげよし)

伊藤忠テクノソリューションズ株式会社 クラウドアーキテクト

インフラ全般のエンジニアとして20年以上活動し、現在AWS専任の技術担当兼サービス企画担当として活動中

2022年APN Ambassadorに選任

高橋 繁義(たかはし しげよし)

TOP>コラム一覧>Amazon RedShiftをAmazon RedShift Serverlessに移行してみた

pagetop