最短時間でRedshiftクラスターを立てる方法

2016.07.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、DI部(データインテグレーション部)の川崎です。

社内で検証用にRedshiftクラスターを立てる必要があり、意外なことに弊社ブログを探してもその方法が見つからなかったので、その方法について書いてみたいと思います。

ネット上のRedshift用CloudFormationテンプレートを探す

公式サイトのドキュメントでは、テンプレートスニペットが紹介されています。が、スニペットだけではうまく構成ができないと思います。(外部から接続できない、など) CloudFormationの起動可能なテンプレートを探します。

こちらのサイトで発見。 
 https://github.com/awslabs/aws-big-data-blog/blob/master/aws-blog-agile-analytics-redshift/sourceControl/cloudformation/redshiftvpc.json
元ネタは、AWS Big Data Blogの
 Agile Analytics with Amazon Redshift
 https://blogs.aws.amazon.com/bigdata/post/Tx3HHDIXCZFDGTN/Agile-Analytics-with-Amazon-Redshift
 → 継続的デリバリー(CD)に、Redshiftを使うという贅沢な?内容でした。

テンプレートファイルはローカルPCにダウンロードしておきます。

AWSにログインしてCloudFormationを開く

今回はバージニアリージョンで動作検証しております。

cloudformation_for_redshift_01

画面左上の青い「CreateStack」ボタンをクリックします。下記の画面が開きます。

cloudformation_for_redshift_03

続いて「DesignTemplate」ボタンをクリックすると、CloudFormationデザイナーが起動します。先ほどのサイトからローカルPCにダウンロードしておいたテンプレートファイルを開きます。下記のような構成が表示されます。構成内容を確認して、画面左上の雲のマークのボタンをクリックして、CloudFormationの起動画面に進みます。(構成内容の詳細については、今回は別の機会に譲りたいと思います)

cloudformation_for_redshift_02

デフォルトで「Specify an Amazon S3 template URL」が選択されていますので、そのまま「Next」ボタンをクリックして次に進みます。

追加の設定項目を指定します。

cloudformation_for_redshift_05

ここでは、追加で下記の内容を指定しました。

最小構成で差し支えなければ、下記を参考に「dw2.large」を指定します。

現在の名前:dc1.large

以前の名前:dw2.large

「Next」をクリックして次に進みます。

 

cloudformation_for_redshift_06

Tagの指定は、適宜入力します。「Next」で次に進みます。

確認画面が表示されます。内容に問題が無ければ、「Create」ボタンをクリックすると、Redshiftクラスタの起動が開始されます。

cloudformation_for_redshift_08

Redshiftクラスタの起動には、しばらく時間がかかります。(実測で7分ほどでした)下記の画面が表示されますので、画面の更新ボタンをクリックして、適宜内容を更新します。

cloudformation_for_redshift_09

無事、Redshiftが起動できました!

cloudformation_for_redshift_10

続いて、AWSのRedshiftメニューに遷移し、「Clusters」の画面を表示します。先ほど起動したRedshiftクラスタが表示されます。

クラスタ名をクリックすると、詳細画面が表示されます。Endpointを確認して、マウスでクリックすると、ホスト名(+ポート番号)がコピーできます。

cloudformation_for_redshift_12

psqlを使い、Redshiftに接続してみます。(今回psqlは事前にRedshiftに接続済みです)無事、先ほど起動したRedshiftクラスタに接続できました。

最後に、セキュリティ設定を変更しておきます。指定したIPアドレスからのみ、接続できるように設定を変更します。

VPCの画面を表示します。画面左側に「ネットワークACL」の項目がありますので、クリックして表示します。画面下部の「インバウンドルール」のタブをクリックして表示します。

cloudformation_for_redshift_14

下記のように、一番上のルールに、接続元の特定のIPアドレスからの許可のルール、

二番目のルールに、すべてを拒否するルール、を記述します。指定できたら「保存」ボタンをクリックします。

指定したルールが保存され、表示されます。これで、特定のIPアドレスからしか、Redshiftに接続できなくなりました。

cloudformation_for_redshift_15

最後に

いかがでしたでしょうか?手順は、まだ改良の余地がありそうですので、引き続き最短時間の更新を目指したいと思います!

【参考】

 AWS CloudFormationのAmazon Redshift対応、ついに来た!
 https://dev.classmethod.jp/cloud/aws/aws-cloudformation-supports-amazon-redshift/
Amazon Redshift テンプレートスニペット
 https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/quickref-redshift.html