EC2経由でのRedshiftアクセス確認
EC2インスタンスにはSSH経由でアクセスします。EC2インスタンス作成時に併せて入手・用意したpemファイルを使ってログインを行います。初利用の場合、権限設定を事前に行っておく必要がありますので注意してください。
$ cd codezine/ $ ls *.pem codezine-redshift-series.pem $ chmod 400 codezine-redshift-series.pem
SSHを介したログインは以下の形式で行います。コマンドの詳細については以下ドキュメントを参照してください。接続の際に指定するサーバ情報については、以下コマンドはEC2インスタンス作成時に自動で割り当てたPublic IPを指定しています。接続時に接続意思を聞かれるので[yes]を入力し回答し、known_hostsファイルへの情報追記を行ってログインが完了です。
$ ssh -i codezine-redshift-series.pem ec2-user@54.xxx.xxx.xxx The authenticity of host '54.xxx.xxx.xxx (54.xxx.xxx.xxx)' can't be established. RSA key fingerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '54.xxx.xxx.xxx' (RSA) to the list of known hosts. __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2014.03-release-notes/ 8 package(s) needed for security, out of 19 available Run "sudo yum update" to apply all updates. $
動作検証に必要な環境を整えます。yumコマンドを用いて必要なソフトウェアを導入してください。以下コマンドでは「yum update」で導入済みパッケージをまとめてアップデートした後、軽量JSONパーサー「jq」、およびPostgreSQLをインストールしています。
$ sudo yum -y update $ sudo yum -y install jq $ jq --version jq version 1.3 $ sudo yum -y install postgresql $ psql --version psql (PostgreSQL) 9.2.7
psqlを用いたRedshiftへのアクセスは以下の形式で行います。詳細な仕様については以下ドキュメントを御参照ください。
psql -h (エンドポイント名) -U (ユーザー名) -d (データベース名) -p (ポート番号)
エンドポイントに関しては、AWSマネジメントコンソールのRedshiftメニューから確認することができます。[Clusters]内の作成したクラスタ名リンクをクリックし、
[Configuration]タブの[Cluster Database Properties]の欄にある[Endpoint]の内容が該当する項目です。
今回の環境であれば、psqlを用いた接続コマンドは以下のような形です。コマンドを実行して、ユーザーに対応したパスワードを入力し、ログイン完了して任意のSQLコマンドが実行できれば一区切りです。
$ psql -h redshift-codezine.xxxxxxxxxxxx.ap-northeast-1.redshift.amazonaws.com -U root -d testdb -p 5439 ユーザ root のパスワード: (定めたパスワードを入力) psql (9.2.7, サーバー 8.0.2) 注意: psql バージョン 9.2, サーバーバージョン 8.0. psql の機能の中で、動作しないものがあるかもしれません。 SSL 接続 (暗号化方式: ECDHE-RSA-AES256-SHA, ビット長: 256) "help" でヘルプを表示します. testdb=# SELECT VERSION(); version -------------------------------------------------------------------------------------------------------------------------- PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.805 (1 行) testdb=#
次回第4回では、S3にファイルをアップロードし、Redshiftクラスタ環境にデータをロードしていく部分から続きを解説していきたいと思います。