

のバージョン 4 (V4) AWS SDK for .NET がリリースされました。

重要な変更とアプリケーションの移行については、[「移行トピック](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)」を参照してください。

 [https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)

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

# アプリケーションを にデプロイする 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。
+ [AWS .NET CLI 用のデプロイツール](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/)。
+ [AWS Lambda Tools for .NET CLI](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)**
**注記**  
ツールキットの「Publish to AWS」機能は、.NET CLI 用の AWS デプロイツールと同じ機能を公開します。詳細については、*AWS Toolkit for Visual Studio DD ユーザー ガイド*の「[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 Runner BB の使用](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="w2aac17b9"></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 ツールを徐々に学習するのに役立ちます AWS CDK。

[AWS Deploy Tool](https://aws.github.io/aws-dotnet-deploy/) では、ASP.NET Core アプリケーションを次の AWS サービスにデプロイできます。
+ **を使用した [Amazon ECS Service](https://aws.amazon.com/ecs/) [AWS Fargate](https://aws.amazon.com/fargate/)** - AWS Fargate サーバーレスコンピューティングエンジンによって管理されるコンピューティング能力を使用して、Amazon Elastic Container Service (Amazon ECS) へのウェブアプリケーションのデプロイをサポートします。
+ **[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 ツールを徐々に学習するのに役立ちます AWS CDK。

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

詳細については、[ツールの概要](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 ツールを徐々に学習するのに役立ちます AWS CDK。

詳細については、[ツールの概要](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 アプリケーションのモニタリングとトラブルシューティング」を参照してください。