

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

# Elastic Beanstalk を使用した .NET Windows アプリケーションのデプロイ
<a name="create_deploy_NET"></a>

**デ*AWS ベロッパーセンターの .NET* を確認する**  
  
*.Net デベロッパーセンター*にアクセスしたことがありますか? これは、.NET on のすべてのモノのワンストップショップです AWS。  
詳細については、 [AWS デベロッパーセンターの .NET](https://aws.amazon.com/developer/language/net) を参照してください。

この章では、ASP.NET および .NET Core Windows ウェブアプリケーションを に設定してデプロイする手順について説明します AWS Elastic Beanstalk。Elastic Beanstalk を使用すると、Amazon Web Services を使用して簡単に .NET (Windows) ウェブアプリケーションをデプロイ、管理、スケーリングできます。

Elastic Beanstalk コマンドラインインターフェイス (EB CLI) または Elastic Beanstalk コンソールを使用すると、わずか数分でアプリケーションをデプロイできます。Elastic Beanstalk アプリケーションをデプロイした後も、EB CLI を使用してアプリケーションと環境を管理することも、Elastic Beanstalk コンソール AWS CLIまたは APIs を使用することもできます。

この章には、以下のチュートリアルが含まれます。
+ [.NET Core on Windows の QuickStart](dotnet-quickstart.md) – EB CLI を使用して *Hello World* .NET Core Windows アプリケーションを作成およびデプロイするステップバイステップの手順。
+ [ASP.NET の QuickStart](aspnet-quickstart.md) – AWS Toolkit for Visual Studioを使用して *Hello World* ASP.NET アプリケーションを作成およびデプロイするステップバイステップの手順。

Windows .NET Core アプリケーションの開発に関するヘルプが必要な場合は、次のようにいくつかの参照先があります。
+  [.NET 開発フォーラム](https://forums.aws.amazon.com/forum.jspa?forumID=61) – 質問を投稿し、フィードバックを取得します。
+ [.NET デベロッパーセンター](https://aws.amazon.com/net/) – サンプルコード、ドキュメント、ツール、追加リソースを 1 か所で入手できる場所です。
+ [AWS SDK for .NET ドキュメント](https://aws.amazon.com/documentation/sdk-for-net/) — SDK のセットアップとコードサンプルの実行、SDK の機能、および SDK の API オペレーションに関する詳細情報について説明します。

**注記**  
このプラットフォームはワーカー環境をサポートしていません。詳細については、[Elastic Beanstalk ワーカー環境](using-features-managing-env-tiers.md) を参照してください 

**Topics**
+ [QuickStart: Elastic Beanstalk に .NET Core on Windows アプリケーションをデプロイする](dotnet-quickstart.md)
+ [QuickStart: Elastic Beanstalk に ASP.NET アプリケーションをデプロイする](aspnet-quickstart.md)
+ [.NET 開発環境のセットアップ](dotnet-devenv.md)
+ [Elastic Beanstalk .NET Windows プラットフォームの使用](create_deploy_NET.container.console.md)
+ [.NET アプリケーション環境に Amazon RDS DB インスタンスを追加](create_deploy_NET.rds.md)
+ [AWS Toolkit for Visual Studio「��](dotnet-toolkit.md)
+ [オンプレミス .NET アプリケーションの Elastic Beanstalk への移行](dotnet-onpremmigration.md)
+ [Elastic Beanstalk での Windows Server の廃止されたコンポーネントに関する推奨事項](dotnet-deprecation-recommendations.md)

# QuickStart: Elastic Beanstalk に .NET Core on Windows アプリケーションをデプロイする
<a name="dotnet-quickstart"></a>

この QuickStart チュートリアルでは、.NET Core on Windows アプリケーションを作成し、 AWS Elastic Beanstalk 環境にデプロイするプロセスについて説明します。

**本番稼働用ではない**  
例はデモンストレーションのみを目的としています。サンプルアプリケーションを本番環境で使用しないでください。

**Topics**
+ [AWS アカウント](#dotnet-quickstart-aws-account)
+ [前提条件](#dotnet-quickstart-prereq)
+ [ステップ 1: .NET Core on Windows アプリケーションを作成する](#dotnet-quickstart-create-app)
+ [ステップ 2: アプリケーションをローカルに実行する](#dotnet-quickstart-run-local)
+ [ステップ 3: EB CLI を使用して .NET Core on Windows アプリケーションをデプロイする](#dotnet-quickstart-deploy)
+ [ステップ 4: Elastic Beanstalk でアプリケーションを実行する](#dotnet-quickstart-run-eb-ap)
+ [ステップ 5：クリーンアップ](#go-tutorial-cleanup)
+ [AWS アプリケーションの リソース](#dotnet-quickstart-eb-resources)
+ [次の手順](#dotnet-quickstart-next-steps)
+ [Elastic Beanstalk コンソールでデプロイする](#dotnet-quickstart-console)

## AWS アカウント
<a name="dotnet-quickstart-aws-account"></a>

まだ AWS のお客様でない場合は、 AWS アカウントを作成する必要があります。サインアップすると、Elastic Beanstalk やその他の必要な AWS サービスにアクセスできます。

 AWS アカウントをすでにお持ちの場合は、「」に進むことができます[前提条件](#dotnet-quickstart-prereq)。

### AWS アカウントを作成する
<a name="dotnet-quickstart-aws-account-procedure"></a>

#### にサインアップする AWS アカウント
<a name="sign-up-for-aws"></a>

がない場合は AWS アカウント、次の手順を実行して作成します。

**にサインアップするには AWS アカウント**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) を開きます。

1. オンラインの手順に従います。

   サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。

   にサインアップすると AWS アカウント、 *AWS アカウントのルートユーザー* が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、[ルートユーザーアクセスが必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)の実行にはルートユーザーのみを使用するようにしてください。

AWS サインアッププロセスが完了すると、 から確認メールが送信されます。[https://aws.amazon.com/](https://aws.amazon.com/) の **[マイアカウント]** をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

#### 管理アクセスを持つユーザーを作成する
<a name="create-an-admin"></a>

にサインアップしたら AWS アカウント、日常的なタスクにルートユーザーを使用しないように AWS アカウントのルートユーザー、 を保護し AWS IAM アイデンティティセンター、 を有効にして管理ユーザーを作成します。

**を保護する AWS アカウントのルートユーザー**

1.  **ルートユーザー**を選択し、 AWS アカウント E メールアドレスを入力して、アカウント所有者[AWS マネジメントコンソール](https://console.aws.amazon.com/)として にサインインします。次のページでパスワードを入力します。

   ルートユーザーを使用してサインインする方法については、「*AWS サインイン ユーザーガイド*」の「[ルートユーザーとしてサインインする](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)」を参照してください。

1. ルートユーザーの多要素認証 (MFA) を有効にします。

   手順については、*IAM* [ユーザーガイドの AWS アカウント 「ルートユーザー (コンソール) の仮想 MFA デバイス](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)を有効にする」を参照してください。

**管理アクセスを持つユーザーを作成する**

1. IAM アイデンティティセンターを有効にします。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[AWS IAM アイデンティティセンターの有効化](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)」を参照してください。

1. IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。

   を ID ソース IAM アイデンティティセンターディレクトリ として使用する方法のチュートリアルについては、*AWS IAM アイデンティティセンター 「 ユーザーガイド*」の[「デフォルトを使用してユーザーアクセスを設定する IAM アイデンティティセンターディレクトリ](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)」を参照してください。

**管理アクセス権を持つユーザーとしてサインインする**
+ IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

  IAM Identity Center ユーザーを使用してサインインする方法については、*AWS サインイン 「 ユーザーガイド*[」の AWS 「 アクセスポータルにサインイン](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)する」を参照してください。

**追加のユーザーにアクセス権を割り当てる**

1. IAM アイデンティティセンターで、最小特権のアクセス許可を適用するというベストプラクティスに従ったアクセス許可セットを作成します。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)」を参照してください。

1. グループにユーザーを割り当て、そのグループにシングルサインオンアクセス権を割り当てます。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[グループを追加する](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)」を参照してください。

## 前提条件
<a name="dotnet-quickstart-prereq"></a>

このガイドの手順に従うには、run commands のためのコマンドラインターミナルまたはシェルが必要になります。コマンドは、該当する場合、プロンプト記号 (>) と現在のディレクトリの名前が前に付けられて、リストに示されます。

```
C:\eb-project> this is a command
this is output
```

### EB CLI
<a name="dotnet-quickstart-prereq.ebcli"></a>

このチュートリアルでは、Elastic Beanstalk コマンドラインインターフェイス (EB CLI) を使用します。EB CLI をインストールおよび設定する手順の詳細については、「[セットアップスクリプトを使用して EB CLI をインストールする (推奨)](eb-cli3.md#eb-cli3-install)」および「[EB CLI の設定](eb-cli3-configuration.md)」を参照してください。

### .NET Core on Windows
<a name="dotnet-quickstart-prereq.runtime"></a>

ローカルマシンに .NET SDK がインストールされていない場合は、[.NET ドキュメント](https://learn.microsoft.com/en-us/dotnet/)ウェブサイトの [.NET のダウンロード](https://dotnet.microsoft.com/en-us/download)リンクに従ってインストールできます。

次のコマンドを実行して、.NET SDK のインストールを確認します。

```
C:\> dotnet --info
```

## ステップ 1: .NET Core on Windows アプリケーションを作成する
<a name="dotnet-quickstart-create-app"></a>

プロジェクトディレクトリを作成します。

```
C:\> mkdir eb-dotnetcore
C:\> cd eb-dotnetcore
```

次に、次のコマンドを実行して、サンプルの Hello World RESTful ウェブサービスアプリケーションを作成します。

```
C:\eb-dotnetcore> dotnet new web --name HelloElasticBeanstalk
C:\eb-dotnetcore> cd HelloElasticBeanstalk
```

## ステップ 2: アプリケーションをローカルに実行する
<a name="dotnet-quickstart-run-local"></a>

アプリケーションをローカルで実行するには、次のコマンドを実行します。

```
C:\eb-dotnetcore\HelloElasticBeasntalk> dotnet run
```

出力は次のテキストのようになります。

```
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: https://localhost:7222
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5228
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
      Content root path: C:\Users\Administrator\eb-dotnetcore\HelloElasticBeanstalk
```

**注記**  
`dotnet` コマンドは、アプリケーションをローカルで実行するときに、ポートをランダムに選択します。この例では、ポートは 5228 です。アプリケーションを Elastic Beanstalk 環境にデプロイすると、アプリケーションはポート 5000 で実行されます。

ウェブブラウザに URL アドレス `http://localhost:port` を入力します。この特定の例では、コマンドは `http://localhost:5228` です。ウェブブラウザに「Hello World\$1」と表示されます。

## ステップ 3: EB CLI を使用して .NET Core on Windows アプリケーションをデプロイする
<a name="dotnet-quickstart-deploy"></a>

次のコマンドを実行して、このアプリケーションの Elastic Beanstalk 環境を作成します。

 

**環境を作成し、.NET Core on Windows アプリケーションをデプロイするには**

1. `HelloElasticBeanstalk` ディレクトリで次のコマンドを実行して、アプリケーションを公開して圧縮します。

   ```
   C:\eb-dotnetcore\HelloElasticBeasntalk> dotnet publish -o site
   C:\eb-dotnetcore\HelloElasticBeasntalk> cd site
   C:\eb-dotnetcore\HelloElasticBeasntalk\site> Compress-Archive -Path * -DestinationPath ../site.zip
   C:\eb-dotnetcore\HelloElasticBeasntalk\site> cd ..
   ```

1. `aws-windows-deployment-manifest.json` という新しいファイルを `HelloElasticBeanstalk` に次の内容で作成します。

   ```
   {
       "manifestVersion": 1,
       "deployments": {
           "aspNetCoreWeb": [
           {
               "name": "test-dotnet-core",
               "parameters": {
                   "appBundle": "site.zip",
                   "iisPath": "/",
                   "iisWebSite": "Default Web Site"
               }
           }
           ]
       }
   }
   ```

1. **eb init** コマンドを使用して EB CLI リポジトリを初期化します。

   ```
   C:\eb-dotnetcore\HelloElasticBeasntalk> eb init -p iis dotnet-windows-server-tutorial --region us-east-2
   ```

   このコマンドは、`dotnet-windows-server-tutorial` という名前のアプリケーションを作成し、ローカルリポジトリを設定して最新の Windows Server プラットフォームバージョンで環境を作成します。

1. 環境を作成し、**eb create** を使用してそこにアプリケーションをデプロイします。Elastic Beanstalk は、アプリケーションの zip ファイルを自動的にビルドし、ポート 5000 で起動します。

   ```
   C:\eb-dotnetcore\HelloElasticBeasntalk> eb create dotnet-windows-server-env
   ```

   Elastic Beanstalk が環境を作成するのに約 5 分かかります。

## ステップ 4: Elastic Beanstalk でアプリケーションを実行する
<a name="dotnet-quickstart-run-eb-ap"></a>

環境を作成するプロセスが完了したら、**eb open** でウェブサイトを開きます。

```
C:\eb-dotnetcore\HelloElasticBeasntalk> eb open
```

お疲れ様でした。Elastic Beanstalk を使用して .NET Core on Windows アプリケーションをデプロイしました。これにより、アプリケーション用に作成されたドメイン名を使用してブラウザ Window が開きます。

## ステップ 5：クリーンアップ
<a name="go-tutorial-cleanup"></a>

アプリケーションでの作業が終了したら、環境を終了できます。Elastic Beanstalk は、環境に関連付けられているすべての AWS リソースを終了します。

EB CLI を使用して Elastic Beanstalk 環境を終了するには、次のコマンドを実行します。

```
C:\eb-dotnetcore\HelloElasticBeasntalk> eb terminate
```

## AWS アプリケーションの リソース
<a name="dotnet-quickstart-eb-resources"></a>

1 つのインスタンスアプリケーションを作成しました。1 つの EC2 インスタンスを持つ簡単なサンプルアプリケーションとして動作するため、ロードバランシングや自動スケーリングは必要ありません。単一インスタンスアプリケーションの場合、Elastic Beanstalk は次の AWS リソースを作成します。
+ **EC2 インスタンス** – 選択したプラットフォームでウェブアプリケーションを実行するよう設定された Amazon EC2 仮想マシン。

  各プラットフォームは、それぞれ特定の言語バージョン、フレームワーク、ウェブコンテナ、またはそれらの組み合わせをサポートするための、さまざまなソフトウェア、設定ファイル、スクリプトを実行します。ほとんどのプラットフォームでは、ウェブアプリケーションの前にウェブトラフィックを処理するリバースプロキシとして Apache または nginx のいずれかを使用します。そのプロキシがリクエストをアプリケーションに転送し、静的アセットを提供して、アクセスログとエラーログを生成します。
+ **インスタンスセキュリティグループ** – ポート 80 上の受信トラフィックを許可するよう設定された Amazon EC2 セキュリティグループ。このリソースでは、ロードバランサーからの HTTP トラフィックが、ウェブ・アプリケーションを実行している EC2 インスタンスに達することができます。デフォルトでは、トラフィックは他のポート上で許可されません。
+ **Amazon S3 バケット** – Elastic Beanstalk の使用時に作成されるソースコード、ログ、その他のアーティファクトの保存場所。
+ **Amazon CloudWatch アラーム** – 環境内のインスタンスの負荷を監視する 2 つの CloudWatch アラーム。負荷が高すぎる、または低すぎる場合にトリガーされます。アラームがトリガーされると、Auto Scaling グループはレスポンスとしてスケールアップまたはダウンを行います。
+ **CloudFormation スタック** – Elastic Beanstalk は CloudFormation を使用して環境内のリソースを起動し、設定変更を伝達します。リソースは、[CloudFormation コンソール](https://console.aws.amazon.com/cloudformation)に表示できるテンプレートで定義されます。
+  **ドメイン名** – ウェブ・アプリケーションまでのルートとなるドメイン名であり、**subdomain*.*region*.elasticbeanstalk.com* の形式です。

Elastic Beanstalk は、これらのリソースをすべて管理します。環境を終了すると、Elastic Beanstalk は含まれているすべてのリソースを終了します。

## 次の手順
<a name="dotnet-quickstart-next-steps"></a>

アプリケーションを実行する環境を手に入れた後、アプリケーションの新しいバージョンや、異なるアプリケーションをいつでもデプロイできるようになります。新しいアプリケーションバージョンのデプロイは、プロビジョニングや EC2 インスタンスの再開が必要ないため、非常に素早く行えます。Elastic Beanstalk コンソールを使用して新しい環境を調べることもできます。詳細な手順については、このガイドの「*開始方法*」の章の「[環境を探索する](GettingStarted.md#GettingStarted.Explore)」を参照してください。

**その他のチュートリアルを試す**  
異なるアプリケーション例の他のチュートリアルを試したい場合は、「[ASP.NET の QuickStart](aspnet-quickstart.md)」を参照してください。

1 つか 2 つのサンプルアプリケーションをデプロイし、ローカルで .NET Core on Windows アプリケーションを開発して実行する準備が整ったら、「[.NET 開発環境のセットアップ](dotnet-devenv.md)」を参照します。

## Elastic Beanstalk コンソールでデプロイする
<a name="dotnet-quickstart-console"></a>

Elastic Beanstalk コンソールを使用してサンプルアプリケーションを起動することもできます。詳細な手順については、このガイドの「*開始方法*」の章の「[サンプルアプリケーションを作成する](GettingStarted.md#GettingStarted.CreateApp)」を参照してください。

# QuickStart: Elastic Beanstalk に ASP.NET アプリケーションをデプロイする
<a name="aspnet-quickstart"></a>

この QuickStart チュートリアルでは、ASP.NET アプリケーションを作成し、 AWS Elastic Beanstalk 環境にデプロイするプロセスについて説明します。

**本番稼働用ではない**  
例はデモンストレーションのみを目的としています。サンプルアプリケーションを本番環境で使用しないでください。

**Topics**
+ [AWS アカウント](#aspnet-quickstart-aws-account)
+ [前提条件](#aspnet-quickstart-prereq)
+ [ステップ 1: ASP.NET アプリケーションを作成する](#aspnet-quickstart-create-app)
+ [ステップ 2: アプリケーションをローカルに実行する](#aspnet-quickstart-run-local)
+ [ステップ 3: を使用して ASP.NET アプリケーションをデプロイする AWS Toolkit for Visual Studio](#aspnet-quickstart-deploy)
+ [ステップ 4: Elastic Beanstalk でアプリケーションを実行する](#aspnet-quickstart-run-eb-ap)
+ [ステップ 5：クリーンアップ](#aspnet-quickstart-cleanup)
+ [AWS アプリケーションの リソース](#aspnet-quickstart-eb-resources)
+ [次の手順](#aspnet-quickstart-next-steps)
+ [Elastic Beanstalk コンソールでデプロイする](#aspnet-quickstart-console)

## AWS アカウント
<a name="aspnet-quickstart-aws-account"></a>

まだ AWS のお客様でない場合は、 AWS アカウントを作成する必要があります。サインアップすると、Elastic Beanstalk やその他の必要な AWS サービスにアクセスできます。

 AWS アカウントをすでにお持ちの場合は、「」に進むことができます[前提条件](#aspnet-quickstart-prereq)。

### AWS アカウントを作成する
<a name="aspnet-quickstart-aws-account-procedure"></a>

#### にサインアップする AWS アカウント
<a name="sign-up-for-aws"></a>

がない場合は AWS アカウント、次の手順を実行して作成します。

**にサインアップするには AWS アカウント**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) を開きます。

1. オンラインの手順に従います。

   サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。

   にサインアップすると AWS アカウント、 *AWS アカウントのルートユーザー* が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、[ルートユーザーアクセスが必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)の実行にはルートユーザーのみを使用するようにしてください。

AWS サインアッププロセスが完了すると、 から確認メールが送信されます。[https://aws.amazon.com/](https://aws.amazon.com/) の **[マイアカウント]** をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

#### 管理アクセスを持つユーザーを作成する
<a name="create-an-admin"></a>

にサインアップしたら AWS アカウント、日常的なタスクにルートユーザーを使用しないように AWS アカウントのルートユーザー、 を保護し AWS IAM アイデンティティセンター、 を有効にして管理ユーザーを作成します。

**を保護する AWS アカウントのルートユーザー**

1.  **ルートユーザー**を選択し、 AWS アカウント E メールアドレスを入力して、アカウント所有者[AWS マネジメントコンソール](https://console.aws.amazon.com/)として にサインインします。次のページでパスワードを入力します。

   ルートユーザーを使用してサインインする方法については、「*AWS サインイン ユーザーガイド*」の「[ルートユーザーとしてサインインする](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)」を参照してください。

1. ルートユーザーの多要素認証 (MFA) を有効にします。

   手順については、*IAM* [ユーザーガイドの AWS アカウント 「ルートユーザー (コンソール) の仮想 MFA デバイス](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)を有効にする」を参照してください。

**管理アクセスを持つユーザーを作成する**

1. IAM アイデンティティセンターを有効にします。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[AWS IAM アイデンティティセンターの有効化](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)」を参照してください。

1. IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。

   を ID ソース IAM アイデンティティセンターディレクトリ として使用する方法のチュートリアルについては、*AWS IAM アイデンティティセンター 「 ユーザーガイド*」の[「デフォルトを使用してユーザーアクセスを設定する IAM アイデンティティセンターディレクトリ](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)」を参照してください。

**管理アクセス権を持つユーザーとしてサインインする**
+ IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

  IAM Identity Center ユーザーを使用してサインインする方法については、*AWS サインイン 「 ユーザーガイド*[」の AWS 「 アクセスポータルにサインイン](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)する」を参照してください。

**追加のユーザーにアクセス権を割り当てる**

1. IAM アイデンティティセンターで、最小特権のアクセス許可を適用するというベストプラクティスに従ったアクセス許可セットを作成します。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)」を参照してください。

1. グループにユーザーを割り当て、そのグループにシングルサインオンアクセス権を割り当てます。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[グループを追加する](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)」を参照してください。

## 前提条件
<a name="aspnet-quickstart-prereq"></a>

この QuickStart チュートリアルでは、「Hello World」アプリケーションを作成し、Visual Studio と を使用して Elastic Beanstalk 環境にデプロイする方法について説明します AWS Toolkit for Visual Studio。

### Visual Studio
<a name="aspnet-quickstart-prereq.vs"></a>

Visual Studio をダウンロードしてインストールするには、Visual Studio [ダウンロードページ](https://visualstudio.microsoft.com/downloads/)の手順に従います。この例では、Visual Studio 2022 を使用しています。Visual Studio のインストール中に、以下の特定の項目を選択します。
+ **[ワークロード]** タブで、**[ASP.NET とウェブ開発]** を選択します。
+ **[個別コンポーネント]** タブで、**[.NET Framework 4.8 開発ツール]** と **[.NET Framework プロジェクトと項目テンプレート]** を選択します。

### AWS Toolkit for Visual Studio
<a name="aspnet-quickstart-prereq.aws-vs-tk"></a>

ダウンロードしてセットアップするには、「 AWS Toolkit for Visual Studio ユーザーガイド」の[「開始](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/getting-set-up.html)方法」トピックの手順 AWS Toolkit for Visual Studio に従います。

## ステップ 1: ASP.NET アプリケーションを作成する
<a name="aspnet-quickstart-create-app"></a>

次に、Elastic Beanstalk 環境にデプロイするアプリケーションを作成します。ここでは「Hello World」ASP.NET ウェブアプリケーションを作成します。

**ASP.NET アプリケーションを作成するには**

1. Visual Studio を起動します。**[ファイル]** メニューで、**[新規]** を選択し、次に **[プロジェクト]** を選択します。

1. **[新しいプロジェクトの作成]** ダイアログボックスが表示されます。**[ASP.NET ウェブアプリケーション (.NET Framework)]** を選択し、**[次へ]** を選択します。

1. **[新しいプロジェクトの設定]** ダイアログで、**[プロジェクト名]** に `eb-aspnet` と入力します。**[フレームワーク]** ドロップダウンメニューから **[.NET Framework 4.8]** を選択し、**[作成]** を選択します。

   プロジェクトディレクトリを書き留めます。この例では、プロジェクトディレクトリは `C:\Users\Administrator\source\repos\eb-aspnet\eb-aspnet` です。

1. **[新しい ASP.NET ウェブアプリケーションの作成]** ダイアログが表示されます。**[空]** のテンプレートを選択します。次に、**[作成]** を選択します。

   この時点で、Visual Studio を使用して空の ASP.NET ウェブアプリケーションプロジェクトを作成しました。次に、ASP.NET ウェブアプリケーションのエントリポイントとして機能するウェブフォームを作成します。

1. **[プロジェクト]** メニューから、**[新しいアイテムの追加]** を選択します。**[新しいアイテムの追加]** ページで、**[ウェブフォーム]** を選択し、`Default.aspx` と名前を付けます。次に **[追加]** を選択します。

1. 以下を `Default.aspx:` に追加します

   ```
   <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="eb_aspnet.Default" %>
   
   <!DOCTYPE html>
   
   <html xmlns="https://www.w3.org/1999/xhtml">
   <head runat="server">
       <title>Hello Elastic Beanstalk!</title>
   </head>
   <body>
       <form id="body" runat="server">
           <div>
               Hello Elastic Beanstalk! This is an ASP.NET on Windows Server application.
           </div>
       </form>
   </body>
   </html>
   ```

## ステップ 2: アプリケーションをローカルに実行する
<a name="aspnet-quickstart-run-local"></a>

Visual Studio で、**[デバッグ]** メニューから **[デバッグの開始]** を選択してアプリケーションをローカルで実行します。ページには「Hello Elastic Beanstalk\$1」と表示されます。これは ASP.NET on Windows Server アプリケーションです。

## ステップ 3: を使用して ASP.NET アプリケーションをデプロイする AWS Toolkit for Visual Studio
<a name="aspnet-quickstart-deploy"></a>

Elastic Beanstalk 環境を作成し、そこに新しいアプリケーションをデプロイするには、以下の手順に従います。

**環境を作成し、ASP.NET アプリケーションをデプロイするには**

1. **[ソリューションエクスプローラー]** でアプリケーションを右クリックし、**[ AWS Elastic Beanstalkに公開]** を選択します。

1. 新しい Elastic Beanstalk アプリケーションと環境の名前を選択します。

1. この時点以降は、Elastic Beanstalk に用意されているデフォルトを続行することも、どのオプションや設定でも好みに変更することもできます。

1. **[確認]** ページで、**[デプロイ]** を選択します。これにより、ASP.NET ウェブアプリケーションがパッケージ化され、Elastic Beanstalk にデプロイされます。

   Elastic Beanstalk が環境を作成するのに約 5 分かかります。Elastic Beanstalk デプロイ機能は、新しくデプロイされたコードで利用できるようになるまで、環境を監視します。**[Env:<**environment name**>]** タブには、環境のステータスが表示されます。

## ステップ 4: Elastic Beanstalk でアプリケーションを実行する
<a name="aspnet-quickstart-run-eb-ap"></a>

環境を作成するプロセスが完了すると、**[Env:<**environment name**>]** タブに、アプリケーションを起動するドメイン URL など、環境とアプリケーションに関する情報が表示されます。このタブでこの URL を選択するか、ウェブブラウザにコピーして貼り付けます。

お疲れ様でした。Elastic Beanstalk で ASP.NET アプリケーションをデプロイしました。

## ステップ 5：クリーンアップ
<a name="aspnet-quickstart-cleanup"></a>

アプリケーションの使用が終了したら、 AWS Toolkit for Visual Studioで環境を終了できます。

**環境を終了するには**

1. [**AWS Explorer**] でElastic Beanstalk ノードとアプリケーションノードを展開します。アプリケーション環境を右クリックして、[**環境の終了**] を選択します。

1. プロンプトが表示されたら、[**はい**] を選択して、環境を終了することを確認します。Elastic Beanstalk が環境で実行されている AWS リソースを終了するまでに数分かかります。

## AWS アプリケーションの リソース
<a name="aspnet-quickstart-eb-resources"></a>

1 つのインスタンスアプリケーションを作成しました。1 つの EC2 インスタンスを持つ簡単なサンプルアプリケーションとして動作するため、ロードバランシングや自動スケーリングは必要ありません。単一インスタンスアプリケーションの場合、Elastic Beanstalk は次の AWS リソースを作成します。
+ **EC2 インスタンス** – 選択したプラットフォームでウェブアプリケーションを実行するよう設定された Amazon EC2 仮想マシン。

  各プラットフォームは、それぞれ特定の言語バージョン、フレームワーク、ウェブコンテナ、またはそれらの組み合わせをサポートするための、さまざまなソフトウェア、設定ファイル、スクリプトを実行します。ほとんどのプラットフォームでは、ウェブアプリケーションの前にウェブトラフィックを処理するリバースプロキシとして Apache または nginx のいずれかを使用します。そのプロキシがリクエストをアプリケーションに転送し、静的アセットを提供して、アクセスログとエラーログを生成します。
+ **インスタンスセキュリティグループ** – ポート 80 上の受信トラフィックを許可するよう設定された Amazon EC2 セキュリティグループ。このリソースでは、ロードバランサーからの HTTP トラフィックが、ウェブ・アプリケーションを実行している EC2 インスタンスに達することができます。デフォルトでは、トラフィックは他のポート上で許可されません。
+ **Amazon S3 バケット** – Elastic Beanstalk の使用時に作成されるソースコード、ログ、その他のアーティファクトの保存場所。
+ **Amazon CloudWatch アラーム** – 環境内のインスタンスの負荷を監視する 2 つの CloudWatch アラーム。負荷が高すぎる、または低すぎる場合にトリガーされます。アラームがトリガーされると、Auto Scaling グループはレスポンスとしてスケールアップまたはダウンを行います。
+ **CloudFormation スタック** – Elastic Beanstalk は CloudFormation を使用して環境内のリソースを起動し、設定変更を伝達します。リソースは、[CloudFormation コンソール](https://console.aws.amazon.com/cloudformation)に表示できるテンプレートで定義されます。
+  **ドメイン名** – ウェブ・アプリケーションまでのルートとなるドメイン名であり、**subdomain*.*region*.elasticbeanstalk.com* の形式です。

Elastic Beanstalk は、これらのリソースをすべて管理します。環境を終了すると、Elastic Beanstalk は含まれているすべてのリソースを終了します。

## 次の手順
<a name="aspnet-quickstart-next-steps"></a>

アプリケーションを実行する環境を手に入れた後、アプリケーションの新しいバージョンや、異なるアプリケーションをいつでもデプロイできるようになります。新しいアプリケーションバージョンのデプロイは、プロビジョニングや EC2 インスタンスの再開が必要ないため、非常に素早く行えます。Elastic Beanstalk コンソールを使用して新しい環境を調べることもできます。詳細な手順については、このガイドの「*開始方法*」の章の「[環境を探索する](GettingStarted.md#GettingStarted.Explore)」を参照してください。

**その他のチュートリアルを試す**  
異なるアプリケーション例の他のチュートリアルを試したい場合は、「[.NET Core on Windows の QuickStart](dotnet-quickstart.md)」を参照してください。

1 つか 2 つのサンプルアプリケーションをデプロイし、ローカルで ASP.NET アプリケーションを開発して実行する準備が整ったら、「[.NET 開発環境のセットアップ](dotnet-devenv.md)」を参照します。

## Elastic Beanstalk コンソールでデプロイする
<a name="aspnet-quickstart-console"></a>

Elastic Beanstalk コンソールを使用してサンプルアプリケーションを起動することもできます。詳細な手順については、このガイドの「*開始方法*」の章の「[サンプルアプリケーションを作成する](GettingStarted.md#GettingStarted.CreateApp)」を参照してください。

# .NET 開発環境のセットアップ
<a name="dotnet-devenv"></a>

このトピックでは、.NET 開発環境を設定し、アプリケーションを AWS Elastic Beanstalkにデプロイする前にローカルでテストする手順について説明します。また、便利なツールのインストール手順を提供するウェブサイトも参照します。

**Topics**
+ [IDE のインストール](#dotnet-devenv-ide)
+ [のインストール AWS Toolkit for Visual Studio](#dotnet-devenv-toolkit)

アプリケーション内から AWS リソースを管理する必要がある場合は、 AWS SDK for .NET をインストールします。例えば、Amazon S3 を使用してデータを保存し、取得できます。

 AWS SDK for .NET を使用すると、Visual Studio プロジェクトテンプレート、 AWS .NET ライブラリ、C\$1 コードサンプル、およびドキュメントを備えた 1 つのダウンロード可能なパッケージで数分で開始できます。ライブラリを使用したアプリケーションの構築方法については、C\$1 による実用的な例が用意されています。ライブラリとコードサンプルの使用方法の学習に役立てるため、オンラインの動画チュートリアルとリファレンスドキュメントが用意されています。

詳細とインストール方法については、[AWS SDK for .NET のホームページ](https://aws.amazon.com/sdk-for-net/)にアクセスしてください。

## IDE のインストール
<a name="dotnet-devenv-ide"></a>

統合された開発環境（IDE）は、アプリケーション開発を用意にする幅広い機能を提供します。.NET 開発に IDE を使用していない場合は、最初に Visual Studio Community をお試しください。

[Visual Studio コミュニティ](https://www.visualstudio.com/vs/community/)ページにアクセスして、Visual Studio Community をダウンロードし、インストールします。

## のインストール AWS Toolkit for Visual Studio
<a name="dotnet-devenv-toolkit"></a>

[AWS Toolkit for Visual Studio](dotnet-toolkit.md) は、開発者が を使用して .NET アプリケーションを簡単に開発、デバッグ、デプロイできるようにする Visual Studio IDE 用のオープンソースプラグインです AWS。インストール手順については、[Toolkit for Visual Studio ホームページ](https://aws.amazon.com/visualstudio/)にアクセスしてください。

# Elastic Beanstalk .NET Windows プラットフォームの使用
<a name="create_deploy_NET.container.console"></a>

このトピックでは、Elastic Beanstalk で ASP.NET および .NET Core Windows ウェブアプリケーションを設定、ビルド、実行する方法について説明します。

AWS Elastic Beanstalk は、.NET プログラミングフレームワークと Windows Server のさまざまなバージョンのプラットフォームをサポートしています。完全なリストについては、AWS Elastic Beanstalk  プラットフォームドキュメントの「[IIS を使用する Windows Server での .NET](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.net)」を参照してください。

Elastic Beanstalk には、Elastic Beanstalk 環境内の EC2 インスタンスで実行されるソフトウェアのカスタマイズに使用できる[設定オプション](command-options.md)が用意されています。アプリケーションの環境変数を設定し、Amazon S3 へのログローテーションを有効にし、.NET フレームワークを設定することができます。

設定オプションは[実行中の環境の設定を変更するために](environment-configuration-methods-after.md) Elastic Beanstalk コンソールで利用できます。環境を終了したときにその設定が失われないようにするため、[保存済み設定](environment-configuration-savedconfig.md)を使用して設定を保存し、それを後で他の環境に適用することができます。

ソースコードの設定を保存する場合、[設定ファイル](ebextensions.md)を含めることができます。設定ファイルの設定は、環境を作成するたびに、またはアプリケーションをデプロイするたびに適用されます。設定ファイルを使用して、デプロイの間にパッケージをインストールしたり、スクリプトを実行したり、他のインスタンスのカスタマイズオペレーションを実行することもできます。

Elastic Beanstalk コンソールで適用される設定は、設定ファイルに同じ設定があれば、それらの設定を上書きします。これにより、設定ファイルでデフォルト設定を定義し、コンソールでそのデフォルト設定を環境固有の設定で上書きできます。設定の優先順位の詳細と設定の他の変更方法については、「」を参照してください[設定オプション](command-options.md)

## Elastic Beanstalk コンソールでの.NET 環境の設定
<a name="dotnet-console"></a>

Elastic Beanstalk コンソールでは、Amazon S3 のログローテーションを有効にしたり、アプリケーションが環境から読み取ることができる変数を設定したり、.NET フレームワーク設定を変更することができます。

**Elastic Beanstalk コンソールで.NET 環境を設定するには**

1. [Elastic Beanstalk コンソール](https://console.aws.amazon.com/elasticbeanstalk)を開き、**リージョン**リストで を選択します AWS リージョン。

1. ナビゲーションペインで、[**環境**] を選択し、リストから環境の名前を選択します。

1. ナビゲーションペインで、[**設定**] を選択します。

1. **[更新、モニタリング、ログ]** の設定カテゴリで、**[編集]** を選択します。

### コンテナオプション
<a name="dotnet-console-framework"></a>
+ **Target .NET runtime** – CLR v2 を実行するには `2.0` に設定します。
+ **32 ビットアプリケーションの有効化** – 32 ビットアプリケーションを実行するには `True` に設定します。

### ログオプション
<a name="dotnet-console-logs"></a>

[Log Options (ログオプション)] セクションには、2 つの設定があります。
+ **インスタンスプロファイル** – アプリケーションに関連付けられた Amazon S3 バケットへのアクセス許可が付与されているインスタンスプロファイルを指定します。
+ **[Enable log file rotation to Amazon S3]** (Amazon S3 へのログファイルのローテーションの有効化) - アプリケーションの Amazon EC2 インスタンスのログファイルを、アプリケーションに関連付けられている Amazon S3 バケットにコピーするかどうかを指定します。

### 環境プロパティ
<a name="dotnet-console-properties"></a>

**環境プロパティ** セクションでは、アプリケーションを実行している Amazon EC2 インスタンスの環境設定を指定できます。これらの設定は、キーと値のペアでアプリケーションに渡されます。`System.GetEnvironmentVariable` を使用して、それらのペアを読み取ります。同じキーが `web.config` に存在するとともに、環境プロパティとして存在する可能性があります。`System.Configuration` 名前空間を使用して、`web.config` から値を読み取ります。

```
NameValueCollection appConfig = ConfigurationManager.AppSettings;
string endpoint = appConfig["API_ENDPOINT"];
```

詳細については、「[環境変数とその他のソフトウェアの設定](environments-cfg-softwaresettings.md)」を参照してください。

## aws:elasticbeanstalk:container:dotnet:apppool 名前空間
<a name="dotnet-namespaces"></a>

[設定ファイル](ebextensions.md)を使用して、設定オプションを設定し、デプロイの間、他のインスタンス設定タスクを実行できます。設定オプションは、[プラットフォーム固有](command-options-specific.md)のものでも、Elastic Beanstalk サービス全体の[すべてのプラットフォーム](command-options-general.md)に適用できるものでもかまいません。設定オプションは、名前空間として整理されています。

.NET プラットフォームは、.NET ランタイムの設定に使用できる `aws:elasticbeanstalk:container:dotnet:apppool` 名前空間のオプションを定義します。

以下の設定ファイルの例では、この名前空間で使用できる各オプションの設定を示しています。

**Example .ebextensions/dotnet-settings.config**  

```
option_settings:
  aws:elasticbeanstalk:container:dotnet:apppool:
    Target Runtime: 2.0
    Enable 32-bit Applications: True
```

Elastic Beanstalk には、環境をカスタマイズするための多数の設定オプションが用意されています。設定ファイルに加えて、コンソール、保存された設定、EB CLI、または を使用して、設定オプションを指定することもできます AWS CLI詳細については「[設定オプション](command-options.md)」を参照してください。

# Elastic Beanstalk Windows サーバープラットフォームのメジャーバージョン間での移行
<a name="dotnet-v2migration"></a>

AWS Elastic Beanstalk には、Windows Server プラットフォームのメジャーバージョンがいくつかあります。このページでは、各メジャーバージョンでの主な改善点と、以降のバージョンに移行する前の考慮点について説明します。

Windows Server プラットフォームは現在バージョン 2 (v2) です。アプリケーションで v2 より前の Windows Server プラットフォームバージョンを使用している場合は、v2 に移行することをお勧めします。

## Windows サーバープラットフォームのメジャーバージョンの最新情報
<a name="dotnet-v2migration.diffs"></a>

### Windows サーバープラットフォーム V2
<a name="dotnet-v2migration.diffs.v2"></a>

Elastic Beanstalk Windows Server プラットフォームのバージョン 2 (v2) が [2019 年 2 月にリリースされました](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2019-02-21-windows-v2.html)。V2 では、いくつかの重要な点で Windows Server プラットフォームの動作が Elastic Beanstalk の Linux ベースのプラットフォームに近づいています。v2 は v1 と完全に下位互換性があり、v1 からの移行が容易です。

Windows Server プラットフォームでは次の機能がサポートされています。
+ *バージョニング* – 各リリースでは新しいバージョン番号が取得され、環境の作成および管理時には、以前のバージョン (まだ使用可能) を参照できます。
+ *拡張ヘルス* – 詳細については、「[Elastic Beanstalk の拡張ヘルスレポートおよびモニタリング](health-enhanced.md)」を参照してください。
+ *変更不可*の*追加のバッチとローリング*のデプロイ – デプロイポリシーの詳細については、「[Elastic Beanstalk 環境へのアプリケーションのデプロイ](using-features.deploy-existing-version.md)」を参照してください。
+ *変更不可の更新* – 更新タイプの詳細については、「[設定変更](environments-updating.md)」を参照してください。
+ *マネージドプラットフォーム更新* – 詳細については、「[マネージドプラットフォーム更新](environment-platform-update-managed.md)」を参照してください。

**注記**  
新しいデプロイおよび更新機能は、拡張ヘルスに依存します。それらを使用するには、拡張ヘルスを有効にします。詳細については、「[Elastic Beanstalk の拡張ヘルスレポートの有効化](health-enhanced-enable.md)」を参照してください。

### Windows サーバープラットフォーム V1
<a name="dotnet-v2migration.diffs.v1"></a>

Elastic Beanstalk Windows Server プラットフォームのバージョン 1.0.0 (v1) が 2015 年 10 月にリリースされました。このバージョンでは、環境の作成および更新中に Elastic Beanstalk が[設定ファイル](ebextensions.md)内のコマンドを実行する順序が変更されています。

以前のプラットフォームのバージョンでは、ソリューションスタック名にバージョン番号が使用されていません。
+ IIS 8.5 を実行する 64 ビット Windows Server 2012 R2
+ IIS 8.5 を実行する 64 ビット Windows Server Core 2012 R2
+ IIS 8 を実行する 64 ビット Windows Server 2012
+ IIS 7.5 を実行する 64 ビット Windows Server 2008 R2

以前のバージョンでは、設定ファイルの処理順には一貫性がありません。環境の作成中に、アプリケーションソースが IIS にデプロイされると `Container Commands` が実行されます。実行中の環境へのデプロイ中は、新しいバージョンがデプロイされる前にコンテナコマンドが実行されます。スケールアップ中は、設定ファイルはまったく処理されません。

これに加えて、コンテナコマンドの実行前に IIS が開始されます。この動作により一部の顧客はコンテナコマンドに回避策を実装し、コマンドの完了後に再度 IIS を起動して開始するコマンドの前に IIS サーバーを一時停止することになります。

バージョン 1 ではこの一貫性のない状態が修正されており、Windows Server プラットフォームの動作が Elastic Beanstalk の Linux ベースのプラットフォームにより近いものになっています。v1 プラットフォームでは、Elastic Beanstalk は IIS サーバーを起動する前に常にコンテナコマンドを実行します。

v1 のプラットフォームソリューションスタックでは、Windows Server のバージョンの後に `v1` が付きます。
+ IIS 8.5 を実行する 64 ビット Windows Server 2012 R2 v1.1.0
+ IIS 8.5 を実行する 64 ビット Windows Server Core 2012 R2 v1.1.0
+ IIS 8 を実行する 64 ビット Windows Server 2012 v1.1.0
+ IIS 7.5 を実行する 64 ビット Windows Server 2008 R2 v1.1.0

さらに、v1 プラットフォームはコンテナコマンドを実行する前に、アプリケーションソースバンドルのコンテンツを抽出して `C:\staging\` に保存します。コンテナコマンドの完了後に、このフォルダのコンテンツは .zip ファイルに圧縮され IIS にデプロイされます。このワークフローにより、コマンドまたはスクリプトを使用してアプリケーションソースバンドルのコンテンツを変更してからデプロイできます。

## Windows サーバープラットフォームの以前のメジャーバージョンからの移行
<a name="dotnet-v2migration.migration"></a>

環境を更新する前に、このセクションの移行の考慮事項についてお読みください。新しいバージョンに環境のプラットフォームを更新するには、「[Elastic Beanstalk 環境のプラットフォームバージョンの更新](using-features.platform.upgrade.md)」を参照してください。

### V1 から V2 へ
<a name="dotnet-v2migration.migration.fromv1"></a>

Windows Server プラットフォーム v2 では、.NET Core 1.x および 2.0 をサポートしていません。アプリケーションを Windows Server v1 から v2 に移行中で、アプリケーションがこれらのいずれかの .NET Core バージョンを使用している場合は、v2 がサポートしている .NET Core バージョンにアプリケーションを更新します。サポートされているバージョンのリストについては、AWS Elastic Beanstalk プラットフォームの「[IIS を使用する Windows Server での .NET](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.net)」を参照してください。

アプリケーションでカスタム Amazon Machine Image (AMI) を使用している場合は、Windows Server プラットフォーム v2 AMI に基づいて新しいカスタム AMI を作成します。詳細については、「[Elastic Beanstalk 環境でのカスタム Amazon マシンイメージ (AMI) の使用](using-features.customenv.md)」を参照してください。

**注記**  
Windows Server v2 の新しいデプロイおよび更新機能は、拡張ヘルスに依存します。環境を v2 に移行するときは、拡張ヘルスが無効になります。これらの機能を使用するには、拡張ヘルスを有効にします。詳細については、「[Elastic Beanstalk の拡張ヘルスレポートの有効化](health-enhanced-enable.md)」を参照してください。

### V1 以前から
<a name="dotnet-v2migration.migration.fromv0"></a>

v1 からの移行の考慮点に加えて、v1 以前の Windows Server ソリューションスタックからアプリケーションを移行していて、現在コンテナコマンドを使用している場合は、新しいバージョンに移行するときに処理の不一致を回避するために追加したコマンドをすべて削除します。v1 からは、コンテナコマンドは、デプロイされるアプリケーションソース、および IIS が起動する前に、完全に実行することが保証されています。これにより、このステップ中に問題なく `C:\staging` のソースに変更を加え、IIS 設定ファイルを修正することができます。

たとえば、 を使用して、DLL ファイルを Amazon S3 からアプリケーションソースに AWS CLI ダウンロードできます。

`.ebextensions\copy-dll.config`

```
container_commands:
  copy-dll:
    command: aws s3 cp s3://amzn-s3-demo-bucket/dlls/large-dll.dll .\lib\
```

設定ファイルの使用の詳細については、「[設定ファイル (`.ebextensions`) による高度な環境のカスタマイズ](ebextensions.md)」を参照してください。

# デプロイマニフェストを使用した複数のアプリケーションと ASP.NET コアアプリケーションの実行
<a name="dotnet-manifest"></a>

デプロイマニフェストで、Elastic Beanstalk にアプリケーションをデプロイする方法を伝えることができます。この方法を使用すると、ウェブサイトのルートパスで実行される個々の ASP.NET アプリケーション用のソースバンドルを生成するために、`MSDeploy` を使用する必要がなくなります。マニフェストファイルを使用することにより、異なるパスで複数のアプリケーションを実行することが可能になります。または、Elastic Beanstalk に対して、ASP.NET Core を使用してアプリケーションのデプロイと実行を行うように指示することもできます。また、デプロイマニフェストは、アプリケーションを実行するためのアプリケーションプールの設定にも使用できます。

デプロイマニフェストは、Elastic Beanstalk へ [.NET Core アプリケーション](#dotnet-manifest-dotnetcore)のサポートを追加します。.NET Framework アプリケーションは、デプロイマニフェストなしでデプロイできます。ただし、.NET Core アプリケーションを Elastic Beanstalk で実行する場合は、デプロイマニフェストが必要です。デプロイマニフェストを使用する際には、まず各アプリケーションのサイトアーカイブを作成します。その上で、デプロイマニフェストを集録するための別の ZIP アーカイブ内に、先に作成したサイトアーカイブをバンドルします。

デプロイマニフェストを使用すると、[異なるパスで複数のアプリケーションを実行する](#dotnet-manifest-multiapp)こともできます。デプロイマニフェストは、多くのデプロイのターゲットを、サイトアーカイブと IIS が実行するパスにより個別に定義します。たとえば、`/api` パスで非同期リクエストを行うウェブ API を実行し、ルートパスでその API を実行するウェブアプリケーションを実行できます。

デプロイマニフェストを使用して、[カスタムバインディングと物理パスを備えた IIS ウェブサイトを設定できます](#dotnet-manifest-websites)。これにより、アプリケーションをデプロイする前に、特定のポートまたはホスト名をリッスンするウェブサイトを設定できるようになります。

デプロイマニフェストは、[IIS または Kestrel のアプリケーションプールを使用して、複数のアプリケーションを実行する](#dotnet-manifest-apppool)ために使用することもできます。アプリケーションプールを設定して、アプリケーションの定期的な再起動、32 ビットアプリケーションの実行、または、.NET Framework ランタイムの特定バージョンの使用ができます。

完全にカスタマイズするには、Windows PowerShell で[独自のデプロイスクリプトを作成し](#dotnet-manifest-custom)、Elastic Beanstalk にアプリケーションのインストール、アンインストール、再起動のために実行するスクリプトを伝えます。

デプロイマニフェストと関連機能を使用するには、Windows Server プラットフォーム[バージョン 1.2.0 以降](dotnet-v2migration.md)が必要です。

IIS リセットのスキップなど、使用可能なすべての設定オプション、プロパティ、および高度な機能の詳細については、[デプロイマニフェストスキーマリファレンス](dotnet-manifest-schema.md)を参照してください。

**Topics**
+ [.NET core アプリケーション](#dotnet-manifest-dotnetcore)
+ [複数のアプリケーションを実行する](#dotnet-manifest-multiapp)
+ [IIS ウェブサイトを設定する](#dotnet-manifest-websites)
+ [pplication Request Routing (ARR) を使用する](#dotnet-manifest-arr)
+ [アプリケーションプールを設定する](#dotnet-manifest-apppool)
+ [カスタムデプロイを定義する](#dotnet-manifest-custom)
+ [デプロイマニフェストスキーマのリファレンス](dotnet-manifest-schema.md)

## .NET core アプリケーション
<a name="dotnet-manifest-dotnetcore"></a>

デプロイマニフェストを使用すると、Elastic Beanstalk で .NET Core アプリケーションを実行することができます。.NET Core は .NET のクロスプラットフォームバージョンで、コマンドラインツール (`dotnet`) が付属しています。このマニフェストにより、アプリケーションの生成、ローカルでの実行、および公開の準備を行うことができます。

Elastic Beanstalk で .NET Core アプリケーションを実行するには、`dotnet publish` を実行し、その出力からディレクトリをすべて削除した内容を、ZIP アーカイブにパッケージします。サイトアーカイブを、デプロイマニフェストを使って、デプロイターゲットのタイプ `aspNetCoreWeb` と一緒にソースバンドルに配置します。

以下のデプロイマニフェストは、ルートパスの `dotnet-core-app.zip` という名前のサイトアーカイブから .NET Core アプリケーションを実行します。

**Example aws-windows-deployment-manifest.json - .NET core**  

```
{
  "manifestVersion": 1,
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "my-dotnet-core-app",
        "parameters": {
          "archive": "dotnet-core-app.zip",
          "iisPath": "/"
        }
      }
    ]
  }
}
```

マニフェストとサイトアーカイブを ZIP アーカイブにバンドルし、ソースバンドルを作成します。

**Example dotnet-core-bundle.zip**  

```
.
|-- aws-windows-deployment-manifest.json
`-- dotnet-core-app.zip
```

サイトアーカイブには、コンパイルされたアプリケーションコード、依存関係、`web.config` ファイルが含まれています。

**Example dotnet-core-app.zip**  

```
.
|-- Microsoft.AspNetCore.Hosting.Abstractions.dll
|-- Microsoft.AspNetCore.Hosting.Server.Abstractions.dll
|-- Microsoft.AspNetCore.Hosting.dll
|-- Microsoft.AspNetCore.Http.Abstractions.dll
|-- Microsoft.AspNetCore.Http.Extensions.dll
|-- Microsoft.AspNetCore.Http.Features.dll
|-- Microsoft.AspNetCore.Http.dll
|-- Microsoft.AspNetCore.HttpOverrides.dll
|-- Microsoft.AspNetCore.Server.IISIntegration.dll
|-- Microsoft.AspNetCore.Server.Kestrel.dll
|-- Microsoft.AspNetCore.WebUtilities.dll
|-- Microsoft.Extensions.Configuration.Abstractions.dll
|-- Microsoft.Extensions.Configuration.EnvironmentVariables.dll
|-- Microsoft.Extensions.Configuration.dll
|-- Microsoft.Extensions.DependencyInjection.Abstractions.dll
|-- Microsoft.Extensions.DependencyInjection.dll
|-- Microsoft.Extensions.FileProviders.Abstractions.dll
|-- Microsoft.Extensions.FileProviders.Physical.dll
|-- Microsoft.Extensions.FileSystemGlobbing.dll
|-- Microsoft.Extensions.Logging.Abstractions.dll
|-- Microsoft.Extensions.Logging.dll
|-- Microsoft.Extensions.ObjectPool.dll
|-- Microsoft.Extensions.Options.dll
|-- Microsoft.Extensions.PlatformAbstractions.dll
|-- Microsoft.Extensions.Primitives.dll
|-- Microsoft.Net.Http.Headers.dll
|-- System.Diagnostics.Contracts.dll
|-- System.Net.WebSockets.dll
|-- System.Text.Encodings.Web.dll
|-- dotnet-core-app.deps.json
|-- dotnet-core-app.dll
|-- dotnet-core-app.pdb
|-- dotnet-core-app.runtimeconfig.json
`-- web.config
```

## 複数のアプリケーションを実行する
<a name="dotnet-manifest-multiapp"></a>

デプロイマニフェストを使って、複数のデプロイターゲットを指定することにより、複数のアプリケーションを実行できます。

以下のデプロイマニフェストでは 2 つの .NET Core アプリケーションを設定します。`WebApiSampleApp` アプリケーションは、シンプルなウェブ API を実装し、`/api` パスで非同期リクエストを提供します。`DotNetSampleApp` アプリケーションは、ルートパスでリクエストを処理するウェブアプリケーションです。

**Example aws-windows-deployment-manifest.json - multiple apps**  

```
{
  "manifestVersion": 1,
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "WebAPISample",
        "parameters": {
          "appBundle": "WebApiSampleApp.zip",
          "iisPath": "/api"
        }
      },
      {
        "name": "DotNetSample",
        "parameters": {
          "appBundle": "DotNetSampleApp.zip",
          "iisPath": "/"
        }
      }
    ]
  }
}
```

複数のアプリケーションのサンプルアプリケーションはこちらで入手できます:
+ **デプロイ可能なソースバンドル** - [dotnet-multiapp-sample-bundle-v2.zip](samples/dotnet-multiapp-sample-bundle-v2.zip)
+ **ソースコード** - [dotnet-multiapp-sample-source-v2.zip](samples/dotnet-multiapp-sample-source-v2.zip)

## IIS ウェブサイトを設定する
<a name="dotnet-manifest-websites"></a>

デプロイマニフェストを使用して、カスタムバインディングと物理パスを備えた IIS ウェブサイトを設定できます。これは、特定のポートでリッスンしたり、カスタムホスト名を使用したり、特定のディレクトリのコンテンツを処理したりするウェブサイトを設定する必要がある場合に役立ちます。

次のデプロイマニフェストは、特定のポート番号とカスタム物理パスを使用して HTTP をリッスンするカスタム IIS ウェブサイトを設定します。

**Example aws-windows-deployment-manifest.json - IIS ウェブサイト設定**  

```
{
  "manifestVersion": 1,
  "iisConfig": {
    "websites": [
      {
        "name": "MyCustomSite",
        "physicalPath": "C:\inetpub\wwwroot\mysite",
        "bindings": [
          {
            "protocol": "http",
            "port": 8080,
            "hostName": "mysite.local"
          }
        ]
      }
    ]
  },
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "my-dotnet-core-app",
        "parameters": {
          "appBundle": "dotnet-core-app.zip",
          "iisWebSite": "MyCustomSite",
          "iisPath": "/"
        }
      }
    ]
  }
}
```

この例では、以下のようになっています：
+ 「MyCustomSite」という名前のウェブサイトがカスタム物理パスで作成されます
+ ウェブサイトには、特定のホスト名を持つ HTTP バインディングがポート 8080 にあります
+ ASP.NET Core アプリケーションは、`iisWebSite` パラメータを使用してこのカスタムウェブサイトにデプロイされます

## pplication Request Routing (ARR) を使用する
<a name="dotnet-manifest-arr"></a>

Application Request Routing (ARR) モジュールと URL Rewrite モジュールはプリインストールされており、Elastic Beanstalk Windows AMI で利用可能です。これらのモジュールにより、ebextensions またはアプリケーション設定を使用した IIS 設定を介した高度なルーティングシナリオと URL 操作が可能になります。

次の例は、カスタムポートを使用してウェブサイトを設定するシンプルなデプロイマニフェストと基本的な ARR ルーティングを設定する ebextensions 設定を組み合わせたものを示しています。

**Example aws-windows-deployment-manifest.json - シンプルな ARR セットアップ**  

```
{
  "manifestVersion": 1,
  "iisConfig": {
    "websites": [
      {
        "name": "ARRSite",
        "physicalPath": "C:\\inetpub\\wwwroot\\arrsite",
        "bindings": [
          {
            "protocol": "http",
            "port": 8080,
            "hostName": "localhost"
          }
        ]
      }
    ]
  },
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "BackendApp",
        "parameters": {
          "appBundle": "backend-app.zip",
          "iisWebSite": "ARRSite",
          "iisPath": "/backend"
        }
      }
    ]
  }
}
```

ARR 設定は ebextensions を介して行われます。次の設定により、基本的な ARR ルーティングルールをセットアップします。

**Example .ebextensions/arr-config.config - 基本的な ARR 設定**  

```
files:
  "C:\\temp\\configure-arr.ps1":
    content: |
      # Enable ARR proxy at server level
      Set-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter 'system.webServer/proxy' -Name 'enabled' -Value 'True'
      
      # Clear any existing global rules to avoid conflicts
      Clear-WebConfiguration -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter 'system.webServer/rewrite/globalRules'

      # Add global rule to route all requests to backend
      Add-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' `
        -Filter 'system.webServer/rewrite/globalRules' `
        -Name '.' `
        -Value @{
          name = 'Route_to_Backend'
          stopProcessing = 'True'
          match = @{ url = '^(?!backend/)(.*)' }
          action = @{
            type = 'Rewrite'
            url = 'http://localhost:8080/backend/{R:1}'
          }
        }

container_commands:
  01_configure_arr:
    command: powershell -ExecutionPolicy Bypass -File "C:\\temp\\configure-arr.ps1"
    waitAfterCompletion: 0
```

この設定では、ポート 8080 でウェブサイトを作成し、すべての受信リクエストをそのサイトで実行されているバックエンドアプリケーションにルーティングするように ARR をセットアップします。

## アプリケーションプールを設定する
<a name="dotnet-manifest-apppool"></a>

Windows 環境では、複数のアプリケーションをサポートできます。そのためには、次のような 2 つのアプローチが存在します。
+ Kestrel ウェブサーバーでは、アウトプロセスホスティングモデルを使用できます。このモデルでは、複数のアプリケーションを 1 つのアプリケーションプールで実行するように構成します。
+ インプロセスホスティングモデルを使用する場合には、複数のアプリケーションを実行するために複数のアプリケーションプールを用意して、各プール内では単一アプリケーションのみを実行します。IIS サーバーを使用していて、複数のアプリケーションを実行したい場合には、この方法を使用する必要があります。

1 つのアプリケーションプールで複数のアプリケーションを実行するように Kestrel を構成するには、`hostingModel="OutofProcess"` ファイルに `web.config` を追加で記述します。次に挙げるサンプルを参考にしてください。

**Example web.config - Kestrel アウトプロセスホスティングモデル用**  

```
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add 
    name="aspNetCore" 
    path="*" verb="*" 
    modules="AspNetCoreModuleV2" 
    resourceType="Unspecified" />
</handlers>
<aspNetCore 
    processPath="dotnet" 
    arguments=".\CoreWebApp-5-0.dll" 
    stdoutLogEnabled="false" 
    stdoutLogFile=".\logs\stdout" 
    hostingModel="OutofProcess" />
</system.webServer>
</location>
</configuration>
```

**Example aws-windows-deployment-manifest.json - 複数のアプリケーション**  

```
{
"manifestVersion": 1,
  "deployments": {"msDeploy": [
      {"name": "Web-app1",
        "parameters": {"archive": "site1.zip",
          "iisPath": "/"
        }
      },
      {"name": "Web-app2",
        "parameters": {"archive": "site2.zip",
          "iisPath": "/app2"
        }
      }
    ]
  }
}
```

IIS では、インプロセスホスティングモデルが使用されているため、1 つのアプリケーションプールでの複数のアプリケーションの実行はサポートされていません。したがって、複数のアプリケーションを構成するには、各アプリケーションを個別のアプリケーションプールに割り当てる必要があります。つまり、1 つのアプリケーションプールに割り当てられるのは、1 つのアプリケーションのみです。

`aws-windows-deployment-manifest.json`ファイルで、IIS を異なるアプリケーションプールを使用するように構成できます。次のサンプルファイルを参考にしながら、同様な更新を行ってください。
+ `iisConfig` というサブセクションを含む、`appPools` というセクションを追加します。
+ `appPools` ブロックに、アプリケーションプールをリストします。
+ `deployments` セクションで、各アプリケーションの `parameters` セクションを定義します。
+ `parameters` セクションでは、各アプリケーションのアーカイブ、実行するパス、および実行するために使用する `appPool` を指定します。

次のデプロイマニフェストでは、10 分ごとにアプリケーションを再起動する 2 つのアプリケーションプールを構成しています。同時に、指定されたパスで実行される .NET Framework ウェブアプリケーションにも、アプリケーションをアタッチしています。

**Example aws-windows-deployment-manifest.json - アプリケーションプールごとに 1 つのアプリケーション**  

```
{
"manifestVersion": 1,
  "iisConfig": {"appPools": [
      {"name": "MyFirstPool",
       "recycling": {"regularTimeInterval": 10}
      },
      {"name": "MySecondPool",
       "recycling": {"regularTimeInterval": 10}
      }
     ]
    },
  "deployments": {"msDeploy": [
      {"name": "Web-app1",
        "parameters": {
           "archive": "site1.zip",
           "iisPath": "/",
           "appPool": "MyFirstPool"
           }
      },
      {"name": "Web-app2",
        "parameters": {
           "archive": "site2.zip",
           "iisPath": "/app2",
           "appPool": "MySecondPool"
          }
      }
     ]
    }
}
```

## カスタムデプロイを定義する
<a name="dotnet-manifest-custom"></a>

さらにきめ細かく制御するには、*カスタムデプロイ*を定義することによって、アプリケーションのデプロイを完全にカスタマイズできます。

このデプロイマニフェストは、32 ビットモードで PowerShell スクリプトを実行するように Elastic Beanstalk に指示します。3 つのスクリプトを指定します。1 つはインスタンスの起動とデプロイ中に実行される`install`スクリプト (`siteInstall.ps1`)、もう 1 つはデプロイ中に新しいバージョンをインストールする前に実行される`uninstall`スクリプト (`siteUninstall.ps1`)、もう 1 つは AWS 管理コンソールで[アプリサーバーの再起動](environments-dashboard-actions.md)を選択したときに実行される`restart`スクリプト (`siteRestart.ps1`) です。

**Example aws-windows-deployment-manifest.json - custom deployment**  

```
{
  "manifestVersion": 1,
  "deployments": {
    "custom": [
      {
        "name": "Custom site",
        "architecture" : 32,
        "scripts": {
          "install": {
            "file": "siteInstall.ps1"
          },
          "restart": {
            "file": "siteRestart.ps1"
          },
          "uninstall": {
            "file": "siteUninstall.ps1"
          }
        }
      }
    ]
  }
}
```

ソースバンドルには、マニフェスト、スクリプトと一緒にアプリケーションの実行に必要なアーティファクトをすべて含めます。

**Example Custom-site-bundle.zip**  

```
.
|-- aws-windows-deployment-manifest.json
|-- siteInstall.ps1
|-- siteRestart.ps1
|-- siteUninstall.ps1
`-- site-contents.zip
```

# デプロイマニフェストスキーマのリファレンス
<a name="dotnet-manifest-schema"></a>

デプロイマニフェストは、Elastic Beanstalk が Windows アプリケーションをデプロイおよび設定する方法を定義する JSON ファイルです。このセクションでは、マニフェストスキーマでサポートされているすべてのプロパティと設定オプションの包括的なリファレンスを提供します。

## マニフェスト構造
<a name="dotnet-manifest-schema-structure"></a>

デプロイマニフェストは、次の最上位構造を持つ特定の JSON スキーマに従います。

**Example 基本的なマニフェスト構造**  

```
{
  "manifestVersion": 1,
  "skipIISReset": false,
  "iisConfig": {
    "websites": [...],
    "appPools": [...]
  },
  "deployments": {
    "msDeploy": [...],
    "aspNetCoreWeb": [...],
    "custom": [...]
  }
}
```

### 最上位プロパティ
<a name="dotnet-manifest-schema-top-level"></a>

`manifestVersion` (必須)  
*タイプ:* 数値  
*デフォルト:* 1  
*有効な値:* 1  
マニフェストスキーマのバージョンを指定します。現在、バージョン 1 のみがポートされていますです。

`skipIISReset` (オプション)  
型: ブール  
*デフォルト:* false  
アプリケーションのデプロイ中に IIS をリセットするかどうかを制御します。このフラグは、`msDeploy` と `aspNetCoreWeb` の両方のデプロイタイプに影響します。  
*動作:*  
+ *指定されていないまたは `false` (デフォルト):* IIS リセットは、インストール、アンインストール、および更新オペレーション中に実行されます。これは従来の動作です。
+ *`true`:* IIS リセットはデプロイオペレーション中にスキップされます。
*利点:*  
+ *ダウンタイムの短縮* – アプリケーションでは、デプロイ中のサービスの中断が短くなります。
+ *デプロイの高速化* – IIS が完全に再起動して再初期化するために必要な時間を無くします。
`skipIISReset` を使用すると、[RestartAppServer](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_RestartAppServer.html) オペレーションは、このフラグ設定に関係なく IIS リセットを実行します。
*例*:  

```
{
  "manifestVersion": 1,
  "skipIISReset": true,
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "my-dotnet-core-app",
        "parameters": {
          "archive": "dotnet-core-app.zip",
          "iisPath": "/"
        }
      }
    ]
  }
}
```

`deployments` (必須)  
*タイプ:* オブジェクト  
アプリケーションのデプロイ設定が含まれます。このオブジェクトには、`msDeploy`、`aspNetCoreWeb`、および `custom` のデプロイタイプを含めることができます。

`iisConfig` (オプション)  
*タイプ:* オブジェクト  
アプリケーションをデプロイする前に適用する IIS 構成設定を定義します。ウェブサイトとアプリケーションプールの両方の設定をサポートします。

## IIS 設定
<a name="dotnet-manifest-schema-iis-config"></a>

`iisConfig` セクションにより、アプリケーションをデプロイする前に IIS 設定を構成できるようになります。これには、特定の設定でアプリケーションプールをセットアップし、カスタムバインディングで IIS ウェブサイトを設定することが含まれます。

### IIS ウェブサイト
<a name="dotnet-manifest-schema-websites"></a>

IIS ウェブサイトにより、アプリケーションをデプロイする前に、物理パスやネットワークバインディングなどのカスタムウェブサイト設定を行えるようになります。

**さまざまな IIS ウェブサイトを作成するための重要な考慮事項**  
*ウェブサイトのセットアップ順序:* ウェブサイトは `websites` 配列に表示される順序で順番に設定されます。プラットフォームは各ウェブサイト設定を順番に処理するため、ウェブサイト間に依存関係がある場合は適切な順序を確保します。
*ファイアウォールとポートへのアクセス:* ポート 80 のみがデフォルトの Elastic Beanstalk Windows ファイアウォール設定を介して自動的に公開されます。非標準ポートを使用するようにウェブサイトを設定する場合は、ebextensions またはカスタムデプロイスクリプトを介してカスタムファイアウォールルールを定義し、これらのポートへの外部アクセスを許可する必要があります。

**Example ウェブサイト設定**  

```
{
  "iisConfig": {
    "websites": [
      {
        "name": "MyCustomSite",
        "physicalPath": "C:\inetpub\wwwroot\mysite",
        "bindings": [
          {
            "protocol": "http",
            "port": 8080,
            "hostName": "mysite.local"
          },
          {
            "protocol": "https",
            "port": 8443
          }
        ]
      }
    ]
  }
}
```ウェブサイトのプロパティ

`name` (必須)  
*タイプ:* 文字列  
IIS ウェブサイトの名前。この名前は IIS Manager のウェブサイトを特定するために使用され、IIS 設定内で一意である必要があります。

`physicalPath` (必須)  
*タイプ:* 文字列  
ウェブサイトファイルが保存されているサーバーの物理パス。このパスは IIS ワーカープロセスからアクセス可能である必要があります。

`bindings` (必須)  
*型*: 配列  
*最小項目:* 1  
ウェブサイトがネットワークリクエストに応答する方法を定義するバインディング設定の配列。各バインディングは、プロトコル、ポート、およびオプションのホスト名を指定します。

#### ウェブサイトバインディング
<a name="dotnet-manifest-schema-bindings"></a>

ウェブサイトバインディングは、IIS ウェブサイトが受信リクエストをリッスンするネットワークエンドポイントを定義します。

`protocol` (必須)  
*タイプ:* 文字列  
*有効な値:*「http」、「https」  
バインディングに使用されるプロトコル。

`port` (必須)  
*タイプ:* 整数  
*有効な範囲:* 1～65535  
ウェブサイトがリクエストをリッスンするポート番号。

`hostName` (オプション)  
*タイプ:* 文字列  
バインディングのホスト名 (ドメイン名)。

### アプリケーションプール
<a name="dotnet-manifest-schema-app-pools"></a>

アプリケーションプールはアプリケーション間の分離を提供し、アプリケーションのグループのランタイム設定を構成することを許可します。

**Example アプリケーションプールの設定**  

```
{
  "iisConfig": {
    "appPools": [
      {
        "name": "MyAppPool",
        "enable32Bit": false,
        "managedPipelineMode": "Integrated",
        "managedRuntimeVersion": "v4.0",
        "queueLength": 1000,
        "cpu": {
          "limitPercentage": 80,
          "limitAction": "Throttle",
          "limitMonitoringInterval": 5
        },
        "recycling": {
          "regularTimeInterval": 1440,
          "requestLimit": 10000,
          "memory": 1048576,
          "privateMemory": 524288
        }
      }
    ]
  }
}
```アプリケーションプールのプロパティ

`name` (必須)  
*タイプ:* 文字列  
アプリケーションプールの名前。この名前は、デプロイ設定でプールを参照するために使用されます。

`enable32Bit` (オプション)  
型: ブール  
32 ビットアプリケーションが 64 ビットバージョンの Windows で実行できるようにします。32 ビットの互換性を必要とするレガシーアプリケーションの場合は、`true` に設定します。

`managedPipelineMode` (オプション)  
*タイプ:* 文字列  
*有効な値:*「Integrated」、「Classic」  
アプリケーションプールのリクエスト処理モードを指定します。

`managedRuntimeVersion` (オプション)  
*タイプ:* 文字列  
*有効な値:*「No Managed Code」、「v2.0」、「v4.0」  
アプリケーションプールの .NET Framework バージョンを指定します。

`queueLength` (オプション)  
*タイプ:* 整数  
追加のリクエストを拒否する前に HTTP.sys がアプリケーションプールに対してキューに入れるリクエストの最大数。

#### CPU 設定
<a name="dotnet-manifest-schema-cpu-config"></a>

`cpu` オブジェクトは、アプリケーションプールの CPU 使用率の制限とモニタリングを設定します。

`limitPercentage` (オプション)  
*タイプ:* 数値  
アプリケーションプール内のワーカープロセスが消費できる CPU 時間の最大パーセンテージ。

`limitAction` (オプション)  
*タイプ:* 文字列  
*有効な値:*「NoAction」、「KillW3wp」、「Throttle」、「ThrottleUnderLoad」  
CPU 制限に達したときに実行するアクション。

`limitMonitoringInterval` (オプション)  
*タイプ:* 数値  
CPU モニタリングとスロットリングの制限のリセット期間 (分単位)。

#### リサイクル設定
<a name="dotnet-manifest-schema-recycling-config"></a>

`recycling` オブジェクトは、アプリケーションプールワーカープロセスをいつどのようにリサイクルするかを設定します。

`regularTimeInterval` (オプション)  
*タイプ:* 整数  
アプリケーションプールがリサイクルされるまでの時間間隔 (分単位)。時間ベースのリサイクルを無効にするには、0 に設定します。

`requestLimit` (オプション)  
*タイプ:* 整数  
リサイクル前にアプリケーションプールが処理するリクエストの最大数。

`memory` (オプション)  
*タイプ:* 整数  
ワーカープロセスのリサイクルをトリガーする仮想メモリの量 (キロバイト単位)。

`privateMemory` (オプション)  
*タイプ:* 整数  
ワーカープロセスのリサイクルをトリガーするプライベートメモリの量 (キロバイト単位)。

## デプロイタイプ
<a name="dotnet-manifest-schema-deployments"></a>

`deployments` オブジェクトには、さまざまなアプリケーションタイプのデプロイ設定の配列が含まれています。各デプロイタイプには、特定のプロパティとユースケースがあります。

### MSDeploy デプロイ
<a name="dotnet-manifest-schema-msdeploy"></a>

MSDeploy デプロイは、Web Deploy (MSDeploy) を使用してデプロイできる従来の .NET Framework アプリケーションに使用されます。

**Example MSDeploy デプロイ構成**  

```
{
  "deployments": {
    "msDeploy": [
      {
        "name": "WebApp",
        "description": "Main web application",
        "parameters": {
          "appBundle": "webapp.zip",
          "iisPath": "/",
          "appPool": "DefaultAppPool"
        }
      }
    ]
  }
}
```MSDeploy デプロイプロパティ

`name` (必須)  
*タイプ:* 文字列  
デプロイの一意の名前。この名前は、マニフェスト内のすべてのデプロイで一意である必要があります。

`description` (オプション)  
*タイプ:* 文字列  
人が読み取り可能なデプロイの記述。

`parameters` (必須)  
*タイプ:* オブジェクト  
MSDeploy オペレーションの設定パラメータ。

`scripts` (オプション)  
*タイプ:* オブジェクト  
デプロイライフサイクルのさまざまな段階で実行する PowerShell スクリプト。

#### MSDeploy パラメータ
<a name="dotnet-manifest-schema-msdeploy-parameters"></a>

`appBundle` (必須)  
*タイプ:* 文字列  
マニフェストファイルに対するアプリケーションバンドル (ZIP ファイル) へのパス。このバンドルには、デプロイするアプリケーションファイルが含まれています。

`iisWebSite` (オプション)  
*タイプ:* 文字列  
*デフォルト:*「Default Web Site」  
アプリケーションをデプロイする IIS ウェブサイト。デフォルトでは、アプリケーションは「Default Web Site」にデプロイされます。オプションで、`iisConfig.websites` セクションで設定されたウェブサイト名など、別のウェブサイト名を指定できます。

`iisPath` (オプション)  
*タイプ:* 文字列  
*デフォルト:* "/"  
アプリケーションがデプロイされる IIS の仮想ディレクトリパス。ルートパスには「/」、サブディレクトリには「/api」を使用します。

`appPool` (オプション)  
*タイプ:* 文字列  
このアプリケーションを実行するアプリケーションプールの名前。

### ASP.NET Core デプロイ
<a name="dotnet-manifest-schema-aspnetcore"></a>

ASP.NET Core デプロイは、.NET Core および .NET 5\$1 アプリケーション専用に設計されています。

**Example ASP.NET Core デプロイ設定**  

```
{
  "deployments": {
    "aspNetCoreWeb": [
      {
        "name": "CoreAPI",
        "description": "ASP.NET Core Web API",
        "parameters": {
          "appBundle": "coreapi.zip",
          "iisPath": "/api",
          "appPool": "CoreAppPool"
        }
      }
    ]
  }
}
```

ASP.NET Core デプロイでは、MSDeploy デプロイと同じプロパティ構造を使用します。主な違いは、アプリケーションに使用されるランタイム環境とホスティングモデルです。ASP.NET Core デプロイパラメータ

`appBundle` (必須)  
*タイプ:* 文字列  
マニフェストファイルに対するアプリケーションバンドルへのパス。これは、ZIP アーカイブ、または公開された ASP.NET Core アプリケーションを含むディレクトリパスのいずれかにすることができます。

`iisWebSite` (オプション)  
*タイプ:* 文字列  
*デフォルト:*「Default Web Site」  
ASP.NET Core アプリケーションをデプロイする IIS ウェブサイト。デフォルトでは、アプリケーションは「Default Web Site」にデプロイされます。オプションで、`iisConfig.websites` セクションで設定されたウェブサイト名など、別のウェブサイト名を指定できます。

`iisPath` (オプション)  
*タイプ:* 文字列  
*デフォルト:* "/"  
ASP.NET Core アプリケーションの IIS 内の仮想ディレクトリパス。

`appPool` (オプション)  
*タイプ:* 文字列  
ASP.NET Core アプリケーションのアプリケーションプール。プールは、ASP.NET Core ホスティング用に適切に設定されます。

### カスタムデプロイ
<a name="dotnet-manifest-schema-custom"></a>

カスタムデプロイでは、PowerShell スクリプトを介してデプロイプロセスを完全に制御できます。このデプロイタイプは、カスタムインストール、設定、またはデプロイロジックを必要とする複雑なシナリオに役立ちます。

**Example カスタムデプロイ設定**  

```
{
  "deployments": {
    "custom": [
      {
        "name": "CustomService",
        "description": "Custom Windows service deployment",
        "architecture": 32,
        "scripts": {
          "install": {
            "file": "install-service.ps1"
          },
          "restart": {
            "file": "restart-service.ps1"
          },
          "uninstall": {
            "file": "uninstall-service.ps1",
            "ignoreErrors": true
          }
        }
      }
    ]
  }
}
```カスタムデプロイプロパティ

`name` (必須)  
*タイプ:* 文字列  
カスタムデプロイの一意の名前。

`description` (オプション)  
*タイプ:* 文字列  
カスタムデプロイの説明。

`architecture` (オプション)  
*タイプ:* 整数  
*デフォルト:* 32  
*有効な値:* 32、64  
PowerShell スクリプトの実行モードのアーキテクチャ仕様

`scripts` (必須)  
*タイプ:* オブジェクト  
デプロイ動作を定義する PowerShell スクリプト。カスタムデプロイでは、他のデプロイタイプと比較して追加のスクリプトタイプをサポートしています。

## デプロイスクリプト
<a name="dotnet-manifest-schema-scripts"></a>

デプロイスクリプトは、デプロイライフサイクル中の特定の時点で実行される PowerShell スクリプトです。異なるデプロイタイプは、異なるスクリプトイベントのセットをサポートします。

### スクリプトイベント
<a name="dotnet-manifest-schema-script-events"></a>

デプロイタイプに応じて、次のスクリプトイベントが利用可能です。標準デプロイスクリプト (msDeploy および aspNetCoreWeb)

`preInstall`  
アプリケーションがインストールまたは更新される前に実行されます。

`postInstall`  
アプリケーションがインストールまたは更新された後に実行されます。

`preRestart`  
アプリケーションが再起動される前に実行されます。

`postRestart`  
アプリケーションが再起動された後に実行されます。

`preUninstall`  
アプリケーションがアンインストールされる前に実行されます。

`postUninstall`  
アプリケーションがアンインストールされた後に実行されます。カスタムデプロイスクリプト (カスタムデプロイのみ)

`install`  
カスタムデプロイ用のプライマリインストールスクリプト。このスクリプトは、アプリケーションまたはサービスをインストールする役割を負います。

`restart`  
アプリケーションまたはサービスを再起動するスクリプト。環境が再起動されると呼び出されます。

`uninstall`  
アプリケーションまたはサービスをアンインストールするスクリプト。環境の終了またはアプリケーションの削除中に呼び出されます。

### スクリプトのプロパティ
<a name="dotnet-manifest-schema-script-properties"></a>

各スクリプトは、次のプロパティを持つオブジェクトとして定義されます。

`file` (必須)  
*タイプ:* 文字列  
マニフェストファイルに対する PowerShell スクリプトファイルへの相対パス。スクリプトには `.ps1` 拡張子がある必要があります。

`ignoreErrors` (オプション)  
型: ブール  
*デフォルト:* false  
`true` に設定すると、スクリプトが失敗してもデプロイは続行されます。これは、重要ではないスクリプトまたはクリーンアップオペレーションに使用します。

**Example スクリプト設定の例**  

```
{
  "scripts": {
    "preInstall": {
      "file": "backup-config.ps1",
      "ignoreErrors": true
    },
    "postInstall": {
      "file": "configure-app.ps1"
    }
  }
}
```

# Windows プラットフォームブランチがある EC2 Fast Launch を使用する
<a name="dotnet-ec2fastlaunch"></a>

EC2 Fast Launch 機能は、Elastic Beanstalk 環境での Windows インスタンスの起動時間を短縮します。このトピックの目的は、Elastic Beanstalk 環境でこの機能を使用する方法について説明することです。[2025 年 1 月 22 日](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-01-22-windows.html)にリリースされた Windows プラットフォームバージョン 2.16.2 以降、Elastic Beanstalk プラットフォームリリースには、EC2 Fast Launch が有効になっているベース AMI が含まれています。

## デフォルトの EC2 Fast Launch の可用性
<a name="dotnet-ec2fastlaunch-default"></a>

最新の Elastic Beanstalk Windows プラットフォームバージョンには、EC2 Fast Launch が自動的に有効化された AMI が含まれており、追加料金はかかりません。ただし、新しいプラットフォームバージョンがリリースされると、EC2 Fast Launch は古いプラットフォームバージョンのベース AMI で自動的に有効な状態を維持しない場合があります。

EC2 Fast Launch が自動的に有効になっているベース AMI を使用するには、最新の Windows プラットフォームバージョンにアップグレードすることをお勧めします。ただし、既存のプラットフォームバージョンを引き続き使用する必要がある場合は、環境のベース AMI で EC2 Fast Launch を手動で有効にできます。手順については、「[EC2 Fast Launch を手動で設定する](#dotnet-ec2fastlaunch-manual)」を参照してください。

## EC2 Fast Launch を手動で設定する
<a name="dotnet-ec2fastlaunch-manual"></a>

**注記**  
EC2 Fast Launch を手動で有効にすると、EC2 Fast Launch を自動的に有効になっているプラットフォームバージョンを使用する場合と比較して、追加コストが発生する可能性があります。EC2 Fast Launch のコストの詳細については、「*Amazon EC2 ユーザーガイド*」の「[EC2 Fast Launch の基盤となるリソースのコストを管理する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/win-fast-launch-manage-costs.html)」ページを参照してください。

Elastic Beanstalk 環境で使用される Windows ベース AMI で EC2 Fast Launch を有効にするには、次の手順に従います。

**Elastic Beanstalk 環境で EC2 Fast Launch を手動で有効にするには**

1. 環境のベース AMI を特定します。

   「[カスタム AMI を作成する](using-features.customenv.md)」の手順に従って、環境のベース AMI ID を特定します。カスタム AMI を作成する必要はありません - 現在のベース AMI ID を見つけるために必要なのは、ステップに従うことのみです。

1. AMI で EC2 Fast Launch を有効にします。

   「*Amazon EC2 ユーザーガイド*」の「[EC2 Fast Launch を有効にする](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/win-fast-launch-configure.html)」の手順を使用して、AMI の EC2 Fast Launch を設定します。

# .NET アプリケーション環境に Amazon RDS DB インスタンスを追加
<a name="create_deploy_NET.rds"></a>

このトピックでは、Elastic Beanstalk コンソールを使用して Amazon RDS を作成する手順について説明します。Amazon Relational Database Service (Amazon RDS) DB インスタンスを使用して、アプリケーションによって収集および変更されたデータを保存することができます。データベースを環境に結合して Elastic Beanstalk で管理することも、分離したものとして作成して別のサービスで外部的に管理することもできます。これらの手順では、データベースは環境に結合され、Elastic Beanstalk によって管理されます。Amazon RDS と Elastic Beanstalk の統合の詳細については、「[Elastic Beanstalk 環境にデータベースを追加する](using-features.managing.db.md)」を参照してください。

**Topics**
+ [環境に DB インスタンスを追加](#dotnet-rds-create)
+ [ドライバのダウンロード](#dotnet-rds-drivers)
+ [データベースへの接続](#dotnet-rds-connect)

## 環境に DB インスタンスを追加
<a name="dotnet-rds-create"></a>

**お客様の環境に DB インスタンスを追加するには**

1. [Elastic Beanstalk コンソール](https://console.aws.amazon.com/elasticbeanstalk)を開き、**リージョン**リストで を選択します AWS リージョン。

1. ナビゲーションペインで、[**環境**] を選択し、リストから環境の名前を選択します。

1. ナビゲーションペインで、[**設定**] を選択します。

1. [**データベース**] 設定カテゴリで、[**編集**] を選択します。

1. DB エンジンを選択して、ユーザー名とパスワードを入力します。

1. ページの最下部で **[適用]** を選択し変更を保存します。

DB インスタンスの追加には約 10 分かかります。環境の更新が完了すると、DB インスタンスのホスト名とその他の接続情報は以下の環境プロパティを通じてアプリケーションに使用できるようになります。


| プロパティ名 | 説明 | プロパティ値 | 
| --- | --- | --- | 
|  `RDS_HOSTNAME`  |  DB インスタンスのホスト名。  |  Amazon RDS コンソールの [**Connectivity & security (Connectivityとセキュリティ)**] タブ: [**Endpoint (エンドポイント)**]。  | 
|  `RDS_PORT`  |  DB インスタンスが接続を許可するポート。デフォルト値は DB エンジンによって異なります。  |  Amazon RDS コンソールの [**Connectivity & security (接続とセキュリティ)**] タブ: [**Port (ポート)**]。  | 
|  `RDS_DB_NAME`  |  データベース名 **ebdb**。  |  Amazon RDS コンソールの [**Configuration (設定)**] タブ: [**DB Name (DB 名)**]。  | 
|  `RDS_USERNAME`  |  お客様のデータベース用に設定したユーザー名。  |  Amazon RDS コンソールの [**Configuration (設定)**] タブ: [**Master username (マスターユーザー名)**]。  | 
|  `RDS_PASSWORD`  |  お客様のデータベース用に設定したパスワード。  |  Amazon RDS コンソールではリファレンスできません。  | 

Elastic Beanstalk 環境と結合したデータベースインスタンスの設定の詳細については、「[Elastic Beanstalk 環境にデータベースを追加する](using-features.managing.db.md)」を参照してください。

## ドライバのダウンロード
<a name="dotnet-rds-drivers"></a>

`EntityFramework` を使用して開発環境用の `NuGet` パッケージとデータベースドライバをダウンロードしてインストールします。

**.NET 用の共通エンティティフレームワークデータベースプロバイダ**
+ **SQL Server** – `Microsoft.EntityFrameworkCore.SqlServer`
+ **MySQL** – `Pomelo.EntityFrameworkCore.MySql`
+ **PostgreSQL** – `Npgsql.EntityFrameworkCore.PostgreSQL`

## データベースへの接続
<a name="dotnet-rds-connect"></a>

Elastic Beanstalk は、環境プロパティでアタッチされた DB インスタンスの接続情報を提供します。`ConfigurationManager.AppSettings` を使用してプロパティを読み取り、データベース接続を設定します。

**Example Helpers.cs - 接続文字列メソッド**  

```
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;

namespace MVC5App.Models
{
  public class Helpers
  {
    public static string GetRDSConnectionString()
    {
      var appConfig = ConfigurationManager.AppSettings;

      string dbname = appConfig["RDS_DB_NAME"];

      if (string.IsNullOrEmpty(dbname)) return null;

      string username = appConfig["RDS_USERNAME"];
      string password = appConfig["RDS_PASSWORD"];
      string hostname = appConfig["RDS_HOSTNAME"];
      string port = appConfig["RDS_PORT"];

      return "Data Source=" + hostname + ";Initial Catalog=" + dbname + ";User ID=" + username + ";Password=" + password + ";";
    }
  }
}
```

接続文字列を使用してデータベースコンテキストを初期化します。

**Example DBContext.cs**  

```
using System.Data.Entity;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;

namespace MVC5App.Models
{
  public class RDSContext : DbContext
  { 
    public RDSContext()
      : base(GetRDSConnectionString())
    {
    }

    public static RDSContext Create()
    {
      return new RDSContext();
    }
  }
}
```

# AWS Toolkit for Visual Studio「��
<a name="dotnet-toolkit"></a>

Visual Studio はさまざまなプログラミング言語とアプリケーションの種類用のテンプレートを提供します。いずれのテンプレートを使用して開始できます。 AWS Toolkit for Visual Studio には、アプリケーションの開発をブートストラップする 3 つのプロジェクトテンプレート、 AWS コンソールプロジェクト、 AWS ウェブプロジェクト、および AWS 空のプロジェクトも用意されています。この例では、新しい ASP.NET ウェブアプリケーションを作成します。

**新しい ASP.NET ウェブアプリケーションプロジェクトを作成するには**

1. Visual Studio の [**File**] メニューで [**New**] をクリックし、[**Project**] をクリックします。

1. [**New Project**] ダイアログボックスで [**Installed Templates**] をクリックし、[**Visual C\$1**] をクリックした後、[**Web**] をクリックします。[**ASP.NET Empty Web Application**] をクリックし、プロジェクト名を入力して [**OK**] をクリックします。

**プロジェクトを実行するには**

次のいずれかを行ってください。

1. **F5** を押します。

1. [**Debug**] メニューから [**Start Debugging**] を選択します。

## ローカルでテストします
<a name="create_deploy_NET.sdlc.testlocal"></a>

Visual Studio では、簡単にローカルでアプリケーションをテストできます。ASP.NET ウェブアプリケーションをテストするか実行するには、ウェブブラウザが必要です。Visual Studio には、Internet Information Services （IIS）、IIS Express、組み込みの Visual Studio Development Server などのオプションが用意されています。各オプションの詳細や最適なオプションの決定方法については、「[ASP.NET Web プロジェクト用の Visual Studio の Web サーバー](http://msdn.microsoft.com/en-us/library/58wxa9w5.aspx)」を参照してください。

## Elastic Beanstalk 環境の作成
<a name="create_deploy_NET.sdlc.deploy"></a>

アプリケーションをテストすると、Elastic Beanstalk にデプロイする準備が完了します。

**注記**  
[設定ファイル](ebextensions.md)はアーカイブに含めるプロジェクトの一部である必要があります。または、プロジェクトに設定ファイルを含める代わりに、Visual Studio を使用してプロジェクトフォルダにすべてのファイルをデプロイできます。**Solution Explorer** でプロジェクト名を右クリックし、[**Properties**] をクリックします。[**Package/Publish Web**] タブをクリックします。[**Items to deploy**] セクションで、ドロップダウンリストの [**All Files in the Project Folder**] を選択します。

**AWS ツールキット for Visual Studio を使用してアプリケーションを Elastic Beanstalk にデプロイするには**

1. **Solution Explorer** で、アプリケーションを右クリックし、**発行先 AWS**を選択します。

1. [** に発行 AWS**] ウィザードで、アカウント情報を入力します。

   1. **デプロイに使用するAWS アカウント**で、アカウントを選択するか、[**Other**] (その他) を選択して新しいアカウント情報を入力します。

   1. [**Region**] で、アプリケーションをデプロイするリージョンを選択します。使用可能な AWS リージョンの詳細については、の[AWS Elastic Beanstalk 「エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html)」を参照してください*AWS 全般のリファレンス*。Elastic Beanstalk でサポートされていないリージョンを選択すると、Elastic Beanstalk にデプロイするオプションは利用できなくなります。

   1.  [**Deploy new application with template**] をクリックし、[**Elastic Beanstalk**] を選択します。次に、[**次へ**] をクリックします。  
![\[AWS ウィザード 1 に発行する\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-create-newapp-template.png)

1. [**Application**] ページで、アプリケーションの詳細を入力します。

   1. [** Name**] に、アプリケーション名を入力します。

   1. [**Description**] にアプリケーションの説明を入力します。この手順は省略可能です。

   1. アプリケーションのバージョンラベルは、[**Deployment version label (デプロイバージョンラベル)**] に自動的に表示されます。

   1. 変更したファイルのみデプロイするため、[**Deploy application incrementally**] を選択します。すべてのファイルではなく変更されたファイルのみ更新するため、増分デプロイの方が高速です。このオプションを選択した場合、アプリケーションバージョンは Git コミット ID から設定されます。アプリケーションの増分をデプロイしないを選択した場合、[**Deployment version label**] ボックスでバージョンラベル付けを更新できます。  
![\[[Publish to beanstalk ] ウィザード 2\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-publish-beanstalk1.png)

   1. [**Next**] をクリックします。

1. [**Environment**] ページで、環境の詳細を説明します。

   1. [**Create a new environment for this application**] を選択します。

   1. [**Name**] に、環境の名前を入力します。

   1. [**Description**] で、環境の特性を説明します。この手順は省略可能です。

   1. 使用する環境の [**Type**] を選択します。

      [**Load balanced, auto scaled**] 環境または [**Single instance**] 環境のいずれかを選択できます。詳細については、「[環境タイプ](using-features-managing-env-types.md)」を参照してください。

       
**注記**  
単一インスタンスの環境の場合は、負荷分散、Auto Scaling、ヘルスチェック URL の設定は適用されません。

   1. [**Environment URL**] ボックスにカーソルを移動すると、環境の URL が自動的に表示されます。

   1. [**Check availability（稼働率をチェックする）**] をクリックして、環境 URL が利用できることを確認します。  
![\[[Publish to beanstalk ] ウィザード 3\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-publish-beanstalk2.png)

   1. [**Next**] をクリックします。

1. [**AWS Options**] ページで、デプロイの他のオプションとセキュリティ情報を設定します。

   1.  [**Container Type**] で、[**64bit Windows Server 2012 running IIS 8**] または [**64bit Windows Server 2008 running IIS 7.5**] を選択します。

   1. [**Instance Type**] で [**Micro**] を選択します。

   1. [**Key pair**] で [**Create new key pair**] を選択します。新しいキーペアの名前 (この例では、**myuswestkeypair**) を入力して、[**OK**] をクリックします。キーペアを使用すると、Amazon EC2 インスタンスへのリモートデスクトップアクセスが可能になります。Amazon EC2 キーペアの詳細については、*Amazon Elastic Compute Cloud ユーザーガイド*の「[Using Credentials](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-credentials.html)」を参照してください。

   1. インスタンスプロファイルを選択します。

      インスタンスプロファイルがない場合は、[**Create a default instance profile**] を選択します。Elastic Beanstalk でのインスタンスプロファイルの使用については、「[Elastic Beanstalk インスタンスプロファイルの管理](iam-instanceprofile.md)」を参照してください。

   1. 環境で使用したいカスタム VPC がある場合は、[**Launch into VPC**] をクリックします。次のページで、VPC 情報を設定できます。Amazon VPC の詳細については、「[Amazon Virtual Private Cloud (Amazon VPC)](https://aws.amazon.com/vpc/)」を参照してください。Support されているレガシーではないコンテナタイプのリストについては、「[一部のプラットフォームバージョンがレガシーとマークされているのはなぜですか?](using-features.migration.md#using-features.migration.why)」を参照してください。  
![\[[Publish to beanstalk ] ウィザード 4\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-publish-beanstalk3b_iam.png)

   1.  [**Next**] をクリックします。

1. VPC 内で環境を起動することを選択した場合は、[**VPC Options**] ページが表示されます。そうでない場合は、[**Additional Options**] ページが表示されます。ここでは、VPC のオプションを設定します。  
![\[ロードバランスされたスケーラブルな環境の VPC オプション\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-publish-beanstalk3b_vpc.png)  
![\[単一インスタンス環境の VPC オプション\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-publish-beanstalk3b_vpc-single.png)

   1. 環境を起動する VPC の VPC ID を選択します。

   1. 負荷分散されたスケーラブルな環境では、Elastic Load Balancing をインターネットで利用できないようにする場合、[**ELB Scheme**] で [**プライベート**] を選択します。

      単一インスタンスの環境の場合、環境にロードバランサーがないため、このオプションは適用されません。詳細については、「」を参照してください[環境タイプ](using-features-managing-env-types.md)

   1. 負荷分散されたスケーラブルな環境では、Elastic Load Balancing と EC2 インスタンスのサブネットを選択します。パブリックサブネットとプライベートサブネットを作成した場合、Elastic Load Balancing と EC2 インスタンスが正しいサブネットと関連付けられていることを確認してください。Amazon VPC のデフォルトでは、10.0.0.0/24 を使用するデフォルトパブリックサブネットと 10.0.1.0/24 を使用するプライベートサブネットを作成します。既存のサブネットは [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) の Amazon VPC コンソールで表示できます。

      単一インスタンスの環境の場合、VPC に必要なのは、インスタンスのパブリックサブネットのみです。この環境には、ロードバランサーがないため、ロードバランサーのサブネット選択は適用されません。詳細については、「」を参照してください[環境タイプ](using-features-managing-env-types.md)

   1. 負荷分散されたスケーラブルな環境の場合は、必要に応じてインスタンス用に作成したセキュリティグループを選択します。

      単一インスタンスの環境では、NAT デバイスは必要ありません。default セキュリティグループを選択します。Elastic Beanstalk は、インスタンスがインターネットにアクセスできるように、Elastic IP アドレスをインスタンスに割り当てます。

   1. [**Next**] をクリックします。

1. [**Application Options**] ページで、アプリケーションのオプションを設定します。

   1. [Target framework] として、[**.NET Framework 4.0**] を選択します。

   1. Elastic Load Balancing では、ヘルスチェックを使用して、アプリケーションを実行している Amazon EC2 インスタンスが正常であるかどうかを確認します。ヘルスチェックでは、指定された URL を設定間隔で調査して、インスタンスのヘルスステータスを確認します。デフォルト URL をオーバーライドしてアプリケーションの既存のリソース (たとえば、`/myapp/index.aspx`) に一致させるには、[**Application health check URL**] ボックスに URL を入力します。アプリケーションのヘルスチェックの詳細については、「[ヘルスチェック](environments-cfg-clb.md#using-features.managing.elb.healthchecks)」を参照してください。

   1. アプリケーションに影響する重要なイベントに関する Amazon Simple Notification Service （Amazon SNS）通知を受信する場合は、E メールアドレスを入力します。

   1. [**Application Environment**] セクションでは、アプリケーションを実行している Amazon EC2 インスタンスの環境変数を指定できます。この設定では、環境間を移動するときにソースコードの再コンパイルを不要にすることで、性が向上します。

   1. アプリケーションのデプロイに使用するアプリケーション認証情報オプションを選択します。  
![\[[Publish to beanstalk ] ウィザード 6\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-publish-beanstalk3a.png)

   1. [**Next**] をクリックします。

1. 以前に Amazon RDS データベースをセットアップしたことがある場合には、[**Amazon RDS DB Security Group**] ページが表示されます。Elastic Beanstalk 環境を Amazon RDS DB インスタンスに接続する場合、1 つ以上のセキュリティグループを選択します。それ以外の場合、次のステップに進みます。準備が完了したら、[**Next**] をクリックします。  
![\[[Publish to beanstalk ] ウィザード 7\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-publish-beanstalk6b.png)

1.  デプロイのオプションを確認します。すべて問題なければ、[**デプロイ**] をクリックします。  
![\[[Publish to beanstalk ] ウィザード 8\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-publish-beanstalk4.png)

   ASP.NET プロジェクトはウェブデプロイファイルとしてエクスポートされ、Amazon S3 にアップロードされ、Elastic Beanstalk に新しいアプリケーションバージョンとして登録されます。Elastic Beanstalk デプロイ機能は、新しくデプロイされたコードで利用できるようになるまで、環境を監視します。[env:<environment name>] タブに、環境のステータスが表示されます。  
![\[環境ステータス\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-env-status.png)

## 環境を終了する
<a name="create_deploy_NET.terminating"></a>

未使用の AWS リソースに対して料金が発生しないように、 AWS Toolkit for Visual Studio を使用して実行中の環境を終了できます。

**注記**  
 いつでも、また同じバージョンを使用して新しい環境を起動できます。

**環境を終了するには**

1.  [**AWS Explorer**] でElastic Beanstalk ノードとアプリケーションノードを展開します。アプリケーション環境を右クリックして、[**環境の終了**] を選択します。

1. プロンプトが表示されたら、[**はい**] をクリックして、環境を終了することを確認します。Elastic Beanstalk が環境で実行されている AWS リソースを終了するまでに数分かかります。  
![\[Elastic Beanstalk の [Terminate Environment (環境終了)] ダイアログボックス\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-terminate-confirm.png)
**注記**  
環境を終了すると、終了した環境に関連付けられていた CNAME はすべてのユーザーが使用できるようになります。

# 環境へのデプロイ
<a name="create_deploy_NET.sdlc.create.edit"></a>

アプリケーションをテストしたので、アプリケーションを編集して再デプロイしすぐに結果を表示することは簡単です。

 **ASP.NET ウェブアプリケーションを編集して再デプロイするには** 

1.  [**Solution Explorer**] でアプリケーションを右クリックし、[**Republish to Environment <*your 環境 name*>**] をクリックします。[**Re-publish to AWS Elastic Beanstalk**] (Amazon Elastic Beanstalk への再発行) ウィザードが開きます。  
![\[[Publish to beanstalk] ウィザード 1\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-republish-beanstalk-sameenv.png)

1.  デプロイの詳細を確認し、[**デプロイ**] をクリックします。
**注記**  
設定を変更する場合、[**キャンセル**] をクリックし、代わりに [** への発行 AWS**] ウィザードを使用します。手順については、「[Elastic Beanstalk 環境の作成](dotnet-toolkit.md#create_deploy_NET.sdlc.deploy)」を参照してください。

   更新した ASP.NET ウェブプロジェクトは新しいバージョンラベルが付いたウェブデプロイファイルとしてエクスポートされ、Amazon S3 にアップロードされ、Elastic Beanstalk に新しいアプリケーションバージョンとして登録されます。Elastic Beanstalk デプロイ機能は、新しくデプロイされたコードで利用できるようになるまで、既存の環境を監視します。[**env:<*environment name*>**] タブに環境のステータスが表示されます。

以前のアプリケーションバージョンにロールバックする必要がある場合などは、既存のアプリケーションを既存の環境にデプロイすることもできます。

**既存のアプリケーションバージョンを既存の環境にデプロイするには**

1. [**AWS Explorer**] で Elastic Beanstalk ノードを展開して、Elastic Beanstalk アプリケーションを右クリックします。[**View Status (ステータスの表示)**] を選択します。

1. [**App: <*application name*>**] タブで [**バージョン**] をクリックします。  
![\[アプリケーションバージョン\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-publish-app-version.png)

1. デプロイするアプリケーションバージョンをクリックし、[**Publish Version (バージョンの発行)**] をクリックします。

1.  [**Publish Application Version (アプリケーションバージョンの発行)**] ウィザードで、[**次へ**] をクリックします。  
![\[[Publish application version (アプリケーションバージョンの発行)] ウィザード 1\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-republish-beanstalk2a.png)

1.  デプロイのオプションを確認し、[**デプロイ**] をクリックします。  
![\[[Publish application version (アプリケーションバージョンの発行)] ウィザード 2\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-publish-app-version-wizard3.png)

   ASP.NET プロジェクトはウェブデプロイファイルとしてエクスポートされ、Amazon S3 にアップロードされます。Elastic Beanstalk デプロイ機能は、新しくデプロイされたコードで利用できるようになるまで、環境を監視します。[**env:<*environment name*>**] タブに、環境のステータスが表示されます。

# Elastic Beanstalk アプリケーション環境の管理
<a name="create_deploy_NET.managing"></a>

 AWS Toolkit for Visual Studio と AWS マネジメントコンソールを使用すると、アプリケーション環境で使用される AWS リソースのプロビジョニングと設定を変更できます。 AWS マネジメントコンソールを使用してアプリケーション環境を管理する方法については、「」を参照してください[Elastic Beanstalk 環境の管理](using-features.managing.md)。ここでは、アプリケーション環境設定の一部として AWS Toolkit for Visual Studio で編集できる特定のサービス設定について説明します。

## 環境設定を変更する
<a name="create_deploy_NET.managing.env"></a>

アプリケーションをデプロイすると、Elastic Beanstalk は多数の AWS クラウドコンピューティングサービスを設定します。 AWS Toolkit for Visual Studio を使用して、これらの個々のサービスの設定方法を制御できます。

**アプリケーションの環境設定を**
+ Elastic Beanstalk ノードとアプリケーションノードを展開します。次に、[**AWS Explorer**] で Elastic Beanstalk 環境を右クリックします。[**View Status (ステータスの表示)**] を選択します。

  次の設定を編集できます。
  + サーバー
  + 負荷分散
  + Auto Scaling
  + 通知
  + 環境プロパティ

# AWS ツールキット for Visual Studio を使用した EC2 サーバーインスタンスの設定
<a name="create_deploy_NET.managing.ec2"></a>

Amazon Elastic Compute Cloud （Amazon EC2）は、Amazon のデータセンターにあるサーバーインスタンスの起動と管理に使用するウェブサービスです。必要に応じて、任意の合法的な用途で Amazon EC2 サーバーインスタンスをいつでも使用できます。インスタンスはさまざまなサイズや設定で使用できます。詳細については、[Amazon EC2](https://aws.amazon.com/ec2/) を参照してください。

Toolkit AWS for Visual Studio のアプリケーション環境タブ内の **Server** タブを使用して、Elastic Beanstalk 環境の Amazon EC2 インスタンス設定を編集できます。

![\[Elastic Beanstalk サーバー設定パネル\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-server.png)


## Amazon EC2 インスタンスタイプ
<a name="create_deploy_NET.managing.ec2.instancetypes"></a>

[**インスタンスタイプ**] には、Elastic Beanstalk アプリケーションで使用できるインスタンスタイプが表示されます。インスタンスタイプを変更して、アプリケーションに最適な特性 (メモリサイズや CPU 能力など) を持つサーバーを選択します。例えば、高負荷の操作を長時間実行するアプリケーションでは、より大きい CPU やメモリが必要となる場合があります。

Elastic Beanstalk アプリケーションで使用可能な Amazon EC2 インスタンスタイプの詳細については、*Amazon Elastic Compute Cloud ユーザーガイド*の「[インスタンスタイプ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)」を参照してください。

## Amazon EC2 セキュリティグループ
<a name="create_deploy_NET.managing.ec2.securitygroups"></a>

*Amazon EC2 セキュリティグループ*を使用すると、Elastic Beanstalk アプリケーションへのアクセスを制御できます。セキュリティグループとは、インスタンスのファイアウォールのルールを定義するものです。このルールでは、どの着信ネットワークトラフィックをご使用のインスタンスに配信するかを指定します。他の着信トラフィックはすべて破棄されます。グループのルールはいつでも変更することができます。実行中のすべてのインスタンスと、今後起動されるインスタンスについて、新しいルールが自動的に実施されます。

Amazon EC2 セキュリティグループは、 AWS マネジメントコンソールまたは AWS Toolkit for Visual Studio を使用して設定できます。1 つまたは複数の Amazon EC2 セキュリティグループ名の名前を [**EC2 Security Groups**] テキストボックスに入力して、Elastic Beanstalk アプリケーションへのアクセスを制御する Amazon EC2 セキュリティグループを指定できます (グループ間はコンマで区切ります)。

**注記**  
アプリケーションのヘルスチェックを有効にする場合、ソース CIDR 範囲として 0.0.0.0/0 からポート 80 （HTTP）がアクセスできることを確認してください。ヘルスチェックの詳細については、「[ヘルスチェック](create_deploy_NET.managing.elb.md#create_deploy_NET.managing.elb.healthchecks)」を参照してください。

**AWS ツールキット for Visual Studio を使用してセキュリティグループを作成するには**

1.  Visual Studio の [**AWS Explorer**] で [**Amazon EC2**] ノードを展開し、[**Security Groups**] (セキュリティグループセキュリティグループ) をダブルクリックします。

1.  [**Create Security Group**] をクリックし、セキュリティグループの名前と説明を入力します。

1.  [**OK**] をクリックします。

Amazon EC2 セキュリティグループの詳細については、*Amazon Elastic Compute Cloud ユーザーガイド*の「[セキュリティグループの使用](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)」を参照してください。

## Amazon EC2 のキーペア
<a name="create_deploy_NET.managing.ec2.keypair"></a>

Elastic Beanstalk アプリケーション用にプロビジョニングされた Amazon EC2 インスタンスには、Amazon EC2 のキーペアを使用して安全にログインできます。

**重要**  
Elastic Beanstalk 提供の Amazon EC2 インスタンスにアクセスする前に、Amazon EC2 のキーペアを作成し、Elastic Beanstalk 提供の Amazon EC2 インスタンスが Amazon EC2 のキーペアを使用するよう設定する必要があります。アプリケーションを Elastic Beanstalk にデプロイするときに、 AWS Toolkit for Visual Studio 内で **Publish to AWS** ウィザードを使用してキーペアを作成できます。Toolkit を使用してさらにキーペアを作成する場合は、次の手順に従ってください。または、[AWS マネジメントコンソール](https://console.aws.amazon.com/)を使用して、Amazon EC2 のキーペアを設定することもできます。Amazon EC2 のキーペアを作成する手順については、[Amazon Elastic Compute Cloud 入門ガイド](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)を参照してください。

 [**Existing Key Pair**] テキストボックスを使用すると、Elastic Beanstalk アプリケーションを実行している Amazon EC2 インスタンスに安全にログインするために使用できる Amazon EC2 のキーペアの名前を指定できます。

**Amazon EC2 のキーペアの名前を指定するには**

1. [**Amazon EC2**] ノードを展開し、[**Key Pairs**] をダブルクリックします。

1.  [**Create Key Pair**] をクリックし、キーペア名を入力します。

1.  [**OK**] をクリックします。

Amazon EC2 のキーペアの詳細については、*Amazon Elastic Compute Cloud ユーザーガイド*の「[Amazon EC2 認証情報の使用](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-credentials.html)」のページを参照してください。Amazon EC2 インスタンスへの接続の詳細については、「[サーバーインスタンスの一覧表示と接続](create_deploy_NET.ec2connect.md)」を参照してください。

## 間隔のモニタリング
<a name="create_deploy_NET.managing.monitoring"></a>

 デフォルトでは、基本的な Amazon CloudWatch メトリクスだけが有効化されています。5 分周期でデータを返します。 AWS Toolkit for Eclipseの環境の [**Configuration**] (設定) タブの [**Server**] (サーバー) セクションで、[**Monitoring Interval**] (モニタリング間隔) で [**1 minute**] (1 分)を選択すると、より詳細な 1 分間隔の CloudWatch メトリクスを有効化することもできます。

**注記**  
Amazon CloudWatch の利用料金で 1 分間隔のメトリクスに申し込むことができます。詳細については、[Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) を参照してください。

## カスタム AMI ID
<a name="create_deploy_NET.managing.customami"></a>

 AWS Toolkit for Eclipseの環境で、[**Configuration**] (設定) タブの [**Server**] (サーバー) セクションの [**Custom AMI ID**] (カスタム AMI ID) ボックスにカスタム AMI の ID を入力して、Amazon EC2 インスタンスで使用するデフォルトの AMI を独自のカスタム AMI に置き換えることができます。

**重要**  
独自の AMI の使用は高度な作業であるため、注意が必要です。カスタム AMI が必要な場合は、デフォルトの Elastic Beanstalk AMI を変更して使用することをお勧めします。正常と見なされるには、Amazon EC2 インスタンスが、ホストマネージャの実行を含む Elastic Beanstalk の一連の要件を満たす必要があります。これらの要件を満たさないと、環境が正常に動作しない可能性があります。

# AWS ツールキット for Visual Studio を使用した Elastic Load Balancing の設定
<a name="create_deploy_NET.managing.elb"></a>

Elastic Load Balancing は、アプリケーションの可用性とスケーラビリティの向上に役立つ Amazon のウェブサービスです。このサービスによって、アプリケーションの負荷を簡単に複数の Amazon EC2 インスタンスに分散できます。Elastic Load Balancing による冗長化で可用性が改善され、アプリケーションのトラフィック増加に対応できます。

 Elastic Load Balancing を使用すると、実行しているすべてのインスタンス間で、アプリケーションの着信トラフィックを配信して負荷分散を行うことができます。また、アプリケーションの処理能力を増やす必要があるときには、新しいインスタンスを簡単に追加することもできます。

 アプリケーションをデプロイすると、Elastic Beanstalk によって自動的に Elastic Load Balancing がプロビジョニングされます。 AWS Toolkit for Visual Studio のアプリケーション環境タブ内の **Load Balancer** タブを使用して、Elastic Beanstalk 環境の Amazon EC2 インスタンス設定を編集できます。

![\[Elastic Beanstalk のElastic Load Balancing 設定パネル\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-loadbalancer.png)


 ここでは、アプリケーションで設定できる Elastic Load Balancing パラメータについて説明します。

## ポート
<a name="create_deploy_NET.managing.elb.ports"></a>

Elastic Beanstalk アプリケーションへのリクエストを処理するためにプロビジョニングされたロードバランサーは、アプリケーションを実行している Amazon EC2 インスタンスにリクエストを送信します。プロビジョニングされたロードバランサーは、HTTP ポートと HTTPS ポートでリクエストをリッスンし、 AWS Elastic Beanstalk アプリケーション内の Amazon EC2 インスタンスにリクエストをルーティングできます。デフォルトでは、ロードバランサーは HTTP ポートのリクエストを処理します。少なくともいずれかのポート（HTTP または HTTPS）を有効にする必要があります。

![\[Elastic Beanstalk の Elastic Load Balancing の設定 - ポート\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-loadbalancer-ports.png)


**重要**  
指定したポートがロックされていないことを確認してください。ロックされている場合、ユーザーは Elastic Beanstalk アプリケーションに接続できません。

### HTTP ポートを制御する
<a name="create_deploy_NET.managing.elb.ports.http"></a>

HTTP ポートをオフにするには、[**HTTP Listener Port**] で [**OFF**] を選択します。HTTP ポートを有効にするには、リストから HTTP ポート ([**80**] など) を選択します。

**注記**  
デフォルトポート 80 以外のポート (例: ポート 8080) を使用して環境にアクセスする場合は、既存のロードバランサーにリスナーを追加し、そのポートでリッスンするようにリスナーを設定します。  
例えば、[Classic Load Balancer 用のAWS CLI](https://docs.aws.amazon.com/cli/latest/reference/elb/create-load-balancer-listeners.html) を使用して、次のコマンドを入力します。*LOAD\$1BALANCER\$1NAME* は Elastic Beanstalk のロードバランサーの名前に置き換えてください。  

```
aws elb create-load-balancer-listeners --load-balancer-name LOAD_BALANCER_NAME --listeners "Protocol=HTTP, LoadBalancerPort=8080, InstanceProtocol=HTTP, InstancePort=80"
```
例えば、[Application Load Balancer 用のAWS CLI](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-listener.html) を使用して、次のコマンドを入力します。*LOAD\$1BALANCER\$1ARN* は Elastic Beanstalk のロードバランサーの ARN に置き換えてください。  

```
aws elbv2 create-listener --load-balancer-arn LOAD_BALANCER_ARN --protocol HTTP --port 8080
```
Elastic Beanstalk を使用して環境を監視する場合は、ポート 80 のリスナーを削除しないでください。

### HTTPS ポートを制御する
<a name="create_deploy_NET.managing.elb.ports.https"></a>

Elastic Load Balancing は、ロードバランサーへのクライアント接続のトラフィックを暗号化するために、HTTPS/TLS プロトコルをサポートしています。ロードバランサーから EC2 インスタンスへの接続では、プレーンテキストの暗号化が使用されます。デフォルトで、HTTPS ポートは無効です。

**HTTPS ポートを有効にするには**

1.  AWS Certificate Manager (ACM) を使用して新しい証明書を作成するか、証明書とキーを AWS Identity and Access Management (IAM) にアップロードします。ACM 証明書のリクエストの詳細については、*AWS Certificate Manager ユーザーガイド*の「[証明書のリクエスト](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html)」を参照してください。ACM へのサードパーティー証明書のインポートの詳細については、*AWS Certificate Manager ユーザーガイド*の「[証明書のインポート](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)」を参照してください。ACM がお客様の[リージョンで利用できない場合は](https://docs.aws.amazon.com/general/latest/gr/acm.html)、 AWS Identity and Access Management (IAM) を使用してサードパーティー証明書をアップロードします。ACM および IAM サービスは証明書を保存し、SSL 証明書の Amazon リソースネーム (ARN) を提供します。証明書の作成と IAM へのアップロードに関する詳細については、*IAM ユーザーガイド*の「[サーバー証明書の使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingServerCerts.html)」を参照してください。

1. [**HTTPS Listener Port (HTTPS リスナーポート)**] のポートを選択して、HTTPS ポートを指定します。  
![\[Elastic Beanstalk の Elastic Load Balancing 設定 - SSL\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-elb-ssl.png)

1. [**SSL 証明書 ID**] に、SSL 証明書の Amazon リソースネーム (ARN) を入力します。例えば、**arn:aws:iam::123456789012:server-certificate/abc/certs/build**、**arn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678** などです。ステップ 1 で作成またはアップロードした SSL 証明書を使用します。

HTTPS ポートをオフにするには、[**HTTPS Listener Port**] で [**OFF**] を選択します。

## ヘルスチェック
<a name="create_deploy_NET.managing.elb.healthchecks"></a>

ヘルスチェックの定義には、インスタンスのヘルスを照会する URL が含まれます。デフォルトでは、Elastic Beanstalk はレガシーではないコンテナの場合は TCP:80 を使用し、レガシーコンテナの場合は HTTP:80 を使用します。デフォルト URL をオーバーライドしてアプリケーションの既存のリソース (たとえば、`/myapp/default.aspx`) に一致させるには、[**Application Health Check URL (アプリケーションヘルスチェック URL)**] ボックスに URL を入力します。デフォルトの URL をオーバーライドすると、Elastic Beanstalk は HTTP を使用してリソースを照会します。レガシーコンテナタイプを使用しているかどうかを確認するには、「[一部のプラットフォームバージョンがレガシーとマークされているのはなぜですか?](using-features.migration.md#using-features.migration.why)」を参照してください。

 [**Load Balancing**] パネルの [**EC2 Instance Health Check**] を使用して、ヘルスチェックの設定を制御できます。

![\[Elastic Beanstalk の Elastic Load Balancing の設定 - ヘルスチェック\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-loadbalancer-healthcheck.png)


ヘルスチェックの定義には、インスタンスのヘルスを照会する URL が含まれます。[**Application Health Check URL**] ボックスに入力することによって、デフォルト URL をオーバーライドし、アプリケーションの既存のリソース (たとえば、`/myapp/index.jsp`) に一致させます。

次の一覧では、アプリケーションで設定できるヘルスチェックパラメータについて説明します。
+ [**Health Check Interval (seconds)**] には、Elastic Load Balancing がアプリケーションの Amazon EC2 インスタンスの各ヘルスチェックを待機する秒数を入力します。
+  [**Health Check Timeout (seconds)**] には、Elastic Load Balancing がインスタンスの応答がないとみなす応答待機時間の秒数を入力します。
+ [**Healthy Check Count Threshold**] および [**Unhealthy Check Count Threshold**] には、Elastic Load Balancing がインスタンスのヘルスステータスを変更するまでの URL 探索の連続成功回数または失敗回数を指定します。たとえば、[**ヘルスチェック失敗数のしきい値**] ボックスに **5** と指定した場合、Elastic Load Balancing がヘルスチェックを失敗とみなすには、URL がエラーメッセージまたはタイムアウトを 5 回連続して返す必要があります。

## セッション
<a name="create_deploy_NET.managing.elb.sessions"></a>

デフォルトでは、ロードバランサーは負荷が最小になるように、各リクエストを個別にサーバーインスタンスにルーティングします。比較すると、スティッキーセッションの場合、セッション中にユーザーから受信するすべてのリクエストが、同じサーバーインスタンスに送信されるように、ユーザーのセッションを特定のサーバーインスタンスにバインドします。

 アプリケーションでスティッキーセッションが有効な場合、Elastic Beanstalk は、ロードバランサーで生成された HTTP Cookie を使用します。ロードバランサーは、ロードバランサーが生成する特別な Cookie を使って、各リクエストのアプリケーションインスタンスを追跡します。ロードバランサーがリクエストを受け取ると、まずこの Cookie がリクエスト内にあるかどうかを調べます。ある場合は、Cookie で指定されたアプリケーションインスタンスにリクエストが送信されます。Cookie がない場合、ロードバランサーは、既存の負荷分散アルゴリズムに基づいてアプリケーションインスタンスを選択します。同じユーザーからの以降のリクエストをそのアプリケーションインスタンスにバインドするため、応答に Cookie が挿入されます。ポリシー設定では、各 Cookie の有効期間を設定する Cookie 期限を定義します。

[**Load Balancer**] タブの [**Sessions**] セクションを使用して、アプリケーションのロードバランサーでスティッキーセッションを使用できるようにするかどうかを指定できます。

![\[Elastic Beanstalk Elastic Load Balancing の設定 - セッション\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-loadbalancer-sessions.png)


 Elastic Load Balancing の詳細については、[Elastic Load Balancing デベロッパーガイド](https://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/)を参照してください。

# AWS ツールキット for Visual Studio を使用した Auto Scaling の設定
<a name="create_deploy_NET.managing.as"></a>

Amazon EC2 Auto Scaling は、ユーザーが定義したトリガーに基づいて、Amazon EC2 インスタンスを自動的に起動または終了するように設計された Amazon のウェブサービスです。ユーザーは *Auto Scaling グループ*をセットアップし、そのグループに*トリガー*を関連付けることで、帯域幅の使用や CPU の使用率などのメトリクスに基づいて、コンピューティングリソースを自動的にスケールできます。Amazon EC2 Auto Scaling は Amazon CloudWatch と連携して、アプリケーションを実行するサーバーインスタンスのメトリクスを取得します。

Amazon EC2 Auto Scaling によって、Amazon EC2 インスタンスのグループを利用して、自動的に数を増減できるようにさまざまなパラメータを設定できます。Amazon EC2 Auto Scaling は、アプリケーションのトラフィックの変化をシームレスに処理できるように、Amazon EC2 インスタンスのグループを追加または削除できます。

 Amazon EC2 Auto Scaling は、起動した各 Amazon EC2 インスタンスの状態もモニタリングします。インスタンスが予期せずに終了した場合、Amazon EC2 Auto Scaling は終了を検出し、代わりのインスタンスを起動します。この機能を使用すると、任意の固定の Amazon EC2 インスタンス数を自動的に維持できます。

Elastic Beanstalk はアプリケーション用に Amazon EC2 Auto Scaling のプロビジョニングを行います。Toolkit AWS for Visual Studio のアプリケーション環境タブ内の **Auto Scaling** タブを使用して、Elastic Beanstalk 環境の Amazon EC2 インスタンス設定を編集できます。

![\[Elastic Beanstalk の Auto Scaling 設定パネル\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-autoscaling.png)


ここでは、アプリケーションの Auto Scaling パラメータの設定方法について説明します。

## 設定の起動
<a name="create_deploy_NET.managing.as.launchconfig"></a>

起動設定を編集すると、Elastic Beanstalk アプリケーションによる Amazon EC2 Auto Scaling リソースのプロビジョニング方法を制御できます。

[**Minimum Instance Count (最小インスタンス数)**] ボックスと [**Maximum Instance Count (最大インスタンス数)**] ボックスを使用して、Elastic Beanstalk アプリケーションが使用する Auto Scaling グループの最小サイズと最大サイズを指定できます。

![\[Elastic Beanstalk Auto Scaling の起動設定ウィンドウ\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-autoscaling-launchconfig.png)


**注記**  
固定の Amazon EC2 インスタンス数を維持するには、[**Minimum Instance Count**] と [**Maximum Instance Count**] を同じ値に設定します。

[**Availability Zones**] ボックスでは、Amazon EC2 インスタンスを維持するアベイラビリティーゾーンの数を指定できます。フォールトトレラントアプリケーションを構築する場合、この数を設定することをお勧めします。1 つのアベイラビリティーゾーンが停止しても、インスタンスは他のアベイラビリティーゾーンで実行されます。

**注記**  
現在、インスタンスを維持するアベイラビリティーゾーンを指定することはできません。

## トリガ
<a name="create_deploy_NET.managing.as.trigger"></a>

*トリガー*とは、インスタンス数を増やす (*スケールアウト*) タイミングや、インスタンス数を減らす (*スケールイン*) タイミングをシステムに指示するために設定できる Amazon EC2 Auto Scaling のメカニズムです。CPU の使用率など、Amazon CloudWatch に発行された任意のメトリクスについて、トリガーが*発生する*よう設定し、指定した条件を満たしているかどうかを判断することができます。メトリクスについて指定した条件の上限または下限を、指定した期間超過すると、トリガーによって *Scaling Activity* という長時間実行されるプロセスが起動されます。

 AWS Toolkit for Visual Studio を使用して、Elastic Beanstalk アプリケーションのスケーリングトリガーを定義できます。

![\[Elastic Beanstalk の Auto Scaling トリガー\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-autoscaling-triggers.png)


Amazon EC2 Auto Scaling のトリガーは、インスタンス固有の Amazon CloudWatch メトリクスを監視して動作します。トリガーには、CPU 使用率、ネットワークトラフィック、ディスクアクティビティが含まれます。[**Trigger Measurement**] 設定を使用して、トリガーのメトリクスを選択します。

次のリストは、 AWS マネジメントコンソールを使用して設定できるトリガーパラメータを示しています。
+ トリガーに使用する統計を指定できます。[**Trigger Statistic**] に対して選択できるのは、[**Minimum**]、[**Maximum**]、[**Sum**]、または [**Average**] です。
+ [**Unit of Measurement**] には、トリガー測定の単位を指定します。
+ [**Measurement Period**] ボックスの値は、Amazon CloudWatch がトリガーのメトリクスを計測する頻度を指定します。[**Breach Duration**] は、トリガーが発生するまでに、定義した限度 ([**Upper Threshold**] と [**Lower Threshold**] に指定した値) をメトリックが超過できる時間を示します。
+ [**上限超過スケール増分**] と [**下限超過スケール増分**] には、規模の拡大や縮小を実行する際に追加または削除する Amazon EC2 インスタンスの数を指定します。

Amazon EC2 Auto Scaling の詳細については、[Amazon Elastic Compute Cloud ドキュメント](https://aws.amazon.com/documentation/ec2/)の「*Amazon EC2 Auto Scaling*」セクションを参照してください。

# AWS ツールキット for Visual Studio を使用した通知の設定
<a name="create_deploy_NET.container.sns"></a>

Elastic Beanstalk では、Amazon Simple Notification Service (Amazon SNS) を使用して、アプリケーションに影響を与える重要なイベントについて通知します。Amazon SNS 通知を有効化するには、[**Email Address**] ボックスに電子メールアドレスを入力します。Amazon SNS 通知を無効にするには、ボックスから電子メールアドレスを削除します。

![\[Elastic Beanstalk の通知ウィンドウ\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-notifications.png)


# AWS ツールキット for Visual Studio を使用した .NET コンテナの設定
<a name="create_deploy_NET.container"></a>

 [**Container/.NET Options**] パネルでは、Amazon EC2 インスタンスの動作を微調整し、Amazon S3 のログの更新を有効または無効にすることができます。 AWS Toolkit for Visual Studio を使用してコンテナ情報を設定できます。

**注記**  
環境の CNAME を切り替えることで、ダウンタイムなしで設定を変更できます。詳細については、「[Elastic Beanstalk を使用したブルー/グリーンデプロイ](using-features.CNAMESwap.md)」を参照してください。

必要に応じて、パラメータの数を拡張できます。パラメータの拡張の詳細については、「[オプション設定](ebextensions-optionsettings.md)」を参照してください。

**Elastic Beanstalk アプリケーションの [Container/.NET] パネルにアクセスするには**

1.  AWS Toolkit for Visual Studio で、Elastic Beanstalk ノードとアプリケーションノードを展開します。

1. 次に、[**AWS Explorer**] で Elastic Beanstalk 環境をダブルクリックします。

1. [**Overview**] ペインの下部にある [**Configuration**] タブをクリックします。

1. [**Container**] で、コンテナのオプションを設定できます。  
![\[Elastic Beanstalkのコンテナパネル\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-container.png)

## .NET コンテナのオプション
<a name="create_deploy_NET.container.vs.options"></a>

アプリケーションの .NET Framework のバージョンを選択できます。[**Target runtime**] として、2.0 または 4.0 を選択します。32 ビットアプリケーションを有効にするには、[**Enable 32-bit Applications**] を選択します。

## アプリケーションの設定
<a name="create_deploy_NET.container.vs.options.envprop"></a>

[**Application Settings**] セクションで、アプリケーションコードから読み取ることのできる環境変数を指定できます。

![\[Elastic Beanstalkのコンテナパネル\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-container-envproperties.png)


# アカウントの管理
<a name="create_deploy_NET.accounts"></a>

## 
<a name="create_deploy_NET.accounts.details"></a>

テスト、ステージング、本番稼働など、さまざまなタスクを実行するように異なる AWS アカウントを設定する場合は、 AWS Toolkit for Visual Studio を使用してアカウントを追加、編集、削除できます。

**複数のアカウントを管理するには**

1.  Visual Studio の [**View**] (ビュー) メニューで、[**AWS Explorer**] をクリックします。

1.  [**Account**] リストの横にある [**Add Account**] ボタンをクリックします。  
![\[AWS エクスプローラータブ\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-aws-explorer-tab.png)

    [**Add Account**] ダイアログボックスが表示されます。  
![\[[Add account (アカウントの追加)] ダイアログボックス\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-add-account.png)

1. 必要な情報を入力します。

1.  [**AWS Explorer**] タブにアカウント情報が表示されます。Elastic Beanstalk に公開する場合、使用するアカウントを選択できます。

# サーバーインスタンスの一覧表示と接続
<a name="create_deploy_NET.ec2connect"></a>

Toolkit AWS for Visual Studio または AWS マネジメントコンソールを使用して、Elastic Beanstalk アプリケーション環境を実行している Amazon EC2 インスタンスのリストを表示できます。これらのインスタンスには、リモートデスクトップ接続を使用して接続できます。 AWS マネジメントコンソールを使用してサーバーインスタンスを一覧表示して接続する方法については、「」を参照してください[サーバーインスタンスの一覧表示と接続](using-features.ec2connect.md)。以下のセクションでは、 AWS Toolkit for Visual Studio を使用してサーバーインスタンスを表示および接続する手順を示します。

**環境の Amazon EC2 インスタンスを表示して接続するには**

1.  Visual Studio の [**AWS Explorer**] で [**Amazon EC2**] ノードを展開し、[**Instances**] (インスタンス) をダブルクリックします。

1.  アプリケーションのロードバランサーで実行されている Amazon EC2 インスタンスのインスタンス ID を [**Instance (インスタンス)**] で右クリックし、コンテキストメニューから [**Open Remote Desktop (オープンリモートデスクトップ)**] を選択します。  
![\[[Open remote desktop (リモートデスクトップを開く)] ダイアログボックス\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-rdp-login.png)

1.  [**Use EC2 keypair to log on**] を選択し、アプリケーションのデプロイに使用したプライベートキーファイルの内容を [**Private key**] ボックスに貼り付けます。または、[**User name**] テキストボックスと [**Password**] テキストボックスにユーザー名とパスワードを入力します。
**注記**  
キーペアが Toolkit 内に保存されている場合、テキストボックスは表示されません。

1. [**OK**] をクリックします。

# アプリケーションの状態をモニタリングする
<a name="create_deploy_NET.healthstatus"></a>

本番ウェブサイトを実行する場合、アプリケーションが利用可能であり、リクエストに応答するか確認することが重要です。アプリケーションの応答性のモニタリングを支援するために、Elastic Beanstalk はアプリケーションに関する統計情報を監視し、しきい値を超過するとトリガーされるアラートを作成する機能を提供しています。

Elastic Beanstalk で提供される状態モニタリングの詳細については、「[ベーシックヘルスレポート](using-features.healthstatus.md)」を参照してください。

Toolkit for Visual Studio または AWS マネジメントコンソールを使用して、 AWS アプリケーションに関する運用情報にアクセスできます。

Toolkit の [**ステータス**] フィールドでは環境のステータスとアプリケーションの状態が一目でわかります。

![\[Elastic Beanstalk のヘルスステータス\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-env-status.png)


**アプリケーションの状態を監視するには**

1.  AWS Toolkit for Visual Studio の **AWS Explorer** で、Elastic Beanstalk ノードを展開し、アプリケーションノードを展開します。

1. Elastic Beanstalk 環境を右クリックし、[**View Status (ステータスの表示**)] をクリックします。

1. アプリケーション環境タブで、[**モニタリング**] をクリックします。

   [**モニタリング**] パネルには、特定のアプリケーション環境に対するリソースの使用状況を示す一連のグラフが表示されます。  
![\[Elastic Beanstalk のモニタリングパネル\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-monitoring.png)
**注記**  
デフォルトでは、時間範囲は 1 時間前に設定されます。この設定を変更するには、[**時間範囲**] リストで異なる時間範囲をクリックします。

 AWS Toolkit for Visual Studio または AWS マネジメントコンソールを使用して、アプリケーションに関連付けられたイベントを表示できます。

**アプリケーションイベントを表示するには**

1.  AWS Toolkit for Visual Studio の **AWS Explorer** で、Elastic Beanstalk ノードとアプリケーションノードを展開します。

1. [**AWS Explorer**] で Elastic Beanstalk 環境を右クリックし、[**View Status**] (ステータスの表示) をクリックします。

1. アプリケーション環境タブで [**イベント**] をクリックします。  
![\[Elastic Beanstalkのイベントパネル\]](http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/images/aeb-vs-events.png)

# デプロイツールを使用して .NET に Elastic Beanstalk アプリケーションを AWS デプロイする
<a name="deploy_NET_standalone_tool"></a>

AWS には、.NET Core および ASP.NET Core アプリケーションを Elastic Beanstalk にデプロイするための 2 つのコマンドラインツールが用意されています。
+ **AWS .NET デプロイツール** – Elastic Beanstalk を含む AWS のサービスへの .NET アプリケーションのデプロイを簡素化する最新のコマンドラインツールです。このツールはインタラクティブなエクスペリエンスを提供し、アプリケーションに最適な AWS サービスを自動的に検出できます。詳細については、「[AWS .NET デプロイツール](https://github.com/aws/aws-dotnet-deploy?tab=readme-ov-file#aws-net-deployment-tool)」を参照してください。
+ **AWS .NET CLI の拡張機能** – .NET Core アプリケーションを Elastic Beanstalk およびその他の AWS サービスにデプロイするためのコマンドを提供する .NET CLI 拡張機能のセット。これらの拡張機能は、標準の .NET CLI ワークフローと統合されています。詳細については、「[AWS .NET CLI の拡張機能](https://github.com/aws/aws-extensions-for-dotnet-cli?tab=readme-ov-file#aws-elastic-beanstalk-amazonelasticbeanstalktools)」を参照してください。

# オンプレミス .NET アプリケーションの Elastic Beanstalk への移行
<a name="dotnet-onpremmigration"></a>

AWS Elastic Beanstalk は、Elastic Beanstalk コマンドラインインターフェイス (EB CLI) を介してインターネットインフォメーションサービス (IIS) で実行されている Windows アプリケーションの効率的な移行パスを提供します。**eb migrate** コマンドは IIS サイト、アプリケーション、仮想ディレクトリを自動的に検出し、設定を保持して、 AWS クラウドにデプロイします。

この組み込みの移行機能は、クラウド移行に通常関連付けられた複雑さと時間を短縮するシンプルなアプローチを提供します。移行プロセスは、移行中にアプリケーションの機能と設定の整合性を維持するのに役立ちます AWS。

IIS アプリケーションを に移行する詳細な手順については AWS Elastic Beanstalk、このガイドの[IIS アプリケーションを Elastic Beanstalk に移行する](dotnet-migrating-applications.md)章を参照してください。

# Elastic Beanstalk での Windows Server の廃止されたコンポーネントに関する推奨事項
<a name="dotnet-deprecation-recommendations"></a>

このトピックでは、廃止された Windows Server 2012 R2 プラットフォームブランチでアプリケーションが現在実行されている場合の推奨事項を示します。また、 AWS サービス API エンドポイントおよび影響を受けるプラットフォームブランチでの TLS 1.0 および 1.1 プロトコルバージョンの非推奨サポートについても説明します。

## Windows Server 2012 R2 プラットフォームブランチの廃止
<a name="dotnet-retired-branches"></a>

Elastic Beanstalk は、[2023 年 12 月 4 日](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2023-12-04-windows-2012-retire.html)に Windows Server 2012 R2 プラットフォームブランチを廃止し、これらのプラットフォームに関連付けられた AMI を 2024 年 4 月 10 日に非公開にしました。このアクションにより、Windows Server 2012 環境でデフォルトの Beanstalk AMI を使用するインスタンスが起動されなくなります。

廃止された Windows プラットフォームブランチで実行されている環境がある場合は、最新で完全にサポートされている次の Windows Server プラットフォームのいずれかに移行することをお勧めします。
+ IIS 10.0 バージョン 2.x を使用する Windows Server 2022
+ IIS 10.0 バージョン 2.x を使用する Windows Server 2019

移行に関するすべての考慮事項については、「[Windows サーバープラットフォームの以前のメジャーバージョンからの移行](dotnet-v2migration.md#dotnet-v2migration.migration)」を参照してください。

プラットフォームの廃止の詳細については、「[Elastic Beanstalk プラットフォームのサポートポリシー](platforms-support-policy.md)」を参照してください。

**注記**  
これらの完全にサポートされているプラットフォームに移行できない場合は、Windows Server 2012 R2 または Windows Server 2012 R2 Core の AMI で作成されたカスタム AMI をベースイメージとして使用することを、既に実施していない場合はお勧めします。詳細な手順については、「[廃止されたプラットフォームの Amazon マシンイメージ (AMI) へのアクセスを維持する](using-features.customenv-env-copy.md)」を参照してください。これらの移行ステップのいずれかを実行中に AMI への一時的なアクセスが必要な場合は、[AWS サポートセンター](https://console.aws.amazon.com/support/home#/)にお問い合わせください。

## TLS 1.2 との互換性
<a name="tls-1-2-enforcement."></a>

2023 年 12 月 31 日をもって、 はすべての AWS API エンドポイントで TLS 1.2 の完全適用 AWS を開始しました。このアクションにより、すべての AWS APIs で TLS バージョン 1.0 および 1.1 を使用する機能が削除されました。この情報はもともと [2022 年 6 月 28 日](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/)にお知らせしていました。可用性に影響を与えるリスクを回避するには、ここで特定されているプラットフォームバージョンを実行している環境を、まだ新しいバージョンにアップグレードしていない場合は、できるだけ早くアップグレードしてください。

**潜在的な影響**  
TLS v1.1 以前を実行している Elastic Beanstalk プラットフォームバージョンが影響を受けます。この変更は、設定のデプロイ、アプリケーションのデプロイ、自動スケーリング、新しい環境の起動、ログローテーション、強化されたヘルスレポート、アプリケーションに関連付けられた Amazon S3 バケットへのアプリケーションログの公開などの環境アクションに影響します。

**影響を受ける Windows プラットフォームバージョン**  
以下のプラットフォームバージョンの Elastic Beanstalk 環境をご利用のお客様は、対応する各環境を [2022 年 2 月 18 日](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-02-18-windows.html)にリリースされた Windows プラットフォームバージョン 2.8.3 以降にアップグレードすることをお勧めします。
+ Windows Server 2019 — プラットフォームバージョン 2.8.2 またはそれ以前のバージョン

以下のプラットフォームバージョンの Elastic Beanstalk 環境をご利用のお客様は、対応する各環境を [2022 年 12 月 28 日](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-12-28-windows.html)にリリースされた Windows プラットフォームバージョン 2.10.7 以降にアップグレードすることをお勧めします。
+ Windows Server 2016 — プラットフォームバージョン 2.10.6 またはそれ以前のバージョン
+ Windows Server 2012 – すべてのプラットフォームバージョン。このプラットフォームは [2023 年 12 月 4 日](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2023-12-04-windows-2012-retire.html)に廃止されました 
+ Windows Server 2008 — すべてのプラットフォームバージョン。このプラットフォームは [2019 年 10 月 28 日](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2019-10-28-windows.html) に廃止されました 

最新のサポートされている Windows Server プラットフォームバージョンのリストについては、「*AWS Elastic Beanstalk  プラットフォーム*」ガイドの「[サポートされているプラットフォーム](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.net)」を参照してください。

環境の更新に関する詳細とベストプラクティスについては、「[Elastic Beanstalk 環境のプラットフォームバージョンの更新](using-features.platform.upgrade.md)」を参照してください。