RocketChat(EC2インスタンス)でCPU80%以上を10分間継続したら再起動する
2020/06/28
先日、数日間のやり取り用で完全に使い捨てとして使っているRocketChatで、CPUが30分ぐらい高騰して誰もアクセスできなくなっていました。
とりあえず再起動して復旧しました。
ユーザー数やアクセス数が変動するわけでもなく、処理量が大きく変動するわけでもないので、オートスケーリングよりもオートヒーリングやオートリカバリーが適当かと考えます。
頻発するなら、CPUが高騰した原因の調査も、と思いましたが、まだ1回発生しただけなので、次回発生時以降に調査しようかと思います。
そこで、次回発生時に今回のように30分以上も放置とはしたくないので、とりあえず10分間継続していれば再起動することにしました。
発生時のCPU使用率を見てると、一定期間内に多少上下はしているようですので、80%超過が10分間継続した場合としました。
(5分間隔のメトリクスで2データポイントとも80%越え)
アクションは再起動としました。
検証確認のため、CloudWatch Eventsに以下のイベントも設定しました。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
{ "source": [ "aws.cloudwatch" ], "detail-type": [ "CloudWatch Alarm State Change" ], "resources": [ "arn:aws:cloudwatch:us-east-1:123456789012:alarm:RocketChatReboot" ], "detail": { "state": { "value": [ "ALARM" ] } } } |
今回の障害時にその間RocketChat APIに投稿データを投げてた分が、SQSデッドレターキューに退避されてて、それを復旧後にリトライして、RocketChatへ無事投稿したのですが、これも自動化したいなと思いまして。
ですので、CloudWatch EventsからStep Functionsを起動して、EC2再起動が無事完了して、APIにPOSTできる状態で、Lambdaのトリガーでデッドレターキュー側を有効にしようか、と考えてます。
それは次回発生後で。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
Route 53 の加重ラウンドロビンルーティングでロードバランサー
Route 53の加重ラウンドロビンで両方1に設定してみました。 上図はイメージ …
-
-
東京リージョンの1つのAZ(apne1-az2)でt3.nanoスポットインスタンスが拒否されちゃいました
拒否されちゃいました ちょっとした検証をしようとしてて、t3.nanoのスポット …
-
-
Route 53サブドメインホストゾーンを作成したら、元のホストゾーンにNSレコードを作成する自動化
ハンズオン環境でRoute 53のホストゾーンを触ってほしい際に、サブドメインを …
-
-
AWS Well-Architected フレームワークによるクラウド ベスト プラクティスのセッションを聞いたので自アカウントの環境を確認してみる
AWS Summit Tokyo 2017で「AWS Well-Architec …
-
-
PyCharmにAWS CloudFormationプラグインをインストールして入力補完してみる
JetBrainsのPython統合開発環境(IDE)のPyCharmを1年ちょ …
-
-
IAMセッションポリシーの利用(GetFederationToken)
GetFederationTokenでのセッションポリシーは、呼び出し元のIAM …
-
-
VPC環境でLambdaを100同時実行してプライベートIPアドレスを確認した
2019年9月発表のLambda 関数が VPC 環境で改善されます以降に、VP …
-
-
リザーブドインスタンスはじめました
このブログも2014年9月にはじめたので、もうすぐ3年。 1件~17件とばらつき …
-
-
EC2インスタンスが到達不能になって復旧してMackerelで監視し始めた
きっとばりばり使っておられる方ならよくある事なんだろうけど、はじめて体験したので …
-
-
Amazon Elasticsearch ServiceにMySQLのデータを投入してkibanaで可視化してみる
MySQLのデータの可視化にAmazon Elasticsearch Servi …



