

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

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

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

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

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

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

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

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

### AWS アカウントを作成する
<a name="dotnet-linux-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-linux-quickstart-prereq"></a>

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

```
~/eb-project$ this is a command
this is output
```

Linux および macOS では、任意のシェルとパッケージ管理者を使用できます。Windows では、[Linux 用の Windows サブシステムをインストール](https://docs.microsoft.com/en-us/windows/wsl/install-win10)して、Ubuntu および Bash の Windows に統合されたバージョンを入手できます。

### EB CLI
<a name="dotnet-linux-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 Linux
<a name="dotnet-linux-quickstart-prereq.runtime"></a>

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

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

```
~$ dotnet --info
```

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

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

```
~$ mkdir eb-dotnetcore
~$ cd eb-dotnetcore
```

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

```
~/eb-dotnetcore$ dotnet new web --name HelloElasticBeanstalk
~/eb-dotnetcore$ cd HelloElasticBeanstalk
```

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

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

```
~/eb-dotnetcore/HelloElasticBeasntalk$ dotnet run
```

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

```
Building...
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: https://localhost:7294
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5052
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]
```

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

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

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

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

 

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

1. アプリケーションをコンパイルしてフォルダに公開し、作成しようとしている Elastic Beanstalk 環境にデプロイします。

   ```
   ~$ cd eb-dotnetcore/HelloElasticBeanstalk
   ~/eb-dotnetcore/HelloElasticBeanstalk$ dotnet publish -o site
   ```

1. アプリケーションを公開したばかりのサイトディレクトリに移動します。

   ```
   ~/eb-dotnetcore/HelloElasticBeanstalk$ cd site
   ```

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

   コマンドで指定するプラットフォームブランチバージョンについては、次の詳細に注意してください。
   + 次のコマンドの `{{x.y.z}}` を、プラットフォームブランチ *.NET 6 on AL2023* の最新バージョンに置き換えます。
   + 最新のプラットフォームブランチバージョンを特定するには、「*AWS Elastic Beanstalk プラットフォーム*」ガイドの「[.NET Core on Linux](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.dotnetlinux) *でサポートされているプラットフォーム*」を参照してください。
   + バージョン番号を含むソリューションスタック名の例は `64bit-amazon-linux-2023-v3.1.1-running-.net-6` です。この例では、ブランチバージョンは *3.1.1* です。

   ```
   ~eb-dotnetcore/HelloElasticBeanstalk/site$ eb init -p 64bit-amazon-linux-2023-v{{x.y.z}}-running-.net-6 dotnetcore-tutorial --region us-east-2
   Application dotnetcore-tutorial has been created.
   ```

   このコマンドは、`dotnetcore-tutorial` という名前のアプリケーションを作成し、ローカルリポジトリを設定して、コマンドで指定された .NET Core on Linux プラットフォームバージョンで環境を作成します。

1. (オプション) **eb init** を再度実行してデフォルトのキーペアを設定し、アプリケーションを実行している EC2 インスタンスに SSH を使用して connect できるようにします。

   ```
   ~eb-dotnetcore/HelloElasticBeanstalk/site$ eb init
   Do you want to set up SSH for your instances?
   (y/n): y
   Select a keypair.
   1) my-keypair
   2) [ Create new KeyPair ]
   ```

   1 つのキーペアがすでにある場合はそれを選択するか、またはプロンプトに従ってキーペアを作成します。プロンプトが表示されないか設定を後で変更する必要がない場合は、**eb init -i** を実行します。

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

   まで 

   ```
   ~eb-dotnetcore/HelloElasticBeanstalk/site$ eb create dotnet-tutorial
   ```

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

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

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

```
~eb-dotnetcore/HelloElasticBeanstalk/site$ eb open
```

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

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

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

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

```
~eb-dotnetcore/HelloElasticBeanstalk/site$ eb terminate
```

## AWS アプリケーションの リソース
<a name="dotnet-linux-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-linux-quickstart-next-steps"></a>

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

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

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

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