35歳からの中二病エンジニア

社寺・鉄道・アニメを愛でるウェブ技術者の呟き

RSS愛好会刷新と日経新聞フィード配信開始

RSS愛好会では、先月からフィードのクローラーを刷新し、URLの移行期間としていたけれども、いよいよサイトの方も書き直すことができたので、デザインを新たにして公開する運びとなった。同時に要望の多かった日経新聞のフィードも配信開始したので、是非とも利用いただければと思う。

rss.wor.jp

今後の展望

先に知りたい方が多いであろう情報について触れておくと、今回の刷新によって、フィードの追加はかなり効率的に行えるようになった。特に問題なければ、近日中に47NEWSやロイターのフィードも配信開始できると思っている。また、今後はニュース系のサイト以外にも手を広げていきたいと思っている。まずは個人的な趣味の中からということで、アニメや鉄道関連の情報を拡充していきたい。RSSの利用者はより深い情報を求める傾向があるので、マニアが多く生息している分野については需要もそれなりにあるだろうと思いたい。

何が変わったのか

さて、折角の機会なので、今回の刷新でアーキテクチャー的にどう変わったのか説明しておこうと思う。

まず、従来はそもそも自分用に作ったサービスだったので、VPSを間借りしてPHPのGoutteを使って泥臭くスクレイピングしていた。フロントもバックエンドもフレームワーク等は一切使っていない。PHPを採用したのは、他のサービスでも使っていたからという単純な理由だった。その後、サービス別にコンテナー化したけれども、中身のコードは基本的に変えていなかった。

そんな、いかにも一昔前の個人サービス的な構成から、こんな感じになったというのが、以下の雑な構成図だ。

f:id:aikawame:20200712165531p:plain

色々と意図はあるけれども、ざっくりとは次のような感じだ。

  • 支出はできるだけ抑えたい。
  • 基本的にサーバーの面倒は見たくない。
  • ある程度はスケーラビリティーが欲しい。
  • それなりに新しい技術は抑えておきたい。
  • クローラーはサービスの肝なので堅実にいきたい。

流行に乗るのであれば、Firebaseメインの構成にもできるし、実際それも考えたけれども、SDKがNode.jsのかなり古いバージョンにしか対応していなかったりとか、Cloud Storageが独自ドメインだとSSLに対応していなかったりとか、ドキュメントが追い付いていなかったりとか、まだまだ穴だらけな感じなので、実用性を重視した結果このような布陣になった。

ちなみに、突っ込まれそうなのはArukasの部分だけれども、ここはAWS Fargateが東京リージョンに対応する前だったのと、Docker Hubを使う方がGitHubへのPushだけで楽ちんデプロイできるという理由で選んだ。ECSに触れたことが無ければFargateを検討したかもしれないけれども、既に仕事でバリバリ使っているので真新しさも特に無かったし。Fargateの方が安いというメリットは一応あるけれども、現状のクローラー起動時間であれば誤差程度なので、切り替える優先度は今の所は低い。

あと、Nuxt.jsとBulmaは完全にやりすぎだけれども、個人的な趣味で使ってみた。このサービスで本領が発揮される日が来るのかどうかはわからないけれども、SPA/SSR/PWAなウェブサイトをサクッと作るには相当便利な組み合わせだということはよくわかったので、今後の個人サービスで積極的に使っていきたいと思った。感覚としては、Railsのチュートリアルをやった時に似ていて、「えっ?これだけでSPA/SSR/PWAなサイトできるの?」というくらいに拍子抜けした。

データベースに関しては、見られて困る情報も無ければRDBが必要なほど複雑でも無いので、S3にJSONとして置いておけば良いやということになった。であれば、GASを使うのが一番手軽ということで、こんな感じになっている。ついでなので、毎時クローラーを起動するのも、GASからArukasのAPIを叩くようにしている。GAS、本当にできる子。

おわりに

今まではサーバーを仮想にせよ何にせよ1台まるっと構築して、その上にサービスを乗せるということをやっていたので、平日の昼間にサーバーがコケてアラートメールが飛んでくるわ、原因究明と対策に夜通し掛かるわみたいな悲劇がちょくちょく起きていたけれども、漸くというか今更というか、これで解放されそうではある。あとは、今まで以上にサービスを使ってくれる方が増えれば幸いだ。