Amazon Redshift編~RubySDKパート①~

こんにちは! JQです。

前回は『 Amazon DynamoDB編~DynamoDBをはじめてみよう!パート⑥~ 』ということで、DynamoDBにRubyからクエリーを実行してみました。

今回は『Amazon Redshift編~RubySDKパート①~』と題して、RedshiftをRubySDKから作成してみたいと思います。

**

**

parameter_group

parameter_groupの作成

  1. まずはparameter_groupを作成してみます。
1#!/usr/bin/env ruby23require 'rubygems'4require 'aws-sdk'56parameter_group_name = "dev"78redshift = AWS:: Redshift.new(9        :redshift_endpoint => "redshift.ap-northeast-1.amazonaws.com",10        :access_key_id => 'xxxxxxxxxxxx',11        :secret_access_key => 'xxxxxxxxxxxxxxx'12)1314client = redshift.client1516client.create_cluster_parameter_group(17        :parameter_group_name => parameter_group_name,18        :parameter_group_family => "redshift-1.0",19        :description => "#{parameter_group_name} #{Time.now}"20)

security_group

security_groupの作成

  1. 続いてsecurity_groupの作成をしてみます。

※IPADDRESSには接続を許可するIPを記入して下さい。

1#!/usr/bin/env ruby23require 'rubygems'4require 'aws-sdk'56security_group_name = "dev"7cidrip = “[IPADDRESS]/32”89redshift = AWS:: Redshift.new(10        :redshift_endpoint => "redshift.ap-northeast-1.amazonaws.com",11        :access_key_id => 'xxxxxxxxxxxx',12        :secret_access_key => 'xxxxxxxxxxxxxxx'13)1415client = redshift.client1617client.create_cluster_security_group(18        :cluster_security_group_name => security_group_name,19        :description => "#{security_group_name} #{Time.now}"20)2122client.authorize_cluster_security_group_ingress(23        :cluster_security_group_name => security_group_name,24        :cidrip => cidrip,25)

cluster

clusterの作成

  1. 最後に、clusterを作成してみます。

今回は「dw.hs1.xlarge」の「SingleNode」で起動してみます。

1#!/usr/bin/env ruby23require 'rubygems'4require 'aws-sdk'56cluster_identifier = "dev"7db_name = "dev"8master_username = "masteruser"9master_user_password = "password"1011redshift = AWS:: Redshift.new(12        :redshift_endpoint => "redshift.ap-northeast-1.amazonaws.com",13        :access_key_id => 'xxxxxxxxxxxx',14        :secret_access_key => 'xxxxxxxxxxxxxxx'15)1617client = redshift.client1819client.create_cluster(20        :db_name => db_name,21        :cluster_identifier => cluster_identifier,22        :cluster_type => "single-node",23        :node_type => "dw.hs1.xlarge",24        :master_username => master_username,25        :master_user_password => master_user_password,26        :cluster_security_groups => security_group_name,27        :cluster_parameter_group_name => parameter_group_name,28        :port => 5439,29        :allow_version_upgrade => true30)3132cluster = client.describe_clusters(33        :cluster_identifier => cluster_identifier34).clusters[0]3536sleep 60 while cluster.cluster_status == :creating3738puts "Complete!"39p cluster.endpoint
  1. 全部を繋げると以下の様になります。
1#!/usr/bin/env ruby23require 'rubygems'4require 'aws-sdk'56parameter_group_name = "dev"7security_group_name = "dev"8cidrip = “[IPADDRESS]/32”9cluster_identifier = "dev"10db_name = "dev"11master_username = "masteruser"12master_user_password = "password"1314redshift = AWS:: Redshift.new(15        :redshift_endpoint => "redshift.ap-northeast-1.amazonaws.com",16        :access_key_id => 'xxxxxxxxxxxx',17        :secret_access_key => 'xxxxxxxxxxxxxxx'18)1920client = redshift.client2122client.create_cluster_parameter_group(23        :parameter_group_name => parameter_group_name,24        :parameter_group_family => "redshift-1.0",25        :description => "#{parameter_group_name} #{Time.now}"26)2728client.create_cluster_security_group(29        :cluster_security_group_name => security_group_name,30        :description => "#{security_group_name} #{Time.now}"31)3233client.authorize_cluster_security_group_ingress(34        :cluster_security_group_name => security_group_name,35        :cidrip => cidrip,36)3738client.create_cluster(39        :db_name => db_name,40        :cluster_identifier => cluster_identifier,41        :cluster_type => "single-node",42        :node_type => "dw.hs1.xlarge",43        :master_username => master_username,44        :master_user_password => master_user_password,45        :cluster_security_groups => security_group_name,46        :cluster_parameter_group_name => parameter_group_name,47        :port => 5439,48        :allow_version_upgrade => true49)5051cluster = client.describe_clusters(52        :cluster_identifier => cluster_identifier53).clusters[0]5455sleep 60 while cluster.cluster_status == :creating5657puts "Complete!"58p cluster.endpoint

実行すればClusterが立ち上がっているかと思います!

いかがでしたでしょうか?

次回は『Amazon Redshift編~RubySDKパー②~』ということで、RubySDKから今回作成したRedshiftを削除してみたいと思います。

お楽しみに!

——————————————————————————————————

ナレコムクラウドのFacebookに『いいね!』をクリックして頂くと

最新のお役立ちレシピが配信されます★

┏━━━━━━━━━━━━━┓

┃ナレコムクラウド Facebook┃

┗━━━━━━━━━━━━━┛

——————————————————————————————————

この記事を書いた人

aws-recipe-user