

 AWS SDK for .NET V3 がメンテナンスモードになりました。

[AWS SDK for .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html) に移行することをお勧めします。移行方法の詳細と情報については、[メンテナンスモードのお知らせ](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/)を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アプリケーションのAWSへのデプロイ
<a name="deploying"></a>

開発マシン上でクラウド ネイティブ .NET Core アプリケーションまたはサービスを開発した後、それを AWS にデプロイする必要があります。これは、AWS マネジメントコンソールまたは CloudFormation や AWS Cloud Development Kit (AWS CDK) などの特定のサービスを使用して行うことができます。また、デプロイメント用に作成された AWS ツールを使用することもできます。これらのツールを使用すると、次のことを実行できます。

## .NET CLI からデプロイする
<a name="deploying-from-net-cli"></a>

.NET CLI 用の次の AWS ツールを使用して、アプリケーションを AWS にデプロイできます。
+ [.NET CLI 用の AWS デプロイツール](https://aws.github.io/aws-dotnet-deploy/) - [AWS App Runner](https://aws.amazon.com/apprunner/)、[Amazon Elastic Container Service (Amazon ECS)](https://aws.amazon.com/ecs/)、および [AWS Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/) へのデプロイをサポートします。
+ [.NET CLI 用 AWS Lambda ツール](https://www.nuget.org/packages/Amazon.Lambda.Tools) - AWS Lambda プロジェクトのデプロイをサポートします。

## IDE ツールキットからデプロイする
<a name="deploying-from-toolkits"></a>

AWS ツールキットを使用して、任意の IDE から直接アプリケーションをデプロイできます。
+ **[AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/deployment-chapt.html)**
**注記**  
ツールキットの「AWS に公開」機能は、.NET CLI の AWS Deploy Tool と同じ機能を公開します。詳細については、*AWS Toolkit for Visual StudioDD ユーザー ガイド*の「[AWS に公開](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/publish-experience.html)」を参照してください。
+ **[AWS Toolkit for JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html)**

  「[AWS サーバーレス アプリケーションの操作](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-sam)」および「[AWS App Runner の操作](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/key-tasks.html#key-tasks-app-runner)」を参照してください。
+ **[AWS Toolkit for VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html)**

  「[サーバーレス アプリケーションの操作](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/serverless-apps.html)」および「[AWS App RunnerBB の使用](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/using-apprunner.html)」を参照してください。
+ **[AWS Toolkit for Azure DevOps](https://docs.aws.amazon.com/vsts/latest/userguide/tutorial-eb.html)**

## ユースケース
<a name="w2aac15b9"></a>

以下のセクションでは、.NET CLI を使用してそれらのアプリケーションをデプロイする方法など、特定の種類のアプリケーションのユースケースシナリオについて説明します。
+ [ASP.NET Core Apps](deploying-asp-net.md)
+ [.NET コンソールアプリ](deploying-console.md)
+ [Blazor WebAssembly アプリ](deploying-blazor.md)
+ [AWS Lambda プロジェクト](deploying-lambda.md)

# ASP.NET Core Apps
<a name="deploying-asp-net"></a>

.NET CLI [AWS 展開ツール](https://aws.github.io/aws-dotnet-deploy/) は、ASP.NET アプリケーションの展開に役立ち、展開プロセスをガイドします。.NET CLI 用のインタラクティブなツールで、最小限の AWS の知識で.NET アプリケーションをデプロイできます。

デプロイツールには、次の機能があります。
+ **アプリケーションに適したコンピューティングの推奨事項** - コンピューティングに関する推奨事項を確認して、どの AWS コンピューティングがアプリケーションに最も適しているかを調べてください。
+ **Dockerfile 生成** - このツールは、必要に応じて Dockerfile を生成するか、既存の Dockerfile を使用します。
+ **自動パッケージングとデプロイ** — ツールはデプロイアーティファクトを構築し、生成されたAWS CDK デプロイプロジェクトを使用してインフラストラクチャーをプロビジョニングし、選択した AWS コンピュートにアプリケーションをデプロイします。
+ **繰り返し可能で共有可能なデプロイ** — 特定のユースケースに合わせてAWS CDK デプロイプロジェクトを生成および変更できます。プロジェクトをバージョン管理し、チームと共有して反復可能なデプロイメントを行うこともできます。
+ ****.NETのための AWS CDK 学習を支援 - このツールは、AWS CDK など、その基盤となる AWS ツール を少しづつ学習できます。

[AWS デプロイ ツール](https://aws.github.io/aws-dotnet-deploy/) は、次の AWS サービスへの ASP.NET Core アプリケーションのデプロイをサポートしています。
+ **[AWS Fargate](https://aws.amazon.com/fargate/) を使用した [Amazon ECS サービス](https://aws.amazon.com/ecs/)** - AWS Fargate サーバーレス コンピューティング エンジンによって管理されるコンピューティング能力を使用して、Amazon Elastic Container Service (Amazon ECS) への Web アプリケーションのデプロイをサポートします。
+ **[AWS App Runner](https://aws.amazon.com/apprunner/)** - フルマネージド型サービスへのデプロイをサポートします。これにより、コンテナ化されたウェブアプリケーションや API を大規模にデプロイできます。インフラストラクチャの経験は必要ありません。
+ **[AWS Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/)** - デベロッパーが Web アプリケーションと API をフルマネージド環境に大規模に展開することが容易なサービスへの展開をサポートします。インフラストラクチャの経験は必要ありません。

詳細については、[ツールの概要](https://aws.github.io/aws-dotnet-deploy/) をご覧ください。そこから始めるには、**[ドキュメンテーション]**、**[はじめに]** に移動し、**[[インストール方法]](https://aws.github.io/aws-dotnet-deploy/docs/getting-started/installation/)** を選択してインストール手順を確認してください。

# .NET コンソールアプリ
<a name="deploying-console"></a>

.NET CLI 用の [AWS Deploy Tool](https://aws.github.io/aws-dotnet-deploy/) では、.NET コンソールアプリケーションをサービスとして、またはスケジュールされたタスクをコンテナイメージとして Linux にデプロイする方法を確認できます。アプリケーションに Dockerfile がない場合は、ツールが自動的に生成します。それ以外の場合は、既存の Dockerfile が使用されます。

デプロイツールには、次の機能があります。
+ **アプリケーションに適したコンピューティングの推奨事項** - コンピューティングに関する推奨事項を確認して、どの AWS コンピューティングがアプリケーションに最も適しているかを調べてください。
+ **Dockerfile 生成** - このツールは、必要に応じて Dockerfile を生成するか、既存の Dockerfile を使用します。
+ **自動パッケージングとデプロイ** — ツールはデプロイアーティファクトを構築し、生成されたAWS CDK デプロイプロジェクトを使用してインフラストラクチャーをプロビジョニングし、選択した AWS コンピュートにアプリケーションをデプロイします。
+ **繰り返し可能で共有可能なデプロイ** — 特定のユースケースに合わせてAWS CDK デプロイプロジェクトを生成および変更できます。プロジェクトをバージョン管理し、チームと共有して反復可能なデプロイメントを行うこともできます。
+ **.NETのための AWS CDK 学習を支援** - このツールは、AWS CDK など、その基盤となる AWS ツール を少しづつ学習できます。

[AWS Deploy Tool](https://aws.github.io/aws-dotnet-deploy/) では、.NET コンソールアプリケーションを以下の AWS サービスにデプロイできます。
+ **[AWS Fargate](https://aws.amazon.com/fargate/) を使用した [Amazon ECS サービス](https://aws.amazon.com/ecs/)** - AWS Fargate サーバーレス コンピューティング エンジンによって管理されるコンピューティング能力を使用して、Amazon Elastic Container Service (Amazon ECS) へのサービス (バックグラウンド プロセッサなど) としての .NET アプリケーションのデプロイをサポートします。
+ **[AWS Fargate](https://aws.amazon.com/fargate/) を使用した [Amazon ECS のスケジュールされたタスク](https://aws.amazon.com/ecs/)** - AWS Fargate サーバーレス コンピューティング エンジンによって管理されるコンピューティング能力を使用して、Amazon ECS へのスケジュールされたタスク (1 日の終わりのプロセスなど) として .NET アプリケーションのデプロイをサポートします。

詳細については、[ツールの概要](https://aws.github.io/aws-dotnet-deploy/)をご覧ください。そこから始めるには、[**ドキュメンテーション**]、[**はじめに**] に移動し、[**[インストール方法](https://aws.github.io/aws-dotnet-deploy/docs/getting-started/installation/)**] を選択してインストール手順を確認してください。

# Blazor WebAssembly アプリ
<a name="deploying-blazor"></a>

.NET CLI 用の[AWS デプロイツール](https://aws.github.io/aws-dotnet-deploy/) を使用すると、Amazon CloudFront を使用してコンテンツネットワーク配信に Blazor WebAssembly アプリケーションを Amazon S3 でホストできます。アプリケーションはウェブホスティング用の S3 バケットにデプロイされます。このツールは S3 バケットを作成して設定し、Blazor アプリケーションをそのバケットにアップロードします。

デプロイツールには、次の機能があります。
+ **自動パッケージングとデプロイ** — ツールはデプロイアーティファクトを構築し、生成されたAWS CDKデプロイプロジェクトを使用してインフラストラクチャーをプロビジョニングし、選択したAWSコンピュートにアプリケーションをデプロイします。
+ **繰り返し可能で共有可能なデプロイ** — 特定のユースケースに合わせてAWS CDK デプロイプロジェクトを生成および変更できます。プロジェクトをバージョン管理し、チームと共有して反復可能なデプロイメントを行うこともできます。
+ ****.NETのための AWS CDK 学習を支援 - このツールは、AWS CDK など、その基盤となる AWS ツール を少しづつ学習できます。

詳細については、[ツールの概要](https://aws.github.io/aws-dotnet-deploy/)をご覧ください。そこから始めるには、**[ドキュメンテーション]**、**[はじめに]** に移動し、**[[インストール方法]](https://aws.github.io/aws-dotnet-deploy/docs/getting-started/installation/)** を選択してインストール手順を確認してください。

# AWS Lambda プロジェクト
<a name="deploying-lambda"></a>

AWS Lambda は、サーバーのプロビジョニングや管理を行わずにコードを実行できるようにするコンピューティングサービスです。可用性の高いコンピューティングインフラストラクチャでコードを実行し、コンピューティングリソースの管理をすべて担当します。Lambda の詳細については、「 *AWS Lambda デベロッパーガイド*」の[AWS 「Lambda とは](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)」を参照してください。

.NET コアコマンドラインインターフェイス (CLI) を使用して、Lambda 関数をデプロイできます。

**Topics**
+ [前提条件](#lambda-cli-prereqs)
+ [使用できる Lambda コマンド](#listing-the-lam-commands-available-through-the-cli)
+ [デプロイ手順](#publishing-a-net-core-lam-project-from-the-net-core-cli)

## 前提条件
<a name="lambda-cli-prereqs"></a>

.NET CLI を使用して Lambda 関数をデプロイする前に、次の前提条件を満たす必要があります。
+ .NET CLI がインストールされていることを確認します。例: `dotnet --version`。必要に応じて [https://dotnet.microsoft.com/download](https://dotnet.microsoft.com/download) にアクセスしてインストールしてください。
+ .NET CLI をセットアップして Lambda を操作します。その方法の説明については、「AWS Lambda デベロッパーガイド**」の「[.NET Lambda Global CLI を使用する](https://docs.aws.amazon.com//lambda/latest/dg/csharp-package-cli.html)」を参照してください。その手順に含まれるデプロイコマンドは次のとおりです。

  ```
  dotnet lambda deploy-function MyFunction --function-role role
  ```

  この演習で IAM ロールを作成する方法がわからない場合、`--function-role role` 部分は含めないでください。このツールを使用すると、新しいロールの作成に役立ちます。

## 使用できる Lambda コマンド
<a name="listing-the-lam-commands-available-through-the-cli"></a>

.NET CLI で使用できる Lambda コマンドを一覧表示するには、コマンドプロンプトまたはターミナルを開いて、`dotnet lambda --help` を入力します。そのコマンドの出力は、次のようになります。

```
Amazon Lambda Tools for .NET applications
Project Home: https://github.com/aws/aws-extensions-for-dotnet-cli, https://github.com/aws/aws-lambda-dotnet

Commands to deploy and manage AWS Lambda functions:

        deploy-function         Command to deploy the project to AWS Lambda
        ...
        (etc.)

To get help on individual commands execute:
        dotnet lambda help <command>
```

出力には、現在使用できるコマンドがすべて表示されます。

## デプロイ手順
<a name="publishing-a-net-core-lam-project-from-the-net-core-cli"></a>

次の手順では、 AWS Lambda .NET プロジェクトを作成したことを前提としています。この手順では、プロジェクトに `DotNetCoreLambdaTest` という名前を付けます。

1. コマンド プロンプトまたはターミナルを開き、.NET Lambda プロジェクト ファイルが含まれるフォルダーに移動します。

1. `dotnet lambda deploy-function` と入力します。

1. プロンプトが表示されたら、 AWS リージョン (Lambda 関数がデプロイされるリージョン) を入力します。

1. プロンプトされたら、デプロイする関数の名前を入力します。例：`DotNetCoreLambdaTest`。これは、 AWS アカウント に既に存在する関数の名前、またはまだそこにデプロイされていない関数の名前である可能性があります。

1. プロンプトがされたら、関数が実行されるときに Lambda が継承する IAM ロールを選択または作成します。

正常に完了すると、[**New Lambda function created (新しい Lambda 関数が作成されました)**] のメッセージが表示されます。

```
Executing publish command
...
(etc.)
New Lambda function created
```

アカウントに既に存在する関数をデプロイする場合、デプロイ機能は AWS リージョンのみを求めます (必要な場合)。この場合、コマンド出力は `Updating code for existing function` で終わります。

デプロイされた Lambda 関数は、すぐに使用できる状態になっています。詳細については、「[AWS Lambda の使用例](https://docs.aws.amazon.com/lambda/latest/dg/use-cases.html)」を参照してください。

Lambda は Lambda 関数を自動的にモニタリングし、Amazon CloudWatch からメトリクスを報告します。。Lambda 関数のモニタリングおよびトラブルシューティングについては、「Lambda アプリケーションのモニタリングとトラブルシューティング」を参照してください。