Redshiftクラスタの作成
ここからは、Amazon Redshiftクラスタの作成を行っていきます。
セキュリティグループの作成
まず初めに、Redshiftにアクセスする際に外部からのアクセスを制限・制御することになるセキュリティグループを事前に用意します。
AWSマネジメントコンソールのEC2のメニューから、[Security Groups]を選択、さらに[Create Security Group]を選択してください。
次に、アクセス制御を行う情報を設定します。今回はRedshiftのデフォルトポートである[5439]のみを接続ポートとして許可する設定を追加します。
Typeに[Custom TCP Rule]、Port Rangeに[5439]、Sourceに[Anywhere(0.0.0.0/0)]を設定してください。これでポート番号:5439についてはどこからでもアクセス可能となりました。
実際の利用環境では、アクセス可能となるIPアドレスを特定範囲の値に絞るなどの対応で、セキュリティ設定を厳密に定める必要があります。今回の連載では、作業を分かりやすくするためにアクセス元IPを緩めていることをご了承いただければと思います。
サブネットグループとパラメータグループの作成
Redshiftクラスタの構築では、クラスタ本体の他に、上記"セキュリティグループ"に加え"サブネットグループ"と"パラメータグループ"を事前に用意しておく必要があります。まずはそれらを用意しましょう。AWSマネジメントコンソールから[Database]を選択、さらに[Redshift]を選択してください。
メニューの[Security]をクリック。
[Create Cluster Subnet Group]をクリック。
事前に作成したVPCとアベイラビリティゾーンを選択すると、選択可能なサブネットグループが表示されます。
ここではVPC作成ウィザードでパブリックサブネットを1つ併せて作成していますので、そのサブネットが表示されるはずです。
パブリックサブネットを選択し[Add]ボタンを押下、右側のサブネット一覧に内容が追加されたことを確認して[Create]を押下します。
また、クラスタサブネットグループと併せて、クラスタに紐付くパラメータグループを作成しておきましょう。
これはクラスタにおける設定値をパラメータとして保存・管理することができるものです。クラスタ間で共通のパラメータを利用することもできますが、ここは利便性を考慮してクラスタ専用のものを用意したいと思います。
[Parameter Group Family]にデフォルトの[redshift-1.0]を、残りの項目は任意の内容を設定し、[Create]を押下します。
Amazon Redshiftクラスタ本体の作成
これで材料が整いました。本丸となるAmazon Redshiftクラスタの構成に進みます。AWSマネジメントコンソール、Redshiftのメニューから[Launch Cluster]を選択します。
クラスタの詳細情報、接続に関する基本的な情報の設定をまず行います。Master User Name/Passwordでの「スーパーユーザー」はRedshiftにおけるすべてのデータベース所有者と同じ特権を持つユーザーであり、システム系のテーブルやビューの照会も可能です。今回は以下の値で設定することにしました。値を設定し、[Continue]を押下します。
項目 | 説明 | 設定値 |
---|---|---|
Cluster Identifier | クラスタ識別子 | redshift-codezine |
Database Name | 接続DB名(デフォルト値: dev) | testdb |
Database Port | DB接続ポート(デフォルト値: 5439) | 5439 |
Master User Name | スーパーユーザーのDB接続ユーザー名 | root |
Master User Password | スーパーユーザーのDB接続パスワード | CODEzine123 |
次はノード設定です。Redshiftクラスタを構成するノードの種類やノード数に関する設定を行います。
現在Redshiftでは2種類のノードタイプがあり、dw1系(dw1.xlarge/dw1.8xlarge)は1ノードあたりのストレージ容量がテラバイト級と非常に大きく、dw2系(dw2.large/dw2.8xlarge)はストレージ容量はdw1系に比べると少なくなりますが、その分処理性能に秀でたものとなっています。
この辺り、実際の本番利用の際はデータの蓄積量や求められる処理性能によってどちらのノードをどの程度の数用意するかが変わってくることと思いますが、今回は検証用ですしそこまで費用も掛けたくないなので、dw2.largeノードを1ノード用意する形で進めたいと思います。Node Tyleを[dw2.large]、Cluster Typeを[Single Node]で選択し、[Continue]を押下します。
先日、Amazon Redshiftの無料利用枠も定められました。今後初めてAWSアカウントを作成する場合、所定の条件・期間でAmazon Redshiftを無料で利用できるようになります。この条件に当てはまる場合、当連載の環境構築・検証を無料利用枠で行うことも検討してみてはいかがでしょうか。詳しくは以下AWS公式エントリをご覧ください。
次いで、クラスタに関する追加の設定情報を定めます。
- クラスタのパラメータグループ(Cluster Parameter Group)
- クラスタを配備するVPC(Choose a VPC)
について、あらかじめ作成しておいたものを設定します。また、[Publicly Accessible]はインターネット環境からRedshiftにアクセスする際、[Yes]を設定しておく必要があります。今回はこの条件に合致しますので、[Yes]を設定しておきます。クラスタを配備するアベイラビリティゾーン(Availability Zone)も作成したサブネットに対応する内容を設定しておきましょう。その他の設定項目はそのままで結構です。
また、セキュリティグループも事前に作成しておいたものを設定します。設定したら[Continue]を押下します。
レビュー画面で内容を改めて確認後、[Launch Cluster]を押下してクラスタを作成します。
作成後、ステータスが以下のようにすべて緑色で表示されると、利用可能な状態となります。