# File lib/ec2/ec2.rb, line 127
    def initialize(aws_access_key_id=nil, aws_secret_access_key=nil, params={})
      init({:name             => 'EC2',
            :default_host     => ENV['EC2_URL'] ? URI.parse(ENV['EC2_URL']).host : DEFAULT_HOST,
            :default_port     => ENV['EC2_URL'] ? URI.parse(ENV['EC2_URL']).port : DEFAULT_PORT,
            :default_service  => ENV['EC2_URL'] ? URI.parse(ENV['EC2_URL']).path : DEFAULT_PATH,
            :default_protocol => ENV['EC2_URL'] ? URI.parse(ENV['EC2_URL']).scheme : DEFAULT_PROTOCOL,
            :api_version      => API_VERSION},
           aws_access_key_id || ENV['AWS_ACCESS_KEY_ID'],
           aws_secret_access_key|| ENV['AWS_SECRET_ACCESS_KEY'],
           params)
      # EC2 doesn't really define any transient errors to retry, and in fact,
      # when they return a 503 it is usually for 'request limit exceeded' which
      # we most certainly should not retry.  So let's pare down the list of
      # retryable errors to InternalError only (see AwsBase for the default
      # list)
      amazon_problems = ['InternalError']
    end