Created
February 17, 2013 10:57
-
-
Save okochang/4970998 to your computer and use it in GitHub Desktop.
VPC上にRedshiftを起動して削除するまでの手順
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
require 'aws-sdk' | |
ACCESS_KEY = "set your access key id" | |
SECRET_KEY = "set your secret key" | |
REGION = 'redshift.us-east-1.amazonaws.com' | |
EC2_REGION = 'ec2.us-east-1.amazonaws.com' | |
## Redshift用のインターフェースを作成します | |
rs = AWS::Redshift.new( | |
:access_key_id => ACCESS_KEY, | |
:secret_access_key => SECRET_KEY, | |
:redshift_endpoint => REGION | |
).client | |
## VPCの場合はセキュリティグループなどがVPCのものと統合されるので、こちらもインターフェースを作成します | |
ec2 = AWS::EC2.new( | |
:access_key_id => ACCESS_KEY, | |
:secret_access_key => SECRET_KEY, | |
:redshift_endpoint => EC2_REGION | |
).client | |
## VPC内でクラスタを作る場合は、サブネットグループが必要です | |
rs.create_cluster_subnet_group(:cluster_subnet_group_name => "yanase-subnet-group", :description => "20130217", :subnet_ids => ["subnet-eca2ca81", "subnet-45a2ca28"]) | |
=> {:subnets=>[{:subnet_status=>"Active", :subnet_identifier=>"subnet-eca2ca81", :subnet_availability_zone=>{:name=>"us-east-1b"}}, {:subnet_status=>"Active", :subnet_identifier=>"subnet-45a2ca28", :subnet_availability_zone=>{:name=>"us-east-1a"}}], :vpc_id=>"vpc-4ca2ca21", :description=>"20130217", :cluster_subnet_group_name=>"yanase-subnet-group", :subnet_group_status=>"Complete", :response_metadata=>{:request_id=>"dbc147fe-78bf-11e2-9801-7f311a0d4866"}} | |
## Redshift用にVPCのセキュリティグループを作ります | |
ec2.create_security_group(:group_name => "yanase-redshift-security-group", :description => "20130217", :vpc_id => "vpc-4ca2ca21") | |
=> {:request_id=>"54bdb08e-f907-47c8-9614-029bf0b290aa", :return=>"true", :group_id=>"sg-da8b76b5"} | |
## 作成したセキュリティグループに接続許可のルールを作ります | |
ec2.authorize_security_group_ingress(:group_id => "sg-da8b76b5", :ip_protocol => "tcp", :to_port => 5439, :cidr_ip => "107.23.100.53/32") | |
=> {:request_id=>"77e635cf-ecb3-4ce4-a083-5173f74efcda", :return=>"true"} | |
## パラメータグループを作ります | |
rs.create_cluster_parameter_group(:parameter_group_name => "yanase-parameter-group", :description => "20130217", :parameter_group_family => "redshift-1.0") | |
=> {:parameter_group_family=>"redshift-1.0", :description=>"20130217", :parameter_group_name=>"yanase-parameter-group", :response_metadata=>{:request_id=>"4a055c93-78c2-11e2-a353-5fb4a4ddc875"}} | |
## Redshiftのクラスタを作ります | |
rs.create_cluster( | |
:cluster_identifier => "yanase-redshift-cluster", | |
:db_name => "yanasedb", :node_type => "dw.hs1.xlarge", | |
:cluster_type => "multi-node", | |
:master_username => "root", | |
:master_user_password => "4xU9FdZGV4", | |
:vpc_security_group_ids => ["sg-da8b76b5"], | |
:cluster_subnet_group_name => "yanase-subnet-group", | |
:availability_zone => "us-east-1a", | |
:preferred_maintenance_window => "Sun:06:00-Sun:07:00", | |
:cluster_parameter_group_name => "yanase-parameter-group", | |
:automated_snapshot_retention_period => 5, | |
:port => 5439, :cluster_version => "1.0", | |
:allow_version_upgrade => true, | |
:number_of_nodes => 2 | |
) | |
=> {:cluster_security_groups=>[], :vpc_security_groups=>[{:status=>"active", :vpc_security_group_id=>"sg-da8b76b5"}], :cluster_parameter_groups=>[{:parameter_apply_status=>"in-sync", :parameter_group_name=>"yanase-parameter-group"}], :pending_modified_values=>{:master_user_password=>"****"}, :cluster_subnet_group_name=>"yanase-subnet-group", :cluster_version=>"1.0", :cluster_status=>"creating", :encrypted=>"false", :number_of_nodes=>2, :publicly_accessible=>false, :automated_snapshot_retention_period=>5, :db_name=>"yanasedb", :preferred_maintenance_window=>"sun:06:00-sun:07:00", :vpc_id=>"vpc-4ca2ca21", :availability_zone=>"us-east-1a", :node_type=>"dw.hs1.xlarge", :cluster_identifier=>"yanase-redshift-cluster", :allow_version_upgrade=>true, :master_username=>"root", :response_metadata=>{:request_id=>"a897a90c-78c8-11e2-8a94-97d34e3faa7d"}} | |
## 作成されたRedsfihtのクラスタを参照します | |
rs.describe_clusters[:clusters] | |
=> [{:cluster_security_groups=>[{:status=>"active", :cluster_security_group_name=>"yanase-security-group"}], :vpc_security_groups=>[], :cluster_parameter_groups=>[{:parameter_apply_status=>"in-sync", :parameter_group_name=>"yanase-parameter-group"}], :pending_modified_values=>nil, :cluster_version=>"1.0", :endpoint=>{:port=>5439, :address=>"okochang-redshift-cluster.cywwc1kjl4di.us-east-1.redshift.amazonaws.com"}, :cluster_status=>"available", :encrypted=>"false", :number_of_nodes=>1, :publicly_accessible=>true, :automated_snapshot_retention_period=>5, :db_name=>"okochangdb", :preferred_maintenance_window=>"sun:06:00-sun:07:00", :cluster_create_time=>2013-02-17 06:27:30 UTC, :availability_zone=>"us-east-1a", :node_type=>"dw.hs1.xlarge", :cluster_identifier=>"okochang-redshift-cluster", :allow_version_upgrade=>true, :master_username=>"root"}, {:cluster_security_groups=>[], :vpc_security_groups=>[{:status=>"active", :vpc_security_group_id=>"sg-da8b76b5"}], :cluster_parameter_groups=>[{:parameter_apply_status=>"in-sync", :parameter_group_name=>"yanase-parameter-group"}], :pending_modified_values=>nil, :cluster_subnet_group_name=>"yanase-subnet-group", :cluster_version=>"1.0", :endpoint=>{:port=>5439, :address=>"yanase-redshift-cluster.cywwc1kjl4di.us-east-1.redshift.amazonaws.com"}, :cluster_status=>"available", :encrypted=>"false", :number_of_nodes=>2, :publicly_accessible=>false, :automated_snapshot_retention_period=>5, :db_name=>"yanasedb", :preferred_maintenance_window=>"sun:06:00-sun:07:00", :vpc_id=>"vpc-4ca2ca21", :cluster_create_time=>2013-02-17 06:24:55 UTC, :availability_zone=>"us-east-1a", :node_type=>"dw.hs1.xlarge", :cluster_identifier=>"yanase-redshift-cluster", :allow_version_upgrade=>true, :master_username=>"root"}] | |
## 動作確認が終わったらきちんと削除しましょう | |
rs.delete_cluster(:cluster_identifier => "yanase-redshift-cluster", :skip_final_cluster_snapshot => true) | |
=> {:cluster_security_groups=>[], :vpc_security_groups=>[{:status=>"active", :vpc_security_group_id=>"sg-da8b76b5"}], :cluster_parameter_groups=>[{:parameter_apply_status=>"in-sync", :parameter_group_name=>"yanase-parameter-group"}], :pending_modified_values=>nil, :cluster_subnet_group_name=>"yanase-subnet-group", :cluster_version=>"1.0", :endpoint=>{:port=>5439, :address=>"yanase-redshift-cluster.cywwc1kjl4di.us-east-1.redshift.amazonaws.com"}, :cluster_status=>"deleting", :encrypted=>"false", :number_of_nodes=>2, :publicly_accessible=>false, :automated_snapshot_retention_period=>5, :db_name=>"yanasedb", :preferred_maintenance_window=>"sun:06:00-sun:07:00", :vpc_id=>"vpc-4ca2ca21", :cluster_create_time=>2013-02-17 06:24:55 UTC, :availability_zone=>"us-east-1a", :node_type=>"dw.hs1.xlarge", :cluster_identifier=>"yanase-redshift-cluster", :allow_version_upgrade=>true, :master_username=>"root", :response_metadata=>{:request_id=>"11b0f7f3-78cf-11e2-b321-8156d8957973"}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment