aws-sdk で云々
諸々について云々する中で色々分かったので控えを。
以下な config.yml を作成して (access_key とか secret とかは実際のソレ)
access_key_id: YOUR_ACCESS_KEY_ID secret_access_key: YOUR_SECRET_ACCESS_KEY
AWS::EC2.new で接続確認。あるいは以下な yaml を作って YAML.load したりなど。
vpc: vpc_subnet: '10.0.0.0/16' subnets: - subnet_addr: '10.0.0.0/24' availability_zone: 'ap-northeast-1a' - subnet_addr: '10.0.1.0/24' availability_zone: 'ap-northeast-1b' - subnet_addr: '10.0.2.0/24' availability_zone: 'ap-northeast-1b' - subnet_addr: '10.0.3.0/24' availability_zone: 'ap-northeast-1c' security_group: - description: 'NAT' - description: 'WEB' - description: 'DB' elb: name: 'my load balancer' availability_zones: 'ap-northeast-1a ap-northeast-1b' listeners: - port: 80 protocol: :http instance_port: 80 instance_protocol: :http
で、接続はできたのですが、N.Virginia な region に、なナニ。どうも region は config.yml に記述すれば良いらしいという情報があったので (aws-sdk なドキュメントには見当らず)、試してみました。
config.yml が以下。
access_key_id: YOUR_ACCESS_KEY_ID secret_access_key: YOUR_SECRET_ACCESS_KEY ec2_endpoint: ec2.ap-northeast-1.amazonaws.com
で、それを読みこんで云々
require 'yaml' require 'aws-sdk' aws_config_file = File.join(File.dirname(__FILE__), "config.yml") vpc_config_file = File.join(File.dirname(__FILE__), "vpc.yml") aws_config = YAML.load(File.read(aws_config_file)) vpc_config = YAML.load(File.read(vpc_config_file)) ec2 = AWS::EC2.new(aws_config)
で、az 確認してみたら
> ec2.availability_zones.map(&:name) => ["ap-northeast-1a", "ap-northeast-1b", "ap-northeast-1c"]
東京になっておりました。すばら。
vpc も subnet も作成できることを確認したので、プログラムを書きます。とりあえず bundle gem して試験書きながら進めます。
$ bundle gem vpccreate create vpccreate/Gemfile create vpccreate/Rakefile create vpccreate/LICENSE.txt create vpccreate/README.md create vpccreate/.gitignore create vpccreate/vpccreate.gemspec create vpccreate/lib/vpccreate.rb create vpccreate/lib/vpccreate/version.rb Initializating git repo in /home/rms/OLDHome/rms/tmp/aws-ruby/vpc-create/vpccreate