はじめに
LinuCレベル1・2も取ったことだし、Linuxの知識を使って何かサービスを開発しようと思い「死活監視サービス」を開発することにしました。
ちょうどAIブームでもあったので、Cursorも活用して開発をしてみることにしました。
サービス名は 4ka2(シカツー) です!
名前の由来は、死活監視の「死活」から取り、ロゴは「シカ」をモチーフにしました。
今回、初めて商標登録も行ってみました。
現在はまだ審査待ちの状態ですが、商標登録の方法なども記事にしていきたいと思います。
サービスのURL
https://4ka2.com
ぜひ使ってみてください!!
4ka2の強み
無料で30秒間隔の監視を提供している
世の中の多くの死活監視サービスは無料だと1分間隔や3分間隔などの比較的長い監視間隔のサービスが多いです。
4ka2では30秒間隔で監視を行っているため、少しの異変でも察知してアラートを上げることができます。
また、レスポンスタイムも同時に測定しているため、応答は返ってくるが異常に遅い場合も確認ができます。
エージェント不要ですぐに死活監視を設定できる
ZabbixやDatadogなどのエージェント型の死活監視サービスは、多くの情報を得られる一方で、エージェントをサーバーにインストールする必要があります。
4ka2ではインストール不要なので、サクッとシンプルに死活監視が行えます。
無料でステータスページも使えちゃう
先日、開発を行った「わたしの株ポートフォリオ」という個別株ポートフォリオサービスも、4ka2で死活監視をしています。
実際の公開ステータスページは https://4ka2.com/status/01k2xmw6zwfwz6rmzq7wev4wbc で確認することができます。
デフォルトでは公開ステータスページはOFFですが、ワンクリックでONにできます。
インシデント発生時のスクショ機能
インシデントが発生した際にどのようなエラーが表示されているかは重要な情報です。
例えば、サーバ側でNginx 500エラーが返ってきているのか、その手前のCloudFrontなどで500エラーが返ってきているのか。
障害発生時にどこのレイヤーで障害が起きているかの判別を一秒でも早くするためにスクショ機能を実装しました。
スクショはCloudflre R3に保存しています。
もちろんSlack、メール通知にも対応
近年のほとんどの死活監視サービスではSlack通知に対応していると思いますが、4ka2でも対応しています。
SlackでWebhookURLを発行して設定するだけで使えます。
ここからはサービスの技術的な話やコストの話をしていきたいと思います。
サービス構成図
実装で苦戦したところ
Dockerを無停止デプロイする方法に苦戦した
1台のサーバーでDockerでbuild & upすると、立ち上がるまでの間はダウンタイムが発生してしまいます。
死活監視を行うサーバーでダウンタイムは許容できず、1台のサーバーでBlue/Greenデプロイなども試みたのですが複雑化することへの懸念があり断念しました。
Kubernetesとかも考えたのですが、大規模サービスではないので今回は採用しませんでした。
結局、Cloudflare ロードバランサーで2台のサーバを利用し、デプロイ時は1台のサーバーをロードバランシングから外して順次更新をしていくという手法を取っています。
この方法だと、普段は2台のサーバーで負荷分散も出来て一石二鳥だと思いました。
もし、他にいいアイデアなどあればコメント欄で教えていただけると幸いです!
運用コスト
役割 | サービス名 | 金額 |
---|---|---|
サーバー | OracleCloud Compute × 2 | 0円 (無料枠範囲内) |
サーバー | OracleCloud Compute ×1 | 341円 |
サーバー | Linode Nanode | 5ドル |
メール送信 | AWS SES | 0.35ドル |
ロードバランサー | Cloudflare ロードバランサー | 5ドル |
DB | TiDB | 0円(無料枠範囲内) |
合計 | 1,860円 |
無料利用枠内に収められているものが多く、ランニングコストは2000円以内に抑えられています。
(すき家の牛丼並盛 3杯分)
所感
個人開発はとても楽しいですが、リリースをする場合はランニングコストをいかに抑えるかの勝負だなと感じました。
例えば、AWSで全て構成すれば管理しやすくなりますが、コストは何倍にも膨れ上がります。
企業で行う場合はある程度お金を掛けられますが、個人の場合は掛けた分だけ可処分所得が減ることになりますからね...
ぜひ死活監視サービスを考えている方は4ka2を使ってみてください!