AWS EC2からRedshiftに接続するサンプル

AWSのEC2からRedshiftに接続するサンプルです。

目次

サンプル 目的
  Redshiftを作成する
クエリエディタからRedshiftに接続する
EC2からRedshiftに接続する
Redshiftの機能:実行したSQLを確認する

目的

  • Redshiftは、データウェアハウス向けのデータベースです。
  • 最初はクエリエディタでRedshiftに接続します。
  • 次にEC2にSSH接続をしてRedshiftに接続します。
  • EC2が作成済みであることが前提です。
    AWS EC2を作成するサンプル

 

Redshiftを作成する

1.検索入力欄で「Redshift」と入力し、表示された「Redshift」をクリックします。

2.「クラスターを作成」をクリックします。

3.名称(クラスター識別子)を入力します。test-redshift-cluster-1

 

4.「無料トライアル」を選択します。
VPCは選択できず、デフォルトVPCとデフォルトサブネットになります。

 

5.以下の概要が表示されます。

 

6.管理者ユーザ名とパスワードを入力します。
「クラスターを作成」をクリックするとRedshiftが作成されます。

 

※無料枠のためデフォルトVPCとデフォルトサブネットがないとエラーになります。

No default subnet detected in VPC. Please contact AWS Support to recreate default Subnets.

 

クエリエディタからRedshiftに接続する

1.画面左のクエリエディタをクリックします。

 

2.「データベースに接続」をクリックし、接続情報を入力します。
データベース名のdevはサンプルとして最初からあるデータベースです。
接続ボタンをクリックすると接続します。

 

3.接続後の画面です。
赤枠の箇所にSQLを入力できます。usersテーブルはサンプルとして既にあるテーブルです。
オレンジの「実行する」をクリックするとSQLが実行されます。

 

4.SQLの実行結果は下にスクロールすると表示されています。

 

EC2からRedshiftに接続する

1.Tera TermのSSHでEC2に接続します。
Tera TermのSSHでEC2に接続する

※デフォルトVPCに、EC2は作成済みです。
※ユーザープロファイルに接続用ユーザを登録し切り替えています。
EC2のコンソールでの実行ユーザ(プロファイル)を登録する
※接続ユーザーにはAmazonRedshiftFullAccessの権限を付与しています。
※セキュリティグループのインバウンドは、Redshiftのポート5439の許可を登録済みです。

 

2.Redshift接続でpsqlを使用するのでPostgreSQLをインストールします。
既にインストール済みの場合は不要です。

sudo yum -y install postgresql

 

3.Redshiftの接続情報を取得します。
エンドポイントの左のアイコンをクリックするとエンドポイントの値をコピーできます。

 

3.Redshiftへの接続のコマンドを入力します。

psql -h <endpoint> -U <userid> -d <databasename> -p <port> -U
[ec2-user@ip-172-31-14-97 ~]$ psql -h test-redshift-cluster-1.xxxxx.ap-northeast-1.redshift.amazonaws.com -U awsuser -d dev -p 5439
Password for user awsuser:

コマンドを入力し接続に成功するとパスワードを入力欄が表示されます。

https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/connecting-from-psql.html

 

5.成功するとRedshiftでコマンドやSQLを実行できます。

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)

dev=#

 

Redshiftの機能:実行したSQLを確認する

Redshiftの機能として、実行したSQLを確認できます。

1.画面左の「クエリとロード」をクリックします。

 

2.実行したSQLを確認できます。また状態(完了 or 実行中)、SQLの実行時間も確認できます。

関連の記事

AWS IAMユーザを作成するサンプル

△上に戻る