

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

# ステップ 4: Hello World アプリケーションをデプロイする
<a name="tutorials-windows-deploy-application"></a>

ここで、Amazon S3 にアップロードした Hello World サンプルアプリケーションのリビジョンをデプロイします。 AWS CLI または CodeDeploy ンソールを使用して、リビジョンをデプロイし、デプロイのの進行状況をモニタリングします。アプリケーションリビジョンが正常にデプロイされた後に、その結果を確認します。

**Topics**
+ [CodeDeploy を使用して、アプリケーションリビジョンをデプロイします。](#tutorials-windows-deploy-application-create-deployment)
+ [デプロイをモニタリングおよびトラブルシューティングします。](#tutorials-windows-deploy-application-monitor)
+ [デプロイの確認](#tutorials-windows-deploy-application-verify)

## CodeDeploy を使用して、アプリケーションリビジョンをデプロイします。
<a name="tutorials-windows-deploy-application-create-deployment"></a>

 アプリケーションをデプロイするには、CLI またはコンソールを使用できます。

**Topics**
+ [アプリケーションリビジョン (CLI) をデプロイするには](#tutorials-windows-deploy-application-create-deployment-cli)
+ [アプリケーションリビジョン (コンソール) のデプロイ](#tutorials-windows-deploy-application-create-deployment-console)

### アプリケーションリビジョン (CLI) をデプロイするには
<a name="tutorials-windows-deploy-application-create-deployment-cli"></a>

1. まず、デプロイにはデプロイグループが必要です。ただし、デプロイグループを作成する前に、サービスロール ARN が必要です。サービスロールは、ユーザーに代わってサービスアクセス権限を付与する IAM ロールです。この場合、サービスロールは、Amazon EC2 インスタンスにアクセスして Amazon EC2 インスタンスタグを拡張 (読み込み) するためのアクセス権限を CodeDeploy に付与します。

   すでに [サービスロールの作成 (CLI)](getting-started-create-service-role.md#getting-started-create-service-role-cli) の手順に従ってサービスロールを作成している必要があります。サービスロールの ARN を取得するには、「[サービスロール ARN の取得 (CLI)](getting-started-create-service-role.md#getting-started-get-service-role-cli)」を参照してください。

1. ARN を取得したら、**create-deployment-group** コマンドを呼び出して、**HelloWorld\$1DepGroup** という名前のアプリケーションと関連付けられる **HelloWorld\$1App** という名前のデプロイグループを作成し、**CodeDeployDemo** という名前の Amazon EC2 インスタンスタグと、サービスロールARNと関連付けられる **CodeDeployDefault.OneAtATime** という名前のデプロイ設定を使用します。

   ```
   aws deploy create-deployment-group --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --deployment-config-name CodeDeployDefault.OneAtATime --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE --service-role-arn serviceRoleARN
   ```
**注記**  
-[デプロイメントグループの作成](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) コマンドは、デプロイおよびインスタンス内の指定されたイベントについて、トピックサブスクライバーに Amazon SNS 通知を送信するトリガーの作成に対応しています。このコマンドは、Amazon CloudWatch アラームのモニタリングしきい値が満たされたときにデプロイを自動的にロールバックし、デプロイを停止するアラームを設定するオプションもサポートします。このチュートリアルでは、これらのアクションに関するコマンドは含まれていません。

1. デプロイを作成する前に、デプロイグループのインスタンスに CodeDeploy エージェントがインストールされている必要があります。 AWS Systems Manager で次のコマンドを使用して、コマンドラインからエージェントをインストールできます。

   ```
   aws ssm create-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo --parameters action=Install,name=AWSCodeDeployAgent --schedule-expression "cron(0 2 ? * SUN *)" 
   ```

   このコマンドは、CodeDeploy エージェントをインストールし、毎週日曜日の午前 2:00 に更新を試行する関連付けを Systems Manager ステートマネージャーに作成します。CodeDeploy エージェントの詳細については、「[CodeDeploy エージェントの使用](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent.html)」を参照してください。Systems Manager のさらなる詳細については、「[AWS Systems Managerとは](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)」 を参照してください。

1. 次に、**create-deployment** コマンドを呼び出して、**amzn-s3-demo-bucket** という名前のバケットで **HelloWorld\$1App.zip** という名前のアプリケーションバージョンを使用して、**HelloWorld\$1App** という名前のアプリケーション、**CodeDeployDefault.OneAtATime** という名前のデプロイ設定と **HelloWorld\$1DepGroup** という名前のデプロイグループに関連付けられるデプロイを作成します。

   ```
   aws deploy create-deployment --application-name HelloWorld_App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name HelloWorld_DepGroup --s3-location bucket=amzn-s3-demo-bucket,bundleType=zip,key=HelloWorld_App.zip
   ```

### アプリケーションリビジョン (コンソール) のデプロイ
<a name="tutorials-windows-deploy-application-create-deployment-console"></a>

1. CodeDeploy コンソールを使用してアプリケーションリビジョンをデプロイする前に、サービスロール ARN が必要になります。サービスロールは、ユーザーに代わってサービスアクセス権限を付与する IAM ロールです。この場合、サービスロールは、Amazon EC2 インスタンスにアクセスして Amazon EC2 インスタンスタグを拡張 (読み込み) するためのアクセス権限を CodeDeploy に付与します。

   すでに [サービスロールの作成 (コンソール)](getting-started-create-service-role.md#getting-started-create-service-role-console) の手順に従ってサービスロールを作成している必要があります。サービスロールの ARN を取得するには、「[サービスロール ARN の取得 (コンソール)](getting-started-create-service-role.md#getting-started-get-service-role-console)」を参照してください。

1. ARN があるため、CodeDeploy コンソールを使用して、アプリケーションリビジョンをデプロイできます。

   にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) で CodeDeploy コンソールを開きます。
**注記**  
「[CodeDeploy の開始方法](getting-started-codedeploy.md)」で設定したのと同じユーザーでサインインします。

1. ナビゲーションペインで [**デプロイ**] を展開し、[**アプリケーション**] を選択します。

1. [**HelloWorld\$1App**] を選択します。

1. [**デプロイグループ**] タブで、[**デプロイグループの作成**] を選択します。

1. **[Deployment group name]** (デプロイグループ名) に「**HelloWorld\$1DepGroup**」と入力します。

1. [**サービスロール**] で、サービスロールの名前を選択します。

1. [**デプロイタイプ**] で、[**インプレース**] を選択します。

1. [**環境設定**] で、[**Amazon EC2 インスタンス**] を選択します。

1. **を使用した エージェント設定 AWS Systems Manager**では、デフォルトのままにします。

1. **[Key]** (キー) に、「**Name**」と入力します。

1. **[値]** には「**CodeDeployDemo**」と入力します。

1. [**デプロイ設定**] で [**CodeDeployDefault.OneAtATime**] を選択します。

1. [**ロードバランサー**] で、[**Enable load balancing (ロードバランシングの有効化)**] をオフにします。

1. **デプロイグループの作成** を選択します。

1. **[デプロイの作成]** を選択します。

1. [**Deployment group**] で、[**HelloWorld\$1DepGroup**] を選択します。

1. [**リビジョンタイプ**] では [**アプリケーションは Amazon S3 に格納されています**] を選択し、[**リビジョンの場所**] では以前に Amazon S3 にアップロードしたサンプルの Hello World アプリケーションリビジョンの場所を入力します。場所の取得

   1. Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

   1. バケットのリストで、**[amzn-s3-demo-bucket]** (または、アプリケーションリビジョンをアップロードしたバケットの名前) を選択します。

   1. オブジェクトのリストで、**HelloWorld\$1App.zip** を選択します。

   1. [**概要**] タブで、[**パスのコピー**] を選択します。

   1. CodeDeploy コンソールに戻り、**[リビジョンの場所]** に **[リンク]** フィールドの値を貼り付けます。

1. [**リビジョンファイルの種類**] で、[**.zip**] を選択します。

1. (オプション) [**デプロイの説明**] にコメントを入力します。

1. **[デプロイの作成]** を選択します。新しく作成されたデプロイに関する情報は [**Deployments**] ページに表示されます。

## デプロイをモニタリングおよびトラブルシューティングします。
<a name="tutorials-windows-deploy-application-monitor"></a>

 AWS CLI または コンソールを使用して、デプロイをモニタリングおよびトラブルシューティングします。

**Topics**
+ [デプロイ (CLI) をモニタリングおよびトラブルシューティングするには](#tutorials-windows-deploy-application-monitor-cli)
+ [デプロイ (コンソール) をモニタリングおよびトラブルシューティングするには](#tutorials-windows-deploy-application-monitor-console)

### デプロイ (CLI) をモニタリングおよびトラブルシューティングするには
<a name="tutorials-windows-deploy-application-monitor-cli"></a>

1. **HelloWorld\$1App** という名前のアプリケーションと **HelloWorld\$1DepGroup** という名前のデプロイグループに対して **list-deployments** コマンドを呼び出して、デプロイの ID を取得します。

   ```
   aws deploy list-deployments --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --query "deployments" --output text
   ```

1. デプロイ ID を使用して **get-deployment** コマンドを呼び出します。

   ```
   aws deploy get-deployment --deployment-id deploymentID --query "deploymentInfo.status" --output text
   ```

1. コマンドはデプロイの全体ステータスを返します。成功すると、値は `Succeeded` になります。

   全体的なステータスが `Failed` の場合、[list-deployment-instances](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-instances.html) や [デプロイメントインスタンスの取得](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-instance.html) などのコマンドを呼び出してトラブルシューティングを行います。トラブルシューティングの他のオプションについては、「[ログファイルの分析によるインスタンスでのデプロイの失敗の調査](troubleshooting-ec2-instances.md#troubleshooting-deploy-failures)」を参照してください。

### デプロイ (コンソール) をモニタリングおよびトラブルシューティングするには
<a name="tutorials-windows-deploy-application-monitor-console"></a>

CodeDeploy コンソール の [**Deployments**] ページで、[**Status**] 列でデプロイのステータスをモニタリングできます。

特に [**Status**] 列の値が [**Succeeded**] 以外の値である場合にデプロイに関する詳細情報を取得するには。

1. [**デプロイ**] テーブルで、デプロイ ID を選択します。デプロイが失敗したら、失敗の原因を説明するメッセージがデプロイの詳細ページに表示されます。

1. インスタンスのデプロイに関する詳細情報が表示されます。デプロイ失敗後、デプロイが失敗した Amazon EC2 インスタンスおよびステップを特定できる場合があります。

1. より多くのトラブルシューティングを行う場合、[CodeDeploy を用いてインスタンスの詳細の表示](instances-view-details.md) のような手法を使用できます。また、Amazon EC2 インスタンスでデプロイログファイルを分析できます。詳細については、「[ログファイルの分析によるインスタンスでのデプロイの失敗の調査](troubleshooting-ec2-instances.md#troubleshooting-deploy-failures)」を参照してください。

## デプロイの確認
<a name="tutorials-windows-deploy-application-verify"></a>

デプロイが成功したら、インストールが動作していることを確認します。Amazon EC2 インスタンスのパブリック DNS アドレスを使用して、ウェブブラウザのウェブページを表示します。(Amazon EC2 コンソールでパブリック DNS 値を取得するには、 Amazon EC2 インスタンスを選択して **[説明]** タブで **[パブリック DNS]** で値を探します。)

例えば、Amazon EC2 インスタンスのパブリック DNS アドレスが **ec2-01-234-567-890.compute-1.amazonaws.com** である場合、次の URL を使用します。

```
http://ec2-01-234-567-890.compute-1.amazonaws.com
```

成功すると、Hello World ウェブページが表示されます。