BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 低コストでシンプルなサイト監視ツール“Checkless” - 開発者とのQ&A

低コストでシンプルなサイト監視ツール“Checkless” - 開発者とのQ&A

原文(投稿日:2018/09/19)へのリンク

Steve Elliott氏は、Webサイトの稼働時間を監視する簡単で安価な方法を必要としていた。ほとんどの既製ツールは、氏にとって複雑過ぎたり、費用が高過ぎるものだったのだ。pingベースのチェックでサイトの稼働時間を監視するサーバレスツールのChecklessを氏が開発したのは、このような理由からだ。使い方次第で、さまざまな用途に利用することができる。Elliott氏は自身のブログで、Checklessのインストールと設定に関するステップバイステップのガイドを提供している。

InfoQ: Checklessは、どのようなものですか?

Steve Elliott: サイトが稼働していることを監視し、そうでない場合には即座に通知する、シンプルなツールです。単純なジョブを、(無料ではないにしても)安価に行うように設計されています。最初はちょっとした個人的なプロジェクトとして始めたのですが、Twitterで何人かが興味を持ってくれたので、もっと使いやすいものにしたいと思うようになりました。関心の高さから、サーバレスプラットフォームでこのようなことを行う要求が、私の想像していたより多いことも分かりました。

InfoQ: pingベースのチェックを行うツールがすでに存在する中で、Checklessを開発しようと思った理由は何でしたか?

Elliott: 個人的なWebサイトを、できれば費用をかけずに監視したかったのです。これまでに商用の稼働モニタやオープンソースの監視プラットフォームを色々使ってきましたが、どれもサービスやインフラストラクチャに費用が必要でした。

サイトが動作していることを安価に(できれば無償で)チェックしたいという私の希望に対して、これらのツールはどれも機能が過剰なように思えました。ご存知のとおりサーバレスは、必要な時間だけコードを実行するという、費用対効果に優れた手段を提供するものですから、この目的に適していると思ったのです。

InfoQ: サーバレスツールとしてChecklessを実装する上で、どのような問題がありましたか?

Elliott: 一番の問題は、マルチリージョンのサポートを実装することでした。当初はサーバレスフレームワークを使用していて、デプロイメントには非常に便利でしたが、サポート対象がひとつのリージョンのみか、あるいは、同じアプリケーションを複数のリージョンの展開するようになっていました。そのため、Checkless用にCLIツールを開発しました。このツールはYAMLの構成ファイルを参照して、それを複数のサーバレス構成ファイルに展開します。CircleCIやTravisといったツールを使用すれば、サイトチェックを自動的にデプロイすることが可能になります。

Checklessの開発でマルチリージョンの問題を解決したことは、サーバレスプログラミングとAWS Lambdaに関して大きな学習の機会になりました。コストを最小限に抑える上で、最善のアプローチは何か、コードの構造を最適にするにはどうすればよいか、といったことを最初から考えるのは、簡単なことではありません。問題の多くは試行錯誤で解決できましたが、テストや監視といった面には、想像以上に難しい部分があるように思っています。

InfoQ: 制限や機能的な問題としては、どのようなものがありますか?

Elliott: Checklessはできる限りシンプルに設計されているので、警告は非常に単純で、現時点ではEメールとSlackによる通知がサポートされるのみです。どちらを使っても合理的な通知を設定できますが、柔軟性を高めるためには、webhookuに送信することができると、Pager DutyやVictorOpsといったサービスを経由した通知が可能になると思っています。

現状のChecklessがチェックするのは、HTTPステータスコードのみですが、もっと多くのユースケースに対応するため、サイトチェックのレスポンスボディもチェックするように拡張したいと思っています。構成やセットアップを複雑にしないで、これらの機能を導入する方法について、いろいろ考えているところです。

InfoQ: コミュニティのコントリビューションを求めていますか?開発に参加するには、どこがよいのでしょうか?

Elliott: 協力者はもちろん大歓迎です。今までは個人的なプロジェクトとしてやってきましたが、コントリビューションを希望するのであれば、TwitterやGithubで連絡を頂きたいと思います。どのような要望があるのか、Checklessが役立っているのか、不足している機能があるのか、といった情報もぜひ聞きたいと思っています。私がCLIで行なってきた開発の多くは、Checklessのセットアップエクスペリエンスをもっと簡単にするためのものでした。この点については、高い評価を頂いています。

InfoQ: 将来的な改善や機能に関するロードマップは、どのようになっていますか?

Elliott: 一番の目標は、Checklessがシンプルで、安価ないし無料で使い続けられることなのですが、それを念頭に置きながら、追加したい機能がいくつかあります。

  • 通知チャネルを接続するオプションの追加
  • 応答ステータスコードだけでなく、チェックの内容をアサートすること
  • レポート
  • マルチクラウドプロバイダのサポート — 異なるネットワークからチェックするだけでなく、複数のフリーティア(利用可能な場合)の利用が可能になる
  • トリガの拡張 — Slackは当然だが、個人的な興味から、Alexaや他の同様のデバイスからもトリガできるようにしたい。“Alexa、サイトが立ち上がっているか確認して”、とできればクールだろう。

たくさんありますが、私にとって重要なのは、Checklessがシンプルであり続けることと、今後も自由に使えることなのです。ですから本当の課題は、これらの原則を妥協せずに、新たな機能を導入することにあります。

Checklessに関する詳細な情報は、プロジェクトのGitHubリポジトリで確認することができる。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT