- Flociは、アカウント登録や認証なしですぐに実行できる無料のオープンソース AWSローカルエミュレーターで、単一コマンドで起動する軽量構成
- LocalStack Community Editionの2026年のサービス終了後に備えた制限のない代替であり、MITライセンスにより商用利用も可能
- 起動時間24ms、メモリ13MiB、イメージサイズ90MBと非常に軽量で、LocalStack比で100倍高速、10倍少ないメモリ使用量を実現
- 20以上のAWSサービスを完全サポートし、408件のSDKテストをすべて通過して高い互換性を確保
- 既存のAWS SDKはエンドポイントを変更するだけでそのまま統合でき、ローカル開発・テスト環境ですぐに使える代替ソリューションを提供
Floci 概要
- Flociは無料のオープンソース ローカルAWSエミュレーターで、アカウント登録や認証トークンなしですぐに実行できる構成
docker compose up コマンドだけで起動でき、CI/CDの制限や機能ロックがない
- 名前は雲の形である cirrocumulus floccus に由来し、「軽く、なめらかで、いつでも無料」を掲げている
LocalStack代替としての位置付け
- LocalStack Community Editionは2026年3月にサービス終了予定で、その後は認証トークン必須・CIサポート終了・セキュリティアップデート停止が予定されている
- Flociはそれに対する制限のない代替として提供される
- MITライセンスで配布されており、商用利用を含め自由に活用できる
性能と機能の比較
- 起動時間約24ms、アイドル時メモリ13MiB、Dockerイメージサイズ90MBと非常に軽量
- LocalStack Community版と比べて約100倍高速な起動速度、10倍以上少ないメモリ使用量
- 20以上のAWSサービスをサポート、408/408のSDKテストに合格
- 主な対応サービス:
-
API Gateway v2 / HTTP API**,** Cognito**,** ElastiCache (Redis + IAM認証)
-
RDS (PostgreSQL, MySQL, IAM認証), S3 Object Lock (COMPLIANCE / GOVERNANCE)
- DynamoDB Streams、IAM、STS、Kinesis、KMS などを完全サポート
- LocalStackでは上記機能は一部サポートまたは未対応の状態
クイックスタート
- 基本的な
docker-compose.yml 設定例を提供
- ポート
4566 を使用し、ローカルの ./data ディレクトリをマウント
- 実行コマンド:
docker compose up
- すべてのサービスは
http://localhost:4566 でアクセス可能
- AWS認証情報は任意の値を使用可能(
AWS_ACCESS_KEY_ID=test, AWS_SECRET_ACCESS_KEY=test)
- 例示コマンド:
aws s3 mb s3://my-bucket
aws sqs create-queue --queue-name my-queue
aws dynamodb list-tables
SDK統合
- 既存のAWS SDKはエンドポイントを変更するだけでそのまま利用可能
- 主要言語ごとの例:
- すべての例で
region は us-east-1、認証情報は "test" を使用
イメージタグ
latest: ネイティブイメージ、1秒未満の起動速度のため推奨
latest-jvm: JVMベースのイメージでプラットフォーム互換性を重視
x.y.z / x.y.z-jvm: バージョン固定リリース
環境設定
- すべての設定は
FLOCI_ 接頭辞の環境変数で上書き可能
- 主な変数:
QUARKUS_HTTP_PORT: デフォルト 4566
FLOCI_DEFAULT_REGION: デフォルト us-east-1
FLOCI_DEFAULT_ACCOUNT_ID: デフォルト 000000000000
FLOCI_STORAGE_MODE: memory, persistent, hybrid, wal から選択(デフォルト hybrid)
FLOCI_STORAGE_PERSISTENT_PATH: データディレクトリのパス(./data)
- 全設定ドキュメント: configuration docs
- サービス別ストレージ設定: storage docs
ライセンス
- MITライセンスで提供され、制限なく自由に使用および修正可能
1件のコメント
Hacker Newsの意見
AWS、GCP、Azureのようなクラウドプロバイダーが、ローカル開発向けエミュレーターを公式に提供してくれたらいいのにと思う
現在、複数のAWS サーバーレススタックを使っているが、ローカル統合テストはほぼ不可能だ
Localstackは悪くない代替手段だが、こうした機能はAWS自身が提供したほうが、開発者体験はずっと良くなるはずだ
人々はその違いをAWSのバグだと勘違いするだろうし、AWSにとってはサポートの悪夢になるはずだ
LocalstackがAIベースのshift-leftインフラツーリングのトレンドによって競争にさらされているのも興味深い
今は縮小されたが、ローカルでAzureクラウド全体を模倣するというコンセプトだった
ソフトウェアは特定のクラウドAPIに依存しないよう、抽象化とインターフェース中心で設計すべきだ
この種のツールは、私には無意味な試みに見える
単体テスト用ならAWS呼び出しを mocking したほうがよく、
ローカル開発用ならTerraformのようなIaCツールでテスト環境を実際にプロビジョニングするほうが安全だ
エミュレーターの挙動が実サービスと異なる場合、バグが本番に流れ込む危険がある
「ローカルAWS」という概念についての自分の経験と思うところをまとめてみる
クレジットカード登録すら嫌がる人は、どうせ大口顧客にはならない
だが実際にデプロイする際にはこのセキュリティ負債を解消しなければならず、その過程で「自分のマシンでは動いていた」コードが壊れがちだ
FOSSの代替がそのレベルに追いつくのは難しそうだ
最小権限の原則を守ろうとすると、毎回権限を一つずつ開けていかなければならず、これが権限whack-a-moleゲームのようにもどかしい
ローカルでIAMまで正確に再現できるなら、デプロイサイクルを大幅に短縮できる
Localstackの有料版にはこの機能があるが、新しいプロジェクトがどれだけうまく実装しているのか気になる
何百もの統合テストを高速で回す必要があるが、実際のAWS呼び出しは遅延、一貫性の問題、料金、rate limit などの面で非効率だ
開発者ごとにAWSアカウントを配るのも管理の悪夢だ
「AWSの料金爆弾を実際に食らってこそ学べる」という話は、まるで「火を学ぶには火傷しなければならない」と言うような非現実的なたとえだ
開発者ごとに別アカウントを与え、billing alert だけ設定しておけば、セキュリティ問題はそれほど大きくない
このプロジェクトが moto とどう違うのか気になる
Localstackのライセンス変更への不満は多いが、すでに良い代替手段はある
motoのサービスカバレッジ は印象的だ
私たちのチームもほとんど移行しかけたが、Localstackのエンタープライズサポート契約のおかげでそのまま使い続けている
テスト用としてかなり有用そうだ
私は Ansible role でLambdaパッケージングの自動化を作っているが、
S3に既存のzipがあるか確認する部分を mocking できればずっと楽になりそうだ
LocalStackのコミュニティエディションは2026年3月に終了し、認証トークン必須化とセキュリティアップデート停止が予定されている
Floci はこうした制約のない代替として紹介されている
CloudFormationのデプロイを待つ必要のない高速なフィードバックループを作れて、何千時間も節約できた
インターネット接続なしでも列車の中でテストできた
このプロジェクト名はルーマニア語では「小さな毛玉」、俗語では陰毛を意味するので笑ってしまう
これは私が待っていたプロジェクトだ
Localstackは好きだが、コミュニティ主導のオープンなソリューションのほうがずっとふさわしいと思っていた
AWSエンジニアが直接貢献できる構造なら、みんなに利益がある
AI導入が加速している今、ローカル統合テストは必須だ
その代わり、公式のローカルコンテナ版を提供するほうが現実的だ
ローカルテストこそが「モデルがテーブルを削除する幻覚」のような状況を安全に試せる唯一の方法だ
Localstackを使ったことがあるが、かなり良かった
ところで、GCP向けにも似たようなものがあるか知っている人はいる?
bigquery-emulator は役立ったが、
GCP全体をエミュレートするものはまだ見つけられていない
機能は良さそうに見えるが、コミット履歴がほとんどなく、PRやIssueもない
自動生成されたプロジェクトのように見えて、信頼しづらいという印象がある
実データでテストするときに安全なのか確信が持てない
まだ初期段階なので、今後を見守るつもりだ
以前は、オープンソースなら誰かがセキュリティ問題を見つけてくれると信じていたが、
今ではLLMでセキュリティ監査を回してみることもできる
完璧ではないが、こうした自動監査によって悪意あるコードを隠しにくくなる