【AWS】Amazon Redshift のクラスター作成と起動から接続までの方法(入門編)

スポンサーリンク

AWS のデータウェアハウスサービスである Redshift のクラスター作成から接続をするまでの方法をまとめました。

Amazon Redshift 無料トライアル

AWSの無料利用枠で Redshift も使えないかなと思って調べてるとありました。
 無料トライアル - Amazon Redshift

無料トライアルの対象と注意点をまとめると以下の通りです。

  • 2014年7月1日より前に Amazon Redshift クラスターを作成したことがない
  • Redshift の無料トライアルプログラムは AWS 無料利用枠とは別のプログラム
  • DC1.largeノードのみ(15GB RAM、2コア、160GB 圧縮 SSDストレージ)
  • Amazon Redshift クラスターを作成すると自動的に開始される
  • 無料トライアルは 2ヶ月間、1ヶ月あたり750時間の無料時間が与えられる
  • 無料トライアル時間の繰り越しはできない
  • 複数のノード、またはクラスターを実行した場合、750時間を超える可能性がある

Redshift は時間単位の課金になるので、上記の通り1クラスター、1ノードの DC1.large であれば料金は発生しないはずですので色々試してみたいと思います。

クラスターの起動

マネジメントコンソールから Redshift を選択します。

f:id:tasukujp:20150804120507p:plain

Launch Cluster をクリック。

f:id:tasukujp:20150804120659p:plain

CLUSTER DETAILS ページで以下の通り設定を行います。

f:id:tasukujp:20150804120759p:plain

項目 内容
Cluster Identifier クラスタ識別子。
Database Name 空白の場合devが作成される。
Database Port デフォルト5439
Master Username マスターユーザー名。
Master User Password パスワード。8~64文字で大文字、小文字、数字が必要。
Confirm Password パスワードの確認。

NODE CONFIGURATION ページの設定は以下の通りです。今回は無料期間でお試しですので、Node Typedc1.largeCluster TypeSingle Nodeから変更しません。

f:id:tasukujp:20150804120932p:plain

ADDITIONAL CONFIGURATION ページの設定ですが、こちらも基本デフォルトでいいかと思います。

Choose a VPC ではクラスタを作成する VPC を選択します。昔は VPC の外側でクラスタを作成することもできたみたいですが、今は何かしら選択する必要があるみたいです。Redshift 用に作成した VPC を使いたい場合は、合わせて Cluster Subnet GroupPublicly AccessibleVPC Security Groups なども変更しましょう。

Choose a Public IP Address は EIP を選択したい場合は Yes を選択し、No の場合は自動で作成されます。Encrypt Database はデータベースの暗号化に対する項目です。今回は None のままでいきます。
 Amazon Redshift データベース暗号化 - Amazon Redshift

Publicly Accessible はAWSの範囲外からのアクセスも可能にするかというものですが、設定したVPCにインターネットゲートウェイがアタッチされていないと、クラスタ作成 → 起動のタイミングでエラーメッセージが出るようです。

f:id:tasukujp:20150804143713p:plain

 VPC でクラスターを作成する - Amazon Redshift

確認画面で問題なければ Launch Cluster をクリックしてください。最後に表示されてるメッセージは「無料トライアルの対象でない場合、すぐにクラスタの料金が発生します」という注意書きです。

f:id:tasukujp:20150804143724p:plain

Close をクリックします。

f:id:tasukujp:20150804123023p:plain

多少時間かかりますが available になったら終了です。

f:id:tasukujp:20150804132955p:plain

 ステップ 2: Amazon Redshift サンプルクラスターの起動 - Amazon Redshift

クラスターのアクセス許可

上記の Cluster 名のリンクをクリックすると以下の画面に遷移しますので、VPS Security Groups のリンクをクリックしてください。

f:id:tasukujp:20150804165327p:plain

インバウンドタブの編集をクリックします。

f:id:tasukujp:20150804170046p:plain

ルールの追加で「すべてのTCP」を追加して保存してください。カスタムTCPでポート5439だけでもいいです。

f:id:tasukujp:20150804170305p:plain

 ステップ 3: クラスターへのアクセスの許可 - Amazon Redshift

クラスターに接続

クラスターへの接続は  ステップ 4: サンプルクラスターに接続する - Amazon Redshift にもあるように SQL Workbench/J を使用する方法などもありますが、今回の接続には psql ツールを使用します。psql ツールは PostgreSQL に含まれていますので、Macの場合はbrew install postgresql、CentOSとAmazon Linux の場合はsudo yum install postgresqlでインストールできます。

クラスターにアクセスするにはコマンドライン上からpsql -h <endpoint> -U <userid> -d <databasename> -p <port>を実行してください。パスワードを聞かれるのでクラスターを作成した時に設定したパスワードを入力します。

各値はクラスターの Configuration 画面で確認してください。Endpoint に関して後ろの:5439は不要です。

f:id:tasukujp:20150804173625p:plain

 psql ツールを使用してクラスターに接続する - Amazon Redshift

$ psql -h test-cluster.xxxxxxxx.ap-northeast-1.redshift.amazonaws.com -U test -d dev -p 5439
Password for user test:
psql (9.4.4, server 8.0.2)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: on)
Type "help" for help.

dev=# \l
                  List of databases
     name     | owner | encoding | access privileges
--------------+-------+----------+-------------------
 dev          | rdsdb | UNICODE  |
 padb_harvest | rdsdb | UNICODE  |
 template0    | rdsdb | UNICODE  | rdsdb=CT/rdsdb
 template1    | rdsdb | UNICODE  | rdsdb=CT/rdsdb
(4 rows)