# File lib/awsbase/right_awsbase.rb, line 363
    def get_connection(aws_service, request) #:nodoc
      server_url = "#{request[:protocol]}://#{request[:server]}:#{request[:port]}}"
      #
      case @params[:connections].to_s
      when 'dedicated'
        @connections_storage ||= {}
      else # 'dedicated'
        @connections_storage = (Thread.current[aws_service] ||= {})
      end
      #
      @connections_storage[server_url] ||= {}
      @connections_storage[server_url][:last_used_at] = Time.now
      @connections_storage[server_url][:connection] ||= Rightscale::HttpConnection.new(:exception => RightAws::AwsError, :logger => @logger)
      # keep X most recent connections (but were used not far than Y minutes ago)
      connections = 0
      @connections_storage.to_a.sort{|i1, i2| i2[1][:last_used_at] <=> i1[1][:last_used_at]}.to_a.each do |i|
        if i[0] != server_url && (@params[:max_connections] <= connections  || i[1][:last_used_at] < Time.now - @params[:connection_lifetime])
          # delete the connection from the list
          @connections_storage.delete(i[0])
          # then finish it
          i[1][:connection].finish((@params[:max_connections] <= connections) ? "out-of-limit" : "out-of-date") rescue nil
        else
          connections += 1
        end
      end
      @connections_storage[server_url][:connection]
    end