

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

# CodeDeploy のための Amazon EC2 インスタンスを用いた作業
<a name="instances-ec2"></a>

Amazon EC2 インスタンスは、Amazon Elastic Compute Cloud を使用して作成および設定する仮想コンピューティング環境です Amazon EC2 は、 AWS クラウドでスケーラブルなコンピューティング容量を提供します。Amazon EC2 を使用して、CodeDeploy デプロイに必要な数だけ仮想サーバーを起動できます。

Amazon EC2 の詳細については、[https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/) を参照してください。

このセクションの説明では、CodeDeploy のデプロイで使用する Amazon EC2 インスタンスを作成および設定する方法を示します。

**Topics**
+ [CodeDeploy のための Amazon EC2 インスタンスを作成します。](instances-ec2-create.md)
+ [Amazon EC2 インスタンスを作成する (CloudFormation テンプレート)](instances-ec2-create-cloudformation-template.md)
+ [Amazon EC2 インスタンスの設定](instances-ec2-configure.md)

# CodeDeploy (AWS CLI または Amazon EC2 コンソール) 用の Amazon EC2 インスタンスを作成する
<a name="instances-ec2-create"></a>

これらの説明では、CodeDeploy デプロイ用に設定した新しい Amazon EC2 インスタンスを起動する方法を示します。

 CloudFormation テンプレートを使用して、CodeDeploy デプロイで使用するように既に設定されている Amazon Linux または Windows Server を実行している Amazon EC2 インスタンスを起動できます。Ubuntu Server または Red Hat Enterprise Linux (RHEL) を実行している Amazon EC2 インスタンス用の CloudFormation テンプレートは提供していません。テンプレートを使用する代わりに、「[CodeDeploy のためにインスタンスを用いた操作](instances.md)」を参照してください。

Amazon EC2 コンソール AWS CLI、または Amazon EC2 APIsを使用して Amazon EC2 インスタンスを起動できます。

## Amazon EC2 インスタンス (コンソール) を起動します。
<a name="instances-ec2-create-console"></a>

### 前提条件
<a name="instances-ec2-create-console-prerequisites"></a>

まだ行っていない場合は、[CodeDeploy の開始方法](getting-started-codedeploy.md)「」の手順に従って をセットアップおよび設定 AWS CLI し、IAM インスタンスプロファイルを作成します。

### Amazon EC2 インスタンスの起動
<a name="instances-ec2-create-console-steps"></a>

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

1. ナビゲーションペインで [**インスタンス**]、[**インスタンスの作成**] の順に選択します。

1. [**Step 1: Choose an Amazon Machine Image (AMI)**] ページで、[**Quick Start**] タブから、使用するオペレーションシステムおよびバージョンを探して、[**Select**] を選択します。CodeDeploy によりサポートされている ​Amazon EC2 AMI オペレーティングシステムを選択する必要があります。詳細については、「[CodeDeploy エージェントで対応するオペレーティングシステム](codedeploy-agent.md#codedeploy-agent-supported-operating-systems)」を参照してください。

1. [**ステップ 2: インスタンスタイプの選択**] ページで、利用可能な Amazon EC2 インタンスタイプを選択し、[**次の手順: インスタンスの詳細の設定**] を選択します。

1. **IAM role** 中の **Step 3: Configure Instance Details** ページ上で、[ステップ 4: Amazon EC2 インスタンス用の IAM インスタンスプロファイルを作成する](getting-started-create-iam-instance-profile.md) で作成した IAM インスタンスロールを選択します。提案されたロール名を使用している場合は、[**CodeDeployDemo-EC2-Instance-Profile**] を選択します。独自のロール名を作成した場合は、その名前を選択します。
**注記**  
デフォルトの仮想プライベートクラウド (VPC) が**ネットワーク**の一覧に表示されていない場合は、Amazon VPC とサブネットを選択するか、作成する必要があります。[**Create new VPC (新しい VPC の作成)**] または [**Create new subnet (新しいサブネットの作成)**]、またはその両方を選択します。詳細については、「[VPC とサブネット](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)」を参照してください。

1. [**次の手順: ストレージの追加**] を選択してください。

1. [**ステップ 4: ストレージの追加**] ページは変更せず、[**次の手順: タグの追加**] を選択します。

1. **[Step 5: Add Tags]** (ステップ 5: タグの追加) ページで**[Add Tag]** (タグの追加) を選択します。

1.  [**キー**] ボックスに「**Name**」と入力します。[**値**] ボックスに「**CodeDeployDemo**」と入力します。
**重要**  
[**キー**] ボックスと [**値**] ボックスの内容は大文字と小文字が区別されます。

1. [**Next: Configure Security Group**] (次に)：セキュリティグループを設定)を選択します。

1. [**ステップ 6: セキュリティグループの設定**] ページで、[**新規セキュリティグループを作成**] オプションを選択したままにします。

   デフォルトの SSH ロールは、Amazon Linux、Ubuntu サーバー、または RHEL を実行する Amazon EC2 インスタンスのために設定されます。デフォルトの RDP ロールは、Windows サーバーを実行する Amazon EC2 インスタンスのために設定されます。

1. HTTP ポートを開く場合は、[**ルールの追加**] ボタンを選択し、[**タイプ**] ドロップダウンリストから、[**HTTP**] を選択します。**Custom 0.0.0.0/0** のデフォルトの **Source** を受け入れ、次に **Review and Launch** を選択します。
**注記**  
本稼働環境では、**Anywhere 0.0.0.0/0** を指定する代わりに、SSH、RDP、および HTTP ポートへのアクセスを制限することを推奨します。CodeDeploy は、無制限のポートアクセスを必要とせず、HTTP アクセスを必要としません。詳細については、「[Amazon EC2 インスタンスの保護のヒント](https://aws.amazon.com/articles/1233)」を参照してください。

   [**汎用 (SSD) から起動する**] ダイアログボックスが表示されたら、指示に従って [**次へ**] を選択します。

1. [**Step 7: Review Instance Launch**] ページは変更せず、[**Launch**] を選択します。

1. [**既存のキーペアの選択または新しいキーペアの作成**] ダイアログボックスで、[**既存のキーペアの選択**] または [**新しいキーペアの作成**] を選択します。すでに Amazon EC2 インスタンスキーペアを設定している場合は、ここで選択できます。

   Amazon EC2 インスタンスのキーペアがまだない場合は、[**Create a new key pair (新しいキーペアの作成)**] を選択して、わかりやすい名前を付けます。お客様のコンピュータに Amazon EC2 インスタンスキーペアをダウンロードするために、**Download Key Pair** を選択します。
**重要**  
SSH または RDP を使用して、Amazon EC2 インスタンスへアクセスしたい場合は、キーペアが必要です。

1. **[Launch Instances]** (インスタンスを起動) をクリックします。

1. Amazon EC2 インスタンスのための ID を選択します。インスタンスが起動され、すべてのチェックが成功するまで先に進まないでください。

### CodeDeploy エージェントをインストールします
<a name="instances-ec2-create-console-agent"></a>

CodeDeploy エージェントは、CodeDeploy デプロイ中で使用する前に、Amazon EC2 インスタンス上にインストールする必要があります。詳細については、「[CodeDeploy エージェントをインストールする](codedeploy-agent-operations-install.md)」を参照してください。

**注記**  
コンソールでデプロイグループを作成するときに、CodeDeploy エージェントの自動インストールと更新を設定できます。

## Amazon EC2 インスタンス (CLI) の起動
<a name="instances-ec2-create-cli"></a>

### 前提条件
<a name="instances-ec2-create-cli-prerequisites"></a>

まだ行っていない場合は、[CodeDeploy の開始方法](getting-started-codedeploy.md)「」の手順に従って をセットアップおよび設定 AWS CLI し、IAM インスタンスプロファイルを作成します。

### Amazon EC2 インスタンスの起動
<a name="instances-ec2-create-cli-steps"></a>

1. **For Windows Server only** Windows サーバーを実行している Amazon EC2 インスタンスを作成中の場合、**create-security-group** と **authorize-security-group-ingress** のコマンドを呼び出し、実行する インスタンスを作成する場合は、RDP アクセス (デフォルトでは許可されない)、または代わりに HTTP アクセスを許可するセキュリティグループを作成します。例えば、*CodeDeployDemo-Windows-Security-Group* という名前のセキュリティグループを作成するには、次のコマンドを 1 つずつ実行します。

   ```
   aws ec2 create-security-group --group-name CodeDeployDemo-Windows-Security-Group --description "For launching Windows Server images for use with CodeDeploy"
   ```

   ```
   aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security-Group --to-port 3389 --ip-protocol tcp --cidr-ip 0.0.0.0/0 --from-port 3389
   ```

   ```
   aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security-Group --to-port 80 --ip-protocol tcp --cidr-ip 0.0.0.0/0 --from-port 80
   ```
**注記**  
デモンストレーションのため、これらのコマンドは、ポート 3389 を経由して RDP に、またはポート 80 を経由して HTTP に無制限アクセスを許可するセキュリティグループを作成します。ベストプラクティスとして、SSH および HTTP ポートへのアクセスを制限することをお勧めします。CodeDeploy は、無制限のポートアクセスを必要とせず、HTTP アクセスを必要としません。詳細については、「[Amazon EC2 インスタンスの保護のヒント](https://aws.amazon.com/articles/1233)」を参照してください。

1. **run-instances** のコマンドを呼び出して、Amazon EC2 インスタンスを作成して起動します。

   このコマンドを呼び出す前に、以下を収集する必要があります。
   + インスタンスに使用する Amazon マシンイメージ (AMI) (*ami-id*) の ID。ID を取得するには、「[適切な AMI の検索](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html)」を参照してください。
   + 例えば `t1.micro` のように、作成する Amazon EC2 インスタンス (*instance-type*) のタイプ名。リストについては、[Amazon EC2 instance types](https://aws.amazon.com/ec2/instance-types/) を参照してください。
   + リージョンのための CodeDeploy エージェントインスレーションファイルが保存されている Amazon S3 バケットへのアクセス許可を持つ IAM インスタンスプロファイルの名前。

     IAM インスタンスプロファイルの作成についての情報は、[ステップ 4: Amazon EC2 インスタンス用の IAM インスタンスプロファイルを作成する](getting-started-create-iam-instance-profile.md) を参照してください。
   + Amazon Linux、Ubuntu サーバー、または RHEL または RDP アクセスを実行している Amazon EC2 インスタンスへのSSH、あるいは Windows サーバーを実行している Amazon EC2 へRDP アクセスを可能とする Amazon EC2インスタンスキーの名前 (*key-name*)。
**重要**  
キーペアのファイル拡張子ではなく、キーペア名のみを入力します。例えば、*my-keypair.pem* ではなく、*my-keypair* です。

     キーペア名を見つけるには、[https://console.aws.amazon.com/ec2](https://console.aws.amazon.com/ec2) でAmazon EC2 コンソールを開きます。ナビゲーションペインの [**ネットワーク & セキュリティ**] の下で、[**キーペア**] を選択し、リストのキーペア名をメモします。

     新しいキーペアを生成するには、「[Amazon EC2 を使用してキーペアを作成する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair)」を参照してください。「*AWS 全般のリファレンス*」の「[リージョンエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)」にリストされているリージョンの一つの中にキーペアを作成することを確かめてください。そうしないと、CodeDeploy を用いて Amazon EC2 インスタンスのキーペアを使用できなくなります。

   **Amazon Linux、RHEL、および Ubuntu Server 用**

   Amazon Linux, Ubuntu Server、あるいは RHEL を実行する Amazon EC2 インスタンスを開始するための **run-instances** のコマンドを呼び出し、[ステップ 4: Amazon EC2 インスタンス用の IAM インスタンスプロファイルを作成する](getting-started-create-iam-instance-profile.md) で作成した IAM インスタンスプロファイルをアタッチする方法。例: 。

   ```
   aws ec2 run-instances \
     --image-id ami-id \
     --key-name key-name \
     --count 1 \
     --instance-type instance-type \
     --iam-instance-profile Name=iam-instance-profile
   ```
**注記**  
このコマンドは、ポート 22 を経由した SSH の無制限のアクセス、または、ポート 80 を経由した HTTP など複数のポートへのアクセスを許可する Amazon EC2 インスタンスのデフォルトのセキュリティグループを作成します。ベストプラクティスとして、SSH および HTTP ポートへのアクセスを制限することをお勧めします。CodeDeploy は、無制限のポートアクセスを必要とせず、HTTP ポートアクセスを必要としません。詳細については、「[Amazon EC2 インスタンスの保護のヒント](https://aws.amazon.com/articles/1233)」を参照してください。

   **Windows Server の場合**

   **run-instances** のコマンドを呼び出して Windows サーバーを実行する Amazon EC2 インスタンスを起動し、[ステップ 4: Amazon EC2 インスタンス用の IAM インスタンスプロファイルを作成する](getting-started-create-iam-instance-profile.md) で作成した IAM インスタンスプロファイルをアタッチして、ステップ 1 で作成したセキュリティグループの名前を指定するには、例: 。

   ```
   aws ec2 run-instances --image-id ami-id --key-name key-name --count 1 --instance-type instance-type --iam-instance-profile Name=iam-instance-profile --security-groups CodeDeploy-Windows-Security-Group
   ```

   これらのコマンドは、指定された AMI、キーペア、およびインスタンスタイプ、指定された IAM インスタンスプロファイルを用いて単一の Amazon EC2 インスタンスプロファイルを起動し、起動時に指定されたスクリプトを実行します。

1. 出力の `InstanceID` の値を記録します。この値を忘れた場合は、Amazon EC2 インスタンスのキーペアに対する **describe-instances** のコマンドを呼び出すことで、後で取得できます。

   ```
   aws ec2 describe-instances --filters "Name=key-name,Values=keyName" --query "Reservations[*].Instances[*].[InstanceId]" --output text
   ```

   インスタンス ID を使用して **create-tags** のコマンドを呼び出します。このコマンドで Amazon EC2 インスタンスにタグが付けられ、後でデプロイ中に、CodeDeploy が見つけることができるようになります。次の例で、タグ名は **CodeDeployDemo** と名付けられていますが、希望する Amazon EC2 インスタンスタグを指定できます。

   ```
   aws ec2 create-tags --resources instance-id --tags Key=Name,Value=CodeDeployDemo
   ```

   複数のタグを同時にインスタンスに適用できます。例: 。

   ```
   aws ec2 create-tags --resources instance-id --tags Key=Name,Value=testInstance Key=Region,Value=West Key=Environment,Value=Beta
   ```

   Amazon EC2 インスタンスが起動され、すべてのチェックが成功したことを確認するには、**describe-instance-status** のコマンドを呼び出すためのインスタンス ID を使用します。

   ```
   aws ec2 describe-instance-status --instance-ids instance-id --query "InstanceStatuses[*].InstanceStatus.[Status]" --output text 
   ```

インスタンスが起動され、すべてのチェックが成功すると、`ok` が出力に表示されます。

### CodeDeploy エージェントをインストール
<a name="instances-ec2-create-console-agent"></a>

CodeDeploy エージェントは、CodeDeploy デプロイ中で使用する前に、Amazon EC2 インスタンス上にインストールする必要があります。詳細については、「[CodeDeploy エージェントをインストールする](codedeploy-agent-operations-install.md)」を参照してください。

**注記**  
コンソールでデプロイグループを作成するときに、CodeDeploy エージェントの自動インストールと更新を設定できます。

# CodeDeploy 用の Amazon EC2 インスタンスを作成する (CloudFormation テンプレート)
<a name="instances-ec2-create-cloudformation-template"></a>

 CloudFormation テンプレートを使用して、Amazon Linux または Windows Server を実行する Amazon EC2 インスタンスをすばやく起動できます。テンプレートを使用してインスタンスを起動するには AWS CLI、、CodeDeploy コンソール、または AWS APIs を使用できます。インスタンスを起動することに加えて、テンプレートでは以下を実行します。
+ CodeDeploy デプロイに参加するアクセス許可をインスタンスに付与 CloudFormation するように に指示します。
+ インスタンスにタグ付けして、CodeDeploy がデプロイ中に見つけられるようにします。
+ インスタンス上で CodeDeploy エージェントをインストールおよび実行します。

 CloudFormation を使用して Amazon EC2 インスタンスをセットアップする必要はありません。代替方法については、「[CodeDeploy のためにインスタンスを用いた操作](instances.md)」を参照してください。

Ubuntu Server または Red Hat Enterprise Linux (RHEL) を実行している Amazon EC2 インスタンス用の CloudFormation テンプレートは提供していません。

**Topics**
+ [[開始する前に]](#instances-ec2-create-cloudformation-template-before)
+ [CloudFormation テンプレートを使用して Amazon EC2 インスタンスを起動する (コンソール)](#instances-ec2-create-cloudformation-template-console)
+ [CloudFormation テンプレートを使用して Amazon EC2 インスタンスを起動する (AWS CLI)](#instances-ec2-create-cloudformation-template-cli)

## [開始する前に]
<a name="instances-ec2-create-cloudformation-template-before"></a>

 CloudFormation テンプレートを使用して Amazon EC2 インスタンスを起動する前に、次の手順を完了してください。

1. 「[ステップ 1: セットアップ](getting-started-setting-up.md)」の説明に従って管理ユーザーを作成したことを確認します。ユーザーに次の最小限の許可があることをもう一度確認し、存在しないものを追加します。
   + cloudformation:\$1
   + codedeploy:\$1
   + ec2:\$1
   + iam:AddRoleToInstanceProfile
   + iam:CreateInstanceProfile
   + iam:CreateRole
   + iam:DeleteInstanceProfile
   + iam:DeleteRole
   + iam:DeleteRolePolicy
   + iam:GetRole
   + iam:DeleteRolePolicy
   + iam:PutRolePolicy
   + iam:RemoveRoleFromInstanceProfile

1. Amazon Linux を実行する Amazon EC2 インスタンスへの SSH アクセス、または Windows Server を実行するインスタンスへの RDP アクセスを有効にするインスタンスのキーペアがあることを確認します。

   キーペア名を見つけるには、[https://console.aws.amazon.com/ec2](https://console.aws.amazon.com/ec2) でAmazon EC2 コンソールを開きます。ナビゲーションペインの [**ネットワーク & セキュリティ**] の下で、[**キーペア**] を選択し、リストのキーペア名をメモします。

   新しいキーペアを生成するには、「[Amazon EC2 を使用してキーペアを作成する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair)」を参照してください。「*AWS 全般のリファレンス*」の [[リージョンエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)] にリストされているリージョンの一つの中に、キーペアが作成されていることを確かめます。それ以外の場合、CodeDeploy を用いてインスタンスのキーペアを使用できなくなります。

## CloudFormation テンプレートを使用して Amazon EC2 インスタンスを起動する (コンソール)
<a name="instances-ec2-create-cloudformation-template-console"></a>

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) で CloudFormation コンソールを開きます。
**重要**  
で使用したのと同じアカウント AWS マネジメントコンソール で にサインインします[CodeDeploy の開始方法](getting-started-codedeploy.md)。ナビゲーションバーのリージョンセレクターで、「AWS 全般のリファレンス」**の「[リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)」に一覧表示されているいずれかのリージョンを選択します。CodeDeploy は、これらのリージョンでのみサポートされています。

1. **[Create Stack]** (スタックの作成) を選択します。

1. [**テンプレートの選択**] で、[**Amazon S3 テンプレート URL の指定**] を選択します。ボックスに、リージョンの CloudFormation テンプレートの場所を入力し、次**へ**を選択します。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/instances-ec2-create-cloudformation-template.html)

1. [**スタック名**] ボックスに、スタックの名前 (**CodeDeployDemoStack** など) を入力します

1. [**Parameters**] に以下を入力し、[**Next**] を選択します。
   + [**InstanceCount**] には、起動するインスタンスの数を入力します (デフォルトの **1** のままにしておくことをお勧めします)。
   + [**InstanceType**] には、起動するインスタンスタイプを入力します (またはデフォルトの **t1.micro** のままにします)。
   + [**KeyPairName**] のために、インスタンスのキーペア名をタイプします。キーペアのファイル拡張子ではなく、キーペア名のみを入力します。
   + **OperatingSystem** ボックスにのために、**Windows** をタイプし、Windows サーバーを実行するインスタンスを起動します (または **Linux** のデフォルトのままにします)。
   + [**SSHLocation**] には、SSH または RDP でインスタンスに接続するのに使用される IP アドレス範囲を入力します (またはデフォルトの **0.0.0.0/0** のままにします)。
**重要**  
**0.0.0.0/0** のデフォルトは、デモンストレーションのみを目的として提供されています。CodeDeploy では、Amazon EC2 インスタンスのポートへの無制限のアクセス権限を持つ必要はありません。ベストプラクティスとして、SSH (および HTTP) ポートへのアクセスを制限することをお勧めします。詳細については、「[Amazon EC2 インスタンスの保護のヒント](https://aws.amazon.com/articles/1233)」を参照してください。
   + **TagKey** のために、デプロイ中に CodeDeploy がインスタンスを特定するために使うインスタンスのタグキーをタイプします (または **Name** のデフォルトのままに)。
   + **TagValue** のために、CodeDeploy がデプロイ中にインスタンスを特定するために使用するインスタンスのタグ値をタイプします (または **CodeDeployDemo** のデフォルトのままに)。

1. [**Options**] ページで、オプションボックスは空白のまま残し、[**Next**] を選択します。
**重要**  
CloudFormation タグは CodeDeploy tags とは異なります。 はタグ CloudFormation を使用してインフラストラクチャの管理を簡素化します。CodeDeploy は、タグを使用して Amazon EC2 インスタンスを識別します。お客様は、**Specify Parameters** ページ上にCodeDeploy タクを指定しました。

1. **「レビュー**」ページの**「機能**」で、**IAM リソースを作成する CloudFormation 可能性がある「承認**」ボックスを選択し、**「作成**」を選択します。

    CloudFormation がスタックを作成し、Amazon EC2 インスタンスを起動すると、コンソール CloudFormation でステータス****列に **CREATE\$1COMPLETE** が表示されます。この処理には数分かかることもあります。

CodeDeploy エージェントが Amazon EC2 インスタンス上で実行されていることを確認するには、[CodeDeploy エージェントのオペレーションの管理](codedeploy-agent-operations.md) を参照して、[CodeDeploy でアプリケーションを作成する](applications-create.md) に進みます。

## CloudFormation テンプレートを使用して Amazon EC2 インスタンスを起動する (AWS CLI)
<a name="instances-ec2-create-cloudformation-template-cli"></a>

1. **create-stack** コマンドの呼び出しで CloudFormation テンプレートを使用します。このスタックは、インストールされた CodeDeploy エージェントを用いて新しい Amazon EC2 インスタンスを起動します。

   Amazon Linux を実行する Amazon EC2 インスタンスを起動するには:

   ```
   aws cloudformation create-stack \
     --stack-name CodeDeployDemoStack \
     --template-url templateURL \
     --parameters ParameterKey=InstanceCount,ParameterValue=1 ParameterKey=InstanceType,ParameterValue=t1.micro \
       ParameterKey=KeyPairName,ParameterValue=keyName ParameterKey=OperatingSystem,ParameterValue=Linux \
       ParameterKey=SSHLocation,ParameterValue=0.0.0.0/0 ParameterKey=TagKey,ParameterValue=Name \
       ParameterKey=TagValue,ParameterValue=CodeDeployDemo \
     --capabilities CAPABILITY_IAM
   ```

   Windows Server を実行中の Amazon EC2 インスタンスを起動するには 

   ```
   aws cloudformation create-stack --stack-name CodeDeployDemoStack --template-url template-url --parameters ParameterKey=InstanceCount,ParameterValue=1 ParameterKey=InstanceType,ParameterValue=t1.micro ParameterKey=KeyPairName,ParameterValue=keyName ParameterKey=OperatingSystem,ParameterValue=Windows ParameterKey=SSHLocation,ParameterValue=0.0.0.0/0 ParameterKey=TagKey,ParameterValue=Name ParameterKey=TagValue,ParameterValue=CodeDeployDemo --capabilities CAPABILITY_IAM
   ```

   *keyName* は、インスタンスのキーペア名です。キーペアのファイル拡張子ではなく、キーペア名のみを入力します。

   *template-url* は、リージョンの CloudFormation テンプレートの場所です。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/instances-ec2-create-cloudformation-template.html)

   このコマンドは**CodeDeployDemoStack**、指定された Amazon S3 バケットの CloudFormation テンプレートを使用して、 という名前の CloudFormation スタックを作成します。 Amazon S3 Amazon EC2 インスタンスは、[t1.micro]インスタンスタイプに基づいていますが、任意のタイプを使用できます。このインスタンスは、**CodeDeployDemo** の値でタグ付けされていますが、任意の値でタグ付けできます。指定されたインスタンスのキーペアが適用されています。

1. **describe-stacks** コマンドを呼び出して、 という名前の CloudFormation スタック**CodeDeployDemoStack**が正常に作成されたことを確認します。

   ```
   aws cloudformation describe-stacks --stack-name CodeDeployDemoStack --query "Stacks[0].StackStatus" --output text
   ```

   `CREATE_COMPLETE` の値が返されるまで進まないでください。

CodeDeploy エージェントが Amazon EC2 インスタンス上で実行されていることを確認するには、[CodeDeploy エージェントのオペレーションの管理](codedeploy-agent-operations.md) を参照して、[CodeDeploy でアプリケーションを作成する](applications-create.md) に進みます。

# CodeDeploy と共に動作するように Amazon EC2 インスタンスを構成します
<a name="instances-ec2-configure"></a>

以下の手順では、Amazon Linux、Ubuntu サーバー、Red Hat エンタープライズ Linux (RHEL)、または Windows サーバーを実行して、CodeDeploy デプロイで使用する Amazon EC2 インスタンスを構成する方法について説明します。

**注記**  
Amazon EC2 インスタンスがない場合は、 CloudFormation テンプレートを使用して、実行中の Amazon Linux または Windows Server を起動できます。Ubuntu Server または RHEL 用のテンプレートは提供されていません。

## ステップ 1: IAM インスタンスプロファイルが Amazon EC2 インスタンスにアタッチされていることを確認する
<a name="instances-ec2-configure-1-verify-instance-profile-attached"></a>

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

1. ナビゲーションペインの **[Instances]** (インスタンス) で、**[Instances]** (インスタンス) を選択します。

1. 一覧で Amazon EC2 インスタンスを参照して選択します。

1. 詳細ペインの、[**説明**] タブで [**IAM ロール**] フィールドの値を書き留め、次のセクションに進みます。

   フィールドが空の場合は、IAM インスタンスプロファイルをインスタンスにアタッチすることができます。詳細については、[IAM ロールをインスタンスにアタッチする](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#attach-iam-role) を参照してください。

## ステップ 2: 添付されたインスタンスプロファイルが正しいアクセス権限を持っていることを確認します。
<a name="instances-ec2-configure-2-verify-instance-profile-permissions"></a>

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

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

1. 前のセクションのステップ 4 で書き留めた IAM ロールの名前を参照し、選択します。
**注記**  
「」の手順に従って作成したサービスロールではなく、 CloudFormation テンプレートによって生成されたサービスロールを使用する場合は[ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md)、次の点に注意してください。  
 CloudFormation テンプレートの一部のバージョンでは、生成され、Amazon EC2 インスタンスにアタッチされた IAM インスタンスプロファイルの表示名は、IAM コンソールの表示名と同じではありません。例えば、IAM インスタンスプロファイルは、`CodeDeploySampleStack-expnyi6-InstanceRoleInstanceProfile-IK8J8A9123EX` の表示名を持っているかもしれませんが、一方で IAM コンソール中のインスタンスプロファイルは `CodeDeploySampleStack-expnyi6-InstanceRole-C5P33V1L64EX` の表示名である可能性があります。  
IAM コンソール中のインスタンスプロファイルを特定するには、`CodeDeploySampleStack-expnyi6-InstanceRole` のプレフィックスがどちらでも同じことを確認します。これらの表示名が異なる理由に関する詳細については、「[インスタンスプロファイル](https://docs.aws.amazon.com/IAM/latest/UserGuide/instance-profiles.html)」を参照してください。

1. [**Trust Relationships**] タブを選択します。**The identity provider(s) ec2.amazonaws.com** を読み取る [**信頼されたエンティティ**] にエンティティがない場合、この Amazon EC2 インスタンスを使用できません。[CodeDeploy のためにインスタンスを用いた操作](instances.md) の情報を使用して、Amazon EC2 インスタンスを停止して作成します。

   **The identity provider(s) ec2.amazonaws.com** を読み取るエントリがあり、GitHub リポジトリのみにアプリケーションを保存する場合は、「[ステップ 3: Amazon EC2 インスタンスへのタグ付け](#instances-ec2-configure-3-tag-instance)」 に進みます。

   **The identity provider(s) ec2.amazonaws.com** を読み取るエントリがある場合、およびバケットにアプリケーションを Amazon S3 に保存する場合は、**Permissions** タブを選択します。

1. [**Permissions policies (アクセス権限ポリシー)**] エリアにポリシーがある場合は、ポリシー名を選択してから [**Edit policy (ポリシーの編集)**] を選択します。

1. **JSON** タブを選択します。Amazon S3 バケット中にアプリケーションを保存している場合は、`"s3:Get*"` および `"s3:List*"` が指定したアクションのリストにあることを確認します。

   次のように表示されます。

   ```
   {"Statement":[{"Resource":"*","Action":[
     ... Some actions may already be listed here ...
     "s3:Get*","s3:List*"
     ... Some more actions may already be listed here ...
     ],"Effect":"Allow"}]}
   ```

   または、次のように表示されます。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:Get*",
           "s3:List*"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

   If `"s3:Get*"` および `"s3:List*"` が指定されたアクションのリストにない場合、[**Edit**] を選択して、それらを追加し、[**Save**] を選択します。(`"s3:Get*"` または `"s3:List*"` のどちらかがリストの最後のアクションである場合、必ずアクションの後にコンマを追加して、ポリシードキュメントが検証するようにします。)
**注記**  
このポリシーを、Amazon EC2 インスタンスがアクセスする必要のある Amazon S3 バケットにのみ制限することをお勧めします。CodeDeploy エージェントを含む Amazon S3 バケットへのアクセスを必ず許可してください。そうしない場合、CodeDeploy エージェントがインスタンス上にインストールされる、または更新されるときに、エラーが発生する可能性があります。Amazon S3 中の CodeDeploy リソースキットバケットのみへの IAM インスタンスアクセスは許すが、アクセスを防止するバケットのための行を削除するには  

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:Get*",
           "s3:List*"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:s3:::aws-codedeploy-us-east-2/*",
           "arn:aws:s3:::aws-codedeploy-us-east-1/*",
           "arn:aws:s3:::aws-codedeploy-us-west-1/*",
           "arn:aws:s3:::aws-codedeploy-us-west-2/*",
           "arn:aws:s3:::aws-codedeploy-ca-central-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-2/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-3/*",
           "arn:aws:s3:::aws-codedeploy-eu-central-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-central-2/*",
           "arn:aws:s3:::aws-codedeploy-eu-north-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-south-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-south-2/*",
           "arn:aws:s3:::aws-codedeploy-il-central-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-east-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*",        
           "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*",
           "arn:aws:s3:::aws-codedeploy-ap-south-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-south-2/*",
           "arn:aws:s3:::aws-codedeploy-me-central-1/*",
           "arn:aws:s3:::aws-codedeploy-me-south-1/*",
           "arn:aws:s3:::aws-codedeploy-sa-east-1/*"
         ]
       }
     ]
   }
   ```

## ステップ 3: Amazon EC2 インスタンスへのタグ付け
<a name="instances-ec2-configure-3-tag-instance"></a>

Amazon EC2 インスタンスにタグをつけて、CodeDeploy がデプロイ中に見つけられるようにする方法に関する詳細について、「[コンソールでタグを使用する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_Console)」を参照してから、このページに戻ります。

**注記**  
任意のキーおよび値を使用して Amazon EC2 インスタンスにタグを付けられます。インスタンスにデプロイするとき、必ずこのキーと値を指定してください。

## ステップ 4: Amazon EC2 インスタンスに AWS CodeDeploy エージェントをインストールする
<a name="instances-ec2-configure-4-install-agent"></a>

Amazon EC2 インスタンス上に CodeDeploy エージェントをインストールし、それが実行していることを検証する方法の説明については、[CodeDeploy エージェントのオペレーションの管理](codedeploy-agent-operations.md) を参照してから [CodeDeploy でアプリケーションを作成する](applications-create.md) に進みます。