こんにちは! JQです。
前回は『Amazon DynamoDB編~DynamoDBをはじめてみよう!パート⑥~』ということで、DynamoDBにRubyからクエリーを実行してみました。
今回は『Amazon Redshift編~RubySDKパート①~』と題して、RedshiftをRubySDKから作成してみたいと思います。
parameter_group
parameter_groupの作成
1. まずはparameter_groupを作成してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#!/usr/bin/env ruby require 'rubygems' require 'aws-sdk' parameter_group_name = "dev" redshift = AWS:: Redshift.new( :redshift_endpoint => "redshift.ap-northeast-1.amazonaws.com", :access_key_id => 'xxxxxxxxxxxx', :secret_access_key => 'xxxxxxxxxxxxxxx' ) client = redshift.client client.create_cluster_parameter_group( :parameter_group_name => parameter_group_name, :parameter_group_family => "redshift-1.0", :description => "#{parameter_group_name} #{Time.now}" ) |
security_group
security_groupの作成
2. 続いてsecurity_groupの作成をしてみます。
※IPADDRESSには接続を許可するIPを記入して下さい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#!/usr/bin/env ruby require 'rubygems' require 'aws-sdk' security_group_name = "dev" cidrip = “[IPADDRESS]/32” redshift = AWS:: Redshift.new( :redshift_endpoint => "redshift.ap-northeast-1.amazonaws.com", :access_key_id => 'xxxxxxxxxxxx', :secret_access_key => 'xxxxxxxxxxxxxxx' ) client = redshift.client client.create_cluster_security_group( :cluster_security_group_name => security_group_name, :description => "#{security_group_name} #{Time.now}" ) client.authorize_cluster_security_group_ingress( :cluster_security_group_name => security_group_name, :cidrip => cidrip, ) |
cluster
clusterの作成
3. 最後に、clusterを作成してみます。
今回は「dw.hs1.xlarge」の「SingleNode」で起動してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#!/usr/bin/env ruby require 'rubygems' require 'aws-sdk' cluster_identifier = "dev" db_name = "dev" master_username = "masteruser" master_user_password = "password" redshift = AWS:: Redshift.new( :redshift_endpoint => "redshift.ap-northeast-1.amazonaws.com", :access_key_id => 'xxxxxxxxxxxx', :secret_access_key => 'xxxxxxxxxxxxxxx' ) client = redshift.client client.create_cluster( :db_name => db_name, :cluster_identifier => cluster_identifier, :cluster_type => "single-node", :node_type => "dw.hs1.xlarge", :master_username => master_username, :master_user_password => master_user_password, :cluster_security_groups => security_group_name, :cluster_parameter_group_name => parameter_group_name, :port => 5439, :allow_version_upgrade => true ) cluster = client.describe_clusters( :cluster_identifier => cluster_identifier ).clusters[0] sleep 60 while cluster.cluster_status == :creating puts "Complete!" p cluster.endpoint |
4. 全部を繋げると以下の様になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
#!/usr/bin/env ruby require 'rubygems' require 'aws-sdk' parameter_group_name = "dev" security_group_name = "dev" cidrip = “[IPADDRESS]/32” cluster_identifier = "dev" db_name = "dev" master_username = "masteruser" master_user_password = "password" redshift = AWS:: Redshift.new( :redshift_endpoint => "redshift.ap-northeast-1.amazonaws.com", :access_key_id => 'xxxxxxxxxxxx', :secret_access_key => 'xxxxxxxxxxxxxxx' ) client = redshift.client client.create_cluster_parameter_group( :parameter_group_name => parameter_group_name, :parameter_group_family => "redshift-1.0", :description => "#{parameter_group_name} #{Time.now}" ) client.create_cluster_security_group( :cluster_security_group_name => security_group_name, :description => "#{security_group_name} #{Time.now}" ) client.authorize_cluster_security_group_ingress( :cluster_security_group_name => security_group_name, :cidrip => cidrip, ) client.create_cluster( :db_name => db_name, :cluster_identifier => cluster_identifier, :cluster_type => "single-node", :node_type => "dw.hs1.xlarge", :master_username => master_username, :master_user_password => master_user_password, :cluster_security_groups => security_group_name, :cluster_parameter_group_name => parameter_group_name, :port => 5439, :allow_version_upgrade => true ) cluster = client.describe_clusters( :cluster_identifier => cluster_identifier ).clusters[0] sleep 60 while cluster.cluster_status == :creating puts "Complete!" p cluster.endpoint |
実行すればClusterが立ち上がっているかと思います!
いかがでしたでしょうか?
次回は『Amazon Redshift編~RubySDKパー②~』ということで、RubySDKから今回作成したRedshiftを削除してみたいと思います。
お楽しみに!
——————————————————————————————————
ナレコムクラウドのFacebookに『いいね!』をクリックして頂くと
最新のお役立ちレシピが配信されます★
┏━━━━━━━━━━━━━┓
┃ナレコムクラウド Facebook┃
┗━━━━━━━━━━━━━┛
——————————————————————————————————