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