Amazon ECSで503エラーが発生する


Amazon APIを使って商品検索するのを amazon-ecs gemを使って試していたところ、何回かに1回503エラーが発生する現象に悩まされていました。

通常は1時間に2000回までのアクセスが許可されているのですが、制限内にも関わらず503が時々出ます。

調べてみると他の方も同じ現象が起きていて、エラーが起こる前提で対応されているようでした。

以下のように最大5回までリトライするようにしました。

  def search
    retry_count = 0
    begin
      @res = Amazon::Ecs.item_search(params[:title], :response_group => 'Medium', :country => 'jp', :search_index => 'All', :item_page => page_params)
    rescue => e
      retry_count += 1
      logger.error e.message
      if retry_count < 5
        sleep(3)
        retry
      end
    end
  end

参考