# File lib/rudy/aws/ec2/instance.rb, line 65
65:       def create(opts={}, &each_inst)
66:         raise NoAMI unless opts[:ami]
67:         raise NoGroup unless opts[:group]
68:         
69:         opts = {
70:           :size => 'm1.small',
71:           :min => 1,
72:           :max => nil
73:         }.merge(opts)
74:         
75:         old_opts = {
76:           :image_id => opts[:ami].to_s,
77:           :min_count => opts[:min],
78:           :max_count => opts[:max] || opts[:min],
79:           :key_name => (opts[:keypair] || '').to_s,
80:           :security_group => [opts[:group]].flatten.compact,
81:           #:user_data => opts[:machine_data],  # Error: Invalid BASE64 encoding of user data ??
82:           :availability_zone => opts[:zone].to_s,
83:           :instance_type => opts[:size].to_s,
84:           :kernel_id => nil
85:         }
86:         
87:         response = Rudy::AWS::EC2.execute_request({}) { @@ec2.run_instances(old_opts) }
88:         return nil unless response['instancesSet'].is_a?(Hash)
89:         instances = response['instancesSet']['item'].collect do |inst|
90:           self.from_hash(inst)
91:         end
92:         instances.each { |inst| 
93:           each_inst.call(inst) 
94:         } if each_inst
95:         instances
96:       end