Webサービスを運用していて便利だと思ったツール・サービスを紹介してみた
はじめに
この記事は SLP KBIT Advent Calendar 2018 の14日目の記事です。
何の記事を書こうかかなり悩んだのですが、今回は自分がWebサービスを運用していて、個人的に便利だと思ったツール・サービスについてまとめていきたいと思います。 また最後に、今後導入してみたいツールなどの紹介も行いたいと思います。 ちなみに過去に書いたSLP KBIT Advent Calendarの記事は以下のリンクから見ることができます。
2016年はラズパイサーバ、Pythonで作った音楽プレイヤーの話、 2017年はRailsのAPIモードの話をしています。 Pythonで作った音楽プレイヤーの記事は今でもそこそこアクセスがあるみたいなのでいつか書き直したいと思っています。(この記事Python2で書いたのでPython3で書き直したい)
Webサービスを運用している環境
本題に入る前に、私がWebサービスを運用している環境を少しだけ紹介しておこうと思います。
主に利用している環境は2つあり、VPSを使った環境とHerokuを使った環境を使い分けています。
VPSはConoHaを利用しており、WebサーバにはNginxを採用しています。
使い分けの内容としては、大規模なサービスでそこそこのサーバスペックやインフラ環境を柔軟に扱う必要がある場合はVPSを、小規模でインフラ周りを意識せずに利用できる場合はHerokuを利用しています。
だいたいは外部向けのサービスにはVPS環境を、身内で利用するサービスにはHerokuを用いることが多いです。
ちなみに、
CodeCandyや誰でも簡単形態素解析
はVPS環境で運用しています。
今回は、主にVPS環境でWebサービスを運用するにあたって便利だと思ったツール・サービスについて紹介します。
Webサービスを公開していて便利だと思ったツール・サービス
- お品書き
- Mackerel
- Slack Bot
- Google Analytics
- Fluentd
- Monit
Mackerel
はてな社が提供しているサーバ管理・監視サービスです。
サーバ監視ツールというと、SLP KBIT Advent Calendar2018の6日目の記事で@wakatakeruさんが紹介したPrometheusなども有名だと思います。
なぜ僕が、Mackerelを利用しているのかというと、導入コストが極めて低かったからです。
agentの導入はコマンド一発で導入できるのでとても楽です。
サーバ監視ツールを導入する際に、ツールの導入に時間をかけたくないが、サーバ監視を疎かにしたくないという要求を考えた結果、Mackerelを使うようになりました。
導入してみて良いと感じている点としては、導入の手軽さ、十分な監視機能、グラフがとても見やすいという点です。
現在は無料プランでの利用を行っていますが、自分の用途的には無料プランで十分だと感じています。
APIも公開されているので、足りないと思う機能があればは自作プラグインなどを作ってカバーすればいいかなと思っています。
Slack Bot
これは、サーバに誰がいつSSHでログインしたかを監視するために導入しました。 SSHでサーバにログインするとSlackに通知が行くようにしています。 正直必要かなと思う面もありますが、スマートフォンなどからでも過去のログイン情報を簡単に閲覧できるのは便利です。 また、ログインしたことをすぐに通知してくれるので、誰か知らない人がログインしてもすぐに気づくことができます。(されたことはないですが) 地味だけどなんだかんだ便利だと思っている技術です。 このツール自体は既存のツールではなく、自作する必要がありますが紹介しておく価値があると思い紹介しました。
Google Analytics
Google社が提供しているWebページのアクセス解析サービスです。
主にサイトの訪問者数や、訪問時刻、デバイス毎のアクセス数を調べるのに利用しています。 このツールのおかげで、メンテナンスするのに最適な時間がわかったり、訪問者が良く訪れるページがわかるようになったので、サービスのメンテナンスや改良が楽になりました。 このツールは最近導入したばかりなのですが、もっと早くから導入していればよかったと後悔しています。
Fluentd
OSSのログ収集ツールです。
簡単に言うとログをより柔軟に収集、保存ができるツールです。 今現在の主な用途はNginxのログをPostgreSQLに保存する目的で利用しています。 Nginxのログだけでなく、様々なイベントをログにして出力できるのがとても魅力です。 また、保存先もファイルやRDB、NoSQLなど幅広く対応しているのも魅力的だと感じています。 このツールを導入する前は、Vimの検索機能を使ったり、自作parserを作成して、ログを利用していましたが、導入後はそれらの手間が一気に省けたのでとても快適にログを活用できています。 プラグインもかなり揃っている印象があるのでかなり使い勝手はいいと思います。
Monit
プロセス・プログラム・ディレクトリなどを監視するためのシステムマネジメントツールです。
Webサービスを公開して数ヶ月立った時、大学のOBの先輩に教えてもらい導入したツールです。
それまでは、サービスが落ちたら手動で復旧するしかありませんでしたが、このツールを導入してからはMonitでサービスのプロセスを監視し、サービスが落ちていたら自動で復旧するようにしたので、以前よりも安心感を持ってサービスを運用できるようになりました。
設定もそれほど難しくないのが個人的にいいなと思っています。
ただ、あまりサービスが落ちることは考えたくないので、使う場面が少ない方が嬉しいですね。
今後導入してみたい技術
今後はサービスのログ解析や、Webサービスのチューニングを行うことが増えいくと感じているので、その辺りで使えるツールの導入は検討しています。
特にAthena + S3やBigQueryなどは導入したいツールの筆頭ですが、今現在お金にあまり余裕がないので導入はまだ先になりそうです...。 現在、それらのかわりとなるツールを作り始めているので、当分は自作ツールで運用していこうと思います。
また、せっかくFluentdを導入したので、ElasticsearchやKibanaも導入してみてログの検索、グラフ化なども行ってみたいと考えています。
まとめ
他にもWebサービスを運用するにあたって使っているツールがありますが、全部紹介しようとするとキリがないので今回は最近使っていて特に便利だと思った5つのツール・サービスを紹介しました。
ただWebサービスを運用するだけであれば、これらのツールやサービスは必ずしも必要というわけではないかも知れませんが、これらのツールを導入することでより快適にWebサービスを公開できるようになり、またインフラ面で悩むことが減ったように思います。
このような技術を取り入れることで、開発に専念しやすくなった気もします。
正直みなさんが知ってるツールばかりな気もしますが、Webサービスを公開する際に少しでも役に立てばいいなと思います。