【プロジェクト概要】
スタンドアロンで動作するAmazon ECS互換のコンテナ実行環境を実現する「KECS」というOSS。つまり、ローカルでAWS無しで実行できるECS。これを企画、設計、実装までを担当。
※9/24に公開しました。
https://kecs.dev/
https://github.com/nandemo-ya/kecs
【開発の背景】
ECSはAWS独自のサービスであり、これを利用するには当然AWS環境が必須となる(ECS Anywhereという特殊な手段もあるが)。
これまで、多くのECS利用プロジェクトではdev環境や本番環境がECSなのに、ローカル環境がComposeでお茶を濁すことがほとんどでした。
また、ECSのAPIを活用した運用ツールを開発するにしても、AWS環境は不可欠でした。ECSを取り巻くエコシステムは、Kubernetesに比べれば十分ではありません。
そこで、ローカルやGitHub Actions上でスタンドアロンで動作するECSがあれば、一種のゲームチェンジャーではないかと考えました。LocalStackもありますが、肝心のECS部分は有料です。
【KECSの仕組みと特徴】
Kubernetesをスタンドアロンで実行する軽量なディストリビューションであるk3d上でKECSは動きます。KECSはECS互換のAPIを持つため、aws ecsコマンドで操作できます。ECS以外のAPIはLocalStackに流すことができ、Service Discovery、CloudWatch Logs、Parameter Store, SecretsManagerといったリソースを透過的に統合します。ELBはLocalStackで有料なため、Traefikで代替することで同等のものを実現します。
また、KECSは開発体験向上のためTUIを備えています。Bubbleteaを使ったk9sライクのTUIで、ECSタスクの操作やログの閲覧などを効率的に行えます。
【AIをフル活用した開発】
KECSの99%はClaude Codeで実装されています。当方はコンセプトデザイン、設計、クオリティの担保、コードレビューに集中しています。また、AIが開発の本質を逸脱しないようなガードレールやエコシステムを整備し、可能な限りAIが自律的に開発できるようにしています。