weblog.ason.asはどうやって動いているのかを書いてみる
まだmermaidで図を書くこともできないけど、基本的にはAWSが提供しているサービスに身を寄せている。アクセスする順でいうと
DSQLを使っているのが、今どきというか今過ぎて開発環境での動作に困ったりするのだが、まぁ安く高性能なデータベースを運用できるというのはありがたい。
LambdaではAPIサーバーとしてSinatra(Ruby)を動かしている。
フロントエンドはあまり詳しくないので
あたりを利用している。APIとRouteの分岐のさせ方がちょっとわからなかったりしたのだけどAIくんに聞いたらサッと実装してくれてた。
全文検索の仕組みはもAWSに乗せていて、記事が保存されたらS3にSQLiteのDBがシュッと生成される。
登場人物としては記事に関することを司ってくれる「Authoring Lambda」と「Search Indexer Lambda」がそれぞれいて記事の保存後にAuthoring LambdaがSQSへ通知して、Search Indexer LambdaがDSQLの公開記事からqmdのSQLiteの索引を生成する。実体は内容ハッシュを含む不変の世代キーへ置き、検証後にmanifestを切り替えるようにしている
qmdを使っているのがLLM-Wiki時代っぽい。でもこのウェブサイトの文章は人間が書くんだよな。
可用性などを犠牲にしつつ、それっぽく全文検索を用意した。OpenSearchとか使うとそれだけでコストが跳ね上がるしね。
気になるコスト面だと、サーバーレス構成なので無料枠の中に収まれば1ドル以内で済みそう。
元になる技術要素としてはこんな感じだが、もう少し便利なサービスが出てきたらまた変わるだろうなと思う。
サーバーレスなのでcold startになると5秒ぐらい起動を待つことになるのはご愛嬌…
リポジトリはpublicです。