LESTAS.io Tech. BLOG

サーバレスで運用!?レスタスtech-blogを支える技術をご紹介

はじめまして。LESTAS開発Gのマスオです。

最近坊主になりました!

この度ほしいなと感じていたtech-blogをリリースいたしましたが私のワガママでどうしてもWordPressなどのCMSの面倒を見たくない!とメンバーにお伝えしまして最終的に以下を満たす形で実装しようという話になりました。 - (WordPressなどの)CMSは使いたくない - サーバの面倒を見たくない - DBの面倒もみたくない - あんまり開発に手間をかけたくない 怠惰ですねぇ。 良いことだと思います。

これらの話から最終的に導き出されたブログの開発、運用形態ですが以下のような形になりました🎉 1. 記事はMarkdownで書き、Githubで管理する 2. DBはSQLITE3にする 3. ビルド時にMarkdownのファイルをSQLITE3に流し込む 4. CloudRunを使ってデプロイする 順を追って説明していきます。

記事はMarkdownで書き、Githubで管理する

こうなった理由ですがまず記事を管理するためのシステムを用意するのが手間だから。これにに尽きます。 自前で構築する、microCMSを利用するなどの選択肢もありましたができるだけ外部サービスを増やしたくないこと自前で構築した管理ツールの面倒を見たくないこと そして一番大きいのが自分の好きなエディタを利用したいことです。 私はEmacs教会の洗礼を受けてから7年が経つEmacsの熱心な宣教師の一人です。WordPressがどれだけ便利になろうともやはり慣れ親しんだEmacsを使ったライティングがしたいと思いこの方法を導入しました。 他のイケてるエディタにも組み込みのGitプラグインがあると思いますがEmacsの最高にクールなGitプラグインであるMagitがあるためMarkdownで記事を書いたとしてもスムーズにコミットを詰むことができます。 書いた記事もGithubのレビューを経て公開されますので校正もバッチリ。 (EmacsのWikipediaへのリンク置いておきますね?) ブログの管理用ツールとして非常に便利だと判断しGithubを選ぶことにしました。

余談

HTMLを書く際に必要なmetaな情報(title, descripiton, etc...)は記事.mdとは別のmeta.jsonで管理しています。 こちらもEmacsなら特に書くにも困らないのとひと目で修正する場所もわかるので便利に使っています。 唯一の不安はこの先、非エンジニアの人が記事を書くときだけ(果たしてそんなときは来るのだろうか!?)

{
  "published_at": "2022-06-23",
  "title": "サーバレスで運用!?レスタスtech-blogを支える技術をご紹介",
  ...
  "description": "tech-blogを支える技術",
  "keywords": "LESTAS 開発G tech-blog"
}

DBはSQLITE3にする

こうした理由は主に2つあります! レスタスでは主にGCPを利用しています。ですのでCloudSQLを利用するなどの選択肢もあったのですがお金がかかる! ただブログを動かすだけとは思えないほどの予算が必要になってしまう! 流石にこれはまずい!(コスト意識大事) またサーバの面倒を見たくないためGCE上にDBを構築するのもなし!まずこんな話がありました!

ビルド時にMarkdownのファイルをSQLITE3に流し込む

そうです。 表題の通りです! ビルドする時にすべての記事をMarkdownから読み込みDockerイメージに入れておけばステートレスなWebサーバーを構築できますね! (そもそもそこまでやるならDBすらいらんのでは?という話もありますが) ビルド時に記事をDBに入れてしまうならSQLITE3にしておこう。RailsのデフォルトDBですしね! そんな理由からDBはSQLITE3になりました!

CloudRunを使ってデプロイする

最後はこちら。 やはりサーバレスにしておくのが一番管理の手間が無くて良い! CloudRunならビルドからデプロイまで一連の流れを構築することもできますし本当に管理が少ない。 じゃあこれしか選択肢は無いよね!ということでCloudRunを利用する運びとなりました!

and more...

あとは上に上がらなかった理由として現在弊社で主に利用されているアプリケーションにRailsが多いことが上げられます

どんな感じ?

ノξソ>ω <ハ6 < tree -d -L 1
.
├── app_ser -> Rails
├── contents-> 記事

この階層にDockerfileも置いてるのでビルドする時に一緒にcontentsも取り込まれていい感じに!

終わりに

実質最初の記事ですが楽しく書くことができて満足です! この先は以下のような記事を無理のない範囲で書きたいとか考えています! - エンジニア、デザイナのエディタ分布 - 動いてるアプリケーションのフレームワークとか - エンジニアに聞いた好きなプログラミング言語

We are hiring!

レスタスではRails書けるエンジニア、Vue,Nuxtが好きなエンジニア、Webデザイナさんを募集中です! ご興味お持ちの方がいらっしゃいましたらこちらのページからご応募ください!

LESTAS開発グループ

やぁ!

関連サイト