最短時間でRedshiftクラスターを立てる方法
こんにちは、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を開く
今回はバージニアリージョンで動作検証しております。
画面左上の青い「CreateStack」ボタンをクリックします。下記の画面が開きます。
続いて「DesignTemplate」ボタンをクリックすると、CloudFormationデザイナーが起動します。先ほどのサイトからローカルPCにダウンロードしておいたテンプレートファイルを開きます。下記のような構成が表示されます。構成内容を確認して、画面左上の雲のマークのボタンをクリックして、CloudFormationの起動画面に進みます。(構成内容の詳細については、今回は別の機会に譲りたいと思います)
デフォルトで「Specify an Amazon S3 template URL」が選択されていますので、そのまま「Next」ボタンをクリックして次に進みます。
追加の設定項目を指定します。
ここでは、追加で下記の内容を指定しました。
最小構成で差し支えなければ、下記を参考に「dw2.large」を指定します。
現在の名前:dc1.large
以前の名前:dw2.large
「Next」をクリックして次に進みます。
Tagの指定は、適宜入力します。「Next」で次に進みます。
確認画面が表示されます。内容に問題が無ければ、「Create」ボタンをクリックすると、Redshiftクラスタの起動が開始されます。
Redshiftクラスタの起動には、しばらく時間がかかります。(実測で7分ほどでした)下記の画面が表示されますので、画面の更新ボタンをクリックして、適宜内容を更新します。
無事、Redshiftが起動できました!
続いて、AWSのRedshiftメニューに遷移し、「Clusters」の画面を表示します。先ほど起動したRedshiftクラスタが表示されます。
クラスタ名をクリックすると、詳細画面が表示されます。Endpointを確認して、マウスでクリックすると、ホスト名(+ポート番号)がコピーできます。
psqlを使い、Redshiftに接続してみます。(今回psqlは事前にRedshiftに接続済みです)無事、先ほど起動したRedshiftクラスタに接続できました。
最後に、セキュリティ設定を変更しておきます。指定したIPアドレスからのみ、接続できるように設定を変更します。
VPCの画面を表示します。画面左側に「ネットワークACL」の項目がありますので、クリックして表示します。画面下部の「インバウンドルール」のタブをクリックして表示します。
下記のように、一番上のルールに、接続元の特定のIPアドレスからの許可のルール、
二番目のルールに、すべてを拒否するルール、を記述します。指定できたら「保存」ボタンをクリックします。
指定したルールが保存され、表示されます。これで、特定のIPアドレスからしか、Redshiftに接続できなくなりました。
最後に
いかがでしたでしょうか?手順は、まだ改良の余地がありそうですので、引き続き最短時間の更新を目指したいと思います!
【参考】
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