Redshiftがインスタンス間で復元できる様になったので試してみた

Redshiftでインスタンス間で復元できる様になったので試してみました。本番クラスターの一時的な検証の時などに利用できそうです。

はじめに

こんにちは、AWS事業本部のニシヤマです。はいマスキュラー。

Redshiftをスナップショットから復元する際に異なるサイズや異なるノードタイプのクラスターにリストアする事ができる様になったので試してみました。

これにより本番データで検証などをする際に本番クラスターのスナップショットから低コストの検証用クラスターにリストアする事が出来ます!

Amazon Redshift launches cross-instance restore

注意点

インスタンス間で復元できるクラスターはリリースバージョン 1.0.10013 以降になります。

前提

すでにRedshiftクラスターが起動した状態であること

やってみる

ではやってみます。

ちゃんとリストアされたか確認するために事前にRedshiftクラスターにデータを入れておきます。

$ psql -h redshift-cluster-1.clymaf6wmkzv.ap-northeast-1.redshift.amazonaws.com -d dev -U awsuser -p 5439
ユーザ awsuser のパスワード: <パスワード>

dev=# select * from movie;
  last_name   | family_name |        title         
--------------+-------------+----------------------
 スティーヴン | サガール    | チンモク ノ サンカン
 スティーヴン | シガール    | チンモク ノ シンカン
 スティーヴン | スガール    | チンモク ノ スンカン
 スティーヴン | セガール    | チンモク ノ センカン
 スティーヴン | ソガール    | チンモク ノ ソンカン
(5 行)

まずは既存のRedshiftクラスターのノードタイプを確認します。クラスターバージョンが1.0.10013 以降であることも確認しておきます。

スナップショット取得

次にRedshiftクラスターのスナップショットを取得します。スナップショットの取得には少し時間がかかるのでコーヒーでも飲みながら待ちましょう。

スナップショットが取得できました。

スナップショットからリストア

ではスナップショットから復元をしてみます。

スナップショットを選択し「スナップショットの復元」をクリックすると、コンソールでノードタイプの変更できる様になっています!元のRedshiftクラスターのノードタイプが表示されているので変更する時にわかりやすいですね!

あとは任意の設定でリストアします。Redshiftクラスターのリストアには少し時間がかかるので2杯目のコーヒーでも飲みながら待ちましょう。

リストアが完了しました。元のクラスターのノードタイプdc2.8xlargeからds2.xlargeに変更できてます!

元クラスターのデータがあるか確認してみます。

$ psql -h redshift-cluster-1-restore.clymaf6wmkzv.ap-northeast-1.redshift.amazonaws.com -d dev -U awsuser -p 5439
ユーザ awsuser のパスワード: <パスワード>

dev=# select * from movie;
  last_name   | family_name |        title         
--------------+-------------+----------------------
 スティーヴン | サガール    | チンモク ノ サンカン
 スティーヴン | シガール    | チンモク ノ シンカン
 スティーヴン | スガール    | チンモク ノ スンカン
 スティーヴン | セガール    | チンモク ノ センカン
 スティーヴン | ソガール    | チンモク ノ ソンカン
(5 行)

リストアされたRedshiftクラスターでもデータが復元されています!

おわりに

Redshiftクラスターはコストが高くなることが多いため、検証用途などパフォーマンスを気にしない場合に一時的に低コストで起動したり、一時的に大きなインスタンスで短時間で処理を済ますことができるのはありがたいですね。 Redshiftを使っている方は是非利用してみてください。