

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

# Amazon ECS(EC2) への ASP.NET Core 2.0 アプリケーションのデプロイ する
<a name="deployment-ecs-aspnetcore-ec2"></a>

このセクションでは、 Toolkit for Visual Studio の一部として提供される **[ AWSにコンテナを発行]** ウィザードにより、EC2 起動タイプを使用して Linux 用のコンテナ化 ASP.NET Core 2.0 アプリケーションを Amazon ECS 経由でデプロイする方法について説明します。ウェブアプリケーションは継続的に実行されるため、サービスとしてデプロイされます。

## コンテナを発行する前に
<a name="tkv-deploy-ecs-netcore-prerequisites"></a>

**[ AWSにコンテナを発行]** を使用して ASP.NET Core 2.0 アプリケーションをデプロイするには
+  [AWS 認証情報を指定](deployment-ecs-specify-credentials.md)し、[Amazon ECS をセットアップ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/get-set-up-for-amazon-ecs.html)します。
+  [Docker をインストールします](https://docs.docker.com/engine/installation)。[Docker for Windows](https://docs.docker.com/docker-for-windows/install/) などさまざまなインストールオプションがあります。
+  ウェブアプリケーションのニーズに基づいて、[Amazon ECS クラスターを作成](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-cluster.html)します。このプロセスはほんの数ステップで完了します。
+ Visual Studio で、Linux をターゲットとする ASP.NET Core 2.0 コンテナ化アプリケーションのプロジェクトを作成します (または開きます) 。

## Publish Container to AWS ウィザードへのアクセス
<a name="tkv-deployment-ecs-netcore-accessing"></a>

Linux 用 ASP.NET Core 2.0 コンテナ化アプリケーションをデプロイするには、Solution Explorer でプロジェクトを右クリックし、**[ AWSにコンテナを発行]** を選択します。

Visual Studio で [Build] (ビルド) メニューの **[Publish Container to AWS]** ( AWSにコンテナを発行) を選択することもできます。

## コンテナを AWS ウィザードに発行する
<a name="tkv-deploy-ecs-pubtoaws"></a>

 **Account profile to use (使用するアカウントのプロファイル)** - 使用するアカウントプロファイルを選択します。

 **Region (リージョン)** - デプロイリージョンを選択します。プロファイルとリージョンは、デプロイ環境リソースのセットアップとデフォルト Docker レジストリの選択に使用されます。

 **Configuration (設定)** - Docker イメージビルド設定を選択します。

 **Docker リポジトリ** - 既存の Docker リポジトリを選択するか、新しいリポジトリの名前を入力します (新しいリポジトリが作成されます)。これは、ビルドコンテナイメージがプッシュされるリポジトリです。

 **Tag (タグ)** - 既存のタグを選択するか、新しいタグの名前を入力します。タグを使用して、Docker コンテナに固有の設定要素 (バージョン、オプションなど) のような重要な詳細を追跡できます。

 **Deployment (デプロイ)** - [**Service on an ECS Cluster (ECS Cluster のサービス)**] を選択します。このデプロイオプションは、実行時間の長いアプリケーション (ASP.NET Core 2.0 ウェブアプリケーションなど) に使用します。

 **[`aws-docker-tools-defaults.json` に設定を保存して、コマンドラインデプロイのプロジェクトを設定する]** - コマンドラインから柔軟にデプロイしたいて場合には、このチェックボックスをオンにします。`dotnet ecs deploy` を使用してプロジェクトディレクトリからコンテナをデプロイし、`dotnet ecs publish` を使用してコンテナを発行します。

## [Launch Configuration (起動設定)] ページ
<a name="tkv-deploy-ecs-launch-config"></a>

 **ECS Cluster (ECS クラスター)** - Docker イメージを実行するクラスターを選択します。 AWS マネジメントコンソールを使用して [ECS クラスターを作成できます](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html)。

 **Launch Type (起動タイプ)** - [EC2] を選択します。Fargate 起動タイプを使用するには、「[Amazon ECS への ASP.NET Core 2.0 アプリケーションのデプロイ (Fargate)](deployment-ecs-aspnetcore-fargate.md)」を参照してください。

## [Service Configuration (サービス設定)] ページ
<a name="tkv-deploy-ecs-service"></a>

 **Service (サービス)** - 既存のサービス内にコンテナをデプロイするには、ドロップダウンリストでいずれかのサービスを選択します。または、新しいサービスを作成するには、[**Create New (新規作成)**] を選択します。サービス名は同じクラスター内で一意になるようにしてください。ただし、リージョン内のクラスター間や複数のリージョンにまたがるクラスター間では、同様の名前のサービスがあっても構いません。

 **Number of Tasks (タスクの数)** - クラスターにデプロイして実行状態に保つタスクの数。各タスクはコンテナの 1 つのインスタンスです。

 **Minimum Healthy Percent (最小ヘルス率)** - デプロイ中に `RUNNING` 状態に保つ必要のあるタスクの最小割合 (最も近い整数に切り上げ)。

 **Maximum Percent (最大率)** - デプロイ中に `RUNNING` または `PENDING` 状態に保つことのできるタスクの最大割合 (最も近い整数に切り下げ)。

 **Placement Templates (配置テンプレート)** - タスク配置テンプレートを選択します。

クラスター内にタスクを起動するとき、Amazon ECS では、タスク定義で指定されている CPU やメモリなどの要件に基づいてタスクを配置する場所を決定する必要があります。同様に、タスク数を減らすときも、Amazon ECS でどのタスクを終了させるか決定する必要があります。

配置テンプレートは、クラスター内にタスクを起動する方法をコントロールします。
+ [AZ Balanced Spread] - アベイラビリティーゾーン間およびアベイラビリティーゾーン内のコンテナインスタンス間でタスクを分散します。
+ [AZ Balanced BinPack] - 利用可能な最小メモリでアベイラビリティーゾーン間およびコンテナインスタンス間でタスクを分散します。
+ [BinPack] - CPU またはメモリの最小利用可能量に基づいてタスクを配置します。
+ [One Task Per Instance] - 各コンテナインスタンスのサービスから最大 1 タスクを配置します。

詳細については、「[Amazon ECS のタスク配置」](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement.html)を参照してください。

## [Application Load Balancer (アプリケーションロードバランサー)] ページ
<a name="tkv-deploy-ecs-app-load-balancer"></a>

 **Configure Application Load Balancer (アプリケーションロードバランサーの設定)** - Application Load Balancer を設定するには、このチェックボックスをオンにします。

 **Select IAM role for service (サービス用の IAM ロールの選択)** - 既存のロールを選択するか、[**Create New (新規作成)**] を選択して新しいロールを作成します。

 **Load Balancer (ロードバランサー)** - 既存のロードバランサーを選択するか、[**Create New (新規作成)**] を選択して新しいロードバランサーの名前を入力します。

 **Listener Port (リスナーポート)** - 既存のリスナーポートを選択するか、[**Create New (新規作成)**] を選択してポート番号を入力します。デフォルトのポート `80` はほとんどのウェブアプリケーションに適しています。

 **Target Group (ターゲットグループ)** - デフォルトでは、ロードバランサーはターゲットグループ用に指定したポートとプロトコルを使用して登録済みターゲットにリクエストを送ります。ターゲットグループに各ターゲットを登録するときに、このポートを上書きできます。

 **Path Pattern (パスパターン)** - ロードバランサーがパスベースのルーティングを使用するようになります。デフォルトの `/` を受け入れるか、別のパターンを指定します。パスパターンでは大文字と小文字が区別され、最大 128 文字までの長さで、[特定の文字セット](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions)を含めることができます。

 **Health Check Path (ヘルスチェックパス)** - ヘルスチェックのターゲットの ping 先のパス。デフォルトでは `/` であり、ウェブアプリケーションに適しています。必要に応じて別のパスを入力します。入力したパスが無効な場合、ヘルスチェックは失敗し、異常とみなされます。

複数のサービスをデプロイし、各サービスが異なるパスまたは場所にデプロイされる場合は、カスタムチェックパスが必要になることがあります。

## [ECS Task Definition (ECS タスク定義)] ページ
<a name="tkv-deploy-ecs-task-definition"></a>

 **Task Definition (タスク定義)** - 既存のタスク定義を選択するか、[**Create New (新規作成)**] を選択して新しいタスク定義の名前を入力します。

 **Container (コンテナ)** - 既存のコンテナを選択するか、[**Create New (新規作成)**] を選択して新しいコンテナの名前を入力します。

 **Memory (MiB) (メモリ(MiB))** - **ソフト制限**と**ハード制限**のいずれか、または両方の値を入力します。

コンテナ用に予約するメモリの*ソフト制限* (MiB 単位)。Docker により、コンテナメモリはソフト制限を超えないように保たれます。コンテナは、メモリパラメータで指定したハード制限 (該当する場合) に達するか、コンテナインスタンス上の使用可能なメモリの上限に達するか、いずれか早く達する方まで、メモリを使用できます。

コンテナに適用されるメモリの*ハード制限* (MiB 単位)。コンテナは、ここで指定したメモリを超えようとすると、強制終了されます。

 **タスクロール** - ユーザーに代わって、関連付けられたポリシーで指定された AWS APIs を呼び出すアクセス許可をコンテナに付与する IAM ロールのタスクロールを選択します。これは、アプリケーションに認証情報が渡される方法になります。[アプリケーションの AWS セキュリティ認証情報を指定する方法](deployment-ecs-specify-credentials.md)を参照してください。

 **Port Mapping (ポートマッピング)** - コンテナのポートマッピングを追加、変更、または削除します。ロードバランサーがオンの場合、ホストポートはデフォルトで 0 になり、ポート割り当ては動的になります。

 **Environment Variables (環境変数)** - コンテナの環境変数を追加、変更、または削除します。

設定に問題がなければ、**[発行]** をクリックしてデプロイプロセスを開始します。

## へのコンテナの発行 AWS
<a name="tkv-deploy-ecs-publishing"></a>

デプロイ中にイベントが表示されます。ウィザードは正常終了時に自動的に閉じられます。この動作を無効にするには、ページの下部にあるチェックボックスをオフにします。

新しいインスタンスの URL は AWS Explorer にあります。[Amazon ECS and Clusters (Amazon ECS およびクラスター)] を展開し、クラスターをクリックします。