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 を選択します。
Launch Cluster をクリック。
CLUSTER DETAILS ページで以下の通り設定を行います。
項目 | 内容 |
---|---|
Cluster Identifier | クラスタ識別子。 |
Database Name | 空白の場合dev が作成される。 |
Database Port | デフォルト5439 。 |
Master Username | マスターユーザー名。 |
Master User Password | パスワード。8~64文字で大文字、小文字、数字が必要。 |
Confirm Password | パスワードの確認。 |
NODE CONFIGURATION ページの設定は以下の通りです。今回は無料期間でお試しですので、Node Type はdc1.large
、Cluster Type はSingle Node
から変更しません。
ADDITIONAL CONFIGURATION ページの設定ですが、こちらも基本デフォルトでいいかと思います。
Choose a VPC ではクラスタを作成する VPC を選択します。昔は VPC の外側でクラスタを作成することもできたみたいですが、今は何かしら選択する必要があるみたいです。Redshift 用に作成した VPC を使いたい場合は、合わせて Cluster Subnet Group や Publicly Accessible、VPC Security Groups なども変更しましょう。
Choose a Public IP Address は EIP を選択したい場合は Yes を選択し、No の場合は自動で作成されます。Encrypt Database はデータベースの暗号化に対する項目です。今回は None のままでいきます。
Amazon Redshift データベース暗号化 - Amazon Redshift
Publicly Accessible はAWSの範囲外からのアクセスも可能にするかというものですが、設定したVPCにインターネットゲートウェイがアタッチされていないと、クラスタ作成 → 起動のタイミングでエラーメッセージが出るようです。
VPC でクラスターを作成する - Amazon Redshift
確認画面で問題なければ Launch Cluster をクリックしてください。最後に表示されてるメッセージは「無料トライアルの対象でない場合、すぐにクラスタの料金が発生します」という注意書きです。
Close をクリックします。
多少時間かかりますが available になったら終了です。
ステップ 2: Amazon Redshift サンプルクラスターの起動 - Amazon Redshift
クラスターのアクセス許可
上記の Cluster 名のリンクをクリックすると以下の画面に遷移しますので、VPS Security Groups のリンクをクリックしてください。
インバウンドタブの編集をクリックします。
ルールの追加で「すべてのTCP」を追加して保存してください。カスタムTCPでポート5439だけでもいいです。
ステップ 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
は不要です。
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)