よくある質問 (FAQ)
このページでは、Aspire とは何か、ワークフローにどう適合するのか、何ができるのか、そして他のテクノロジとどう違うのかについて、よくある質問に答えます。
Aspire とは何ですか?
Section titled “Aspire とは何ですか?”Aspire は、任意の分散アプリを構成、デバッグ、デプロイするための、エージェント対応かつコードファーストのツールです。言語、スタック、クラウドを問わず、サービスの構築、実行、デバッグ、デプロイをより簡単にします。これは github.com/microsoft/aspire で公開されている無償のオープンソースです。
その中心的な考え方は AppHost です: これは、多数の設定ファイルに情報を分散させる代わりに、サービス、リソース、依存関係、エンドポイント、パラメーター、関係性をコードで宣言する場所です。AppHost は C# または TypeScript で記述できるため、Aspire は複数言語を扱うチームに特に適しています。
詳しくはこちら: 最初の Aspire アプリを構築する
Aspire はどのような課題を解決しますか?
Section titled “Aspire はどのような課題を解決しますか?”Aspire は、複数サービス開発を理解しやすく、運用しやすくします。接続されたサービスを扱う際の摩擦を減らします。アプリをモデル化し、関連サービスをまとめて起動し、依存関係を接続し、テレメトリを確認し、開発からデプロイまでのワークフローで設定の乖離を減らすための共通の場所をチームに提供します。
AppHost とは何で、なぜそれほど重要なのですか?
Section titled “AppHost とは何で、なぜそれほど重要なのですか?”AppHost は Aspire のコントロールセンターです。分散アプリを構成するすべての要素の地図であり、プロジェクト、コンテナー、データベース、エンドポイント、ボリューム、パラメーター、そしてそれらの関係性を含む、アプリ アーキテクチャの 単一の信頼できる情報源 です。同じ AppHost モデルが、インナーループ開発、デプロイ、CI/CD ワークフロー全体で利用されます。
詳しくはこちら: AppHost とは?
Aspire は最初から具体的に何を提供してくれますか?
Section titled “Aspire は最初から具体的に何を提供してくれますか?”Aspire は、特に有用な 3 つの機能をまとめて提供します:
- アプリのリソースと関係性に対する コードファースト オーケストレーション。
- ログ、メトリクス、トレース、リソース健全性のための ダッシュボード。
- 作成、実行、公開、デプロイ、調査、トラブルシューティングに対応する ライフサイクル志向かつエージェント志向の CLI。
ライフサイクルのすべての段階は、人間でもエージェントでも確認および自動化できます。
詳しくはこちら: Aspire ダッシュボード概要、CLI 概要、統合ギャラリー
Aspire はどのような統合を提供していますか?
Section titled “Aspire はどのような統合を提供していますか?”Aspire は、実システムで頻出する多くの構成要素に対する統合を提供します: データベース、キャッシュ、メッセージング システム、ストレージ サービス、可観測性バックエンド、クラウド リソースなどです。これらの統合により、AppHost でリソースをモデル化し、参照でサービスを接続し、接続文字列、URL、環境変数などの適切な設定を自動注入できます。
詳しくはこちら: 統合ギャラリー、aspire add
Aspire の統合は既存アプリにどう適合しますか?
Section titled “Aspire の統合は既存アプリにどう適合しますか?”統合は加算的です。アプリが新規であっても、すでに本番稼働していても、システムの必要に応じて 1 つずつ導入できます。一般的なパターンは、PostgreSQL、Redis、メッセージ ブローカーなどの共有リソースを AppHost でモデル化し、それを必要なサービスから参照することです。
詳しくはこちら: 統合ギャラリー、aspire init
Aspire ダッシュボードとは何ですか?
Section titled “Aspire ダッシュボードとは何ですか?”ダッシュボードは開発者体験の中で最も目に見える要素ですが、それが全体ではありません。Aspire アプリを実行すると、ダッシュボードはリソース、ログ、メトリクス、トレース、設定、健全性をリアルタイムで可視化し、システムの挙動を理解できるようにします。
詳しくはこちら: Aspire ダッシュボード概要
Aspire を使うにはアプリを書き直す必要がありますか?
Section titled “Aspire を使うにはアプリを書き直す必要がありますか?”いいえ。 Aspire は、1 つのフレームワークや 1 つのクラウドへの書き換えを求めるのではなく、すでに利用している技術を補完するよう設計されています。C#、Python、JavaScript、Node.js、Go、Java など多言語のアプリをオーケストレーションでき、TypeScript または C# の AppHost をサポートします。デプロイでは、1 つの独自ホスティング モデルを強制するのではなく、構成済みターゲットと統合を通じて動作します。
詳しくはこちら: AppHost とは?、デプロイ概要
Aspire は .NET アプリ専用ですか?
Section titled “Aspire は .NET アプリ専用ですか?”いいえ。 .NET は Aspire で特に強力な体験を提供しますが、アプリ モデルは 1 つのフレームワークやランタイムに限定されません。Aspire は複数スタックにまたがるサービス調整を目的に設計されており、TypeScript の AppHost によって既存の JavaScript / TypeScript アプリにも自然に適合します。
詳しくはこちら: TypeScript AppHost プロジェクト構成
AppHost を TypeScript で書けますか?
Section titled “AppHost を TypeScript で書けますか?”はい。 TypeScript の AppHost (apphost.mts) は、既存の JavaScript / TypeScript アプリケーション向けの第一級オプションです。この体験では、aspire init --language typescript のようなコマンドや、addNodeApp、addViteApp、addJavaScriptApp のような AppHost API を利用します。
詳しくはこちら: aspire init、TypeScript AppHost プロジェクト構成
Aspire は新規プロジェクト専用ですか?
Section titled “Aspire は新規プロジェクト専用ですか?”いいえ。 Aspire は段階的に導入できます。既存コードベースに AppHost を追加し、すでにあるリソースを登録し、すべてを一度に書き直すことなく、段階的にシステムを Aspire オーケストレーション下に置けます。
詳しくはこちら: aspire init
Aspire は Docker Compose とどう違いますか?
Section titled “Aspire は Docker Compose とどう違いますか?”最も端的で確かな答えは次のとおりです: Docker Compose はコンテナー中心の YAML、Aspire はアプリ モデル中心のコードです。 Compose はコンテナーとその実行時設定の記述に焦点を当てます。Aspire は分散アプリ全体とその関係性の記述に焦点を当て、その上でオーケストレーション、サービス検出、統合、テレメトリ、ダッシュボードによる洞察を重ねます。
とはいえ、Docker は Aspire がサポートする多数の計算環境の 1 つであり、Docker Compose 成果物を公開することもできます。
詳しくはこちら: Docker 統合、Aspire アプリ ライフサイクル ガイド
「agent-ready」とはどういう意味ですか?
Section titled “「agent-ready」とはどういう意味ですか?”Aspire は、AI エージェントや Copilot と、人間の開発者と同じくらい自然に連携できるように設計されています。CLI は対話的でありつつ機械可読で、組み込みの MCP (Model Context Protocol) サーバーがアプリ リソース、ログ、トレース、ドキュメントを AI エージェントに公開します。AppHost はコードファーストで構造化されたモデルであり、散在した YAML や設定ファイルではないため、エージェントはアプリ トポロジを読み取り、トレースから問題を診断し、アーキテクチャをプログラム的に変更できます。aspire agent コマンドは AI エージェント環境の構成を管理します。
詳しくはこちら: MCP ツール、aspire agent
Aspire はどの言語とスタックをサポートしますか?
Section titled “Aspire はどの言語とスタックをサポートしますか?”Aspire はマルチ言語プラットフォームです。AppHost は C# または TypeScript で記述できます。サービスは任意の言語で記述できます:
- C# / .NET — 第一級のプロジェクト参照、サービス既定値、統合
- Python — uv/pip/venv パッケージ管理と Dockerfile 自動生成を備えた
AddPythonApp、AddUvicornApp、AddPythonModule - JavaScript / TypeScript — npm/yarn/pnpm 自動検出を備えた
AddJavaScriptApp、AddViteApp、AddNodeApp - Go, Java, Rust — コミュニティ ツールキット統合とコード生成パッケージ経由
- 任意のコンテナー化アプリ — コンテナーで動作するものはすべて AppHost に追加可能
データベース リソースは接続文字列を複数形式 (URI、JDBC、個別プロパティ) で自動公開するため、どの言語でも独自配線なしで接続できます。
詳しくはこちら: 統合ギャラリー
Aspire は Pulumi、Terraform、Bicep と比べてどうですか?
Section titled “Aspire は Pulumi、Terraform、Bicep と比べてどうですか?”これらのツールは競合ではなく、補完関係 と捉えるのが最適です:
- Pulumi / Terraform / Bicep は、インフラ リソースとクラウド環境のプロビジョニングおよび管理に焦点を当てます。
- Aspire は、アプリケーションそのもののモデリングに焦点を当てます: サービス、依存関係、オーケストレーション、検出、テレメトリ、開発者ワークフロー。
実践的には次の整理が有効です: Aspire で アプリケーション トポロジ を構築・実行・デバッグ・デプロイし、IaC ツールで 環境とプラットフォーム リソース をプロビジョニングします。
詳しくはこちら: Aspire アプリ ライフサイクル ガイド
Aspire は Kubernetes とどう違いますか?
Section titled “Aspire は Kubernetes とどう違いますか?”Kubernetes は本番向けオーケストレーション プラットフォームです。Aspire は、サービスを記述、接続、観測するのを支援するアプリケーション モデルと開発者ワークフローです。Aspire は Kubernetes の 1 対 1 の置き換えではなく、Kubernetes をデプロイ先として対象化し、実際のデプロイ ワークフローに接続できるアプリケーション構成体験です。
詳しくはこちら: デプロイ概要
Aspire は Dapr や他のサービス ランタイム フレームワークとどう違いますか?
Section titled “Aspire は Dapr や他のサービス ランタイム フレームワークとどう違いますか?”Dapr は pub/sub、バインディング、ステート、サービス呼び出しなどのランタイム ビルディング ブロックを提供します。Aspire はアプリケーション構成、オーケストレーション、統合配線、可観測性に焦点を当てます。両者は課題の異なる層を扱っており、組み合わせが有効な場合には併用できます。
詳しくはこちら: Dapr 統合、コミュニティ ディスカッション: Aspire + Dapr、コミュニティ ディスカッション: Aspire + Kubernetes
Aspire は Docker Compose、Kubernetes、または既存のデプロイ プラットフォームを置き換えますか?
Section titled “Aspire は Docker Compose、Kubernetes、または既存のデプロイ プラットフォームを置き換えますか?”いいえ。 Aspire は分散アプリのモデル化、実行、観測、公開、デプロイを支援しますが、実際の計算環境とデプロイ ターゲットは、プラットフォーム戦略に合うものを引き続き選択します。
詳しくはこちら: デプロイ概要、aspire deploy
Aspire は開発から本番までのライフサイクルにどう適合しますか?
Section titled “Aspire は開発から本番までのライフサイクルにどう適合しますか?”Aspire は一貫したライフサイクルをサポートします:
- インナーループ開発とデバッグのための
aspire run/start。 - 構成済み計算環境へのデプロイのための
aspire deploy。 - リリース成果物とデプロイ ワークフローのための
aspire publishと関連 CI/CD ステップ。
重要な考え方は、同じ AppHost 設定がこれらの段階を通して流れることです。
詳しくはこちら: Aspire アプリ ライフサイクル ガイド、aspire run、aspire deploy、aspire publish
Aspire はホット リロードをサポートしていますか?
Section titled “Aspire はホット リロードをサポートしていますか?”Aspire は defaultWatchEnabled 機能フラグによるオプトインの watch モードをサポートします。AppHost の変更後に AppHost 管理アプリケーションを再起動することで、C# と TypeScript の両方の AppHost 言語をサポートします。現在は C# プロジェクト リソースもこの設定で制御されます。他のリソースでは、AppHost を実行したまま、対象リソースのフレームワーク、ランタイム、Aspire CLI アクション、またはダッシュボード アクションを使って、リソース固有のリロード、再起動、リビルドを行ってください。
詳しくはこちら: ホット リロードと watch
Aspire 導入時に重要なコマンドは何ですか?
Section titled “Aspire 導入時に重要なコマンドは何ですか?”最短で有用な一覧だけを挙げるなら、まずは次のとおりです:
aspire new— 新しい Aspire アプリを作成aspire init— 既存コードベースで Aspire を初期化aspire init --language typescript— JS/TS アプリ向けに TypeScript AppHost を作成aspire add— ホスティング統合を追加aspire run/start— 開発向けに AppHost を実行aspire deploy— 構成済みターゲットへデプロイaspire publish— デプロイ成果物を生成aspire logsとaspire otel— アプリのログと分散トレースを確認aspire docsとaspire doctor— 確認、学習、トラブルシューティング
詳しくはこちら: CLI 概要、aspire init、aspire run
デプロイ マニフェストはまだ推奨されていますか?
Section titled “デプロイ マニフェストはまだ推奨されていますか?”いいえ。 デプロイ マニフェストは非推奨です。現在は aspire publish と aspire deploy を、サポートされるデプロイ ターゲットおよびワークフローとともに使うのが推奨される経路です。
詳しくはこちら: aspire publish、aspire deploy
過剰な主張をせずに、どうすれば Aspire を自信を持って説明できますか?
Section titled “過剰な主張をせずに、どうすれば Aspire を自信を持って説明できますか?”次のような表現を推奨します:
- 「Aspire は、任意の分散アプリを構成、デバッグ、デプロイするための、エージェント対応かつコードファーストのツールです。」
- 「開発からデプロイまで 1 つのアプリ モデルで管理することで、環境間の設定乖離を減らせます。」
- 「組み込み可観測性を設定不要で利用可能: ログ、トレース、メトリクス、ヘルスチェックを最初から提供。」
- 「任意の言語、任意のスタックに対応: AppHost で定義すれば Aspire が接続を構成します。」
- 「Aspire は既存のツールやクラウドを置き換えるのではなく、それらと連携して動作します。」
次のような曖昧な誇張や誤った主張は避けてください:
- 「Aspire はプラットフォームのすべてを置き換える。」
- 「Aspire は単なるダッシュボードだ。」
- 「Aspire は新規の .NET アプリでしか動かない。」