ヤマムギ

growing hard days.

*

RocketChat(EC2インスタンス)でCPU80%以上を10分間継続したら再起動する

      2020/06/28


先日、数日間のやり取り用で完全に使い捨てとして使っているRocketChatで、CPUが30分ぐらい高騰して誰もアクセスできなくなっていました。
とりあえず再起動して復旧しました。

ユーザー数やアクセス数が変動するわけでもなく、処理量が大きく変動するわけでもないので、オートスケーリングよりもオートヒーリングやオートリカバリーが適当かと考えます。

頻発するなら、CPUが高騰した原因の調査も、と思いましたが、まだ1回発生しただけなので、次回発生時以降に調査しようかと思います。

そこで、次回発生時に今回のように30分以上も放置とはしたくないので、とりあえず10分間継続していれば再起動することにしました。

発生時のCPU使用率を見てると、一定期間内に多少上下はしているようですので、80%超過が10分間継続した場合としました。
(5分間隔のメトリクスで2データポイントとも80%越え)

アクションは再起動としました。

検証確認のため、CloudWatch Eventsに以下のイベントも設定しました。

今回の障害時にその間RocketChat APIに投稿データを投げてた分が、SQSデッドレターキューに退避されてて、それを復旧後にリトライして、RocketChatへ無事投稿したのですが、これも自動化したいなと思いまして。

ですので、CloudWatch EventsからStep Functionsを起動して、EC2再起動が無事完了して、APIにPOSTできる状態で、Lambdaのトリガーでデッドレターキュー側を有効にしようか、と考えてます。

それは次回発生後で。


最後までお読みいただきましてありがとうございました!

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

【PR】 「AWSではじめるLinux入門ガイド」という本を書きました。

i

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

 - AWS , ,

ad

ad

  関連記事

API GatewayからLambdaを介さずにSNSトピックへ送信

やりたいこと APIリクエストをまずLambdaで受けて、SNSトピックへ送信す …

特定のIAMロールをLambda(Python)で削除する

やりたいこと 特定アカウントの特定の名前が含まれるIAMロールをまとめて削除した …

PyCharmにAWS CloudFormationプラグインをインストールして入力補完してみる

JetBrainsのPython統合開発環境(IDE)のPyCharmを1年ちょ …

AWS EC2 Amazon Linux にEC-CUBE3をnginx+MySql環境へインストール(手順検証中)

EC2インスタンスを作成する 少し古い記事で恐縮ですが試したい事があるのでAWS …

boto3(Python SDK) s3 get_object でバイト範囲を指定する

S3のGetObjectアクションでバイト範囲を指定することができます。 それに …

NGINXで500と502のエラーが実は頻発していたらしい

先日Mackerelで当ブログの外形監視を始めたのですが、500と502のエラー …

AlexaにAWSの最新Feedを読み上げてもらう(Lambda Python)

年末にAmazon Echo Dotを購入しましたので、練習がてらAlexaスキ …

JAWS DAYS 2018 「Cost-Driven AWS クラウドアーキテクチャデザインとコスト最適化方法 – Cost-Driven AWS Cloud Architecture Design : The Lean Startup on AWS」を聞きました

以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …

AWS DeepLensセットアップの儀

AWS DeepLensのセットアップを開始します。 AWS DeepLensを …

Elastic BeanstalkでflaskアプリケーションデプロイのチュートリアルをCloud9で

Elastic Beanstalk への flask アプリケーションのデプロイ …