2012-02-23 2 views
2

У меня есть приложение AWS, которое запускает и завершает многие экземпляры EC2 из нескольких разных AMI.Как я могу узнать, почему я превысил предел AW2 EC2?

Я начинаю получать эту ошибку через ruby ​​api, Превышен лимит запроса. Предел составляет около 2000 в час для большинства учетных записей, которые, как я считаю. Но я не могу найти никаких доказательств нашего использования, где-то рядом с этим максимумом, просмотрев все журналы, которые я знаю, чтобы проверить.

Есть ли способ получить от Amazon отчет о том, какие запросы API EC2 я делаю?

Есть ли какие-либо другие трюки или хорошие способы сгладить мое чрезмерное использование или что вызывает ошибку?

+1

Это много примеров запуска/остановки. Помните, что завершение экземпляра по существу «уничтожает» XEN VM. Мое предложение состояло в том, чтобы выяснить, как уменьшить его, используя запущенные экземпляры. – EdH

+2

Я сомневаюсь, что все они начинаются и останавливаются, я подозреваю, что они описывают звонки. Включение регистратора может помочь вам определить, какие вызовы сделаны. –

ответ

2

Вы можете включить ведение журнала для драгоценного камня aws-sdk через AWS.config. Просто перейдите в экземпляр рубинового регистратора.

require 'logger' 
AWS.config(:logger => Logger.new($stdout)) 

Вы, вероятно, работает в ситуации, когда он работает п + 1 запросов для извлечения атрибутов из ваших EC2 ресурсов. Ниже приведен пример:

ec2 = AWS::EC2.new 
ec2.instances.each do |i| 
    puts i.status 
end 

1 запрос выполняется для извлечения идентификаторов каждых экземпляров, а затем 1 запрос выполняется на экземпляр, чтобы получить его статус. Вы можете улучшить это, запустив код внутри блока memoize:

AWS.memoize do 
    ec2.instances.each do |i| 
    puts i.status 
    end 
end 

Вы также можете использовать AWS.start_memoizing (и AWS.stop_memoizing) окружать большие площади кода. Я stronly предлагаю прочитать эту статью в блоге о том, как коллекции работают в aws-sdk: http://aws.typepad.com/aws/2012/01/how-collections-work-in-the-aws-sdk-for-ruby.html

+0

Да, мы уже это делаем. – Dogweather

Смежные вопросы