

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

# チュートリアル: CodeDeploy を使用して、Auto Scaling グループにアプリケーションをデプロイします。
<a name="tutorials-auto-scaling-group"></a>

このチュートリアルでは、CodeDeploy を使用して Auto Scaling グループにアプリケーションリビジョンをデプロイします。Amazon EC2 Auto Scaling は、事前定義された条件を使用して Amazon EC2 インスタンスを起動した後に、不要になった Amazon EC2 インスタンスを終了します。Amazon EC2 Auto Scaling は、デプロイメントの負荷を処理するために常に適切な数の Amazon EC2 インスタンスを利用できるようにすることで、CodeDeploy のスケーリングに役立ちます。CodeDeploy による Amazon EC2 Auto Scaling 統合の詳細については、[CodeDeploy と Amazon EC2 Auto Scaling の統合](integrations-aws-auto-scaling.md) を参照してください。

**Topics**
+ [前提条件](tutorials-auto-scaling-group-prerequisites.md)
+ [ステップ 1: Auto Scaling グループを作成して設定します。](tutorials-auto-scaling-group-create-auto-scaling-group.md)
+ [ステップ 2: Auto Scaling グループにアプリケーションをデプロイする](tutorials-auto-scaling-group-create-deployment.md)
+ [ステップ 3: 結果の確認](tutorials-auto-scaling-group-verify.md)
+ [ステップ 4: Auto Scaling グループの Amazon EC2 インスタンスの数を増やす](tutorials-auto-scaling-group-scale-up.md)
+ [ステップ 5: 結果を再度確認します](tutorials-auto-scaling-group-reverify.md)
+ [ステップ 6: クリーンアップする](tutorials-auto-scaling-group-clean-up.md)

# 前提条件
<a name="tutorials-auto-scaling-group-prerequisites"></a>

このチュートリアルを実行するには:
+ のセットアップと設定[CodeDeploy の開始方法](getting-started-codedeploy.md)、IAM インスタンスプロファイル (**CodeDeployDemo-EC2-Instance-Profile**) AWS CLI とサービスロール () の作成など、 のすべてのステップを完了します**CodeDeployDemo**。*サービスロール* は、ユーザーに代わってサービスアクセス権限を付与する、特別なタイプの IAM ロールです。
+ 起動テンプレートを使用して Auto Scaling グループを作成する場合は、次の権限を追加する必要があります。
  +  `ec2:RunInstances` 
  +  `ec2:CreateTags` 
  +  `iam:PassRole` 

  さらなる詳細については、[ステップ 2: サービスロールを作成する](getting-started-create-service-role.md)、[Creating a launch template for an Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html)、および *Amazon EC2 Auto Scaling User Guide* 中の [Launch template support](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-launch-template-permissions.html) を参照してください。
+  Ubuntu サーバーインスタンスおよび CodeDeploy と互換性のあるリビジョンを作成して使用します。リビジョンでは、次のいずれかを実行できます。
  + 「[チュートリアル: CodeDeploy (Windows サーバー、Ubuntu サーバー、または Red Hat エンタープライズ Linux) を使用してオンプレミスインスタンスにアプリケーションをデプロイします。](tutorials-on-premises-instance.md)」チュートリアルの [ステップ 2: サンプルのアプリケーションリビジョンを作成する](tutorials-on-premises-instance-2-create-sample-revision.md) のサンプルリビジョンを作成して使用します。
  + リビジョンを独自に作成するには、「[CodeDeploy のアプリケーションリビジョンの操作](application-revisions.md)」を参照してください。
+ **Inbound rule** を用いて、**CodeDeployDemo-AS-SG** という名前のセキュリティグループを作成します。
  + Type: HTTP
  + ソース：どこでも

  これは、アプリケーションを表示し、デプロイメントの成功を確認するために必要です。セキュリティグループの作成方法については、*Amazon EC2 user guide* 中の [Creating a security group](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#creating-security-group) を参照してください。

 

# ステップ 1: Auto Scaling グループを作成して設定します。
<a name="tutorials-auto-scaling-group-create-auto-scaling-group"></a>

このステップでは、単一の Amazon Linux、RHEL、または Windows サーバーの Amazon EC2 インスタンスを含む Auto Scaling グループを作成します。後のステップで、もう 1 つの Amazon EC2 インスタンスを追加するように Amazon EC2 Auto Scaling に指示し、CodeDeploy はそれにリビジョンをデプロイします。

**Topics**
+ [Auto Scaling グループ (CLI) を作成して設定するには](#tutorials-auto-scaling-group-create-auto-scaling-group-cli)
+ [Auto Scaling グループ (コンソール) を作成して設定するには](#tutorials-auto-scaling-group-create-auto-scaling-group-console)

## Auto Scaling グループ (CLI) を作成して設定するには
<a name="tutorials-auto-scaling-group-create-auto-scaling-group-cli"></a>

1. **create-launch-template** コマンドを呼び出して、Amazon EC2 起動テンプレートを作成します。

   このコマンドを呼び出す前に、プレースホルダー *image-id* で表される、このチュートリアルで使用する AMI の ID が必要です。プレースホルダー *key-name* で表される、 Amazon EC2 インスタンスへのアクセスを有効にする Amazon EC2 インスタンスのキーペアの名前も必要です。

   このチュートリアルで使用する AMI の ID を取得するには。

   1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

   1. ナビゲーションペインで、[**Instances**] の下にある、[**Instances**] を選択して、[**Launch Instance**] を選択します。

   1. **Choose an Amazon Machine Image** ページの **Quick Start** タブ上で、**Amazon Linux 2 AMI**、 **Red Hat Enterprise Linux 7.1**、**Ubuntu Server 14.04 LTS**、あるいは **Microsoft Windows Server 2012 R2** の横にある AMI の ID をメモします。
**注記**  
CodeDeploy と互換性がある AMI のカスタムバージョンの場合、**クイックスタート** タブを参照する代わりに、ここでそれを選択します。CodeDeploy および Amazon EC2 Auto Scaling でカスタム AMI を使用することについての詳細については、[CodeDeploy と Amazon EC2 Auto Scaling でのカスタム AMI の使用](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-custom-ami) を参照してください。

   Amazon EC2 インスタンスのキーペアについては、Amazon EC2 インスタンスのキーペアの名前を使用します。

   **create-launch-template** コマンドを呼び出します。

   ローカル Linux、macOS、あるいは Unix マシンについて

   ```
   aws ec2 create-launch-template \
     --launch-template-name CodeDeployDemo-AS-Launch-Template \
     --launch-template-data file://config.json
   ```

   `config.json` ファイルのコンテンツ:

   ```
   { 
     "InstanceType":"t1.micro",
     "ImageId":"image-id",
     "IamInstanceProfile":{
       "Name":"CodeDeployDemo-EC2-Instance-Profile"
     },
     "KeyName":"key-name"
   }
   ```

   ローカル Windows マシンの場合

   ```
   aws ec2 create-launch-template --launch-template-name CodeDeployDemo-AS-Launch-Template --launch-template-data file://config.json
   ```

   `config.json` ファイルのコンテンツ:

   ```
   { 
     "InstanceType":"t1.micro",
     "ImageId":"image-id",
     "IamInstanceProfile":{
       "Name":"CodeDeployDemo-EC2-Instance-Profile"
     },
     "KeyName":"key-name"
   }
   ```

   これらのコマンドは、`config.json` ファイルとともに、Auto Scaling グループ用の CodeDeployDemo-as-Launch-Template という名前の Amazon EC2 起動テンプレートを作成します。このテンプレートは、t1.micro Amazon EC2 インスタンスタイプに基づいて次のステップで作成されます。`ImageId`、`IamInstanceProfile`、`KeyName` への入力に基づいて、起動テンプレートでは AMI ID、起動時にインスタンスに渡す IAM ロールに関連付けられたインスタンスプロファイルの名前、およびインスタンスへの接続時に使用する Amazon EC2 キーペアも指定します。

1.  **create-auto-scaling-group** のコマンドをを呼び出して、Auto Scaling グループを作成します。*AWS 全般のリファレンス* の[リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)に一覧表示されているリージョンの 1 つで、プレースホルダー *availability-zone* で表される、1 つのアベイラビリティーゾーンの名前が必要になります。
**注記**  
リージョンでアベイラビリティーゾーンのリストを表示するには、以下を呼び出します。  

   ```
   aws ec2 describe-availability-zones --region region-name
   ```
例えば、米国西部 (オレゴン) リージョンのアベイラビリティーゾーンのリストを表示するには、次のように呼び出します。  

   ```
   aws ec2 describe-availability-zones --region us-west-2
   ```
リージョン名識別子のリストについては、「[リージョン別リソースキットバケット名](resource-kit.md#resource-kit-bucket-names)」を参照してください。

   ローカル Linux、macOS、Unix マシンについて

   ```
   aws autoscaling create-auto-scaling-group \
     --auto-scaling-group-name CodeDeployDemo-AS-Group \
     --launch-template CodeDeployDemo-AS-Launch-Template,Version='$Latest' \
     --min-size 1 \
     --max-size 1 \
     --desired-capacity 1 \
     --availability-zones availability-zone \
     --tags Key=Name,Value=CodeDeployDemo,PropagateAtLaunch=true
   ```

   ローカル Windows マシンの場合

   ```
   aws autoscaling create-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --launch-template LaunchTemplateName=CodeDeployDemo-AS-Launch-Template,Version="$Latest" --min-size 1 --max-size 1 --desired-capacity 1 --availability-zones availability-zone --tags Key=Name,Value=CodeDeployDemo,PropagateAtLaunch=true
   ```

   これらのコマンドは、**CodeDeployDemo-AS-Group** という名前の Amazon EC2 起動テンプレートに基づいた **CodeDeployDemo-AS-Launch-Template** という名前の Auto Scaling グループを作成します。この Auto Scaling グループには Amazon EC2 インスタンスが 1 つだけあり、指定したアベイラビリティーゾーンに作成されます。この Auto Scaling グループ内の各インスタンスには、タグ `Name=CodeDeployDemo` があります。このタグは、後で CodeDeploy エージェントをインストールするときに使用されます。

1. **CodeDeployDemo-AS-Group** に対して **describe-auto-scaling-groups** コマンドを呼び出します。

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].[HealthStatus, LifecycleState]" --output text
   ```

   戻り値に、`Healthy` および `InService` と表示されるまで続行しないでください。

1.  Auto Scaling グループ中のインスタンスには、CodeDeploy デプロイで使用されるためにインストールされている CodeDeploy エージェントがある必要があります。Auto Scaling グループの作成時に追加されたタグ AWS Systems Manager を使用して、 から **create-association** コマンドを呼び出して CodeDeploy エージェントをインストールします。

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

   このコマンドは、Systems Manager ステートマネージャーで関連付けを作成します。これは、Auto Scaling グループのすべてのインスタンスに CodeDeploy エージェントをインストールし、毎週日曜日の午前 2 時に更新を試みます。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)」 を参照してください。

## Auto Scaling グループ (コンソール) を作成して設定するには
<a name="tutorials-auto-scaling-group-create-auto-scaling-group-console"></a>

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. グローバルナビゲーションバーで、*AWS 全般のリファレンス* の[リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)で一覧表示されているリージョンのいずれかが選択されていることを確認してください。Amazon EC2 Auto Scaling リソースは、指定したリージョンに関連付けられ、CodeDeploy は選択されたリージョンでのみサポートされます。

1. ナビゲーションペインで、[**インスタンス**] の [**テンプレートの起動**] を選択します。

1. [**起動テンプレートの作成**] を選択してください。

1. **Launch template name and description** ダイアログで、**Launch template name** に **CodeDeployDemo-AS-Launch-Template** を入力します。他のフィールドはデフォルトのためのデフォルトをそのままにします。

1. **Amazon machine image (AMI)** ダイアログで、**AMI** の下にあるドロップダウンをクリックし、このチュートリアルで使用する AMI を選択します。

   1. **AMI** ドロップダウンの **Quick Start** 上で、次のどれかを選択します：**Amazon Linux 2 AMI**、**Red Hat Enterprise Linux 7.1**、**Ubuntu Server 14.04 LTS**、または**Microsoft Windows Server 2012 R2** 
**注記**  
CodeDeploy と互換性がある AMI のカスタムバージョンの場合、**クイックスタート** タブを参照する代わりに、ここでそれを選択します。CodeDeploy および Amazon EC2 Auto Scaling でカスタム AMI を使用する方法についての詳細は、[CodeDeploy と Amazon EC2 Auto Scaling でのカスタム AMI の使用](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-custom-ami) を参照してください。

1. **Instance type** で、ドロップダウンを選択し、**t1.micro** を選択します。検索バーを使用すると、よりすばやく検索できます。

1. **Key pair (login)** ダイアログボックスで、[**Choose an existing key pair** を選択します。[**キーペアの選択**] のドロップダウンリストで、前のステップで作成した Amazon EC2 インスタンスのキーペアを選択します。

1. **Network settings** ダイアログボックスで、[**Virtual Public Cloud (VPC)** を選択します。

   **Security groups**ドロップダウンで、[tutorial's prerequisites section](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorials-auto-scaling-group-prerequisites.html) (**CodeDeployDemo-AS-SG**)で作成したセキュリティグループを選択します。

1. **Advanced details** ダイアログボックスを展開します。**IAM instance profile** ドロップダウンで、**IAM instance profile** の下で以前の (**CodeDeployDemo-EC2-Instance-Profile**) を作成した IAM ロールを選択します。

   デフォルトの残りはそのままにしておきます。

1. [**起動テンプレートの作成**] を選択してください。

1. **Next steps** ダイアログボックスで、[**Create Auto Scaling group** を選択します。

1. **Choose launch template or configuration (起動テンプレートまたは設定の選択)** ページで、**Auto Scaling group name** を **CodeDeployDemo-AS-Group** に入力します。

1. **起動テンプレート**ダイアログボックスで、起動テンプレート (**CodeDeployDemo-AS-Launch-Template**) を入力する必要があります。そうでない場合は、ドロップダウンメニューから、それを選択します。デフォルトのままにして、**Next** を選択します。

1. [**ネットワーク**] セクションの下にある [**インスタンス起動オプションを選択**] ページで、[**VPC**] はデフォルト VPC を選択します。次に、**アベイラビリティーゾーンとサブネット**にはデフォルトサブネットを選択します。デフォルトを選択できない場合は、VPC を作成する必要があります。Amazon S3 の詳細については、[Amazon VPC の開始方法](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html) を参照してください。

1. **[Instance type requirements]** (インスタンスタイプの要件) セクションでは、このステップを簡略化するためにデフォルト設定を使用します。(起動テンプレートを上書きしないでください。) このチュートリアルでは、起動テンプレートで指定されたインスタンスタイプを使用して、オンデマンドインスタンスのみを起動します。

1. **Next** を選択して **Configure advanced options** ページに行きます。

1. デフォルト値をそのまま保ち、**Next** を選択します。

1. **Configure group size and scaling policies** ページで、1 のデフォルトの **Group size** の値をそのままにします。[**次へ**] を選択します。

1. 通知の設定の手順をスキップし、**Next** を選択します。

1. **Add tags** ページ上で、後で CodeDeploy エージェントをインストールするときに使用するタグを追加します。**[タグを追加]** を選択します。

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

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

   [**次へ**] を選択します。

1. **Review** ページで上の Auto Scaling グループの情報を確認し、**Create Auto Scaling group** を選択します。

1. ナビゲーションバーで、選択された **Auto Scaling Groups** を用いて **CodeDeployDemo-AS-Group** を選択し、**Instance Management** タブを選びます。**[Lifecycle]** 列に **[InService]** の値が表示されて、**[Health Status]** 列に、**[Healthy]** の値が表示されるまで進まないでください。

1. CodeDeploy エージェントをインストールするには、「[CodeDeploy エージェントのインストール](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html)」のステップに従い、`Name=CodeDeployDemo` インスタンスタグを使用します。

# ステップ 2: Auto Scaling グループにアプリケーションをデプロイする
<a name="tutorials-auto-scaling-group-create-deployment"></a>

このステップでは、Auto Scaling グループの単一 Amazon EC2 インスタンスにリビジョンをデプロイします。

**Topics**
+ [デプロイを作成するには (CLI)](#tutorials-auto-scaling-group-create-deployment-cli)
+ [デプロイを作成するには (コンソール)](#tutorials-auto-scaling-group-create-deployment-console)

## デプロイを作成するには (CLI)
<a name="tutorials-auto-scaling-group-create-deployment-cli"></a>

1. **create-application** コマンドを呼び出して、**SimpleDemoApp** と言う名前のアプリケーションを作成します。

   ```
   aws deploy create-application --application-name SimpleDemoApp
   ```

1. [ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md) の手順に従ってサービスロールを作成している必要があります。サービスロールは、Amazon EC2 インスタンスにアクセスしてタグを拡張 (読み込み) する許可を CodeDeploy に付与します。サービスロール ARN が必要になります。サービスロール ARN を取得するには、[サービスロール ARN の取得 (CLI)](getting-started-create-service-role.md#getting-started-get-service-role-cli) の手順に従います。

1. これで、指定したサービスロール ARN で、**create-deployment-group** コマンドを呼び出して **SimpleDemoDG** という名前のデプロイグループを作成し、**SimpleDemoApp** という名前のアプリケーションと関連付け、**CodeDeployDemo-AS-Group** と言う名前の Auto Scaling グループと **CodeDeployDefault.OneAtATime** と言う名前のデプロイ設定を使用するサービスロール ARN が作成されました。
**注記**  
[create-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) コマンドは、デプロイおよびインスタンス内の指定されたイベントについて、トピックサブスクライバーに Amazon SNS 通知を送信するトリガーの作成をサポートします。このコマンドは、Amazon CloudWatch アラームのモニタリングしきい値が満たされたときにデプロイを自動的にロールバックし、デプロイを停止するアラームを設定するオプションもサポートします。このチュートリアルでは、これらのアクションのためのコマンドは含まれていません。

   ローカル Linux、macOS、Unix マシンについて

   ```
   aws deploy create-deployment-group \
     --application-name SimpleDemoApp \
     --auto-scaling-groups CodeDeployDemo-AS-Group \
     --deployment-group-name SimpleDemoDG \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --service-role-arn service-role-arn
   ```

   ローカル Windows マシンの場合

   ```
   aws deploy create-deployment-group --application-name SimpleDemoApp --auto-scaling-groups CodeDeployDemo-AS-Group --deployment-group-name SimpleDemoDG --deployment-config-name CodeDeployDefault.OneAtATime --service-role-arn service-role-arn
   ```

1. 指定された場所のリビジョンを使用して、**SimpleDemoApp** という名前のアプリケーションと関連付けられたデプロイ、**CodeDeployDefault.OneAtATime** という名前のデプロイ設定、**SimpleDemoDG** という名前のデプロイグループを作成する **create-deployment** コマンドを呼び出します。

   **Amazon Linux および RHEL の Amazon EC2インスタンスの場合、ローカルの Linux、macOS、または Unixマシンから呼び出します**

    

   ```
   aws deploy create-deployment \
     --application-name SimpleDemoApp \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --deployment-group-name SimpleDemoDG \
     --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Linux.zip
   ```

   *bucket-name* は、リージョンの CodeDeploy リソースキットファイルが含まれている Amazon S3 バケットの名前です。例えば、米国東部 (オハイオ) リージョンの場合、*バケット名* を `aws-codedeploy-us-east-2` に置き換えます。バケット名のリストについては、[リージョン別リソースキットバケット名](resource-kit.md#resource-kit-bucket-names) を参照してください。

   **ローカル Windows マシンから呼び出した Amazon Linux および RHEL Amazon EC2 instances の場合**

    

   ```
   aws deploy create-deployment --application-name SimpleDemoApp --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Linux.zip
   ```

   *bucket-name* は、リージョンの CodeDeploy リソースキットファイルが含まれている Amazon S3 バケットの名前です。例えば、米国東部 (オハイオ) リージョンの場合、*バケット名* を `aws-codedeploy-us-east-2` に置き換えます。バケット名のリストについては、[リージョン別リソースキットバケット名](resource-kit.md#resource-kit-bucket-names) を参照してください。

   **ローカルの Linux、macOS、または Unix マシンから呼び出した Windows サーバー Amazon Linux および RHEL の Amazon EC2インスタンスの場合**

    

   ```
   aws deploy create-deployment \
     --application-name SimpleDemoApp \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --deployment-group-name SimpleDemoDG \
     --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Windows.zip
   ```

   *bucket-name* は、リージョンの CodeDeploy リソースキットファイルが含まれている Amazon S3 バケットの名前です。例えば、米国東部 (オハイオ) リージョンの場合、*バケット名* を `aws-codedeploy-us-east-2` に置き換えます。バケット名のリストについては、[リージョン別リソースキットバケット名](resource-kit.md#resource-kit-bucket-names) を参照してください。

   **ローカル Windows マシンから呼び出した Windows サーバー Amazon EC2 インスタンスの場合**

   ```
   aws deploy create-deployment --application-name SimpleDemoApp --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Windows.zip
   ```

   *bucket-name* は、リージョンの CodeDeploy リソースキットファイルが含まれている Amazon S3 バケットの名前です。例えば、米国東部 (オハイオ) リージョンの場合、*バケット名* を `aws-codedeploy-us-east-2` に置き換えます。バケット名のリストについては、[リージョン別リソースキットバケット名](resource-kit.md#resource-kit-bucket-names) を参照してください。
**注記**  
現在のところ、CodeDeploy は Ubuntu サーバーの Amazon EC2 インスタンスにデプロイするサンプルリビジョンを提供していません。リビジョンを独自に作成するには、[CodeDeploy のアプリケーションリビジョンの操作](application-revisions.md) を参照してください。

1. **get-deployment** コマンドを呼び出して、デプロイが成功したことを確認します。

   このコマンドを呼び出す前に、**create-deployment** コマンドの呼び出しで返された、デプロイの ID が必要になります。デプロイ ID を再度取得することが必要な場合には、**SimpleDemoApp** という名前のアプリケーションと **SimpleDemoDG** と言う名前のデプロイグループに対して、**list-deployments** コマンドを呼び出します。

   ```
   aws deploy list-deployments --application-name SimpleDemoApp --deployment-group-name SimpleDemoDG --query "deployments" --output text
   ```

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

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

   `Succeeded` の値が返されるまで続けないでください。

## デプロイを作成するには (コンソール)
<a name="tutorials-auto-scaling-group-create-deployment-console"></a>

1. [ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md) の手順に従ってサービスロールを作成している必要があります。サービスロールは、インスタンスにアクセスしてタグを拡張 (読み込み) する許可を CodeDeploy に付与します。CodeDeploy コンソールを使用してアプリケーションリビジョンをデプロイする前に、サービスロール ARN が必要になります。サービスロール 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. [**アプリケーションを作成**] を選択します。

1. [**カスタムアプリケーション**] を選択します。

1. [**アプリケーション名**] に、「**SimpleDemoApp**」と入力します。

1. [**コンピューティングプラットフォーム**] で [**EC2/オンプレミス**] を選択します。

1. [**アプリケーションを作成**] を選択します。

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

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

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

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

1. [**環境設定**] で、[**Auto Scaling グループ**]、[**CodeDeployDemo-AS-Group**] の順に選択します。

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

1. [**Enable load balancing (ロードバランシングの有効化)**] のチェックを外します。

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

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

1. [**Revision type (リビジョンのタイプ)**] の横の [**My application is stored in Amazon S3 (Amazon S3 に保存されているアプリケーション)**] を選択します。

1. [**リビジョンの場所**] に、オペレーティングシステムとリージョンのサンプルアプリケーションの場所を入力します。

   **Amazon Linux、RHEL Amazon EC2 インスタンスの場合**  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/tutorials-auto-scaling-group-create-deployment.html)

   **Windows Server Amazon EC2 インスタンスの場合**  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/tutorials-auto-scaling-group-create-deployment.html)

    **Ubuntu Server Amazon EC2 インスタンスの場合**

   Amazon S3 に格納されるカスタムアプリケーションリビジョンの場所を入力します。

1. [**デプロイメントの説明**] は空白のままにしておきます。

1. [**Advanced**] を展開します。

1. **[デプロイの作成]** を選択します。
**注記**  
**Succeeded** の代わりに **Failed** が表示された場合、[デプロイをモニタリングおよびトラブルシューティングします。](tutorials-wordpress-deploy-application.md#tutorials-wordpress-deploy-application-monitor) にある手法の一部を試してみることもできます (**SimpleDemoApp** のアプリケーション名、および **SimpleDemoDG** のデプロイグループ名を使用して)。

# ステップ 3: 結果の確認
<a name="tutorials-auto-scaling-group-verify"></a>

このステップでは、CodeDeploy が Auto Scaling グループの単一 Amazon EC2 インスタンスについての **SimpleDemoApp** のリビジョンをインストールしたかどうかを確認します。

**Topics**
+ [結果を確認するには (CLI)](#tutorials-auto-scaling-group-verify-cli)
+ [結果を確認するには (コンソール)](#tutorials-auto-scaling-group-verify-console)

## 結果を確認するには (CLI)
<a name="tutorials-auto-scaling-group-verify-cli"></a>

まず、Amazon EC2 インスタンスのパブリック DNS が必要です。

を使用して AWS CLI 、 **describe-instances** コマンドを呼び出して Auto Scaling グループ内の Amazon EC2 インスタンスのパブリック DNS を取得します。

このコマンドを呼び出す前に、Amazon EC2 インスタンスの ID が必要です。この ID を取得するには、以前に行ったように、**CodeDeployDemo-AS-Group** に対して **describe-auto-scaling-groups** を呼び出します。

```
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].InstanceId" --output text
```

次に **describe-instances** コマンドを呼び出します。

```
aws ec2 describe-instances --instance-id instance-id --query "Reservations[0].Instances[0].PublicDnsName" --output text
```

返される値は Amazon EC2 インスタンスのパブリック DNS です。

ウェブブラウザを使用して、次のような URL を使用して Amazon EC2 インスタンスにデプロイした [SimpleDemoApp] リビジョンを表示します。

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

成功のページが表示されると、リビジョンは Auto Scaling グループの単一の Amazon EC2 インスタンスに CodeDeploy を使用して正しくデプロイされました。

次に、Amazon EC2 インスタンスを Auto Scaling グループに追加します。Amazon EC2 Auto Scaling が Amazon EC2 インスタンスを追加すると、CodeDeploy は新しいインスタンスにリビジョンをデプロイします。

## 結果を確認するには (コンソール)
<a name="tutorials-auto-scaling-group-verify-console"></a>

まず、Amazon EC2 インスタンスのパブリック DNS が必要です。

Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

Amazon EC2 ナビゲーションペインの **Auto Scaling** の下で、**Auto Scaling グループ** を選択し、**CodeDeployDemo-AS-Group** のエントリを選択します。

**インスタンス** タブで、リスト内の Amazon EC2 インスタンス ID を選択します。

[**Instances**] ページの、[**Description**] タブで、[**Public DNS**] 値をメモします。次のように表示されます。**ec2-01-234-567-890.compute-1.amazonaws.com**

ウェブブラウザを使用して、次のような URL を使用して Amazon EC2 インスタンスにデプロイした [SimpleDemoApp] リビジョンを表示します。

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

成功のページが表示されると、リビジョンは Auto Scaling グループの単一の Amazon EC2 インスタンスに CodeDeploy を使用して正しくデプロイされました。

次に、Auto Scaling グループに Amazon EC2 インスタンスを追加します。Amazon EC2 Auto Scaling が Amazon EC2 インスタンスを追加した後、CodeDeploy は新しい Amazon EC2 インスタンスにリビジョンをデプロイします。

# ステップ 4: Auto Scaling グループの Amazon EC2 インスタンスの数を増やす
<a name="tutorials-auto-scaling-group-scale-up"></a>

このステップでは、追加の Amazon EC2 インスタンスを作成するように Auto Scaling グループに指示します。Amazon EC2 Auto Scaling がインスタンスを作成すると、CodeDeploy によってリビジョンがデプロイされます。

**Topics**
+ [Auto Scaling グループ (CLI) の Amazon EC2 インスタンスの数をスケールアウトする](#tutorials-auto-scaling-group-scale-up-cli)
+ [デプロイグループ (コンソール) で Amazon EC2 インスタンスの数をスケールアップするには](#tutorials-auto-scaling-group-scale-up-console)

## Auto Scaling グループ (CLI) の Amazon EC2 インスタンスの数をスケールアウトする
<a name="tutorials-auto-scaling-group-scale-up-cli"></a>

1. **update-auto-scaling-group** のコマンドを呼び出し、**CodeDeployDemo-AS-Group** という名前の Auto Scaling グループの Amazon EC2 インスタンスを、1 から 2 に増やします。

   ローカル Linux、macOS、あるいは Unix マシンについて

   ```
   aws autoscaling update-auto-scaling-group \
     --auto-scaling-group-name CodeDeployDemo-AS-Group \
     --min-size 2 \
     --max-size 2 \
     --desired-capacity 2
   ```

   ローカル Windows マシンの場合

   ```
   aws autoscaling update-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --min-size 2 --max-size 2 --desired-capacity 2
   ```

1. Auto Scaling グループに 2 つの Amazon EC2 インスタンスが存在することを確認します。**CodeDeployDemo-AS-Group** に対して **describe-auto-scaling-groups** コマンドを呼び出します。

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].[HealthStatus, LifecycleState]" --output text
   ```

   戻り値に、`Healthy` と `InService` の両方が表示されるまで続行しないでください。

## デプロイグループ (コンソール) で Amazon EC2 インスタンスの数をスケールアップするには
<a name="tutorials-auto-scaling-group-scale-up-console"></a>

1. Amazon EC2 ナビゲーションバーで、**Auto Scaling** の下で、**Auto Scaling Groups** を選択し、次に **CodeDeployDemo-AS-Group** を選択します。

1. **[アクション]** を選択し、**[編集]** を選択します。

1. [**詳細**] タブで、[**必要**]、[**最小**] および [**最大**] ボックスに **2** と入力し、[**保存**] を選択します。

1. [**Instances**] タブを選択します。新しい Amazon EC2 インスタンスが一覧に表示されます。(インスタンスが表示されない場合、[**Refresh**] ボタンを数回選択する必要が生じる場合があります)。**[Lifecycle]** 列に **[InService]** の値が表示されて、**[Health Status]** 列に、**[Healthy]** の値が表示されるまで進まないでください。

# ステップ 5: 結果を再度確認します
<a name="tutorials-auto-scaling-group-reverify"></a>

このステップでは、CodeDeploy が Auto Scaling グループの新しいインスタンスの [SimpleDemoApp] リビジョンをインストールしたかどうかを確認します。

**Topics**
+ [自動デプロイの結果を確認するには (CLI)](#tutorials-auto-scaling-group-reverify-cli)
+ [自動デプロイの結果を確認するには (コンソール)](#tutorials-auto-scaling-group-reverify-console)

## 自動デプロイの結果を確認するには (CLI)
<a name="tutorials-auto-scaling-group-reverify-cli"></a>

1. **get-deployment** コマンドを確認する前に、自動デプロイの ID が必要です。ID を取得するには、**SimpleDemoApp** という名前のアプリケーションと **SimpleDemoDG** と言う名前のデプロイグループに対して **list-deployments** コマンドを呼び出します。

   ```
   aws deploy list-deployments --application-name SimpleDemoApp --deployment-group-name SimpleDemoDG --query "deployments" --output text
   ```

   2 つのデプロイ ID があるはずです。**get-deployment** コマンドの呼び出しでは、まだ使用していない ID を使用してください。

   ```
   aws deploy get-deployment --deployment-id deployment-id --query "deploymentInfo.[status, creator]" --output text
   ```

   デプロイのステータスに加えて、`autoScaling` がコマンド出力に表示されます (`autoScaling` は Amazon EC2 Auto Scaling が作成したデプロイ)。

   デプロイのステータスに `Succeeded` が表示されるまで進まないでください。

1. **describe-instances** のコマンドを呼び出す前に、新しい Amazon EC2 インスタンスの ID が必要です。この ID を取得するには、**CodeDeployDemo-AS-Group** に対して **describe-auto-scaling-groups** コマンドをもう一度呼び出します。

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].InstanceId" --output text
   ```

   次に **describe-instances** コマンドを呼び出します。

   ```
   aws ec2 describe-instances --instance-id instance-id --query "Reservations[0].Instances[0].PublicDnsName" --output text
   ```

   **describe-instances** のコマンドの出力で、新しい Amazon EC2 インスタンスの パブリック DNS をメモします。

1. ウェブブラウザを使用して、次のような URL を使用して Amazon EC2 インスタンスにデプロイした `SimpleDemoApp` のリビジョンを表示します。

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

   成功のページが表示されると、CodeDeploy によってリビジョンが Auto Scaling グループのスケールアップされた Amazon EC2 インスタンスに正常にデプロイされています。

## 自動デプロイの結果を確認するには (コンソール)
<a name="tutorials-auto-scaling-group-reverify-console"></a>

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

1. ナビゲーションペインで、**Deploy** を展開し、**Deployments** を選択します。

   

1. Amazon EC2 Auto Scaling が作成したデプロイのデプロイ ID を選択します。

   .

1.  [**デプロイ**] ページに、デプロイに関する情報が表示されます。通常の場合は、ユーザーがデプロイを作成しますが、Amazon EC2 Auto Scaling はユーザーに代わってリビジョンを新しい Amazon EC2 インスタンスにデプロイします。

1. ページ上部に [**成功**] と表示されたら、インスタンスで結果を確認します。最初に、インスタンスのパブリック DNS を取得する必要があります。

1. Amazon EC2 ナビゲーションペインの **Auto Scaling** の下で、**Auto Scaling グループ** を選択し、**CodeDeployDemo-AS-Group** のエントリを選択します。

1. **Instances** タブで、新しい Amazon EC2 インスタンスの ID を選択します。

1. [**Instances**] ページの、[**Description**] タブで、[**Public DNS**] 値をメモします。次のように表示されます。**ec2-01-234-567-890.compute-1.amazonaws.com**

インスタンスにデプロイされた `SimpleDemoApp` リビジョンを、次のような URL を使用して表示します。

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

成功のページが表示されると、CodeDeploy によってリビジョンが Auto Scaling グループのスケールアップされた Amazon EC2 インスタンスに正常にデプロイされています。

# ステップ 6: クリーンアップする
<a name="tutorials-auto-scaling-group-clean-up"></a>

このステップでは、このチュートリアルで使用したリソースの料金が継続的に発生するのを避けるために Auto Scaling グループを削除します。必要に応じて、Auto Scaling 設定、および CodeDeploy デプロイコンポーネントレコードを削除できます。

**Topics**
+ [リソース (CLI) をクリーンアップするには](#tutorials-auto-scaling-group-clean-up-cli)
+ [リソース (コンソール) をクリーンアップするには](#tutorials-auto-scaling-group-clean-up-console)

## リソース (CLI) をクリーンアップするには
<a name="tutorials-auto-scaling-group-clean-up-cli"></a>

1. **CodeDeployDemo-AS-Group** に対して **delete-auto-scaling-group** コマンドを呼び出すことによって、Auto Scaling グループを削除し ます。これにより、Amazon EC2 インスタンスも終了します。

   ```
   aws autoscaling delete-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --force-delete
   ```

1. 必要に応じて、**CodeDeployDemo-AS-Launch-Template** という名前の起動設定に対して、**delete-launch-template** のコマンドを呼び出し、Auto Scaling 起動テンプレートを削除します。

   ```
   aws ec2 delete-launch-template --launch-template-name CodeDeployDemo-AS-Launch-Template
   ```

1. 必要に応じて、**delete-application** という名前のアプリケーションに対して、**SimpleDemoApp** のコマンドを呼び出し、CodeDeploy からのアプリケーションを削除します。これにより、関連するすべてのデプロイ、デプロイグループ、およびリビジョンレコードも削除されます。

   ```
   aws deploy delete-application --application-name SimpleDemoApp
   ```

1. Systems Manager ステートマネージャーの関連付けを削除するには、**delete-association** のコマンドを呼び出します。

   ```
   aws ssm delete-association --assocation-id association-id
   ```

   **describe-association** のコマンドを呼び出すことで、*association-id* を取得できます。

   ```
   aws ssm describe-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo
   ```

## リソース (コンソール) をクリーンアップするには
<a name="tutorials-auto-scaling-group-clean-up-console"></a>

Amazon EC2 インスタンスを終了する Auto Scaling グループを削除するには

1. 

   にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) で Amazon EC2 コンソールを開きます。

1. Amazon EC2 ナビゲーションペインで、**Auto Scaling** の下で、**Auto Scaling Groups** を選択してから、**CodeDeployDemo-AS-Group** のエントリを選択します。

1. [**Actions**] を選択して、[**Delete**] を選択し、次に [**Yes, Delete**] を選択します。

(オプション) 起動テンプレートを削除するには

1.  ナビゲーションバーで、**Auto Scaling** の下で、**Launch Configurations** を選択し、**CodeDeployDemo-AS-Launch-Template** を選択します。

1. [**Actions**] を選択して、[**Delete launch configuration**] を選択し、[**Yes, Delete**] を選択します。

1. 必要に応じて、CodeDeploy からアプリケーションを削除します。これにより、関連するすべてのデプロイ、デプロイグループ、およびリビジョンレコードも削除されます。[https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) で、CodeDeploy コンソールを開きます。

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

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

   

1. アプリケーションのリストで、**SimpleDemoApp** を選択します。

1. [**Application details**] ページで、[**Delete application**] を選択します。

1. 確認を求めるメッセージが表示されたら、**Delete**と入力し、[**削除**] を選択してください。

Systems Manager ステートマネージャーの関連付けの削除。

1. https://console.aws.amazon.com/systems-manager で AWS Systems Manager コンソールを開きます。

1. ナビゲーションペインで、[**ステートマネージャー**] を選択してください。

1. 作成した関連付けを選択し、[**削除**] を選択します。