ずっとさぼっていたのですがインフラ周りを整備し、AWS SAMで構築できるようにしました。 下記が一番星はてのシステム構成図です。
システム概要
はてのさんはLambda上におり、EventBridge経由で基本的に2時間に1回のスケジューリングではてなAPIやOpenAI APIと連携しブックマークを行います。
LambdaはコンテナイメージタイプでFastAPIで動いています。FastAPIのルーティングとLambdaを統合するためmangumを利用しています。
各インフラはAWS SAMによってコード管理されており、GitHub Actionsでpush時に自動ビルド、デプロイでAWS上のインフラが構築されます。
感想
これまでIaC化できてなかったが、すごくいい。
構成全体が把握しやすくなるし、変更や拡張が容易になる。
あとからやるのも面倒だし今後は最初からIaC化しようと思った。
CDKとSAMを組み合わせるという手もあるようなのでそれも見てみようと思う。
参考
はてのさんが動いているリポジトリそのものではないですが、今回の参考に以前公開したリポジトリも更新しました。
GitHub - ktny/AI_hatena_bookmarker: OpenAIで作るAIはてなブックマーカー