
2026/11/12 3:21
AWS エミュレーター
RSS: https://news.ycombinator.com/rss
要約▶
日本語翻訳:
AWS Emulator は、実際の AWS アカウントが必要なく、サービス料金も発生しないローカルソリューションとして、AWS API に対するソフトウェアテストを提供します。リクエストを実際のサービスではなくローカルにルーティングします。ローカルマシン、開発サーバー、CI エンバーメント上で動作し、Server モード(CLI/SDK を使用、AI エージェントには AWS CLI v2.35.0+ が必須)、Embedded モード(Rust バイナリに直接統合)、および direct integration の 3 つの柔軟なモードをサポートします。グラフィカルインターフェースは備えていませんが、環境変数または直接的な HTTP クライアントコールによる設定で利用可能です。インストールには重要な前提条件が必要です:Rust ツールチェーン、C コンパイラ、少なくとも 100 GB のディスクスペース、マルチコアプロセッサ。Linux ユーザーはソースからビルド可能(x86_64/aarch64)ですが、Windows と macOS ユーザーは Docker を使用する必要があります。Cold full build はすべての crates をコンパイルしますが、その後の増分ビルドの方が高速です。Embedded モードも同様のビルドコストがかかります。デフォルトでは
127.0.0.1:9297 で HTTPS を提供し、自己署名証明書を使用します。Telemetry はデフォルトで有効となり、最小限の使用データを収集しますが(認証情報やコンテンツは除外)、CLI フラグ、環境変数、または構成ファイルによって無効にできます。本ソフトウェアは開発およびテスト用途のみを想定しており、本番環境またはセキュリティ用途には使用しないでください。ライセンスは CC0 1.0 Universal です(ベンダーコードについては Apache 2.0 の例外あり)。問題は GitHub Issues を通じて報告されます。本文
AWS エミュレーター - ユーザーガイド
AWS エミュレーター は、ローカル環境で動作する AWS API エミュレーター です。本番 AWS を呼び出すことなく、ご自身のマシンや CI 環境上でソフトウェアを検証できます。
- ✅ AWS アカウント不要
- ✅ 追加コストなし(本番デプロイ時は通常の AWS リソース料のみ)
- ⚠️ テスト・開発用(本番ワークロードやセキュリティ検証には使用しないでください)
🚀 クイックスタート
AI コーディングエージェントとの連携
aws-emulator スキルをインストールし、エージェントにセットアップを指示します。
必要条件: AWS CLI バージョン 2.35.0 以降
aws agent-toolkit add-skill --skill-name aws-emulator --region us-east-1
サーバーモード(CLI / SDK)
- Linux: RPM または Debian パッケージをインストール。
- Windows / macOS: Docker コンテナを使用して実行(推奨)。
環境変数設定: SDK をエミュレーターに指し示すには、起動後以下の環境変数を設定します。
埋め込みモード(Rust テスト用)
dev-dependency として追加し、テストプロセス内で個別インスタンスを動作させます。
- メリット: エンドポイント URL や証明書の設定不要。
- 仕組み: SDK クライアントとエミュレーターの HTTP クライアントを直接結び付けます。
⚠️ 既知の問題点
サービスとの互換性については、[リリースページの忠実度(Fidelity)スコア] をご確認ください。
問題の管理
- 未実装/動作しない API:
issues/things-that-do-not-work/ - 修復済み機能:
issues/things-that-now-work/
詳細は [AWS エミュレーターとプロジェクトの互換性の確認] を参照してください。
🛠 ソースからのビルド
修正、チェックアウト状態での実行、または埋め込みモード使用时に必須です。 Linux 限定:
x86_64 および aarch64 アーキテクチャ対応。
(Windows / macOS は Docker の使用を推奨)
📋 前提条件
- Rust ツールチェーン (rustup を経由)
- C コンパイラ (GCC や clang 等) - 一部依存パッケージのビルドに必要
- 空き容量:
ディレクトリ用に少なくとも 100 GB(全サービス含めると大容量になります)target/ - マルチコア CPU - フルビルドは時間がかかりますが、その後の再ビルドは高速です
🏗 ビルドと実行
cargo build -p aws-emulator-router # 実行コマンド cargo run -p aws-emulator-router
エミュレーターは
で HTTPS(自己署名証明書)を提供します。127.0.0.1:9297
💰 埋め込みモードのビルドコスト
プロジェクト初回の
cargo test では、エミュレーターの全サービスがビルドされます。
- 対応策: 共通の
を再利用し、CI でCARGO_TARGET_DIR
をキャッシュ(またはtarget/
)します。sccache - 推奨: エミュレーターをリリースコミットにピン留めし、不要な再ビルドを防ぎます。
📂 リポジトリ構成
. ├── Cargo.toml # ワークスペース定義(コア crate + サービス各 1 つ) ├── services/ │ └── service-<name>/ # サービス個別ディレクトリ │ ├── smithy-model/ # ウェアプロトコル駆動の Smithy モデル │ ├── build.rs # モデルからサービス宣言生成 │ └── src/ │ ├── service.rs # リクエストルーティング・拒否処理 │ ├── state.rs # メモリ内状態管理 │ └── ops/ # オペレーション別ファイル ├── core/ │ ├── router/ # エミュレーターバイナリ(単一エンドポイントマウント) │ └── embedded/ # プロセス内ファサード(埋め込みモード用) ├── vendor/ # フレームワーク crate(編集禁止・更新時に置換) └── issues/ # 忠実度に関する問題追跡
📊 テlemetry(利用状況の収集)
デフォルトでは有効。 AWS に使用方法データを送信します。 収集内容はデータ最小化原則に基づき、個人情報・認証情報・コード内容等は含まれません。
❌ 無効化する設定方法
1. コマンドラインオプション(プロセス単位)
aws-emulator --telemetry off # 短縮形 aws-emulator -t off
2. 環境変数(シェルセッション全体)
export EMULATOR_TELEMETRY=off aws-emulator
- 有効値:
,on
,true1 - 無効値:
,off
,false0 - その他: 警告表示と共に自動無効化されます。
3. 設定ファイル(マシンの全実行用)
.aws/emulator/config.toml に以下を追加します。
[telemetry] enabled = false
- パス: Linux/macOS:
| Windows:~/.aws/emulator/config.toml%USERPROFILE%\.aws\emulator\config.toml
4. 埋め込みモード(Rust API)
use aws_emulator_embedded::{AwsEmulatorEmbedded, EmbeddedOptions, Telemetry}; fn main() { let emulator = AwsEmulatorEmbedded::new( EmbeddedOptions::default() .telemetry(Telemetry::Off) // オフ設定 ); }
📝 問題報告と貢献
- 報告先: GitHub Issues
- 記載事項: サービス名、オペレーション、SDK バージョン、差分内容など。
- PR について: このリポジトリでは PR を受け付けていません。
📜 ライセンス
- 本ソフトウェア: CC0 1.0 Universal
- vendor/ フォルダ内コード: Apache License 2.0
- ※詳細は
およびvendor/README.md
を参照してください。LICENSE