2020-08-15に更新

Cloud RunでRate exceededエラーになる

ある日突然Cloud Runにデプロイしているサービス(当サービス)にアクセスすると無情にも「Rate exceeded.」とだけ表示されるようになっていた。エラーログを見てみるとステータスは429、エラー詳細を開くと「The request was aborted because there was no available instance」と表示されている。

原因自体は初めてデプロイした時あたりにも出ていたのでわかる。Cloud Runには最大インスタンス数の設定があるのだが、それが足りないため。たしか最初は1~3あたりにしていたような気がする。それだと時々Rate exceededとなるため10くらいに増やしていた。それ以来自分は見ることがなくなった。

しかし突然の再発。原因は分からないが、引き金はクローラのアクセスが集中したりしたのかもしれない。想像でしか無いが、ただ時々クローラがアクセスしてきてエラーが大量に出ているのは見かける。

しかし今回は復旧する様子がない。22時くらいに発生し、色々と確認した。しかし原因はよく分からず。最大インスタンス数は20とか100とかにして試した気がするが、それでも復旧しなかった。原因が原因だけにもしかしたら放置しておけばいつの間にか治るかな、と思い、とりあえずねた。しかし次の日になっても治っていなかった。もしかすると時差の関係もあるのかなと思い一応夕方くらいまで待ってみたが、相変わらずだった。

解決した方法

最終的に、最大インスタンス数の設定を1000にしたら動くようになった。さすがにそんなにアクセスが続いているわけもないと思うのでなぜそこまで上げなければならないのか結局よくわからないまま……。

気づいたのは、Cloud Runにあるデモイメージを試してみたら動いたため。それは何の設定もいじっていなかったので最大インスタンス数が1000になっていた。

とにかく困ったら上限の1000まで上げてみるとよいかもしれない。

今回は一時的な問題かも

というか、今回のこれは僕以外も何人か発生してるのを観測したので一時的に発生している問題かもしれない。(多分書いている時点では未解決)

ツイッターでシェア
みんなに共有、忘れないようにメモ

だら@Crieit開発者

Crieitの開発者です。 Webエンジニアです(在宅)。大体10年ちょい。 記事でわかりにくいところがあればDMで質問していただくか、案件発注してください。 業務依頼、同業種の方からのコンタクトなどお気軽にご連絡ください。 業務経験有:PHP, MySQL, Laravel, React, Flutter, Vue.js, Node, RoR 趣味:Elixir, Phoenix, Nuxt, Express, GCP, AWS等色々 PHPフレームワークちいたんの作者

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント