AWS SDK for Rubyを用いて、以下のようなコードでCentOS6の最新のAMI IDをマーケットプレイスから取得して、インスタンスを作成しようとしましたが、
image = AWS.memoize do amazon_linux = ec2.images.with_owner("aws-marketplace"). filter("root-device-type", "ebs"). filter("architecture", "x86_64"). filter("name", "CentOS-6*") amazon_linux.to_a.sort_by(&:name).last end
こんなエラーが出ました。
WEBサイトからサブスクライブしないとイケナイらしいです。めんどくさいですね。
/home/satoshi/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/aws-sdk-1.7.1/lib/aws/core/client.rb:318:in `return_or_raise': In order to use this AWS Marketplace product you need to accept terms and subscribe. To do so please visit https://aws.amazon.com/marketplace/pp?sku=7w73f3vx0zywcfq1izrshkpjl (AWS::EC2::Errors::OptInRequired) from /home/satoshi/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/aws-sdk-1.7.1/lib/aws/core/client.rb:419:in `client_request' from (eval):3:in `run_instances' from /home/satoshi/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/aws-sdk-1.7.1/lib/aws/ec2/instance_collection.rb:265:in `create' from -:55:in `<main>'
エラーメッセージのURLにアクセスして、「continue」をクリック。
「Launch with EC2 Console」タブをクリックし、「Accept Terms」をクリック。
完了。コレでAPI経由でCentOSのインスタンスを作れるようになりました。
※画像がi386なのは例だからです。