fakecloudとは — LocalStackの有料化を受けて登場した無料・OSSのAWSエミュレータの使い方
fakecloudは、AWS SDK・CLIをhttp://localhost:4566に向けるだけで105サービス・7,500超のオペレーションをエミュレートできる、無料・オープンソース(AGPL-3.0)のシングルバイナリだ。2026年3月にLocalStackがCommunity Editionをアカウント・認証トークン必須の有料寄りイメージに置き換えたことを受けて登場した代替ツールで、TypeScript/Python/Go/PHP/Java/Rust/.NET向けのテストSDKやSigV4検証・IAM評価もオプトインで備える。公式README・公式サイトの情報をもとに、インストール・使い方・既存ツールとの違いを解説する。
fakecloudは、AWS SDKやCLIをhttp://localhost:4566に向けるだけでAWSの105サービス・7,500超のオペレーションをローカルでエミュレートできる、無料・オープンソース(AGPL-3.0)のシングルバイナリツールだ。アカウント登録も認証トークンも不要で、CI・ローカル開発でのAWS結合テストをそのまま置き換えられる。
開発元はfaiscadev(GitHub組織)。GitHubリポジトリは2026年4月4日作成、本稿執筆時点(2026年9月28日)でスター数702・フォーク47と若いプロジェクトながら、今週Hacker Newsのフロントページ(105ポイント)に掲載され話題になった。最新リリースはv0.45.1。本稿では公式README(github.com/faiscadev/fakecloud)と公式サイト(fakecloud.dev)の情報だけをもとに、登場の背景・主要機能・インストール方法・使い方、そして既存ツールとの違いを整理する。
なぜ今注目されているか — LocalStackの方針転換
きっかけは2026年3月、LocalStackがlocalstack:latestイメージの仕様を変更し、無料のCommunity Editionにもアカウント登録と認証トークンを必須にしたことだ。これによりトークンなしで動かしていたCIパイプラインが軒並み壊れ、RDS・Cognito・SES v2・ElastiCache・API Gateway・ECR・Lambdaの実コード実行など主要サービスの多くが有料プラン(LocalStack Pro)でしか使えなくなった。fakecloudの公式READMEは「fakecloudは、チームが認証トークンなしで完全ローカルなAWSテストのワークフローを維持できるように存在する」と、この一件への対抗として立ち位置を説明している。同じ経緯からMiniStack・floci・Motoといった無料の代替ツールも急速に利用が広がっている。
何ができるか
公式READMEが強調するのは、単なるモック応答ではなく「AWSが実際にどう振る舞うか」に忠実であろうとする姿勢だ。CIでは248,557件のSmithyモデル生成テストバリアントが毎コミット実行され、AWS公式のSmithyモデルに対して真の100%準拠(conformance)を主張している。加えてterraform-provider-awsのTestAcc*スイートもCIで実行し、SDKテストだけでは見逃しがちなウェイター処理やフィールドのズレを検出しているという。
| 機能 | 内容 | |
|---|---|---|
| サービス範囲 | 105サービス・7,509オペレーション。S3・DynamoDB・SQS・SNS・EventBridge・Lambda・IAM・STS・KMS・Secrets Manager・CloudFormation・SES・Cognito・Kinesis・RDS(6エンジン)・ElastiCache・ECS/ECR・EC2・Step Functions・API Gateway v1/v2・Bedrockなど80以上 | |
| 実インフラでのステートフル実行 | Lambda(23ランタイム)・RDS(Postgres/MySQL/MariaDB/Oracle/SQL Server/Db2)・ElastiCache(Redis/Valkey/Memcached)・ECS・EC2はDocker(デフォルト)またはFAKECLOUD_CONTAINER_BACKEND=k8sでKubernetes Pod上の実コンテナとして動く | |
| クロスサービス連携 | EventBridge→Step Functions、S3→Lambda、SES受信→S3/SNS/Lambdaなど15以上の連携がエンドツーエンドで実行される | |
| Bedrockサポート | 4つのAPIにまたがる216オペレーション。InvokeModel/Converseの実ストリーミング、ガードレール、エージェント、フローに対応し、決定論的テスト用にレスポンス設定・フォールト注入も可能 | |
| フットプリント | 単一バイナリ約19MB、アイドル時約10MiB、起動約300ms(Apple M1実測、Docker不要) | |
| 認証・セキュリティ | SigV4検証・IAM評価はデフォルトOFF(設定なしでテストが通る)。--verify-sigv4と`--iam soft\ | strict`で、IAM・STS・SQS・SNS・S3・KMS・Lambda・DynamoDB(Streams含む)・ELBv2・Schedulerを対象にオプトインで有効化できる |
| アプリ無改修対応 | インスタンス/タスクロールを前提にしたアプリも、AWS_CONTAINER_CREDENTIALS_FULL_URIを/_fakecloud/credentialsに向けるだけで静的キー・コード変更なしにAWS SDKのデフォルト認証情報チェーンを解決できる | |
| URL互換性 | *.localhost.localstack.cloudと*.amazonaws.comのいずれのHostヘッダーも正しくルーティングされ、S3の仮想ホスト型URLも含め、LocalStackや実AWS向けに書いた永続URL・開発スクリプトがそのまま動く |

第一級のテストSDK — 副作用を直接アサートする
アプリ本体のコードは通常のAWS SDKでそのまま動かしつつ、テストコード側だけfakecloud独自のテストSDKに差し替えて使う設計だ。TypeScript・Python・Go・PHP・Java・Rust・C#/.NETの7言語に対応し、生のHTTPレスポンスを解析することなく「メールが1通送られたか」「Lambdaが正しい引数で呼ばれたか」といった副作用を直接アサートできる。
import { FakeCloud } from "fakecloud";
const fc = new FakeCloud();
// アプリ本体は通常のAWS SDKで送信
// テスト側は副作用を直接アサート
const { emails } = await fc.ses.getEmails();
expect(emails).toHaveLength(1);
await fc.reset();インストールと料金
| 項目 | 内容 |
|---|---|
| 開発元 | faiscadev(GitHub組織、リポジトリ作成2026-04-04) |
| ライセンス・料金 | AGPL-3.0のオープンソース・無料・アカウント不要・有料プランなし |
| 実装 | Rust製シングルバイナリ |
| 最新版 | v0.45.1 |
| インストール方法 | 公式インストールスクリプト/Homebrew/Cargo/npm/Docker(ghcr.io/faiscadev/fakecloud) |
| ドキュメント | fakecloud.dev/docs |
| README上の注記 | 「fakecloudを開発・テスト用の依存として使うことに、AGPLの制約は一切及ばない」と明記 |
インストールはシェルスクリプト経由が最短で、Homebrew・Cargo・npm・Dockerにも対応している。
curl -fsSL https://fakecloud.dev/install.sh | bash # または: brew install fakecloud
fakecloud # http://localhost:4566 で起動使い方 — 最短手順
- fakecloudを起動する: fakecloudコマンドを実行するとhttp://localhost:4566で待ち受けを開始する
- AWS SDK・CLIのエンドポイントを向ける: access_key=test・secret_key=testなどダミー認証情報を使い、--endpoint-url(またはTerraformのendpointsブロック、CDKのcdklocal)でlocalhost:4566を指定する
- 通常どおりコードを書く・実行する: アプリ本体は素のAWS SDKで動かし、S3・SQS・Lambdaなどのリソースを通常のAPI呼び出しで操作する
- テストSDKで副作用を検証する: 送信メール・SNS通知・Lambda呼び出しなどをfakecloudのテストSDKで直接アサートする
- 必要ならSigV4検証・IAMを有効化する: --verify-sigv4と--iam soft|strictで本番同等の認可チェックを段階的に足していく
aws --endpoint-url http://localhost:4566 sqs create-queue --queue-name my-queueCIでの運用やTerraform・CDKとの組み合わせ、Kubernetes Podをコンテナバックエンドに使う設定など、詳細な手順はfakecloud.dev/docs/getting-startedのガイドに沿って進めるのが確実だ。CI/CDパイプラインへのテスト組み込み自体の考え方はFlutterのテスト・CI/CD完全ガイドやReact Nativeのテスト戦略も参考になる。
既存ツールとの違い
| fakecloud | LocalStack Community(2026年3月以降) | floci | Moto | |
|---|---|---|---|---|
| ライセンス・料金 | AGPL-3.0・無料・アカウント不要 | プロプライエタリ・アカウント+認証トークン必須、主要サービスは有料プラン | MIT・無料 | Apache-2.0・無料 |
| 実装・配布形態 | Rust製シングルバイナリ(Docker不要) | Dockerイメージ(約1GB) | Java(Quarkus Native)製、Docker Compose / Testcontainers対応 | Pythonライブラリ(プロセス内モック、サーバー不要) |
| 対応サービス規模 | 105サービス・7,509オペレーション | 幅広いが主要サービスの多くが有料化 | 47サービス | 幅広いカバレッジだが深さは項目差あり |
| Lambda実行 | Docker/K8sの実コンテナで実際に実行(23ランタイム) | 一部プランのみ実行対応 | Lambda含め実コンテナで実行 | 実行しない(コードは動かさずモック応答) |
| 起動・フットプリント | 約19MBバイナリ・アイドル約10MiB・起動約300ms | 約1GBイメージ・アイドル約150MiB・起動約3秒 | 約13MiBアイドル・起動約24ms | Pythonプロセス内、常駐サーバーなし |
| テスト用SDK | TypeScript/Python/Go/PHP/Java/Rust/.NETの7言語 | Python・Javaのみ | Java/Node.js/Python向けTestcontainersモジュール | 各言語のテストフレームワークから直接呼び出す形(専用アサートSDKではない) |
| 向く使い方 | AWSの実際の挙動に忠実な結合テストをCI・ローカルで無料維持したいチーム | 商用サポート・成熟したエコシステムを重視し、有料化を許容できるチーム | 多数のサービスを実コンテナで動かしつつ高速起動も欲しいチーム | Pythonのユニットテストで軽量にAWS呼び出しをモックしたいチーム(Lambda実行は不要な場合) |
LocalStackは2026年3月の方針転換以降もコミュニティ資産と商用サポートの厚さでは依然優位だが、無料のまま使い続けたいチームにとってはアカウント・トークン必須という制約が実運用上のハードルになった。MiniStack・flociも同じ経緯で生まれた無料の代替だが、公式サイト自身が「詳細な仕様は変化が速いので各リポジトリで確認してほしい」としており、fakecloudは横並びの数値比較よりも「実際のテストスイートに対して動かして比べる」ことを推奨している。flociはJava(Quarkus Native)製で47サービスをカバーし、起動速度(約24ms)を強みにしている。Motoは2015年前後から続く最も歴史の長いPython製モックライブラリで、サーバーを立てずプロセス内でAWS呼び出しをパッチする軽量さが特徴だが、Lambdaのコードを実際には実行しない。S3やオブジェクトストレージ選定の前提知識はS3とR2・Azure Blob・GCSの比較、AWS自体の基礎は中小企業向けAWS活用ガイドも参照してほしい。
移行時の注意点・向いている人
- LocalStackからの移行は「Dockerイメージ1行を差し替えるだけ」とfakecloud.dev側は説明しているが、エンドポイントURL・認証情報の設定箇所がプロジェクトに複数ある場合は漏れなく洗い出す必要がある
- AGPL-3.0はコピーレフトの強いライセンスだが、公式READMEは「開発・テスト依存として使う分にはAGPLの制約は自社アプリに及ばない」と明記している。プロダクションでfakecloud自体を改変・再配布する場合はライセンス条件を必ず確認すること
- IAM・SigV4の検証はデフォルトOFFなので、権限周りのバグを本番前に洗い出したいチームは--iam strictなどを意図的に有効化する運用ルールを決めておきたい
- Bedrockのように生成AIサービスを使うプロダクトのテストでは、フォールト注入・固定レスポンス設定を活用すると決定論的なテストを組みやすい
- サービスごとの制限事項・未実装オペレーションはparityページ(fakecloud.dev/docs/parity)で確認できるため、移行前に自社が使う主要サービスの対応状況を必ずチェックする
- CI・ローカル開発でAWS結合テストを無料かつ認証トークンなしで維持したいチーム、特にLocalStackの有料化で影響を受けたチームに向いている
よくある質問
fakecloudは無料で使えますか。
はい。AGPL-3.0のオープンソースで、アカウント登録・認証トークンとも不要、有料プランも存在しない。開発・テスト依存として使う場合、AGPLの制約は自社アプリには及ばないと公式READMEが明記している。
LocalStackからの移行は難しいですか。
公式サイトはDockerイメージの差し替え程度の作業量としており、エンドポイントURLと認証情報の設定は共通のため大きな書き換えは不要とされている。ただしプロジェクトごとに設定箇所を洗い出して確認するべきだ。
Dockerは必須ですか。
fakecloud本体の起動にDockerは不要(単一バイナリ)。ただしLambda・RDS・ElastiCache・ECS・EC2など実インフラでのステートフル実行にはDocker(デフォルト)またはKubernetes Pod(FAKECLOUD_CONTAINER_BACKEND=k8s)が必要になる。
どの言語のテストSDKに対応していますか。
TypeScript・Python・Go・PHP・Java・Rust・C#/.NETの7言語に公式テストSDKが用意されている。
IAMやSigV4の検証はデフォルトで有効ですか。
いいえ、デフォルトはOFFで設定不要にテストが通る。--verify-sigv4でSigV4署名検証、--iam soft|strictでIAM・STS・SQS・SNS・S3・KMS・Lambda・DynamoDB(Streams含む)・ELBv2・Schedulerを対象にIAM評価をオプトインで有効化できる。
MiniStackやflociとの違いは何ですか。
いずれもLocalStackの2026年3月の方針転換を受けて広まった無料の代替ツールだが、fakecloudは105サービス・7,509オペレーションと真の100%Smithy準拠を掲げる「深さ」重視、flociはJava(Quarkus Native)製で47サービス・起動約24msの速さが特徴。MiniStackは公式比較記事でも詳細仕様の変化が速いとされ、各リポジトリでの直接確認が推奨されている。
まとめ
fakecloudは、LocalStack Community Editionの有料化を受けて生まれた、無料・オープンソースのAWSエミュレータだ。単一バイナリでアカウント不要、AWS SDK・CLIをlocalhost:4566に向けるだけで105サービスを動かせ、Lambda・RDS・ECSなどは実コンテナで本当に実行される点が特徴といえる。
TypeScript・Python・Go・PHP・Java・Rust・.NETの7言語向けテストSDKで送信メールやLambda呼び出しといった副作用を直接アサートできる点、IAM・SigV4検証をオプトインで段階的に強化できる点も、実運用に近いテストを組みたいチームには実用的だ。まずはインストールスクリプトで手元に導入し、既存のLocalStack向けテストスイートをそのまま流してみるのが無理のない進め方になりそうだ。
参考リンク(一次ソース)
この記事に関連する無料ツール(登録不要・その場で結果)
お気軽にご相談ください
お問い合わせ