フォルダー、IIS、Azure、または別の宛先にアプリをデプロイする
アプリケーション、サービス、またはコンポーネントを展開することで、他のコンピューター、デバイス、サーバー、またはクラウドにインストールするために配布します。 Visual Studio で、必要なデプロイの種類に適した方法を選択します。
デプロイ タスクのヘルプを手に入れる。
選択するデプロイ オプションがわからない場合 自分に適した発行オプションを参照してください。
Azure App Service または IIS のデプロイに関する問題のヘルプについては、「Azure App Service と IISでの ASP.NET Core のトラブルシューティング」を参照してください。
新しいターゲットにデプロイするには、以前に発行プロファイルを作成したことがある場合は、前に構成したプロファイルの [発行] 画面から [新しい] を選択します。 発行ツールが表示されます。
次に、Publish ツールでデプロイ オプションを選択します。 発行オプションの詳細については、次のセクションを参照してください。
自分に適した公開オプションは何ですか?
Visual Studio 内から、アプリケーションを次のターゲットに直接発行できます。
上記のオプションは、新しい発行プロファイルを作成するときに、次の図に示すように表示されます。
より一般的なアプリケーション展開オプションのクイック ツアーについては、「展開を最初に確認する」を参照してください。
紺碧
Azure を選択すると、次のいずれかを選択できます。
- Windows、Linux 上で実行している、または Docker イメージとして実行している Azure App Service
- Azure Container Registry にデプロイされた Docker イメージ
- Azure 仮想マシン
Azure Container Apps
azure Container Apps は、開発者がコンテナー化された Web アプリケーションとサービスを作成および管理するのに役立ちます。
コンテナー化されたアプリを Azure App Service にデプロイできますが、Azure Container Apps は、コンテナー化されたアプリに対してリソースをより効率的に使用するように最適化されているため、Azure Container Apps を使用するとコストが削減されるだけでなく、その他の利点もあります。
Azure Container Apps を選択するタイミング
- アプリとサービスは、コンテナーまたは複数のコンテナーで実行されます
- 高可用性と柔軟なスケーリングが必要
- あなたのアプリは、機能が通常、Azure Functions として実装されるモジュール型のシングルタスクサービスに分割される、マイクロサービスアーキテクチャパターンに適しています。 たとえば、個別のジョブとして実行される、イベントに応答する、キューまたはトリガーからの要求を処理する単一タスク サービスのセットなどです。
- コンテナー オーケストレーション (Kubernetes) の利点が必要ですが、Kubernetes を直接管理する必要はありません。 (コンテナー化されたサービスをサポートする Kubernetes インフラストラクチャを詳細に制御する場合は、Azure Kubernetes Service (AKS)の使用を検討してください。
Azure App Service
Azure App Service を使用すると、開発者はインフラストラクチャを維持することなく、スケーラブルな Web アプリケーションとサービスをすばやく作成できます。 App Service は Azure のクラウドでホストされている仮想マシン上で実行されますが、それらの仮想マシンは管理されます。 App Service 内の各アプリには、一意の *.azurewebsites.net URL が割り当てられます。Free 以外のすべての価格レベルでは、カスタム ドメイン名をサイトに割り当てることができます。
App Service のコンピューティング能力を決定するには、含まれている App Service の 価格レベルまたはプラン を選択します。 価格レベルを変更せずに、複数の Web アプリ (およびその他のアプリの種類) で同じ App Service を共有できます。 たとえば、開発、ステージング、運用の Web アプリを同じ App Service で一緒にホストできます。
Azure App Service を選択するタイミング
- インターネット経由でアクセスできる Web アプリケーションをデプロイする場合。
- 再デプロイを必要とせずに、需要に応じて Web アプリケーションを自動的にスケーリングする必要があります。
- サーバー インフラストラクチャ (ソフトウェア更新プログラムを含む) を維持する必要はありません。
- Web アプリケーションをホストするサーバーでは、コンピューター レベルのカスタマイズは必要ありません。
独自のデータセンターまたはその他のオンプレミス コンピューターで Azure App Service を使用する場合は、Azure Stackを使用して使用できます。
App Service への発行の詳細については、次を参照してください。
- クイックスタート - Azure App Service に発行する
- クイック スタート - ASP.NET Core を Linuxに発行します。
- ASP.NET Core アプリを Azure App Service に発行する
- Azure App Service と IISの ASP.NET Core のトラブルシューティングを行います。
Azure WebJobs
Azure WebJobs は App Service を通じてサポートされています。 を参照して、Visual Studioを使用した WebJobs の開発とデプロイ方法を確認してください。
Azure WebJobs を選択するタイミング
- ワーカー プロセスは、ユーザーの操作なしで実行できる計算です。
- ジョブはオンデマンドで、イベントによってトリガーされるか、または継続的です。
- ジョブは Windows または Linux 上の .NET Core (Visual Studio 17.12 以降) で実行されます。
同様のシナリオのもう 1 つのオプションは、Azure Functions です。 適切なオプションを選択するには、「Azureで適切な統合および自動化サービスを選択する」を参照してください。
Azure Container Registry
Azure Container Registry を使用すると、すべての種類のコンテナー デプロイに対して、プライベート レジストリ内の Docker コンテナー イメージと成果物をビルド、格納、および管理できます。
Azure Container Registry を選択するタイミング
- 既存の Docker コンテナーの開発およびデプロイ パイプラインがある場合。
- Azure で Docker コンテナー イメージをビルドする場合。
詳細については、以下を参照してください。
- ASP.NET コンテナーをコンテナー レジストリ にデプロイする
Azure 仮想マシン
Azure Virtual Machines (VM) を使用すると、クラウド内の任意の数のコンピューティング リソースを作成および管理できます。 VM 上のすべてのソフトウェアと更新プログラムの責任を負うことで、アプリケーションで必要なだけカスタマイズできます。 仮想マシンにはリモート デスクトップ経由で直接アクセスできます。各仮想マシンは、必要に応じて割り当てられた IP アドレスを維持します。
仮想マシンでホストされているアプリケーションをスケーリングするには、需要に応じて追加の VM を作成し、必要なソフトウェアをデプロイする必要があります。 この追加レベルの制御により、異なるグローバル リージョンで異なる方法でスケーリングできます。 たとえば、アプリケーションがさまざまな地域オフィスの従業員にサービスを提供している場合、それらのリージョンの従業員数に応じて VM をスケーリングでき、コストが削減される可能性があります。
詳細については、Visual Studio の [カスタム] オプションを使用してデプロイ ターゲットとして使用できる Azure App Service、Azure Virtual Machines、およびその他の Azure サービス間の 詳細な比較を参照してください。
Azure Virtual Machines を選択するタイミング
- 割り当てられた IP アドレスの有効期間を完全に制御して、インターネット経由でアクセスできる Web アプリケーションをデプロイする必要があります。
- 特殊なデータベース システム、特定のネットワーク構成、ディスク パーティションなどの追加ソフトウェアを含む、サーバーでコンピューター レベルのカスタマイズが必要です。
- Web アプリケーションのスケーリングを細かく制御する必要があります。
- その他の理由で、アプリケーションをホストしているサーバーに直接アクセスする必要があります。
独自のデータセンターやその他のオンプレミス コンピューターで Azure Virtual Machines を使用する場合は、Azure Stackを使用して使用できます。
Docker コンテナー レジストリ
アプリケーションで Docker を使用している場合は、コンテナー化されたアプリケーションを Docker コンテナー レジストリに発行できます。
Docker Container Registry を選択するタイミング
- コンテナー化されたアプリケーションをデプロイする
詳細については、次を参照してください。
- ASP.NET コンテナーをコンテナー レジストリ にデプロイする
- Docker Hub へのデプロイ
DevTest Labs
Azure DevTest Labs にデプロイする場合は、発行ツールのフォルダーデプロイ オプションを使用します。
完全な手順については、「Azure DevTest Labs VMでのテスト用にアプリを発行する」を参照してください。 リンクされた記事では、フォルダーの発行手順は .NET Core/.NET 5 以降に適用されます。 残りの手順は、.NET と .NET Framework の両方に適用されます。 .NET Framework ClickOnce アプリの場合は、発行ウィザード を使用してフォルダーに発行できます。
フォルダー
ファイル システムへの展開とは、アプリケーションのファイルを自分のコンピューター上の特定のフォルダーにコピーすることを意味します。 フォルダーへの展開は、テスト目的や、コンピューターがサーバーも実行している場合に限られた数のユーザーが使用するためにアプリケーションを展開するために最もよく使用されます。 ターゲット フォルダーがネットワーク上で共有されている場合、ファイル システムに展開すると、Web アプリケーション ファイルを特定のサーバーに展開する可能性がある他のユーザーが使用できるようになります。
Visual Studio 2019 16.8 以降、フォルダー ターゲットには ClickOnce を使用して .NET Windows アプリケーションを発行する機能が含まれています。
ClickOnce を使用して .NET Windows デスクトップ プロジェクト (.NET Core 3.1、.NET 5 以降) を発行する場合は、「ClickOnce を使用した .NET Windows アプリケーションの配置参照してください。
サーバーを実行しているローカル コンピューターは、構成方法と接続先のネットワークに応じて、インターネットまたはイントラネットを介してアプリケーションを使用できます。 (コンピューターをインターネットに直接接続する場合は、外部のセキュリティ上の脅威から保護するように特に注意してください)。これらのマシンを管理するため、ソフトウェアとハードウェアの構成を完全に制御できます。
何らかの理由 (マシン アクセスなど) で Azure App Service や Azure Virtual Machines などのクラウド サービスを使用できない場合は、独自のデータセンターで Azure Stack を使用できます。 Azure Stack を使用すると、Azure App Service と Azure Virtual Machines を介してコンピューティング リソースを管理および使用しながら、すべてをオンプレミスに維持することができます。
ファイル システムの展開を選択するタイミング
アプリケーションは、他のユーザーが別のサーバーに展開するファイル共有にのみ展開する必要があります。
ClickOnce を使用して .NET Windows アプリケーションを配置する場合
ローカル テストデプロイのみが必要です。
別のデプロイ ターゲットに送信する前に、アプリケーション ファイルを個別に調べて変更する可能性があります。
詳細については、「クイック スタート -ローカル フォルダーにデプロイする」を参照してください。
ClickOnce を使用した .NET Windows アプリケーションの配置の詳細については、「ClickOnce を使用した .NET Windows アプリケーションの配置」を参照してください。
設定を選択するためのその他のヘルプについては、次を参照してください。
FTP/FTPS サーバー
FTP/FTPS サーバーを使用すると、Azure 以外のサーバーにアプリケーションをデプロイできます。 他のクラウド サービス上のサーバーを含め、アクセス権を持つファイル システムまたはその他のサーバー (インターネットまたはイントラネット) にデプロイできます。 Web デプロイ (ファイルまたは.ZIP) と FTP を使用できます。
FTP/FTPS サーバーを選択すると、Visual Studio によってプロファイル名の入力が求められた後、ターゲット サーバーまたは場所、サイト名、資格情報などの追加 接続 情報が収集されます。 [設定] タブで、次の動作を制御できます。
- デプロイする構成。
- コピー先から既存のファイルを削除するかどうかを指定します。
- 発行中にプリコンパイルするかどうかを指定します。
- App_Data フォルダー内のファイルを展開から除外するかどうかを指定します。
Visual Studio では任意の数の FTP/FTPS デプロイ プロファイルを作成できるため、さまざまな設定でプロファイルを管理できます。
FTP/FTPS サーバーのデプロイを選択するタイミング
- URL を介してアクセスできる Azure 以外のプロバイダーでクラウド サービスを使用している。
- Visual Studio 内で使用するもの以外の資格情報、または Azure アカウントに直接関連付けられている資格情報を使用してデプロイする必要があります。
- デプロイするたびにターゲットからファイルを削除する必要があります。
Web サーバー (IIS)
IIS Web サーバーを使用すると、Azure 以外の Web サーバーにアプリケーションをデプロイできます。 他のクラウド サービス上のものを含め、アクセス権を持つ IIS サーバー (インターネットまたはイントラネット) に展開できます。 Web デプロイまたは Web デプロイパッケージと一緒に使用できます。
IIS Web サーバーを選択すると、Visual Studio によってプロファイル名の入力が求められた後、ターゲット サーバーまたは場所、サイト名、資格情報などの追加 接続 情報が収集されます。 [設定] タブで、次の動作を制御できます。
- デプロイする構成。
- コピー先から既存のファイルを削除するかどうかを指定します。
- 発行中にプリコンパイルするかどうかを指定します。
- App_Data フォルダー内のファイルを展開から除外するかどうかを指定します。
Visual Studio で任意の数の IIS Web サーバー展開プロファイルを作成できるため、さまざまな設定でプロファイルを管理できます。
Web サーバー (IIS) の展開を選択するタイミング
- IIS を使用して、URL を介してアクセスできるサイトまたはサービスを発行しています。
- Visual Studio 内で使用するもの以外の資格情報、または Azure アカウントに直接関連付けられている資格情報を使用してデプロイする必要があります。
- デプロイするたびにターゲットからファイルを削除する必要があります。
詳細については、「クイック スタート - Web サイトに展開する」を参照してください。
IIS 上のコア ASP.NET トラブルシューティングの詳細については、「Azure App Service と IISの ASP.NET Core のトラブルシューティング」を参照してください。
プロファイルのインポート
IIS または Azure App Service に発行するときにプロファイルをインポートできます。 発行設定ファイル (*.publishsettings) を用いてデプロイを構成できます。 発行設定ファイルは、IIS または Azure App Service によって作成されるか、手動で作成してから Visual Studio にインポートできます。
発行設定ファイルを使用すると、展開の構成を簡略化でき、チーム環境での作業と各展開プロファイルの手動構成の方が効果的です。
インポート プロファイルを選択するタイミング
- IIS に発行していて、展開の構成を簡略化する必要があります。
- IIS または Azure App Service に発行していて、再利用したり、チーム メンバーが同じサービスに発行したりするためのデプロイ構成を高速化したいと考えています。
詳細については、次を参照してください。
- 発行設定をインポートして IIS に展開する
- 発行設定をインポートして Azure にデプロイする
.NET の展開設定を構成する
設定を選択するためのその他のヘルプについては、次を参照してください。
次の手順
チュートリアル:
- 発行ツールを使用して .NET Core アプリケーションをデプロイ
- ASP.NET コア アプリを Azure に発行する
- Visual C++ での 配置
- UWP アプリ を展開する
- Web Deploy を使用して Node.js アプリを Azure に発行する