

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

# CodeDeploy のためにインスタンスを用いた操作
<a name="instances"></a>

CodeDeploy は Amazon Linux、Ubuntu Server、Red Hat Enterprise Linux (RHEL)、Windows Server を実行しているインスタンスへのデプロイをサポートします。

CodeDeploy を使って、Amazon EC2 インスタンスとオンプレミスインスタンスの両方にデプロイできます。オンプレミスインスタンスは、CodeDeploy エージェントを実行してパブリック AWS サービスエンドポイントに接続できる Amazon EC2 インスタンスではない物理デバイスです。CodeDeploy を使って、クラウド中の Amazon EC2 インスタンスと、オフィスのデスクトップ PC や自身のデータセンターのサーバーに、アプリケーションを同時にデプロイできます。

## Amazon EC2 インスタンスとオンプレミスインスタンスの比較
<a name="instances-comparison"></a>

次の表は、Amazon EC2 インスタンスとオンプレミスインスタンスの比較を示しています。


| **件名** | **Amazon EC2 インスタンス** | **オンプレミスインスタンス** | 
| --- | --- | --- | 
|  インスタンス上で実行中のオペレーティングシステムと互換性がある CodeDeploy エージェントのバージョンをインストールおよび実行する必要があります。  | はい  |  はい  | 
|  インスタンスは、CodeDeploy に接続できる必要があります。  |  はい   |  はい  | 
|  IAM インスタンスプロファイルがインスタンスに添付される必要があります。IAM インスタンスプロファイルには、CodeDeploy デプロイに参加する許可が必要です。詳細については、「[ステップ 4: Amazon EC2 インスタンス用の IAM インスタンスプロファイルを作成する](getting-started-create-iam-instance-profile.md)」を参照してください。  |  はい  |  なし  | 
|  次のいずれかの操作を行って認証を行い、インスタンスを登録する必要があります。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/instances.html)  |  いいえ  |  はい  | 
|  それへ実行できる前に、CodeDeploy を用いて各インスタンスを登録する必要があります。  |  いいえ  |  はい  | 
|  CodeDeploy がデプロイを実行できる前に、各インスタンスにタグを付ける必要があります。  |  はい   |  はい  | 
|  CodeDeploy デプロイの一環として、Amazon EC2 Auto Scaling および Elastic Load Balancing のシナリオに参加できます。  |  はい  |  なし  | 
|  Amazon S3 バケットと GitHub リポジトリからデプロイされることができます。  |  はい   |  はい  | 
|  指定されたイベントがデプロイまたはインスタンスで発生したときに、SMS または E メール通知の送信を求めるトリガーをサポートできる。  |  はい   |  はい  | 
|  関連デプロイへの請求対象である。  |  いいえ  |  はい  | 

## CodeDeploy のためのインスタンスタスク
<a name="instances-task-list"></a>

デプロイで使用するインスタンスを起動または設定するには、以下の手順から選択します。


|  |  | 
| --- |--- |
|  新しい Amazon Linux または Windows Server の Amazon EC2 インスタンスを起動する場合。  |  最小限の労力で Amazon EC2 インスタンスを起動するには、[CodeDeploy 用の Amazon EC2 インスタンスを作成する (CloudFormation テンプレート)](instances-ec2-create-cloudformation-template.md) を参照してください。 主に自分で Amazon EC2 インスタンスを起動するには、[CodeDeploy (AWS CLI または Amazon EC2 コンソール) 用の Amazon EC2 インスタンスを作成する](instances-ec2-create.md) を参照してください。  | 
|  新しい Ubuntu Server または RHEL の Amazon EC2 インスタンスを起動する場合。  |  「[CodeDeploy (AWS CLI または Amazon EC2 コンソール) 用の Amazon EC2 インスタンスを作成する](instances-ec2-create.md)」を参照してください。  | 
| Amazon Linux、Windows サーバー、Ubuntu サーバー、または RHEL Amazon EC2 インスタンスを構成する場合。 | 「[CodeDeploy と共に動作するように Amazon EC2 インスタンスを構成します](instances-ec2-configure.md)」を参照してください。 | 
| Windows サーバー、Ubuntu サーバー、または RHEL オンプレミスインスタンス (Amazon EC2 インスタンスではない物理デバイス) を構成する場合。 | 「[CodeDeploy 用のオンプレミスインスタンスを用いての作業](instances-on-premises.md)」を参照してください。 | 
| blue/green のデプロイ中に、CodeDeploy にインスタンスの置換フリートをプロビジョンするための CodeDeploy が必要な場合。 | 「[CodeDeploy でのデプロイグループの使用](deployments.md)」を参照してください。 | 

Amazon EC2 Auto Scaling グループ中の Amazon EC2 インスタンスを準備するには、追加のステップに従う必要があります。詳細については、「[CodeDeploy と Amazon EC2 Auto Scaling の統合](integrations-aws-auto-scaling.md)」を参照してください。

**トピック**
+ [Tagging Instances for Deployments](instances-tagging.md)
+ [Working with Amazon EC2 Instances](instances-ec2.md)
+ [Working with On-Premises Instances](instances-on-premises.md)
+ [View Instance Details](instances-view-details.md)
+ [Instance Health](instances-health.md)

# CodeDeploy 中のデプロイグループのためのインスタンスのタグ付け
<a name="instances-tagging"></a>

Amazon EC2 インスタンスとオンプレミスインスタンスを管理するために、タグを使用して独自のメタデータを各リソースに割り当てることができます。タグを使用すると、インスタンスをさまざまな方法 (目的、所有者、環境など) で分類することができます。これはインスタンスが多数ある場合に便利です。割り当てられたタグに基づいて、インスタンスやインスタンスグループを迅速に識別できます。各タグはキーとオプションの値で構成され、どちらもお客様側が定義します。詳細については、「[Amazon EC2 リソースにタグを付ける](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)」を参照してください。

どのインスタンスを CodeDeploy デプロイグループ中に含めるかを指定するには、1 つ以上の *tag groups* にタグを指定します。タグ条件を満たすインスタンスは、そのデプロイグループへのデプロイが作成されたときにアプリケーションの最新のリビジョンがインストール済みのものです。

**注記**  
また、Amazon EC2 Auto Scaling グループをデプロイグループに含めることもできますが、これらはインスタンスに適用されたタグではなく名前によって識別されます。詳細については、「[CodeDeploy と Amazon EC2 Auto Scaling の統合](integrations-aws-auto-scaling.md)」を参照してください。

デプロイグループのインスタンスの条件は、単一のタググループの単一のタグと同じほど簡単です。これは、最大 3 つのタググループそれぞれに 10 個のタグという複雑なものにもできます。

単一のタググループを使用する場合は、グループ内の少なくとも 1 つのタグによって識別されたインスタンスがデプロイグループに含まれます。複数のタググループを使用する場合は、タググループ*それぞれ*の少なくとも 1 つのタグによって識別されたインスタンスのみが含まれます。

次の例は、タグとタググループを使用してデプロイグループのインスタンスを選択する方法を説明します。

**Topics**
+ [例 1: 単一タググループ、単一タグ](#instances-tagging-example-1)
+ [例 2: 単一タググループ、複数タグ](#instances-tagging-example-2)
+ [例 3: 複数タググループ、複数タグ](#instances-tagging-example-3)
+ [例 4: 複数タググループ、複数タグ](#instances-tagging-example-4)

## 例 1: 単一タググループ、単一タグ
<a name="instances-tagging-example-1"></a>

単一のタグを単一のタググループに指定できます。


**タググループ 1**  

| キー | 値 | 
| --- | --- | 
| 名前 | AppVersion-ABC | 

`Name=AppVersion-ABC` というタグが付いている各インスタンスは、他のタグがついていても、デプロイグループの一部になります。

CodeDeploy コンソールのセットアップビュー。

![\[1 つのタグを持つ 1 つのタググループを示す CodeDeploy コンソール。\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/images/TaggingExample1-polaris.png)


JSON の構造:

```
"ec2TagSet": { 
         "ec2TagSetList": [ 
            [ 
               { 
                  "Type": "KEY_AND_VALUE",
                  "Key": "Name",
                  "Value": "AppVersion-ABC"
               }
            ]
         ]
      },
```

## 例 2: 単一タググループ、複数タグ
<a name="instances-tagging-example-2"></a>

単一のタグを複数のタググループに指定することもできます。


**タググループ 1**  

| キー | 値 | 
| --- | --- | 
| リージョン | North | 
| リージョン | South | 
| リージョン | East | 

この 3 つのタグのうちいずれかが付いているインスタンスは、他のタグがついていても、デプロイグループの一部になります。たとえば、`Region=West` というタグが付いている他のインスタンスがある場合、それらはデプロイグループに含まれません。

CodeDeploy コンソールのセットアップビュー。

![\[3 つのタグを持つ 1 つのタググループを示す CodeDeploy コンソール。\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/images/TaggingExample2-polaris.png)


JSON の構造:

```
"ec2TagSet": { 
         "ec2TagSetList": [ 
            [ 
               { 
                  "Type": "KEY_AND_VALUE",
                  "Key": "Region",
                  "Value": "North"
               },
                              { 
                  "Type": "KEY_AND_VALUE",
                  "Key": "Region",
                  "Value": "South"
               },
                              { 
                  "Type": "KEY_AND_VALUE",
                  "Key": "Region",
                  "Value": "East"
               }
            ]
         ]
      },
```

## 例 3: 複数タググループ、複数タグ
<a name="instances-tagging-example-3"></a>

それぞれに単一のキーと値のペアを持つタググループの複数セットを使用して、デプロイグループのインスタンスの条件を指定することもできます。デプロイグループで複数のタググループを使用する場合は、すべてのタググループによって識別されたインスタンスのみがデプロイグループに含まれます。


**タググループ 1**  

| キー | 値 | 
| --- | --- | 
| 名前 | AppVersion-ABC | 


**タググループ 2**  

| キー | 値 | 
| --- | --- | 
| リージョン | North | 


**タググループ 3**  

| キー | 値 | 
| --- | --- | 
| タイプ | t2.medium | 

多くのリージョンにインスタンスがあり、`Name=AppVersion-ABC` のタグが付いたさまざまなインスタンスタイプがある場合があります。この例では、同じく `Region=North` および `Type=t2.medium` のタグが付いたインスタンスのみがデプロイグループの一部になります。

CodeDeploy コンソールのセットアップビュー。

![\[それぞれに 1 つのタグを持つ 3 つのタググループを示す CodeDeploy コンソール。\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/images/TaggingExample3-polaris.png)


JSON の構造:

```
"ec2TagSet": { 
         "ec2TagSetList": [ 
            [ 
               { 
                  "Type": "KEY_AND_VALUE",
                  "Key": "Name",
                  "Value": "AppVersion-ABC"
               }
            ],
            [ 
               { 
                  "Type": "KEY_AND_VALUE",
                  "Key": "Region",
                  "Value": "North"
               }
            ],
            [ 
               { 
                  "Type": "KEY_AND_VALUE",
                  "Key": "Type",
                  "Value": "t2.medium"
               }
            ],
         ]
      },
```

## 例 4: 複数タググループ、複数タグ
<a name="instances-tagging-example-4"></a>

複数のタグを持つ複数のタググループを 1 つ以上のグループで使用する場合、インスタンスはそれぞれのグループの少なくとも 1 つのタグに一致している必要があります。​​


**タググループ 1**  

| キー | 値 | 
| --- | --- | 
| 環境 | Beta | 
| 環境 | ステージング | 


**タググループ 2**  

| キー | 値 | 
| --- | --- | 
| リージョン | North | 
| リージョン | South | 
| リージョン | East | 


**タググループ 3**  

| キー | 値 | 
| --- | --- | 
| タイプ | t2.medium | 
| タイプ | t2.large | 

この例では、デプロイグループに含まれるには、インスタンスが次のようにタグ付けされている必要があります。(1) `Environment=Beta` または `Environment=Staging`、(2) `Region=North`、`Region=South` または `Region=East`、(3) `Type=t2.medium` または `Type=t2.large`。

たとえば、次のタググループを持つインスタンスは、デプロイグループに含まれるもののひとつになる*ことがあります*。
+ `Environment=Beta`, `Region=North`,`Type=t2.medium`
+ `Environment=Staging`,`Region=East`,`Type=t2.large`
+ `Environment=Staging`,`Region=South`,`Type=t2.large`

次のタググループを持つインスタンスは、デプロイグループに含まれ*ない*ことがあります。**強調表示された**キー値があると、インスタンスは除外されます。
+ `Environment=Beta`, Region=**West**,`Type=t2.medium`
+ `Environment=Staging`,`Region=East`,Type=**t2.micro**
+ Environment=**Production**,`Region=South`,`Type=t2.large`

CodeDeploy コンソールのセットアップビュー。

![\[それぞれに複数のタグを持つ 3 つのタググループを示す CodeDeploy コンソール。\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/images/TaggingExample4-polaris.png)


JSON の構造:

```
"ec2TagSet": { 
         "ec2TagSetList": [ 
            [ 
               { 
                  "Type": "KEY_AND_VALUE",
                  "Key": "Environment",
                  "Value": "Beta"
               },
               { 
                  "Type": "KEY_AND_VALUE",
                  "Key": "Environment",
                  "Value": "Staging"
               }
            ],
            [ 
               { 
                  "Type": "KEY_AND_VALUE",
                  "Key": "Region",
                  "Value": "North"
               },
               { 
                  "Type": "KEY_AND_VALUE",
                  "Key": "Region",
                  "Value": "South"
               },
               { 
                  "Type": "KEY_AND_VALUE",
                  "Key": "Region",
                  "Value": "East"
               }
            ],
            [ 
               { 
                  "Type": "KEY_AND_VALUE",
                  "Key": "Type",
                  "Value": "t2.medium"
               },
               { 
                  "Type": "KEY_AND_VALUE",
                  "Key": "Type",
                  "Value": "t2.large"
               }
            ],
         ]
      },
```

# 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) に進みます。

# CodeDeploy 用のオンプレミスインスタンスを用いての作業
<a name="instances-on-premises"></a>

オンプレミスインスタンスは、CodeDeploy エージェントを実行してパブリック AWS サービスエンドポイントに接続できる Amazon EC2 インスタンスではない物理デバイスです。

CodeDeploy アプリケーションリビジョンをオンプレミスインスタンスにデプロイするには、2 つの主なステップがあります。
+ **ステップ 1** – オンプレミスインスタンスを設定して CodeDeploy を用いて登録し、タグをつけます。
+ **ステップ 2** － アプリケーションリビジョンをオンプレミスインスタンスにデプロイします。
**注記**  
サンプルアプリケーションリビジョンの作成と、正しく設定および登録されたオンプレミスインスタンスへのデプロイを試す場合は、「[チュートリアル: CodeDeploy (Windows サーバー、Ubuntu サーバー、または Red Hat エンタープライズ Linux) を使用してオンプレミスインスタンスにアプリケーションをデプロイします。](tutorials-on-premises-instance.md)」を参照してください。オンプレミスインスタンス、および CodeDeploy の使用方法の詳細については、[CodeDeploy 用のオンプレミスインスタンスを用いての作業](#instances-on-premises) を参照してください。

オンプレミスインスタンスをデプロイでそれ以上使用したくない場合は、デプロイグループからオンプレミスインスタンスタグを削除できます。より強力な方法としては、インスタンスからオンプレミスインスタンスタグを削除します。明示的にオンプレミスインスタンスを登録解除し、デプロイでそれ以上使用されないようにすることもできます。詳細については、「[CodeDeploy でのオンプレミスインスタンスのオペレーションの管理](on-premises-instances-operations.md)」を参照してください。

このセクションの手順では、デプロイで使用できるようにオンプレミスインスタンスを設定し、CodeDeploy を用いて登録し、タグ付けする方法を学びます。また、このセクションでは、デプロイする計画がなくなった後に、CodeDeploy を使用して、オンプレミスインスタンスについての情報を取得する情報や、オンプレミスインスタンスの登録を解除する方法を説明します。

**Topics**
+ [オンプレミスインスタンスを設定するための前提条件](instances-on-premises-prerequisites.md)
+ [オンプレミスインスタンスの登録](on-premises-instances-register.md)
+ [オンプレミスインスタンスオペレーションの管理](on-premises-instances-operations.md)

# オンプレミスインスタンスを設定するための前提条件
<a name="instances-on-premises-prerequisites"></a>

オンプレミスインスタンスを登録するには、次の前提条件を満たす必要があります。

**重要**  
[register-on-premises-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/register-on-premises-instance.html) コマンドを使用していて、 AWS Security Token Service (AWS STS) で生成された一時的な認証情報を定期的に更新する場合は、他の前提条件があります。詳細については、「[IAM セッション ARN 登録前提条件](register-on-premises-instance-iam-session-arn.md#register-on-premises-instance-iam-session-arn-prerequisites)」を参照してください。

**デバイスの要件**

CodeDeploy を用いてオンプレミスインスタンスとして準備し、登録し、タグ付けするデバイスは、サポートされている OS を実行している必要があります。リストについては、「[CodeDeploy エージェントで対応するオペレーティングシステム](codedeploy-agent.md#codedeploy-agent-supported-operating-systems)」を参照してください。

OS がサポートされていない場合、ニーズに適合するために CodeDeploy エージェントをオープンソースとして利用できます。さらなる詳細については、GitHub の [CodeDeploy agent](https://github.com/aws/aws-codedeploy-agent) リポジトリを参照してください。

**アウトバウンド通信**

オンプレミスインスタンスは、CodeDeploy と通信するためにパブリック AWS サービスエンドポイントに接続できる必要があります。

CodeDeploy エージェントは、ポート 443 経由で HTTPS を使用してアウトバウンドの通信をします。

**管理コントロール**

オンプレミスインスタンスの設定のためにオンプレミスインスタンス上で使用するローカルまたはネットワークのアカウントは、`sudo` あるいは `root` (Ubuntu サーバーの場合)、または管理者 (Windows サーバーの場合) として実行できる必要があります。

**IAM アクセス許可**

オンプレミスインスタンスを登録するために使用する IAM アイデンティティは、登録を完了するため(および必要に応じて登録を削除するため)の許可を付与されている必要があります。

「[ステップ 3: CodeDeploy ユーザーのアクセス許可を制限する](getting-started-policy.md)」で説明されているポリシーに加えて、呼び出し元の IAM アイデンティティに以下の追加のポリシーが添付済みであることを確認します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow", 
      "Action": [
        "iam:CreateAccessKey",
        "iam:CreateUser",
        "iam:DeleteAccessKey",
        "iam:DeleteUser",
        "iam:DeleteUserPolicy",
        "iam:ListAccessKeys",
        "iam:ListUserPolicies",
        "iam:PutUserPolicy",
        "iam:GetUser"
      ],
      "Resource": "*"
    }
  ]
}
```

------

IAM ポリシーをアタッチする方法については、[IAM ポリシーの管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html)を参照してください。

# CodeDeploy を用いてへのオンプレミスインスタンスを登録
<a name="on-premises-instances-register"></a>

オンプレミスインスタンスを登録するには、リクエストを認証するために IAM ID を使用する必要があります。使用する IAM ID と登録方法を以下のオプションから選択できます。
+ リクエストを認証するため、IAM ロール ARN を使用します。
  + [register-on-premises-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/register-on-premises-instance.html) コマンドを使用し、 AWS Security Token Service (AWS STS) で生成された一時的な認証情報を定期的に更新して、ほとんどの登録オプションを手動で設定します。認証はタイムアウトする一時的なトークンを使用して行われ、定期的に更新する必要があるため、このオプションは最高レベルのセキュリティを提供します。このオプションは、どのような規模の実稼働向けデプロイにも推奨されます。詳細については、「[[register-on-premises-instance] コマンド (IAM セッション ARN) を使用してオンプレミスインスタンスを登録](register-on-premises-instance-iam-session-arn.md)」を参照してください。
+ (非推奨) リクエストを認証するため、IAM ユーザー ARN を使用します。
  + 最も自動化された登録プロセスのために、[register](https://docs.aws.amazon.com/cli/latest/reference/deploy/register.html) コマンドを使用します。このオプションは、セキュリティがそれほど問題にならない実稼働以外のデプロイでのみ使用してください。このオプションは認証に静的 (永続的) 認証情報を使用するため、安全性が低くなります。このオプションは、単一のオンプレミスインスタンスを登録する場合に適しています。詳細については、「[オンプレミスインスタンスを登録するために登録コマンド (IAM ユーザー ARN) を使用](instances-on-premises-register-instance.md)」を参照してください。
  + [register-on-premises-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/register-on-premises-instance.html) コマンドを使って、ほとんどの登録オプションを手動で設定します。少数のオンプレミスインスタンスを登録するのに適しています。詳細については、「[[register-on-premises-instance] コマンド (IAM ユーザー ARN) を使用してオンプレミスインスタンスを登録します。](register-on-premises-instance-iam-user-arn.md)」を参照してください。

**Topics**
+ [[register-on-premises-instance] コマンド (IAM セッション ARN) を使用してオンプレミスインスタンスを登録](register-on-premises-instance-iam-session-arn.md)
+ [オンプレミスインスタンスを登録するために登録コマンド (IAM ユーザー ARN) を使用](instances-on-premises-register-instance.md)
+ [[register-on-premises-instance] コマンド (IAM ユーザー ARN) を使用してオンプレミスインスタンスを登録します。](register-on-premises-instance-iam-user-arn.md)

# [register-on-premises-instance] コマンド (IAM セッション ARN) を使用してオンプレミスインスタンスを登録
<a name="register-on-premises-instance-iam-session-arn"></a>

オンプレミスインスタンスの認証と登録を最大限制御するには、[register-on-premises-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/register-on-premises-instance.html) コマンドと AWS Security Token Service 、 () で生成された一時的な認証情報を定期的に更新しますAWS STS。インスタンスの静的 IAM ロールは、CodeDeploy デプロイオペレーションを実行するために、これらの更新された AWS STS 認証情報のロールを引き受けます。

多数のインスタンスを登録する必要がある場合は、このメソッドが最も役に立ちます。これにより、CodeDeploy での登録処理を自動化できます。自分の ID と認証システムを使用して、オンプレミスインスタンスを認証でき、CodeDeploy で使用するためにインスタンス IAM セッション認証情報をサービスからインスタンスへ配布できます。

**注記**  
または、すべてのオンプレミスインスタンスに分散された共有 IAM ユーザーを使用して AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API を呼び出し、オンプレミスインスタンスのセッション認証情報を取得することもできます。このメソッドは安全性が低いため、本番稼働用またはミッションクリティカルな環境での使用は推奨しません。

次のトピックの情報を使用して、 で生成された一時的なセキュリティ認証情報を使用してオンプレミスインスタンスを設定します AWS STS。

**Topics**
+ [IAM セッション ARN 登録前提条件](#register-on-premises-instance-iam-session-arn-prerequisites)
+ [ステップ 1: オンプレミスインスタンスが引き受ける IAM ロールを作成](#register-on-premises-instance-iam-session-arn-1)
+ [ステップ 2: を使用して個々のインスタンスの一時的な認証情報を生成する AWS STS](#register-on-premises-instance-iam-session-arn-2)
+ [ステップ 3: オンプレミスインスタンスに設定ファイルを追加](#register-on-premises-instance-iam-session-arn-3)
+ [ステップ 4:CodeDeploy デプロイのためオンプレミスインスタンスを準備します。](#register-on-premises-instance-iam-session-arn-4)
+ [ステップ 5: CodeDeploy でオンプレミスインスタンスを登録します。](#register-on-premises-instance-iam-session-arn-5)
+ [ステップ 6: オンプレミスインスタンスにタグ付け](#register-on-premises-instance-iam-session-arn-6)
+ [ステップ 7: アプリケーションリビジョンをオンプレミスインスタンスにデプロイ](#register-on-premises-instance-iam-session-arn-7)
+ [ステップ 8: オンプレミスインスタンスへのデプロイを追跡](#register-on-premises-instance-iam-session-arn-8)

## IAM セッション ARN 登録前提条件
<a name="register-on-premises-instance-iam-session-arn-prerequisites"></a>

[オンプレミスインスタンスを設定するための前提条件](instances-on-premises-prerequisites.md) にリストされている前提条件に加えて、次の追加の要件を満たす必要があります。

**IAM アクセス許可**

オンプレミスインスタンスを登録するのに使用する IAM 識別子には、CodeDeploy オペレーションを実行するためのアクセス権限が付与される必要があります。**AWSCodeDeployFullAccess** 管理ポリシーが IAM ID に添付されていることを確認します。詳細については、 [IAM ユーザーガイド](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)の *AWS マネージドポリシー* を参照してください。

**一時的な認証情報を更新するシステム**

IAM セッション ARN を使用してオンプレミスインスタンスを登録する場合、一時的な認証情報を定期的に更新する適切なシステムが必要です。一時的な認証情報は 1 時間後、または認証情報が生成されたときより短い時間が指定されていればそれより早く期限切れになります。認証情報を更新するためのメソッドは 2 つあります。
+ **メソッド 1**: 企業ネットワーク内で ID および認証システムを適切に使用し、CRON スクリプトを使って ID および認証システムを定期的にポーリングし、最新のセッション認証情報をインスタンスへコピーするようにします。これにより、組織で使用する認証タイプをサポートするために CodeDeploy エージェントまたはサービスを変更 AWS することなく、認証とアイデンティティ構造を と統合できます。
+ **方法 2**: インスタンスで定期的に CRON ジョブを実行して AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) アクションを呼び出し、CodeDeploy エージェントがアクセスできるファイルにセッション認証情報を書き込みます。このメソッドでは、IAM ユーザーの使用、およびオンプレミスインスタンスへの認証情報のコピーをする必要はありますが、多くのオンプレミスインスタンスで同じ IAM ユーザーおよび認証情報を使用できます。

**注記**  
メソッド 1 と 2 のどちらを使用しているかにかかわらず、一時的なセッション認証情報が更新された後に CodeDeploy エージェントを再起動するプロセスを設定して、新しい認証情報が有効になるようにする必要があります。

 AWS STS 認証情報の作成と操作の詳細については、[AWS Security Token Service 「 API リファレンス](https://docs.aws.amazon.com/STS/latest/APIReference/)」および[「一時的なセキュリティ認証情報を使用して AWS リソースへのアクセスをリクエストする](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)」を参照してください。

## ステップ 1: オンプレミスインスタンスが引き受ける IAM ロールを作成
<a name="register-on-premises-instance-iam-session-arn-1"></a>

 AWS CLI または IAM コンソールを使用して、オンプレミスインスタンスが CodeDeploy を認証および操作するために使用する IAM ロールを作成できます。

単一の IAM ロールのみを作成する必要があります。各オンプレミスインスタンスは、このロールに付与されたアクセス権限を提供する一時認証情報を取得するためにこのロールを引き受けることができます。

作成するロールは、CodeDeploy エージェントをインストールするのに必要なファイルにアクセスするために、次の権限が必要です。

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

****  

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

------

このポリシーを、オンプレミスインスタンスがアクセスする必要のある Amazon S3 バケットにのみ制限することをお勧めします。このポリシーを制限する場合、CodeDeploy エージェントを含む Amazon S3 バケットへのアクセスを許可することを確認します。そうしない場合、CodeDeploy エージェントがオンプレミスインスタンスにインストールされる、または更新されるたびに、エラーが発生する可能性があります。Amazon S3 リソースへのアクセスコントロールの詳細については、[Managing access permissions to your Amazon S3 resources](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) を参照してください。

**IAM ロールを作成するには**

1. [ オプションを使用して ](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)create-role`--role-name` コマンドを呼び出し、IAM ロールの名前 (例: `CodeDeployInstanceRole`) と `--assume-role-policy-document` オプションを指定してアクセス権限を提供します。

   このインスタンスの IAM ロールを作成するときは、`CodeDeployInstanceRole` という名前を付け、`CodeDeployRolePolicy.json` という名前のファイルに必要なアクセス権限を含めます。

   ```
   aws iam create-role --role-name CodeDeployInstanceRole --assume-role-policy-document file://CodeDeployRolePolicy.json
   ```

1. **create-role** コマンドを呼び出した出力で、ARN フィールドの値をメモします。例えば、次のようになります。

   ```
   arn:aws:iam::123456789012:role/CodeDeployInstanceRole
   ```

    AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API を使用して各インスタンスの短期認証情報を生成する場合は、ロール ARN が必要です。

   IAM ロールの作成の詳細については、*IAM ユーザーガイド*の[「 AWS サービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。

   既存のロールにアクセス権限を割り当てる方法については、[AWS CLI Command Reference](https://docs.aws.amazon.com/cli/latest/reference/) の [put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html) を参照してください。

## ステップ 2: を使用して個々のインスタンスの一時的な認証情報を生成する AWS STS
<a name="register-on-premises-instance-iam-session-arn-2"></a>

オンプレミスインスタンスの登録に使用する一時認証情報を生成する前に、一時認証情報を生成する IAM ID (ユーザーまたはロール) を作成または選択する必要があります。`sts:AssumeRole` アクセス権限は、この IAM ID のポリシーの設定に含める必要があります。

IAM ID にアクセス`sts:AssumeRole`許可を付与する方法については、「 [AWS サービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」および[AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)」を参照してください。

一時認証情報を生成するには、2 とおりの方法があります。
+  AWS CLIを用いて [assume-role](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) コマンドを使用します。例えば、次のようになります。

  ```
  aws sts assume-role --role-arn arn:aws:iam::12345ACCOUNT:role/role-arn --role-session-name session-name
  ```

  コードの説明は以下のとおりです。
  + *12345ACCOUNT* が組織の 12 桁のアカウント番号です。
  + *role-arn* は、[ステップ 1: オンプレミスインスタンスが引き受ける IAM ロールを作成](#register-on-premises-instance-iam-session-arn-1) で生成した引き受けるロールの ARN です。
  + *session-name* は、現在作成しているロールセッションへ付ける名前です。
**注記**  
ID と認証システムを定期的にポーリングし、最新のセッション認証情報をインスタンスにコピーする CRON スクリプトを使用する場合 (「」で説明されている一時的な認証情報を更新するための方法 1[IAM セッション ARN 登録前提条件](#register-on-premises-instance-iam-session-arn-prerequisites))、代わりにサポートされている AWS SDK を使用して [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) を呼び出すことができます。
+ が提供するツールを使用します AWS。

  aws-codedeploy-session-helper ツールは AWS STS 認証情報を生成し、インスタンスに配置するファイルに書き込みます。このツールは、[IAM セッション ARN 登録前提条件](#register-on-premises-instance-iam-session-arn-prerequisites) で説明している一時認証情報を更新するメソッド 2 に最適です。このメソッドでは、aws-codedeploy-session-helper ツールは、各インスタンスに配置され、IAM ユーザーのアクセス権限を使用してコマンドを実行します。各インスタンスは、このツールとともに同じ IAM ユーザーの認証情報を使用します。

  詳細については、[aws-codedeploy-session-helper](https://github.com/awslabs/aws-codedeploy-samples/tree/master/utilities/aws-codedeploy-session-helper) GitHub リポジトリを参照してください。
**注記**  
IAM セッション認証情報を作成した後、オンプレミスインスタンスの任意の場所に保存します。次のステップで、CodeDeploy エージェントがこの場所の認証情報にアクセスできるように設定します。

続ける前に、定期的に一時認証情報を更新するために使用するシステムを確認します。一時認証情報が更新されていない場合、オンプレミスインスタンスへのデプロイは失敗します。詳細については、[IAM セッション ARN 登録前提条件](#register-on-premises-instance-iam-session-arn-prerequisites) にある「一時認証情報を更新するシステム」を参照してください。

## ステップ 3: オンプレミスインスタンスに設定ファイルを追加
<a name="register-on-premises-instance-iam-session-arn-3"></a>

ルートまたは管理者権限を使用して、オンプレミスインスタンスに設定ファイルを追加します。この設定ファイルは、IAM の認証情報、および CodeDeploy のために使われる AWS のリージョンを宣言するために使用されます。ファイルは、オンプレミスインスタンスの指定の場所に追加する必要があります。ファイルには、IAM 一時セッション ARN、そのシークレットキー ID とシークレットアクセスキー、およびターゲット AWS リージョンが含まれている必要があります。

**設定ファイルを追加するには**

1. オンプレミスインスタンスの以下の場所に、`codedeploy.onpremises.yml` (Ubuntu サーバーまたは RHEL オンプレミスインスタンスの場合)、または、`conf.onpremises.yml` (Windows サーバーオンプレミスインスタンスの場合) という名前のファイルを作成します。
   + Ubuntu サーバーの場合:`/etc/codedeploy-agent/conf`
   + Windows サーバーについて：`C:\ProgramData\Amazon\CodeDeploy`

1. テキストエディタを使用して、新しく作成した `codedeploy.onpremises.yml` ファイル (Linux) または `conf.onpremises.yml` ファイル (Windows) に次の情報を追加します。

   ```
   ---
   iam_session_arn: iam-session-arn
   aws_credentials_file: credentials-file
   region: supported-region
   ```

   コードの説明は以下のとおりです。
   + *iam-session-arn* は、「[ステップ 2: を使用して個々のインスタンスの一時的な認証情報を生成する AWS STS](#register-on-premises-instance-iam-session-arn-2)」でメモしておいた IAM セッション ARN です。
   + *credentials-file* は、[ステップ 2: を使用して個々のインスタンスの一時的な認証情報を生成する AWS STS](#register-on-premises-instance-iam-session-arn-2) でメモした一時セッション ARN の認証情報ファイルの場所です。
   + *supported-region* は、「*AWS 全般のリファレンス*」の「[リージョンエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)」に一覧表示されているように、CodeDeploy がサポートするリージョンの 1 つです。

## ステップ 4:CodeDeploy デプロイのためオンプレミスインスタンスを準備します。
<a name="register-on-premises-instance-iam-session-arn-4"></a>

**のインストールと設定 AWS CLI **

オンプレミスインスタンス AWS CLI に をインストールして設定します。( AWS CLI は、CodeDeploy エージェントをダウンロードしてオンプレミスインスタンスにインストールするために使用されます）。

1. オンプレミスインスタンス AWS CLI に をインストールするには、*AWS Command Line Interface 「 ユーザーガイド*」の[「 のセットアップ AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html)」の手順に従います。
**注記**  
オンプレミスインスタンスを使用するための CodeDeploy コマンドは、 AWS CLIのバージョン 1.7.19 で使用できるようになりました。のバージョンが AWS CLI 既にインストールされている場合は、 を呼び出してそのバージョンを確認できます**aws --version**。

1. オンプレミスインスタンス AWS CLI で を設定するには、*AWS Command Line Interface 「 ユーザーガイド*」の[「 の設定 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)」の手順に従います。
**重要**  
( **aws configure** コマンドを呼び出す AWS CLI などして) を設定するときは、少なくとも で説明されているアクセス許可を持つ IAM ユーザーのシークレットキー ID とシークレットアクセスキーを必ず指定してください[IAM セッション ARN 登録前提条件](#register-on-premises-instance-iam-session-arn-prerequisites)。

**AWS\$1REGION 環境変数を設定する (Ubuntu Server および RHEL のみ)**

Ubuntu サーバーまたは RHEL をオンプレミスインスタンスで実行していない場合は、このステップをスキップして「CodeDeploy エージェントをインストールする」へ進んでください。

Ubuntu サーバーまたは RHEL オンプレミスインスタンスに CodeDeploy エージェントをインストールし、新しいバージョンが使用可能になったらいつでも CodeDeploy エージェントを更新するようにインスタンスを有効にします。これを行うには、インスタンス上の `AWS_REGION` の環境変数を、CodeDeploy がサポートしているリージョンのうちの １ つの識別子に設定します。CodeDeploy アプリケーション、デプロイグループ、およびアプリケーションリビジョンのある (`us-west-2` など)リージョンの値に設定することをお勧めします 。リージョンのリストについては、「*AWS 全般のリファレンス*」の「[リージョンエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)」を参照してください。

環境変数を設定するには、端末から以下を呼び出します。

```
export AWS_REGION=supported-region
```

*supported-region* がリージョンの識別子である場所 (例:`us-west-2`)。

**CodeDeploy エージェントをインストール**
+ Ubuntu サーバーオンプレミスインスタンスの場合は、[Ubuntu サーバー用の CodeDeploy エージェントをインストールする](codedeploy-agent-operations-install-ubuntu.md) の手順に従った後、このページに戻ります。
+ RHEL オンプレミスインスタンスについては、[Amazon Linux または RHEL 用の CodeDeploy エージェントをインストールする](codedeploy-agent-operations-install-linux.md) の手順に従った後、このページに戻ります。
+ Windows サーバーオンプレミスインスタンスの場合は、[Windows サーバー用の CodeDeploy エージェントです。](codedeploy-agent-operations-install-windows.md) の手順に従った後、このページに戻ります。

## ステップ 5: CodeDeploy でオンプレミスインスタンスを登録します。
<a name="register-on-premises-instance-iam-session-arn-5"></a>

このステップの手順では、オンプレミスインスタンス自体からオンプレミスインスタンスを登録していることを想定します。オンプレミスインスタンスは、 AWS CLI がインストールされ、設定された別のデバイスまたはインスタンスから登録できます。

 AWS CLI を使用してオンプレミスインスタンスを CodeDeploy に登録し、デプロイで使用できるようにします。

を使用する前に AWS CLI、 で作成した一時セッション認証情報の ARN が必要です[ステップ 3: オンプレミスインスタンスに設定ファイルを追加](#register-on-premises-instance-iam-session-arn-3)。例えば、`AssetTag12010298EX` と指定したインスタンスの場合:

```
arn:sts:iam::123456789012:assumed-role/CodeDeployInstanceRole/AssetTag12010298EX
```

[register-on-premises-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/register-on-premises-instance.html) コマンドを呼び出し、以下を指定します。
+  オンプレミスインスタンスを一意に識別する名前 (`--instance-name` オプションで指定)。
**重要**  
オンプレミスインスタンスを識別するために、特にデバッグのため、オンプレミスインスタンスの一意な特徴を示す名前 (例えば、もしあれば、STS 認証情報の session-name とシリアルナンバー、または内部アセット識別子など) を指定することを強くお勧めします。名前として MAC アドレスを指定した場合、MAC アドレスにはコロン (:) など CodeDeploy が許可しない文字が含まれることに注意してください。許可された文字の一覧については、「[CodeDeploy のクォータ](limits.md)」を参照してください。
+ 複数のオンプレミスインスタンスを認証するために [ステップ 1: オンプレミスインスタンスが引き受ける IAM ロールを作成](#register-on-premises-instance-iam-session-arn-1) で設定した IAM セッション ARN。

例:

```
aws deploy register-on-premises-instance --instance-name name-of-instance --iam-session-arn arn:aws:sts::account-id:assumed-role/role-to-assume/session-name
```

コードの説明は以下のとおりです。
+ *name-of-instance* は、オンプレミスインスタンスを識別するのに使用する名前です (例:`AssetTag12010298EX`)。
+ *account-id* は、組織の 12 桁のアカウント IDです (例: `111222333444`)。
+ *role-to-assume* は、インスタンス用に作成した IAM ロールの名前です (例: `CodeDeployInstanceRole`)。
+ *session-name* は、[ステップ 2: を使用して個々のインスタンスの一時的な認証情報を生成する AWS STS](#register-on-premises-instance-iam-session-arn-2) で指定したセッションロールの名前です。

## ステップ 6: オンプレミスインスタンスにタグ付け
<a name="register-on-premises-instance-iam-session-arn-6"></a>

 AWS CLI または CodeDeploy コンソールを使用して、オンプレミスインスタンスにタグを付けることができます。(CodeDeploy はオンプレミスインスタンスタグを使用してデプロイ中にデプロイターゲットを識別します。)

**オンプレミスインスタンスにタグ付けするには (CLI)**
+ [add-tags-to-on-premises-instances](https://docs.aws.amazon.com/cli/latest/reference/deploy/add-tags-to-on-premises-instances.html) コマンドを呼び出し、以下を指定します。
  + オンプレミスインスタンスを一意に識別する名前 (`--instance-names` オプションで指定)。
  + 使用するオンプレミスインスタンスのタグキーの名前とタグ値 (`--tags` オプションで指定)。名前と値はいずれも指定する必要があります。CodeDeploy は値のみがあるオンプレミスインスタンスタグを許可しません。

    例:

    ```
    aws deploy add-tags-to-on-premises-instances --instance-names AssetTag12010298EX --tags Key=Name,Value=CodeDeployDemo-OnPrem
    ```

**オンプレミスインスタンスにタグ付けするには (コンソール)**

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

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

1. オンプレミスインスタンスのリストで、タグ付けするオンプレミスインスタンスの名前を選択します。

1. タグのリストで、目的のタグキーとタグ値を選択または入力します。タグキーとタグ値を入力するたびに、別の行が表示されます。最大 10 個のタグにこれを繰り返すことができます。タグを削除するには**[削除]** を選択してください。

1. タグを追加したら、[**Update Tags**] を選択します。

## ステップ 7: アプリケーションリビジョンをオンプレミスインスタンスにデプロイ
<a name="register-on-premises-instance-iam-session-arn-7"></a>

登録され、タグ付けされたオンプレミスインスタンスにアプリケーションリビジョンをデプロイする準備ができました。

Amazon EC2 インスタンスにアプリケーションリビジョンをデプロイするのと同様の方法でオンプレミスインスタンスにアプリケーションリビジョンをデプロイします。手順については、「[CodeDeploy でデプロイを作成する](deployments-create.md)」を参照してください。これらの指示には、アプリケーションの作成、開発グループの作成、およびアプリケーションリビジョンの準備を含む前提条件へのリンクが含まれています。シンプルなサンプルアプリケーションリビジョンをデプロイすることが必要な場合は、[チュートリアル: CodeDeploy (Windows サーバー、Ubuntu サーバー、または Red Hat エンタープライズ Linux) を使用してオンプレミスインスタンスにアプリケーションをデプロイします。](tutorials-on-premises-instance.md) の [ステップ 2: サンプルのアプリケーションリビジョンを作成する](tutorials-on-premises-instance-2-create-sample-revision.md) で説明してあるものを作成できます。

**重要**  
オンプレミスインスタンスを対象としたデプロイグループの作成の一部として、CodeDeploy サービスロールを再利用する場合は、`Tag:get*` をサービスロールのポリシーステートメントの `Action` の部分に含める必要があります。詳細については、「[ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md)」を参照してください。

## ステップ 8: オンプレミスインスタンスへのデプロイを追跡
<a name="register-on-premises-instance-iam-session-arn-8"></a>

登録されタグ付けされたオンプレミスインスタンスへアプリケーションリビジョンをデプロイした後、デプロイの進行状況を追跡できます。

Amazon EC2 インスタンスへのデプロイの追跡と同様の方法でオンプレミスインスタンスへのデプロイの追跡をします。手順については、「[CodeDeploy デプロイの詳細を表示する](deployments-view-details.md)」を参照してください。

# オンプレミスインスタンスを登録するために登録コマンド (IAM ユーザー ARN) を使用
<a name="instances-on-premises-register-instance"></a>

**重要**  
IAM ユーザーを使用してインスタンスを登録することは、認証に静的 (永続的) 認証情報を使用するため推奨されません。セキュリティ向上のため、認証には一時的な認証情報を使用してインスタンスを登録することをお勧めします。詳細については、「[[register-on-premises-instance] コマンド (IAM セッション ARN) を使用してオンプレミスインスタンスを登録](register-on-premises-instance-iam-session-arn.md)」を参照してください。

**重要**  
IAM ユーザーのアクセスキー (永続的認証情報) をローテーションする計画を立ててください。アクセスキーのローテーションの詳細については、「[アクセスキーの更新](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey)」を参照してください。

このセクションでは、最低限の労力でオンプレミスインスタンスを CodeDeploy で設定してタグ付けする方法を説明します。**register** コマンドは、単一の、または少数のオンプレミスインスタンスを処理する際に最も有用です。**register** のコマンドは、インスタンスを認証するために IAM ユーザー ARN を使用している場合のみ使用できます。**register** のコマンドは、認証のための IAM セッション ARN とは共に使用することはできません。

**register** のコマンドを使用すると、CodeDeploy で次の操作ができます。
+ コマンドで IAM ユーザーを指定しない場合は、オンプレミスインスタンス AWS Identity and Access Management の に IAM ユーザーを作成します。
+ オンプレミスインスタンスの設定ファイルに IAM ユーザーの認証情報を保存します。
+ CodeDeploy でオンプレミスインスタンスを登録します。
+ コマンドの一部にタグを指定した場合、オンプレミスインスタンスにタグを追加します。

**注記**  
[register-on-premises-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/register-on-premises-instance.html) コマンドは、[register](https://docs.aws.amazon.com/cli/latest/reference/deploy/register.html) コマンドの代わりです。CodeDeploy を用いてオンプレミスインスタンスの設定、登録、タグ付けのほとんどを自分で行いたい場合は、**register-on-premises-instance** のコマンドを使用します。また、**register-on-premises-instance** のコマンドを使うと、IAM ユーザー ARN の代わりに、IAM セッション ARN を使用してインスタンスを登録できます。このアプローチは、大量のオンプレミスインスタンスがある場合、大きな利点となります。具体的には、各オンプレミスインスタンスに 1 つずつ IAM ユーザーを作成するかわりに、単一の IAM セッション ARN を使用して複数のインスタンスを認証できます。詳細については、「[[register-on-premises-instance] コマンド (IAM ユーザー ARN) を使用してオンプレミスインスタンスを登録します。](register-on-premises-instance-iam-user-arn.md)」および「[[register-on-premises-instance] コマンド (IAM セッション ARN) を使用してオンプレミスインスタンスを登録](register-on-premises-instance-iam-session-arn.md)」を参照してください。

**Topics**
+ [ステップ 1: オンプレミスインスタンス AWS CLI に をインストールして設定する](#instances-on-premises-register-instance-1-install-cli)
+ [ステップ 2: 登録コマンドを呼び出す](#instances-on-premises-register-instance-2-register-command)
+ [ステップ 3: インストールコマンドを呼び出す](#instances-on-premises-register-instance-3-install-command)
+ [ステップ 4: デプロイアプリケーションリビジョンをオンプレミスインスタンスにデプロイする](#instances-on-premises-register-instance-4-deploy-revision)
+ [ステップ 5: オンプレミスインスタンスへのデプロイを追跡](#instances-on-premises-register-instance-5-track-deployment)

## ステップ 1: オンプレミスインスタンス AWS CLI に をインストールして設定する
<a name="instances-on-premises-register-instance-1-install-cli"></a>

1. オンプレミスインスタンス AWS CLI に をインストールします。* AWS CLIユーザーガイド* の [Getting set up with the AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) の指示に従います。
**注記**  
オンプレミスインスタンスを操作するための CodeDeploy コマンドは、 AWS CLI バージョン 1.7.19 以降で使用できます。 AWS CLI が既にインストールされている場合は、 を呼び出し**aws --version**てバージョンを確認します。

1. オンプレミスインスタンス AWS CLI で を設定します。* AWS CLIユーザーガイド* の [Configuring the AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) の指示に従います。
**重要**  
( **aws configure** コマンドを呼び出す AWS CLI などして) を設定するときは、 で指定されたアクセス許可に加えて、少なくとも次の AWS アクセス許可を持つ IAM ユーザーのシークレットキー ID とシークレットアクセスキーを必ず指定してください[オンプレミスインスタンスを設定するための前提条件](instances-on-premises-prerequisites.md)。これにより、オンプレミスインスタンスで CodeDeploy エージェントをダウンロードしてインストールすることができるようになります。アクセス権限は次のようになります。  

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement" : [
       {
         "Effect" : "Allow",
         "Action" : [
           "codedeploy:*",
           "iam:CreateAccessKey",
           "iam:CreateUser",
           "iam:DeleteAccessKey",
           "iam:DeleteUser",
           "iam:DeleteUserPolicy",
           "iam:ListAccessKeys",
           "iam:ListUserPolicies",
           "iam:PutUserPolicy",
           "iam:GetUser",
           "tag:getTagKeys",
           "tag:getTagValues",
           "tag:GetResources"
         ],
         "Resource" : "*"
       },
       {
         "Effect" : "Allow",
         "Action" : [
           "s3:Get*",
           "s3:List*"
         ],
         "Resource" : [
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:s3:::amzn-s3-demo-bucket1/*"
         ]
       }     
     ]
   }
   ```
前述の Amazon S3 バケットのいずれかにアクセスしようとしたときにアクセス拒否エラーが表示される場合は、バケットのリソース ARN の `/*` の部分 (例: `arn:aws:s3:::aws-codedeploy-sa-east-1`) を省略してみてください。

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement" : [
       {
         "Effect" : "Allow",
         "Action" : [
           "codedeploy:*",
           "iam:CreateAccessKey",
           "iam:CreateUser",
           "iam:DeleteAccessKey",
           "iam:DeleteUser",
           "iam:DeleteUserPolicy",
           "iam:ListAccessKeys",
           "iam:ListUserPolicies",
           "iam:PutUserPolicy",
           "iam:GetUser",
           "tag:GetResources"
         ],
         "Resource" : "*"
       },
       {
         "Effect" : "Allow",
         "Action" : [
           "s3:Get*",
           "s3:List*"
         ],
         "Resource" : [
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:s3:::amzn-s3-demo-bucket2/*"
         ]
       }     
     ]
   }
   ```

## ステップ 2: 登録コマンドを呼び出す
<a name="instances-on-premises-register-instance-2-register-command"></a>

このステップでは、オンプレミスインスタンス自体からオンプレミスインスタンスを登録していることを想定します。前のステップで説明したように、 AWS CLI がインストールされ、設定された別のデバイスまたはインスタンスからオンプレミスインスタンスを登録することもできます。

を使用して [register](https://docs.aws.amazon.com/cli/latest/reference/deploy/register.html) コマンドを AWS CLI 呼び出し、以下を指定します。
+ CodeDeploy に対してオンプレミスインスタンスを一意に識別する名前 (`--instance-name` のオプションを用いて)。
**重要**  
後でオンプレミスインスタンスを識別するために、特にデバッグのため、オンプレミスインスタンスの一意な特徴を示す名前 (例えば、もしあれば、シリアルナンバーや一意の内部アセット識別子など) を使用することを強くお勧めします。名前に MAC アドレスを指定した場合、MAC アドレスにはコロン (`:`) など、CodeDeploy が許可しない文字が含まれることに注意してください。許可された文字の一覧については、「[CodeDeploy のクォータ](limits.md)」を参照してください。
+ 必要に応じて、このオンプレミスインスタンスと関連付ける既存の IAM ユーザーの ARN (`--iam-user-arn` のオプションを用いて) IAM ユーザーの ARN を取得するには、[get-user](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user.html) コマンドを呼び出すか、IAM コンソールの **[ユーザー]** セクションで IAM ユーザー名を選択した後、**[サマリー]** セクションで **[ユーザー ARN]** の値を見つけます。このオプションを指定しない場合、CodeDeploy はユーザーに代わって AWS アカウント内に IAM ユーザーを作成し、オンプレミスインスタンスに関連付けます。
**重要**  
`--iam-user-arn` オプションを指定する場合は、「[ステップ 4: オンプレミスインスタンスに設定ファイルを追加](register-on-premises-instance-iam-user-arn.md#register-on-premises-instance-iam-user-arn-4)」の説明にあるとおり、オンプレミスインスタンスの設定ファイルを手動で作成することも必要です。  
 1 つのオンプレミスインスタンスのみに対し、1 人の IAM ユーザーのみを関連付けることができます。複数のオンプレミスインスタンスに 1 人の IAM ユーザーを関連付けようとすると、エラー、オンプレミスインスタンスへのデプロイの失敗、またはオンプレミスインスタンスへのデプロイが無期限の保留状態のままとなります。
+ 必要に応じて、デプロイ先の Amazon EC2 インスタンスのセットを識別するために CodeDeploy が使用するオンプレミスインスタンスタグのセット (`--tags` の オプションを用いて)。各タグを `Key=tag-key,Value=tag-value` で指定します (例: `Key=Name,Value=Beta Key=Name,Value=WestRegion`)。このオプションを指定しない場合、タグは登録されません。後でタグを登録するには、[add-tags-to-on-premises-instances](https://docs.aws.amazon.com/cli/latest/reference/deploy/add-tags-to-on-premises-instances.html) コマンドを呼び出します。
+ オプションで、オンプレミスインスタンスが CodeDeploy に登録される AWS リージョン ( `--region`オプションを使用）。これは、「*AWS 全般のリファレンス*」(例: `us-west-2`) の「[リージョンエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)」にリストされているサポートされたリージョンの 1 つである必要があります。このオプションを指定しない場合、呼び出し元の IAM ユーザーに関連付けられたデフォルトの AWS リージョンが使用されます。

例えば、次のようになります。

```
aws deploy register --instance-name AssetTag12010298EX --iam-user-arn arn:aws:iam::444455556666:user/CodeDeployUser-OnPrem --tags Key=Name,Value=CodeDeployDemo-OnPrem --region us-west-2
```

**register** コマンドは次のことを行います。

1. 既存の IAM ユーザーを指定しない場合、IAM ユーザーを作成して必要なアクセス権限を付与し、対応するシークレットキーおよびシークレットアクセスキーを生成します。オンプレミスインスタンスは、この IAM ユーザーとアクセス権限および認証情報を使用して CodeDeploy との認証および操作を行います。

1. CodeDeploy でオンプレミスインスタンスを登録します。

1. 指定されている場合には、CodeDeploy 中で、`--tags` のオプションで指定したタグと、登録済みのオンプレミスインスタンスの名前を関連付けます。

1. IAM ユーザーが作成されている場合、**register** のコマンドの呼び出し元と同じディレクトリに必要な設定ファイルも作成します。

このコマンドでエラーが発生した場合、エラーメッセージが表示され、手動で残りのステップを完了する方法について説明します。そうでない場合は、成功メッセージが表示され、次のステップに示すとおり、**install** コマンドを呼び出す方法について説明します。

## ステップ 3: インストールコマンドを呼び出す
<a name="instances-on-premises-register-instance-3-install-command"></a>

オンプレミスインスタンスから、 AWS CLI を使用して [install](https://docs.aws.amazon.com/cli/latest/reference/deploy/install.html) コマンドを呼び出し、以下を指定します。
+ 設定ファイルへのパス (`--config-file` オプションで指定)。
+ 必要に応じて、オンプレミスインスタンスにある既存の設定ファイルを置き換えるかどうか (`--override-config` オプションで指定)。指定しない場合、既存の設定ファイルは置き換えられません。
+ オプションで、オンプレミスインスタンスが CodeDeploy に登録される AWS リージョン ( `--region`オプションを使用）。これは、「*AWS 全般のリファレンス*」(例: `us-west-2`) の「[リージョンエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)」にリストされているサポートされたリージョンの 1 つである必要があります。このオプションを指定しない場合、呼び出し元の IAM ユーザーに関連付けられたデフォルトの AWS リージョンが使用されます。
+ 必要に応じて、CodeDeploy エージェントのインストール元のカスタムロケーション (`--agent-installer` のオプションを用いて)。このオプションは、CodeDeploy が公式にはサポートしていない [CodeDeploy エージェント](https://github.com/aws/aws-codedeploy-agent) のカスタムバージョンのインストールに使用できます (GitHub の CodeDeploy エージェント リポジトリに基づくカスタムバージョンなど)。値は、次のいずれかを含む Amazon S3 バケットへのパスである必要があります。
  + CodeDeploy エージェントのインストールスクリプト (GitHub の [CodeDeploy agent](https://github.com/aws/aws-codedeploy-agent/blob/master/bin/install) エージェントリポジトリにあるインストールファイルと同様、Linux または Unix ベースの OS 用)。
  + CodeDeploy エージェントのインストーラパッケージ (.msi) ファイル (Windows ベースの OS 用)。

   このオプションを指定しない場合、CodeDeploy は独自の場所から、オンプレミスインスタンス上の OS と互換性のある正式にサポートされているバージョンの CodeDeploy エージェントをインストールしようとします。

例:

```
aws deploy install --override-config --config-file /tmp/codedeploy.onpremises.yml --region us-west-2 --agent-installer s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi
```

**install** コマンドは次のことを行います。

1. オンプレミスインスタンスが Amazon EC2 インスタンスかどうかを確認します。そうである場合は、エラーメッセージが表示されます。

1. オンプレミスインスタンスの設定ファイルを、インスタンスの指定された場所から CodeDeploy エージェントが見つけやすい場所へ (まだその場所にない場合) コピーします。

   Ubuntu サーバーおよび Red Hat Enterprise Linux (RHEL)の場合、これは `/etc/codedeploy-agent/conf`/`codedeploy.onpremises.yml` になります。

   Windows サーバーの場合、これは `C:\ProgramData\Amazon\CodeDeploy`\$1`conf.onpremises.yml` になります。

   `--override-config` オプションを指定した場合は、ファイルを作成または上書きします。

1. オンプレミスインスタンスに CodeDeploy エージェントをインストールし、起動します。

## ステップ 4: デプロイアプリケーションリビジョンをオンプレミスインスタンスにデプロイする
<a name="instances-on-premises-register-instance-4-deploy-revision"></a>

登録され、タグ付けされたオンプレミスインスタンスにアプリケーションリビジョンをデプロイする準備ができました。

Amazon EC2 インスタンスにアプリケーションリビジョンをデプロイするのと同様の方法でオンプレミスインスタンスにアプリケーションリビジョンをデプロイします。手順については、「[CodeDeploy でデプロイを作成する](deployments-create.md)」を参照してください。これらの指示は、アプリケーションの作成、開発グループの作成、およびアプリケーションリビジョンの準備を含む前提条件と関連しています。シンプルなサンプルアプリケーションリビジョンをデプロイすることが必要な場合は、[チュートリアル: CodeDeploy (Windows サーバー、Ubuntu サーバー、または Red Hat エンタープライズ Linux) を使用してオンプレミスインスタンスにアプリケーションをデプロイします。](tutorials-on-premises-instance.md) の [ステップ 2: サンプルのアプリケーションリビジョンを作成する](tutorials-on-premises-instance-2-create-sample-revision.md) で説明してあるものを作成できます。

**重要**  
オンプレミスインスタンスを対象としたデプロイグループの作成の一部として、既存の CodeDeploy サービスロールを再利用する場合は、`Tag:get*` をサービスロールのポリシーステートメントの `Action` の部分に含める必要があります。詳細については、「[ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md)」を参照してください。

## ステップ 5: オンプレミスインスタンスへのデプロイを追跡
<a name="instances-on-premises-register-instance-5-track-deployment"></a>

登録されタグ付けされたオンプレミスインスタンスへアプリケーションリビジョンをデプロイした後、デプロイの進行状況を追跡できます。

Amazon EC2 インスタンスへのデプロイの追跡と同様の方法でオンプレミスインスタンスへのデプロイの追跡をします。手順については、「[CodeDeploy デプロイの詳細を表示する](deployments-view-details.md)」を参照してください。

他のオプションについては、「[CodeDeploy でのオンプレミスインスタンスのオペレーションの管理](on-premises-instances-operations.md)」を参照してください。

# [register-on-premises-instance] コマンド (IAM ユーザー ARN) を使用してオンプレミスインスタンスを登録します。
<a name="register-on-premises-instance-iam-user-arn"></a>

**重要**  
IAM ユーザーを使用してインスタンスを登録することは、認証に静的 (永続的) 認証情報を使用するため推奨されません。セキュリティ向上のため、認証には一時的な認証情報を使用してインスタンスを登録することをお勧めします。詳細については、「[[register-on-premises-instance] コマンド (IAM セッション ARN) を使用してオンプレミスインスタンスを登録](register-on-premises-instance-iam-session-arn.md)」を参照してください。

**重要**  
IAM ユーザーのアクセスキー (永続的認証情報) をローテーションする計画を立ててください。アクセスキーのローテーションの詳細については、「[アクセスキーの更新](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey)」を参照してください。

認証に固定 IAM ユーザー認証情報を使って、CodeDeploy でオンプレミスインスタンスの設定、登録、タグ付けをほとんど自分で行う場合は、これらの手順に従います。

**Topics**
+ [ステップ 1: オンプレミスインスタンス用に IAM ユーザーを作成する](#register-on-premises-instance-iam-user-arn-1)
+ [ステップ 2: ユーザーにアクセス権限を割り当てる](#register-on-premises-instance-iam-user-arn-2)
+ [ステップ 3: ユーザーの認証情報を取得する](#register-on-premises-instance-iam-user-arn-3)
+ [ステップ 4: オンプレミスインスタンスに設定ファイルを追加](#register-on-premises-instance-iam-user-arn-4)
+ [ステップ 5: をインストールして設定する AWS CLI](#register-on-premises-instance-iam-user-arn-5)
+ [ステップ 6: AWS\$1REGION 環境変数を設定する (Ubuntu Server および RHEL のみ)](#register-on-premises-instance-iam-user-arn-6)
+ [ステップ 7: CodeDeploy エージェントのインストール](#register-on-premises-instance-iam-user-arn-7)
+ [ステップ 8: CodeDeploy でオンプレミスインスタンスを登録します。](#register-on-premises-instance-iam-user-arn-8)
+ [ステップ 9: オンプレミスインスタンスにタグ付けする](#register-on-premises-instance-iam-user-arn-9)
+ [ステップ 10: アプリケーションリビジョンをオンプレミスインスタンスにデプロイする](#register-on-premises-instance-iam-user-arn-10)
+ [ステップ 11: オンプレミスインスタンスへのデプロイを追跡する](#register-on-premises-instance-iam-user-arn-11)

## ステップ 1: オンプレミスインスタンス用に IAM ユーザーを作成する
<a name="register-on-premises-instance-iam-user-arn-1"></a>

オンプレミスインスタンスが認証や CodeDeploy とのやり取りに使用する IAM ユーザーを作成します。

**重要**  
それぞれの参加しているオンプレミスインスタンスに対して個別の IAM ユーザーを作成する必要があります。複数のオンプレミスインスタンスに対して単独の IAM ユーザーを再利用しようとすると、CodeDeploy を用いての、オンプレミスインスタンスの登録やタグ付けができない場合があります。それらのオンプレミスインスタンスへのデプロイは、無期限の保留状態のまま、または完全にエラーとなる場合があります。

IAM ユーザーに、目的を識別するために、[CodeDeployUser-OnPrem] のような名前を割り当てることをお勧めします。

 AWS CLI または IAM コンソールを使用して IAM ユーザーを作成できます。詳細については、「[Creating an IAM user in your AWS account](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) を参照してください。

**重要**  
 AWS CLI または IAM コンソールを使用して新しい IAM ユーザーを作成するかどうかにかかわらず、ユーザーに提供されたユーザー ARN を書き留めます。この情報は後に [ステップ 4: オンプレミスインスタンスに設定ファイルを追加](#register-on-premises-instance-iam-user-arn-4) と [ステップ 8: CodeDeploy でオンプレミスインスタンスを登録します。](#register-on-premises-instance-iam-user-arn-8) で必要になります。

## ステップ 2: ユーザーにアクセス権限を割り当てる
<a name="register-on-premises-instance-iam-user-arn-2"></a>

オンプレミスインスタンスが Amazon S3 バケットからアプリケーションリビジョンをデプロイする場合、IAM ユーザーがバケットとやり取りするための権限を割り当てる必要があります。 AWS CLI または IAM コンソールを使用してアクセス許可を割り当てることができます。

**注記**  
GitHub リポジトリからのみアプリケーションリビジョンをデプロイする場合は、このステップを飛ばして [ステップ 3: ユーザーの認証情報を取得する](#register-on-premises-instance-iam-user-arn-3) へ進んでください。([ステップ 1: オンプレミスインスタンス用に IAM ユーザーを作成する](#register-on-premises-instance-iam-user-arn-1) で作成した IAM ユーザーに関する情報はまだ必要です。後のステップで使用します。)

**アクセス権限 (CLI) を割り当てるには**

1.  AWS CLIを呼び出すのに使用している Amazon EC2インスタンスまたはデバイス上に、次のポリシーの内容を用いてファイルを作成します。ファイルに **CodeDeploy-OnPrem-Permissions.json** のような名前を付けて、ファイルを保存します。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "s3:Get*",
                   "s3:List*"
               ],
               "Effect": "Allow",
               "Resource": "*"
           }
       ]
   }
   ```
**注記**  
このポリシーを、オンプレミスインスタンスがアクセスする必要のある Amazon S3 バケットにのみ制限することをお勧めします。このポリシーを制限する場合は、 AWS CodeDeploy エージェントを含む Amazon S3 バケットへのアクセスも許可してください。そうしない場合、CodeDeploy エージェントが関連するオンプレミスインスタンスにインストールされる、または更新されるたびに、エラーが発生する可能性があります。  
例:  

   ```
   {
     "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/*"
         ]
       }
     ]
   }
   ```

1. [put-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-user-policy.html) コマンドを呼び出し、IAM ユーザーの名前 (`--user-name` のオプションを用いて)、ポリシーの名前 (`--policy-name` のオプションを用いて)、および新しく作成したポリシードキュメントへのパス (`--policy-document` のオプションを用いて) を指定します。例えば、**CodeDeploy-OnPrem-Permissions.json** というファイルが、コマンドを呼び出しているのと同じディレクトリ (フォルダ) にあるとします。
**重要**  
ファイル名の前に必ず `file://` を含めてください。このコマンドでは必須です。

   ```
   aws iam put-user-policy --user-name CodeDeployUser-OnPrem --policy-name CodeDeploy-OnPrem-Permissions --policy-document file://CodeDeploy-OnPrem-Permissions.json
   ```

**アクセス権限を割り当てるには (コンソール)**

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

1. ナビゲーションペインで、[**Policies**] を選択し、[**Create Policy**] を選択します。([**Get Started**] ボタンが表示された場合は、そのボタンを選択してから、[**Create Policy**] を選択します)。

1. **[独自のポリシーを作成]** の横で、**[選択]** を選択します。

1. [**ポリシー名**] ボックスに、このポリシーの名前を入力します (**CodeDeploy-OnPrem-Permissions** など)。

1. **ポリシードキュメント**ボックスで、次のアクセス許可式を入力または貼り付けます。これにより、 AWS CodeDeploy は、ポリシーで指定された Amazon S3 バケットから IAM ユーザーに代わってオンプレミスインスタンスにアプリケーションリビジョンをデプロイできます。

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

1. **[ポリシーを作成]** を選択します。

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

1. ユーザーのリストで、[ステップ 1: オンプレミスインスタンス用に IAM ユーザーを作成する](#register-on-premises-instance-iam-user-arn-1) で作成した IAM ユーザーを探して選択します。

1. [**Permissions**] タブを開き、[**Managed Policies**] で [**Attach Policy**] を選択します。

1. **CodeDeploy-OnPrem-Permissions** という名前のポリシーを選択した後、[**ポリシーのアタッチ**] を選択します。

## ステップ 3: ユーザーの認証情報を取得する
<a name="register-on-premises-instance-iam-user-arn-3"></a>

IAM ユーザーのシークレットキー ID およびシークレットアクセスキーを取得します。これは、[ステップ 4: オンプレミスインスタンスに設定ファイルを追加](#register-on-premises-instance-iam-user-arn-4) で必要になります。 AWS CLI または IAM コンソールを使用して、シークレットキー ID とシークレットアクセスキーを取得できます。

**注記**  
すでにシークレットキー ID およびシークレットアクセスキーがある場合、このステップを飛ばして [ステップ 4: オンプレミスインスタンスに設定ファイルを追加](#register-on-premises-instance-iam-user-arn-4) へ進んでください。  
ユーザーが の AWS 外部とやり取りする場合は、プログラムによるアクセスが必要です AWS マネジメントコンソール。プログラムによるアクセスを許可する方法は、 がアクセスするユーザーのタイプによって異なります AWS。  
ユーザーにプログラムによるアクセス権を付与するには、以下のいずれかのオプションを選択します。  


****  

| プログラムによるアクセス権を必要とするユーザー | 目的 | 方法 | 
| --- | --- | --- | 
| IAM | (推奨) コンソール認証情報を一時的な認証情報として使用して AWS CLI、、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/register-on-premises-instance-iam-user-arn.html)  | 
|  ワークフォースアイデンティティ (IAM アイデンティティセンターで管理されているユーザー)  | 一時的な認証情報を使用して AWS CLI、、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/register-on-premises-instance-iam-user-arn.html)  | 
| IAM | 一時的な認証情報を使用して AWS CLI、、 AWS SDKs、または AWS APIs。 | 「IAM [ユーザーガイド」の「 AWS リソースでの一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)の使用」の手順に従います。 | 
| IAM | (非推奨)長期認証情報を使用して、 AWS CLI、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/register-on-premises-instance-iam-user-arn.html)  | 

**認証情報 (CLI) を取得するには**

1. [list-access-keys](https://docs.aws.amazon.com/cli/latest/reference/iam/list-access-keys.html) コマンドを呼び出し、IAM ユーザーの名前を指定し (`--user-name` のオプションを用いて)、アクセスキー ID のみのクエリを実行します (`--query` および `--output` のオプションを用いて)。例:

   ```
   aws iam list-access-keys --user-name CodeDeployUser-OnPrem --query "AccessKeyMetadata[*].AccessKeyId" --output text
   ```

1. キーが出力に表示されないか、1 つのキーについての情報だけが出力に表示されたら、[create-access-key](https://docs.aws.amazon.com/cli/latest/reference/iam/create-access-key.html) コマンドを呼び出し、IAM ユーザーの名前を指定します (`--user-name` のオプションを用いて)。

   ```
   aws iam create-access-key --user-name CodeDeployUser-OnPrem
   ```

   **create-access-key** コマンドを呼び出した出力で、`AccessKeyId` フィールドおよび `SecretAccessKey` フィールドの値をメモします。この情報は [ステップ 4: オンプレミスインスタンスに設定ファイルを追加](#register-on-premises-instance-iam-user-arn-4) で必要になります。
**重要**  
このシークレットアクセスキーにアクセスできるのは、この時だけです。このシークレットアクセスキーを忘れた、またはアクセスできなくなった場合、[ステップ 3: ユーザーの認証情報を取得する](#register-on-premises-instance-iam-user-arn-3) のステップに従い、新しいキーを生成する必要があります。

1. 2 つのアクセスキーが既にリストされている場合は、そのうちの 1 つを削除する必要があります。削除するには、[delete-access-key](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-access-key.html) コマンドを呼び出して、IAM ユーザーの名前 (`--user-name` のオプションを用いて) と削除するアクセスキーの ID (`--access-key-id` のオプションを用いて) を指定します。それから、このステップの前のほうにある説明のとおり、**create-access-key** コマンドを呼び出します。**delete-access-key** コマンドを呼び出す例は以下のとおりです。

   ```
   aws iam delete-access-key --user-name CodeDeployUser-OnPrem --access-key-id access-key-ID
   ```
**重要**  
このアクセスキーの 1 つを削除するために **delete-access-key** のコマンドを呼び出すとき、および [ステップ 4: オンプレミスインスタンスに設定ファイルを追加](#register-on-premises-instance-iam-user-arn-4) で説明するようにオンプレミスインスタンスがすでにこのアクセスキーを使用しているときは、[ステップ 4: オンプレミスインスタンスに設定ファイルを追加](#register-on-premises-instance-iam-user-arn-4) の説明に再び従って、この IAM ユーザーに関連付けられる別のアクセスキー ID とシークレットアクセスキーを指定する必要があります。そうしない場合、そのオンプレミスインスタンスへのデプロイは、無期限の保留状態のまま、または完全にエラーとなる可能性があります。

**認証情報を取得するには (コンソール)**

1. 

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

   1. ユーザーのリストがナビゲーションペインに表示されない場合は、[**Users**] を選択します。

   1. ユーザーのリストで、[ステップ 1: オンプレミスインスタンス用に IAM ユーザーを作成する](#register-on-premises-instance-iam-user-arn-1) で作成した IAM ユーザーを探して選択します。

1. [**Security credentials**] タブにキーが表示されていない場合、または 1 つしか表示されていない場合は、[**Create access key**] を選択します。

   2 つのアクセスキーが表示されている場合は、片方を削除する必要があります。片方のアクセスキーの横にある [**Delete**] を選択した後、[**Create access key**] を選択します。
**重要**  
このいずれかのアクセスキーの横にある **Delete** を選択する場合、および、オンプレミスインスタンスが [ステップ 4: オンプレミスインスタンスに設定ファイルを追加](#register-on-premises-instance-iam-user-arn-4) にある説明のとおりにすでにそのアクセスキーを使用している場合は、[ステップ 4: オンプレミスインスタンスに設定ファイルを追加](#register-on-premises-instance-iam-user-arn-4) の手順に再び従って、この IAM ユーザーと関連付けられた異なるアクセスキー ID およびシークレットアクセスキーを指定する必要があります。そうしない場合、そのオンプレミスインスタンスへのデプロイは、無期限の保留状態のまま、または完全にエラーとなる可能性があります。

1. [**Show**] を選択し、アクセスキー ID とシークレットアクセスキーをメモします。この情報は、次のステップで必要になります。または、[**Download .csv file**] を選択して、アクセスキー ID とシークレットアクセスキーのコピーを保存することができます。
**重要**  
認証情報をメモする、または、ダウンロードするのでない限り、このシークレットアクセスキーにアクセスできるのは、この時だけです。このシークレットアクセスキーを忘れた、またはアクセスできなくなった場合、[ステップ 3: ユーザーの認証情報を取得する](#register-on-premises-instance-iam-user-arn-3) のステップに従い、新しいキーを生成する必要があります。

1. [**Close**] を選択して [**Users > *IAM User Name***] ページに戻ります。

## ステップ 4: オンプレミスインスタンスに設定ファイルを追加
<a name="register-on-premises-instance-iam-user-arn-4"></a>

ルートまたは管理者権限を使用して、オンプレミスインスタンスに設定ファイルを追加します。この設定ファイルは、CodeDeploy に使用する IAM ユーザー認証情報とターゲット AWS リージョンを宣言するために使用されます。ファイルは、オンプレミスインスタンスの指定の場所に追加する必要があります。ファイルには、IAM ユーザーの ARN、シークレットキー ID、シークレットアクセスキー、およびターゲット AWS リージョンが含まれている必要があります。ファイルは特定の形式に従っている必要があります。

1. オンプレミスインスタンス上の以下の場所に、`codedeploy.onpremises.yml` (Ubuntu サーバーまたは RHEL オンプレミスインスタンスの場合)、または `conf.onpremises.yml` (Windows サーバーのオンプレミスインスタンスの場合) という名前のファイルを作成します。
   + Ubuntu サーバーの場合:`/etc/codedeploy-agent/conf`
   + Windows サーバーについて：`C:\ProgramData\Amazon\CodeDeploy`

1. テキストエディタを使用して、新しく作成した `codedeploy.onpremises.yml` または `conf.onpremises.yml` ファイルに次の情報を追加します。

   ```
   ---
   aws_access_key_id: secret-key-id
   aws_secret_access_key: secret-access-key
   iam_user_arn: iam-user-arn
   region: supported-region
   ```

   コードの説明は以下のとおりです。
   + *secret-key-id* は、[ステップ 1: オンプレミスインスタンス用に IAM ユーザーを作成する](#register-on-premises-instance-iam-user-arn-1) または [ステップ 3: ユーザーの認証情報を取得する](#register-on-premises-instance-iam-user-arn-3) でメモした、対応するIAM ユーザーのシークレットキー ID です。
   + *secret-access-key* は、[ステップ 1: オンプレミスインスタンス用に IAM ユーザーを作成する](#register-on-premises-instance-iam-user-arn-1) または [ステップ 3: ユーザーの認証情報を取得する](#register-on-premises-instance-iam-user-arn-3) でメモした、対応する IAM ユーザーのシークレットアクセスキーです。
   + *iam-user-arn* は、「[ステップ 1: オンプレミスインスタンス用に IAM ユーザーを作成する](#register-on-premises-instance-iam-user-arn-1)」で先にメモした IAM ユーザーの ARN です。
   + *supported-region* は、CodeDeploy でサポートされているリージョンの識別子で、CodeDeploy アプリケーション、デプロイグループ、およびアプリケーションリビジョンがある場所です (`us-west-2` など)。リージョンのリストについては、「*AWS 全般のリファレンス*」の「[リージョンエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)」を参照してください。

    
**重要**  
[ステップ 3: ユーザーの認証情報を取得する](#register-on-premises-instance-iam-user-arn-3) の片方のアクセスキーの横にある **Delete** を選択し、またオンプレミスインスタンスがすでに関連するアクセスキー ID およびシークレットアクセスキーを使用している場合は、[ステップ 4: オンプレミスインスタンスに設定ファイルを追加](#register-on-premises-instance-iam-user-arn-4) の手順に再び従って、この IAM ユーザーと関連付けられた異なるアクセスキー ID およびシークレットアクセスキーを指定する必要があります。そうしない場合、オンプレミスインスタンスへのデプロイは、無期限の保留状態のまま、または完全にエラーとなる可能性があります。

## ステップ 5: をインストールして設定する AWS CLI
<a name="register-on-premises-instance-iam-user-arn-5"></a>

オンプレミスインスタンス AWS CLI に をインストールして設定します。( AWS CLI は で使用され[ステップ 7: CodeDeploy エージェントのインストール](#register-on-premises-instance-iam-user-arn-7)、オンプレミスインスタンスに CodeDeploy エージェントをダウンロードしてインストールします。)

1. オンプレミスインスタンス AWS CLI に をインストールするには、*AWS Command Line Interface 「 ユーザーガイド*」の[「 のセットアップ AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html)」の手順に従います。
**注記**  
オンプレミスインスタンスを使用するための CodeDeploy コマンドは、 AWS CLIのバージョン 1.7.19 で使用できるようになりました。のバージョンが AWS CLI 既にインストールされている場合は、 を呼び出してそのバージョンを確認できます**aws --version**。

1. オンプレミスインスタンス AWS CLI で を設定するには、*AWS Command Line Interface 「 ユーザーガイド*」の[「 の設定 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)」の手順に従います。
**重要**  
( **aws configure** コマンドを呼び出す AWS CLI などして) を設定するときは、 で指定されたアクセス許可に加えて、少なくとも以下の AWS アクセス許可を持つ IAM ユーザーのシークレットキー ID とシークレットアクセスキーを必ず指定してください[オンプレミスインスタンスを設定するための前提条件](instances-on-premises-prerequisites.md)。これにより、オンプレミスインスタンス上で CodeDeploy エージェントをダウンロードしてインストールすることができます。  
   

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement" : [
       {
         "Effect" : "Allow",
         "Action" : [
           "codedeploy:*"
         ],
         "Resource" : "*"
       },
       {
         "Effect" : "Allow",
         "Action" : [
           "s3:Get*",
           "s3:List*"
         ],
         "Resource" : [
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:s3:::amzn-s3-demo-bucket1/*"
         ]
       }     
     ]
   }
   ```

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement" : [
       {
         "Effect" : "Allow",
         "Action" : [
           "codedeploy:*"
         ],
         "Resource" : "*"
       },
       {
         "Effect" : "Allow",
         "Action" : [
           "s3:Get*",
           "s3:List*"
         ],
         "Resource" : [
           "*"
         ]
       }     
     ]
   }
   ```
これらのアクセス権限は、[ステップ 1: オンプレミスインスタンス用に IAM ユーザーを作成する](#register-on-premises-instance-iam-user-arn-1) で作成した IAM ユーザー、または別のユーザーのいずれかに割り当てられることができます。これらのアクセス権限を ユーザーに割り当てるには、[ステップ 1: オンプレミスインスタンス用に IAM ユーザーを作成する](#register-on-premises-instance-iam-user-arn-1) にある手順に従いますが、手順のアクセス権限の代わりにこれらのアクセス権限を使用します。

## ステップ 6: AWS\$1REGION 環境変数を設定する (Ubuntu Server および RHEL のみ)
<a name="register-on-premises-instance-iam-user-arn-6"></a>

オンプレミスインスタンス上で Ubuntu サーバーまたは RHEL を実行中でなければ、このステップをスキップして直接 [ステップ 7: CodeDeploy エージェントのインストール](#register-on-premises-instance-iam-user-arn-7) へ進んでください。

Ubuntu サーバーまたは RHEL オンプレミスインスタンス上に CodeDeploy エージェントをインストールし、新しいバージョンが使用可能になったらいつでも CodeDeploy エージェントを更新するようにインスタンスを有効にします。これを行うには、インスタンス上の `AWS_REGION` の環境変数を CodeDeploy がサポートしているリージョンのうちの １ つの識別子に設定します。CodeDeploy アプリケーション、デプロイグループ、およびアプリケーションリビジョンのある (`us-west-2` など)リージョンの値に設定することをお勧めします 。リージョンのリストについては、「*AWS 全般のリファレンス*」の「[リージョンエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)」を参照してください。

環境変数を設定するには、端末から以下を呼び出します。

```
export AWS_REGION=supported-region
```

*supported-region* がリージョンの識別子である場所 (例:`us-west-2`)。

## ステップ 7: CodeDeploy エージェントのインストール
<a name="register-on-premises-instance-iam-user-arn-7"></a>

オンプレミスインスタンスに CodeDeploy エージェントをインストールします。
+ Ubuntu サーバーオンプレミスインスタンスの場合は、[Ubuntu サーバー用の CodeDeploy エージェントをインストールする](codedeploy-agent-operations-install-ubuntu.md) の手順に従った後、このページに戻ります。
+ RHEL オンプレミスインスタンスについては、[Amazon Linux または RHEL 用の CodeDeploy エージェントをインストールする](codedeploy-agent-operations-install-linux.md) の手順に従った後、このページに戻ります。
+ Windows Server オンプレミスインスタンスの場合は、[Windows サーバー用の CodeDeploy エージェントです。](codedeploy-agent-operations-install-windows.md) の手順に従った後、このページに戻ります。

## ステップ 8: CodeDeploy でオンプレミスインスタンスを登録します。
<a name="register-on-premises-instance-iam-user-arn-8"></a>

このステップの手順では、オンプレミスインスタンス自体からオンプレミスインスタンスを登録していることを想定します。「」で説明されているように、 AWS CLI がインストールされ、設定された別のデバイスまたはインスタンスからオンプレミスインスタンスを登録できます[ステップ 5: をインストールして設定する AWS CLI](#register-on-premises-instance-iam-user-arn-5)。

 AWS CLI を使用してオンプレミスインスタンスを CodeDeploy に登録し、デプロイで使用できるようにします。

1. を使用する前に AWS CLI、 で作成した IAM ユーザーのユーザー ARN が必要です[ステップ 1: オンプレミスインスタンス用に IAM ユーザーを作成する](#register-on-premises-instance-iam-user-arn-1)。ユーザー ARN がまだない場合は、[get-user](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user.html) コマンドを呼び出し、IAM ユーザーの名前を指定し (`--user-name` のオプションを用いて)、ユーザー ARN のみをクエリします (`--query` のオプションと `--output` のオプションを用いて)。

   ```
   aws iam get-user --user-name CodeDeployUser-OnPrem --query "User.Arn" --output text
   ```

1. [register-on-premises-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/register-on-premises-instance.html) コマンドを呼び出し、以下を指定します。
   + オンプレミスインスタンスを一意に識別する名前 (`--instance-name` オプションで指定)。
**重要**  
オンプレミスインスタンスを識別するために、特にデバッグのため、オンプレミスインスタンスの一意な特徴を示す名前 (例えば、もしあれば、シリアルナンバーや内部アセット識別子など) を指定することを強くお勧めします。名前として MAC アドレスを指定した場合、MAC アドレスには、コロン (`:`) など CodeDeploy が許可しない文字が含まれることに注意してください。許可された文字の一覧については、「[CodeDeploy のクォータ](limits.md)」を参照してください。
   + [ステップ 1: オンプレミスインスタンス用に IAM ユーザーを作成する](#register-on-premises-instance-iam-user-arn-1) で作成した IAM ユーザーの ARN (`--iam-user-arn` のオプションを用いて)

     例:

     ```
     aws deploy register-on-premises-instance --instance-name AssetTag12010298EX --iam-user-arn arn:aws:iam::444455556666:user/CodeDeployUser-OnPrem
     ```

## ステップ 9: オンプレミスインスタンスにタグ付けする
<a name="register-on-premises-instance-iam-user-arn-9"></a>

 AWS CLI または CodeDeploy コンソールを使用して、オンプレミスインスタンスにタグを付けることができます。(CodeDeploy はオンプレミスインスタンスタグを使用してデプロイ中にデプロイターゲットを識別します。)

**オンプレミスインスタンスにタグ付けするには (CLI)**
+ [add-tags-to-on-premises-instances](https://docs.aws.amazon.com/cli/latest/reference/deploy/add-tags-to-on-premises-instances.html) コマンドを呼び出し、以下を指定します。

   
  + オンプレミスインスタンスを一意に識別する名前 (`--instance-names` オプションで指定)。
  + 使用するオンプレミスインスタンスのタグキーの名前とタグ値 (`--tags` オプションで指定)。名前と値はいずれも指定する必要があります。CodeDeploy は値のみがあるオンプレミスインスタンスタグを許可しません。

    例:

    ```
    aws deploy add-tags-to-on-premises-instances --instance-names AssetTag12010298EX --tags Key=Name,Value=CodeDeployDemo-OnPrem
    ```

**オンプレミスインスタンスにタグ付けするには (コンソール)**

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

1. CodeDeploy メニューから **On-premises instances** を選択します。

1. オンプレミスインスタンスのリストで、タグ付けするオンプレミスインスタンスの横にある矢印を選択します。

1. タグのリストで、目的のタグキーとタグ値を選択または入力します。タグキーとタグ値を入力するたびに、別の行が表示されます。最大 10 個のタグにこれを繰り返すことができます。タグを削除するには、削除アイコンを選択します (![\[The delete icon.\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/images/delete-triggers-x.png))。

1. タグを追加したら、[**Update Tags**] を選択します。

## ステップ 10: アプリケーションリビジョンをオンプレミスインスタンスにデプロイする
<a name="register-on-premises-instance-iam-user-arn-10"></a>

登録され、タグ付けされたオンプレミスインスタンスにアプリケーションリビジョンをデプロイする準備ができました。

Amazon EC2 インスタンスにアプリケーションリビジョンをデプロイするのと同様の方法でオンプレミスインスタンスにアプリケーションリビジョンをデプロイします。手順については、「[CodeDeploy でデプロイを作成する](deployments-create.md)」を参照してください。これらの指示には、アプリケーションの作成、開発グループの作成、およびアプリケーションリビジョンの準備を含む前提条件へのリンクが含まれています。シンプルなサンプルアプリケーションリビジョンをデプロイすることが必要な場合は、[チュートリアル: CodeDeploy (Windows サーバー、Ubuntu サーバー、または Red Hat エンタープライズ Linux) を使用してオンプレミスインスタンスにアプリケーションをデプロイします。](tutorials-on-premises-instance.md) の [ステップ 2: サンプルのアプリケーションリビジョンを作成する](tutorials-on-premises-instance-2-create-sample-revision.md) で説明してあるものを作成できます。

**重要**  
オンプレミスインスタンスを対象としたデプロイグループの作成の一部として、CodeDeploy サービスロールを再利用する場合は、`Tag:get*` をサービスロールのポリシーステートメントの `Action` の部分に含める必要があります。詳細については、「[ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md)」を参照してください。

## ステップ 11: オンプレミスインスタンスへのデプロイを追跡する
<a name="register-on-premises-instance-iam-user-arn-11"></a>

登録されタグ付けされたオンプレミスインスタンスへアプリケーションリビジョンをデプロイした後、デプロイの進行状況を追跡できます。

Amazon EC2 インスタンスへのデプロイの追跡と同様の方法でオンプレミスインスタンスへのデプロイの追跡をします。手順については、「[CodeDeploy デプロイの詳細を表示する](deployments-view-details.md)」を参照してください。

# CodeDeploy でのオンプレミスインスタンスのオペレーションの管理
<a name="on-premises-instances-operations"></a>

このセクションの手順に従って、オンプレミスインスタンスに関する詳細情報の取得、タグの削除、オンプレミスインスタンスのアンインストールと登録解除など、オンプレミスインスタンスをCodeDeployに登録した後の操作を管理します。

**Topics**
+ [単一のオンプレミスインスタンスに関する情報を取得します](on-premises-instances-operations-view-details-single.md)
+ [複数のオンプレミスインスタンスに関する情報を取得します](on-premises-instances-operations-view-details-multiple.md)
+ [オンプレミスインスタンスから手動でオンプレミスインスタンスタグを削除します](on-premises-instances-operations-remove-tags.md)
+ [CodeDeploy エージェントを自動でアンインストールし、設定ファイルをオンプレミスインスタンスから削除します。](on-premises-instances-operations-uninstall-agent.md)
+ [オンプレミスインスタンスを自動的に登録解除します](on-premises-instances-operations-deregister-automatically.md)
+ [手動でオンプレミスのインスタンスの登録を解除します](on-premises-instances-operations-deregister-manually.md)

# 単一のオンプレミスインスタンスに関する情報を取得します
<a name="on-premises-instances-operations-view-details-single"></a>

[CodeDeploy デプロイの詳細を表示する](deployments-view-details.md) にある手順に従って、単一のオンプレミスインスタンスに関する情報を取得できます。 AWS CLI または CodeDeploy コンソールを使用して、単一のオンプレミスインスタンスに関する詳細情報を取得できます。

**単一のオンプレミスインスタンスについての情報を取得するには (CLI)**
+ [get-on-premises-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-on-premises-instance.html) コマンドを呼び出し、オンプレミスインスタンスを一意に識別する名前を指定します (`--instance-name` のオプションを用いて)。

  ```
  aws deploy get-on-premises-instance --instance-name AssetTag12010298EX
  ```

**単一のオンプレミスインスタンスに関する情報を取得するには (コンソール)**

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

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

1. オンプレミスインスタンスのリストで、詳細を表示するオンプレミスインスタンスの名前を選択します。

# 複数のオンプレミスインスタンスに関する情報を取得します
<a name="on-premises-instances-operations-view-details-multiple"></a>

[CodeDeploy デプロイの詳細を表示する](deployments-view-details.md) にある手順に従って、オンプレミスインスタンスに関する情報を取得できます。 AWS CLI または CodeDeploy コンソールを使用して、オンプレミスインスタンスに関する詳細情報を取得できます。

**複数のオンプレミスインスタンスに関する情報を取得するには (CLI)**

1. オンプレミスインスタンスの名前のリストでは、[list-on-premises-instances](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-on-premises-instances.html) コマンドを呼び出し、以下を指定します。
   + すべての登録または登録解除されたオンプレミスインスタンスに関する情報を取得するかどうか (`--registration-status` オプションの `Registered` または `Deregistered` でそれぞれ指定)。これを省略すると、登録されている、および登録解除されたオンプレミスインスタンスの名前が両方とも返されます。
   + 特定のオンプレミスインスタンスのタグが付けられたオンプレミスインスタンスに関する情報だけを取得するかどうか (`--tag-filters` オプションで指定)。各オンプレミスインスタンスタグで、`Key`、`Value`、および `Type` を指定します (常に `KEY_AND_VALUE` である必要があります)。複数のオンプレミスインスタンスタグは、`Key`、`Value`、`Type` の間にスペースを入れて区切ります。

   例:

   ```
   aws deploy list-on-premises-instances --registration-status Registered --tag-filters Key=Name,Value=CodeDeployDemo-OnPrem,Type=KEY_AND_VALUE Key=Name,Value=CodeDeployDemo-OnPrem-Beta,Type=KEY_AND_VALUE
   ```

1. 詳細については、オンプレミスインスタンスの名前で (`--instance-names` のオプションを用いて)、[batch-get-on-premises-instances](https://docs.aws.amazon.com/cli/latest/reference/deploy/batch-get-on-premises-instances.html) コマンドを呼び出します 。

   ```
   aws deploy batch-get-on-premises-instances --instance-names AssetTag12010298EX AssetTag09920444EX
   ```

**複数のオンプレミスインスタンスに関する情報を取得するには (コンソール)**

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

1. ナビゲーションペインで、**Deploy** を展開し、デプロイを選択し、**On-premises instances** を選択します。

   オンプレミスインスタンスに関する情報が表示されます。

# オンプレミスインスタンスから手動でオンプレミスインスタンスタグを削除します
<a name="on-premises-instances-operations-remove-tags"></a>

通常、タグが使われなくなった場合や、タグに依存するデプロイグループからオンプレミスインスタンスを削除する場合は、オンプレミスインスタンスからオンプレミスインスタンスタグを削除します。 AWS CLI または AWS CodeDeploy コンソールを使用して、オンプレミスインスタンスからオンプレミスインスタンスタグを削除できます。

登録を解除する前にオンプレミスインスタンスからオンプレミスインスタンスタグを削除する必要はありません。

オンプレミスインスタンスからオンプレミスインスタンスタグを手動で削除しても、インスタンスの登録は解除されません。CodeDeploy エージェントはインスタンスからアンインストールされません。インスタンスから設定ファイルは削除されません。インスタンスに関連付けられた IAM ユーザーは削除されません。

自動的にオンプレミスインスタンスの登録を解除するには、[オンプレミスインスタンスを自動的に登録解除します](on-premises-instances-operations-deregister-automatically.md) を参照してください。

オンプレミスインスタンスの登録を手動で解除するには、[手動でオンプレミスのインスタンスの登録を解除します](on-premises-instances-operations-deregister-manually.md) を参照してください。

CodeDeploy エージェントを自動でアンインストールし、設定ファイルをオンプレミスインスタンスから削除するには、[CodeDeploy エージェントを自動でアンインストールし、設定ファイルをオンプレミスインスタンスから削除します。](on-premises-instances-operations-uninstall-agent.md) を参照してください。

CodeDeploy エージェントだけをオンプレミスインスタンスから手動でアンインストールするには、[CodeDeploy エージェントのオペレーションの管理](codedeploy-agent-operations.md) を参照してください。

関連する IAM ユーザーを手動で削除するには、[Deleting an IAM user from your AWS account](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_DeletingUserFromAccount.html) を参照してください。

**オンプレミスインスタンスから手動でオンプレミスインスタンスタグを削除するには (CLI)**
+ [remove-tags-from-on-premises-instances](https://docs.aws.amazon.com/cli/latest/reference/deploy/remove-tags-from-on-premises-instances.html) を呼び出し、以下を指定します。

   
  + オンプレミスインスタンスを一意に識別する名前 (`--instance-names` オプションで指定)。
  + 削除するタグの名前と値 (`--tags` オプションで指定)。

    例:

    ```
    aws deploy remove-tags-from-on-premises-instances --instance-names AssetTag12010298EX --tags Key=Name,Value=CodeDeployDemo-OnPrem
    ```

**オンプレミスインスタンスから手動でオンプレミスインスタンスタグを削除するには (コンソール)**

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

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

1. オンプレミスインスタンスのリストで、タグを削除するオンプレミスインスタンスの名前を選択します。

1. [**タグ**] で、削除する各タグの横にある [**削除**] を選択します。

1. タグを削除したら、[**Update tags**] を選択します。

# CodeDeploy エージェントを自動でアンインストールし、設定ファイルをオンプレミスインスタンスから削除します。
<a name="on-premises-instances-operations-uninstall-agent"></a>

通常、今後デプロイする予定がなければ、CodeDeploy エージェントをアンインストールし、オンプレミスインスタンスから設定ファイルを削除します。

**注記**  
CodeDeploy エージェントを自動でアンインストールし、設定ファイルをオンプレミスインスタンスから削除しても、オンプレミスインスタンスの登録は解除されません。オンプレミスインスタンスに関連付けられたオンプレミスインスタンスタグの関連付けは解除されません。オンプレミスインスタンスに関連付けられた IAM ユーザーは削除されません。  
自動的にオンプレミスインスタンスの登録を解除するには、[オンプレミスインスタンスを自動的に登録解除します](on-premises-instances-operations-deregister-automatically.md) を参照してください。  
オンプレミスインスタンスの登録を手動で解除するには、[手動でオンプレミスのインスタンスの登録を解除します](on-premises-instances-operations-deregister-manually.md) を参照してください。  
オンプレミスインスタンスタグの関連付けを手動で解除するには、[オンプレミスインスタンスから手動でオンプレミスインスタンスタグを削除します](on-premises-instances-operations-remove-tags.md) を参照してください。  
オンプレミスインスタンスから CodeDeploy エージェントを手動でアンインストールするには、[CodeDeploy エージェントのオペレーションの管理](codedeploy-agent-operations.md) を参照してください。  
関連する IAM ユーザーを手動で削除するには、[Deleting an IAM user from your AWS account](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_DeletingUserFromAccount.html) を参照してください。

オンプレミスインスタンスから、 AWS CLI を使用して[アンインストール](https://docs.aws.amazon.com/cli/latest/reference/deploy/uninstall.html)コマンドを呼び出します。

例えば、次のようになります。

```
aws deploy uninstall
```

**uninstall** コマンドは次のことを行います。

1. オンプレミスインスタンスで実行の CodeDeploy エージェントを停止します。

1. オンプレミスインスタンスから CodeDeploy エージェントをアンインストールします。

1. オンプレミスインスタンスから設定ファイルを削除します。(Ubuntu サーバーとRHELの場合、これは`/etc/codedeploy-agent/conf`/`codedeploy.onpremises.yml` です。Windows サーバーの場合、これは`C:\ProgramData\Amazon\CodeDeploy`\$1`conf.onpremises.yml` です。)

# オンプレミスインスタンスを自動的に登録解除します
<a name="on-premises-instances-operations-deregister-automatically"></a>

通常は、デプロイする計画がなくなった後、オンプレミスインスタンスの登録を解除します。オンプレミスインスタンスの登録を解除すると、オンプレミスインスタンスがデプロイグループのオンプレミスインスタンスタグの一部であっても、オンプレミスインスタンスはデプロイには含まれなくなります。を使用して、オンプレミスインスタンスの登録 AWS CLI を解除できます。

**注記**  
CodeDeploy コンソールを使用してオンプレミスインスタンスの登録を解除することはできません。また、オンプレミスインスタンスの登録を解除しても、オンプレミスインスタンスに関連付けられたオンプレミスインスタンスタグは解除されません。オンプレミスインスタンスから CodeDeploy エージェントをアンインストールしません。オンプレミスインスタンスの設定ファイルはオンプレミスインスタンスから削除されません。  
このセクションのアクティビティの一部 (ただしすべてではない) を実行するために CodeDeploy コンソールを使うには、[手動でオンプレミスのインスタンスの登録を解除します](on-premises-instances-operations-deregister-manually.md) の CodeDeploy コンソールセクションを参照してください。  
オンプレミスインスタンスタグの関連付けを手動で解除するには、[オンプレミスインスタンスから手動でオンプレミスインスタンスタグを削除します](on-premises-instances-operations-remove-tags.md) を参照してください。  
CodeDeploy エージェントを自動でアンインストールし、設定ファイルをオンプレミスインスタンスから削除するには、[CodeDeploy エージェントを自動でアンインストールし、設定ファイルをオンプレミスインスタンスから削除します。](on-premises-instances-operations-uninstall-agent.md) を参照してください。  
CodeDeploy エージェントのみをオンプレミスインスタンスから手動でアンインストールするには、[CodeDeploy エージェントのオペレーションの管理](codedeploy-agent-operations.md) を参照してください。

を使用して AWS CLI 登録[解除](https://docs.aws.amazon.com/cli/latest/reference/deploy/deregister.html)コマンドを呼び出し、以下を指定します。
+ CodeDeploy に対してオンプレミスインスタンスを一意に識別する名前 (`--instance-name` のオプションを用いて) 
+  必要に応じて、オンプレミスインスタンスに関連付けられた IIAM ユーザーを削除するかどうか デフォルトの動作では、IAM ユーザーが削除されます。オンプレミスインスタンスに関連付けられた IAM ユーザーを削除しない場合は、コマンドで `--no-delete-iam-user` オプションを指定します。
+ オプションで、オンプレミスインスタンスが CodeDeploy に登録された AWS リージョン ( `--region`オプションを使用）。これは、「*AWS 全般のリファレンス*」(例: `us-west-2`) の「[リージョンエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)」にリストされているサポート対象のリージョンの 1 つである必要があります。このオプションを指定しない場合、呼び出し元の IAM ユーザーに関連付けられたデフォルトの AWS リージョンが使用されます。

インスタンスを登録解除し、ユーザーを削除する例:

```
aws deploy deregister --instance-name AssetTag12010298EX --region us-west-2
```

インスタンスを登録解除し、ユーザーを削除しない例:

```
aws deploy deregister --instance-name AssetTag12010298EX --no-delete-iam-user --region us-west-2
```

**deregister** コマンドは次のことを行います。

1. CodeDeploy でオンプレミスインスタンスの登録を解除します。

1. 指定した場合、オンプレミスインスタンスに関連付けられている IAM ユーザーを削除します。

オンプレミスインスタンスの登録解除後:
+  コンソールにはすぐに表示されなくなります。
+  直後に同じ名前で別のインスタンスを作成できます。

このコマンドでエラーが発生した場合、エラーメッセージが表示され、手動で残りのステップを完了する方法について説明します。それ以外の場合は、成功メッセージが表示され、**uninstall** コマンドを呼び出す方法が説明されます。

# 手動でオンプレミスのインスタンスの登録を解除します
<a name="on-premises-instances-operations-deregister-manually"></a>

通常は、デプロイする計画がなくなった後、オンプレミスインスタンスの登録を解除します。を使用して AWS CLI 、オンプレミスインスタンスを手動で登録解除します。

手動でオンプレミスインスタンスの登録を解除しても、CodeDeploy エージェントはアンインストールされません。インスタンスから設定ファイルは削除されません。インスタンスに関連付けられた IAM ユーザーは削除されません。インスタンスに関連付けられるタグは削除されません。

CodeDeploy エージェントを自動でアンインストールし、設定ファイルをオンプレミスインスタンスから削除するには、[CodeDeploy エージェントを自動でアンインストールし、設定ファイルをオンプレミスインスタンスから削除します。](on-premises-instances-operations-uninstall-agent.md) を参照してください。

手動で CodeDeploy エージェントのみをアンインストールするには、[CodeDeploy エージェントのオペレーションの管理](codedeploy-agent-operations.md) を参照してください。

関連する IAM ユーザーを手動で削除するには、[Deleting an IAM user from your AWS account](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_DeletingUserFromAccount.html) を参照してください。

関連付けられたオンプレミスインスタンスタグのみを手動で削除するには、[オンプレミスインスタンスから手動でオンプレミスインスタンスタグを削除します](on-premises-instances-operations-remove-tags.md) を参照してください。
+ [deregister-on-premises-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/deregister-on-premises-instance.html) コマンドを呼び出し、オンプレミスインスタンスを一意に識別する名前を指定します (`--instance-name` のオプションを用いて)。

  ```
  aws deploy deregister-on-premises-instance --instance-name AssetTag12010298EX
  ```

  オンプレミスインスタンスの登録解除後:
  +  コンソールにはすぐに表示されなくなります。
  +  直後に同じ名前で別のインスタンスを作成できます。

# CodeDeploy を用いてインスタンスの詳細の表示
<a name="instances-view-details"></a>

CodeDeploy コンソール、AWS CLI、または CodeDeploy API を使用して、デプロイ中で使用されているインスタンスに関する詳細を表示できます。

インスタンスを見るための CodeDeploy API アクションについての情報については、[GetDeploymentInstance](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GetDeploymentInstance.html)、[ListDeploymentInstances](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListDeploymentInstances.html)、および [ListOnPremisesInstances](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_ListOnPremisesInstances.html) を参照してください。

**Topics**
+ [インスタンスの詳細の表示 (コンソール)](#instances-view-details-console)
+ [インスタンスの詳細の表示 (CLI)](#instances-view-details-cli)

## インスタンスの詳細の表示 (コンソール)
<a name="instances-view-details-console"></a>

インスタンスの詳細を表示するには:

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

1. ナビゲーションペインで [**デプロイ**] を展開し、[**アプリケーション**] を選択します。
**注記**  
エントリが表示されない場合は、正しいリージョンが選択されていることを確認しましょう。ナビゲーションバーのリージョンセレクターで、「AWS 全般のリファレンス」**の「[リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)」に一覧表示されているいずれかのリージョンを選択します。CodeDeploy は、これらのリージョンでのみサポートされています。

1. デプロイの詳細を表示するには、そのインスタンスのデプロイ ID を選択します。

1. デプロイのページの [**インスタンスアクティビティ**] セクションですべてのインスタンスを表示できます。

1. インスタンスの個別のデプロイライフサイクルイベントに関する詳細を表示するには、デプロイの詳細ページの [**Events**] 列で、[**View events**] を選択します。
**注記**  
いずれかのライフサイクルイベントに対して [**Failed**] が表示された場合、インスタンスの詳細ページで、[**View logs**]、[**View in EC2**]、またはその両方を選択します。トラブルシューティングのヒントについては、「[インスタンスの問題のトラブルシューティング](troubleshooting-ec2-instances.md)」を参照してください。

1. Amazon EC2 インスタンスに関するさらなる詳細情報を確認したい場合は、**Instance ID** 列でインスタンスの ID を選択します。

## インスタンスの詳細の表示 (CLI)
<a name="instances-view-details-cli"></a>

AWS CLI を使用してインスタンスの詳細を表示するには、`get-deployment-instance` コマンドまたは `list-deployment-instances` コマンドを呼び出します。

1 つのインスタンスに関する詳細を表示するには、[get-deployment-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-instance.html) コマンドを呼び出し、以下を指定します。
+ 一意のデプロイ ID。デプロイ ID を取得するには、[list-deployments](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployments.html) コマンドを呼び出します。
+ 一意のインスタンス ID。インスタンス ID を取得するには、[list-deployment-instances](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-instances.html) コマンドを呼び出します。

デプロイ中で使用されるインスタンスの ID のリストを表示するには、[list-deployment-instances](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-instances.html) コマンドを呼び出し、以下を指定します：
+ 一意のデプロイ ID。デプロイ ID を取得するには、[list-deployments](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployments.html) コマンドを呼び出します。
+ オプションで、デプロイの状態別に特定のインスタンス ID のみを含めるかどうか。(指定しない場合、一致するすべてのインスタンス ID が、デプロイの状態にかかわらず表示されます。)

# CodeDeploy インスタンスのヘルス
<a name="instances-health"></a>

CodeDeploy は、デプロイグループのインスタンスのヘルスステータスをモニタリングします。正常なインスタンスの数が、デプロイ中にデプロイグループに指定された正常なインスタンスの最小数を下回ると、デプロイが失敗します。例えば、インスタンスの 85% がデプロイ中に正常な状態を維持する必要があり、デプロイグループに 10 個のインスタンスが含まれている場合、1 つのインスタンスへのデプロイが失敗したときであっても、デプロイ全体が失敗します。これは、1 つのインスタンスがオフラインになり、最新のアプリケーションリビジョンをインストールできるようになった時点で、正常に使用できるインスタンス数は既に 90% に低下しているためです。失敗したインスタンスと別のオフラインインスタンスを合わせると、正常に使用できるインスタンスの 80% が正常であり、利用できることを意味します。CodeDeploy は全体的なデプロイに失敗します。

デプロイ全体が成功するには、以下が満たされている必要があります。
+ CodeDeploy は、デプロイ中の各インスタンスにデプロイできます。
+ 少なくとも 1 つのインスタンスへのデプロイに成功する。つまり、デプロイ全体が成功するには、最小限の正常なホストの値が 0 の場合であっても、少なくとも 1 つ以上のインスタンスへのデプロイに成功する必要があります (1 つ以上のインスタンスが正常)。

**Topics**
+ [ヘルスステータス](#instances-health-status)
+ [正常なインスタンスの最小数について](#minimum-healthy-hosts)
+ [アベイラビリティーゾーンあたりの正常なインスタンスの最小数について](#minimum-healthy-hosts-az)

## ヘルスステータス
<a name="instances-health-status"></a>

CodeDeploy は、各インスタンスに 2 つのヘルスステータス値 (*revision health* と *instance health*) を割り当てます。

リビジョンの状態  
リビジョンの状態は、現在インスタンスにインストールされているアプリケーションリビジョンに基づきます。以下のステータス値があります。  
+ Current: インスタンスにインストールされているリビジョンは、デプロイグループの前回成功したデプロイのリビジョンに一致します。
+ Old: インスタンスにインストールされているリビジョンは、アプリケーションの以前のバージョンと一致します。
+ Unknown: アプリケーションリビジョンはインスタンスに正常にインストールされていません。

インスタンスの状態  
インスタンスの状態は、インスタンスへのデプロイが成功したかどうかに基づきます。以下の値があります。  
+ Healthy: インスタンスへの前回のデプロイは成功しました。
+ Unhealthy: インスタンスへのリビジョンのデプロイの試みは失敗したか、リビジョンがインスタンスにデプロイされていません。

CodeDeploy は、リビジョンのヘルスとインスタンスのヘルスを使用して、次の順序でデプロイグループのインスタンスにデプロイをスケジュールします。

1. インスタンスの状態が Unhealthy。

1. リビジョンの状態が Unknown。

1. リビジョンの状態が Old。

1. リビジョンの状態が Current。

デプロイ全体が成功すると、リビジョンは更新され、デプロイグループのヘルスステータスの値が更新されて、最新のデプロイを反映します。
+ デプロイに成功したすべての最新のインスタンスは current のままになります。それ以外の場合は、unknown になります。
+ デプロイに成功したすべての古いインスタンスまたは不明なインスタンスは current になります。それ以外の場合は、old または unknown のままになります。
+ デプロイに成功したすべての正常なインスタンスは healthy のままになります。それ以外の場合は、unhealthy になります。
+ デプロイに成功したすべての異常なインスタンスは healthy になります。それ以外の場合は、unhealthy のままになります。

全体的なデプロイが失敗するか、停止している場合:
+ CodeDeploy がアプリケーションリビジョンのデプロイを試みた各インスタンスでは、そのインスタンスのデプロイの試みが成功したか失敗したかによって、そのインスタンスの状態が healthy または unhealthy に設定されています。
+ CodeDeploy がアプリケーションリビジョンのデプロイを試みなかった各インスタンスは、現在のインスタンスのヘルスの値を保持します。
+ デプロイグループのリビジョンに変更はありません。

## 正常なインスタンスの最小数について
<a name="minimum-healthy-hosts"></a>

正常なインスタンスに必要な最小数は、デプロイ設定の一部として定義されます。

**重要**  
Blue/Green デプロイ中に、デプロイ設定と最小限の正常なホストの値は、元の環境ではなく置き換え先環境のインスタンスに適用されます。ただし、元の環境のインスタンスがロードバランサーから登録解除されている場合、1 つの元のインスタンスが正常な登録解除に失敗したときであっても、全体的なデプロイは失敗とマークされます。

CodeDeploy は、最小限の正常なホストの値を一般的に使用した 3 つのデフォルトのデプロイ構成を提供します。


| デフォルトのデプロイ設定名 | 事前定義された最小限の正常なホストの値 | 
| --- | --- | 
| CodeDeployDefault.OneAtATime | 1 | 
| CodeDeployDefault.HalfAtATime | 50% | 
| CodeDeployDefault.AllAtOnce | 0 | 

デフォルトのデプロイ設定の詳細は、「[CodeDeploy でデプロイ設定を使用する](deployment-configurations.md)」で参照できます。

CodeDeploy 中でカスタムデプロイ設定を作成して、独自の最小限の正常なホストの値を定義できます。これらの値は、次のオペレーションを使用して整数または割合 (%) として定義できます。
+ `minimum-healthy-hosts` で [create-deployment-config](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-config.html) コマンドを使う時の AWS CLIとして。
+ CodeDeploy API の [MinimumHealthyHosts](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_MinimumHealthyHosts.html) データタイプでの `Value` として 。
+  CloudFormation テンプレートで [AWS::CodeDeploy::DeploymentConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentconfig.html) `MinimumHealthyHosts`を使用する場合と同じです。

CodeDeploy では、2 つの主な目的のために、デプロイに対して正常なインスタンスの最小数を指定できます。
+ 全体的なデプロイの成功または失敗を判断する。アプリケーションリビジョンが少なくとも最小数の正常なインスタンスに正しくデプロイされた場合、デプロイは成功します。
+ デプロイが続行するためにデプロイ中に正常である必要があるインスタンス数を決定する。

デプロイグループの正常なインスタンスの最小数は、インスタンス数、または合計インスタンス数の割合 (%) として指定できます。パーセンテージを指定する場合、CodeDeploy はデプロイの開始時にパーセンテージを同等のインスタンス数に変換し、端数がある場合は切り上げます。

CodeDeploy は、デプロイプロセス中にデプロイグループのインスタンスのヘルスステータスを追跡し、デプロイの指定された正常なインスタンスの最小数を使用して、デプロイを続行するかどうか判断します。基本的な原則は、デプロイによって、正常なインスタンスの数が、指定した最小数を下回ってはならないということです。このルールの 1 つの例外は、デプロイグループの正常なインスタンスの数が、指定した最小数より最初から少ない場合です。その場合、デプロイプロセスによってそれ以上正常なインスタンスの数が減ることはありません。

**注記**  
CodeDeploy は現在停止状態にあるものも含めて、デプロイグループ中のすべてのインスタンスへのデプロイを試みます。最小限の正常なホストの計算では、停止中のインスタンスは失敗したインスタンスと同じ影響を与えます。停止中のインスタンスが多すぎるために失敗したデプロイを解決するには、インスタンスを再起動するか、タグを変更してデプロイグループから除外します。

CodeDeploy は、アプリケーションリビジョンをデプロイグループの異常なインスタンスにデプロイするよう試みて、デプロイプロセスを開始します。デプロイに成功するたびに、CodeDeploy はインスタンスのヘルスステータスを「正常」に変更し、それをデプロイグループの正常なインスタンスに追加します。それで、CodeDeploy は正常なインスタンスの現在の数を、正常なインスタンスの指定された最小数と比較します。
+ 正常なインスタンスの数が、正常なインスタンスの指定された最小数以下である場合、CodeDeploy はデプロイをキャンセルし、より多くのデプロイによって正常なインスタンスの数が減らないようにします。
+ 正常なインスタンスの数が指定された正常なインスタンスの最小数よりも少なくとも 1 つ大きい場合、CodeDeploy はアプリケーションのリビジョンを正常なインスタンスの元のセットにデプロイします。

正常なインスタンスへのデプロイが失敗した場合、CodeDeploy はそのインスタンスのヘルスステータスを unhealthy に変更します。デプロイが進行するにつれて、CodeDeploy は正常なインスタンスの現在の数を更新し、正常なインスタンスの指定された最小数と比較します。デプロイプロセスのある時点で、正常なインスタンスの数が指定された最小数にまで減った場合、CodeDeploy はデプロイを停止します。この方法により、次のデプロイが失敗し、正常なインスタンスの数が指定された最小数を下回ることを回避できます。

**注記**  
指定する正常なインスタンスの最小数が、デプロイグループの合計インスタンス数より少ないことを確認します。割合 (%) の値を指定する場合、切り上げられることを覚えておいてください。それ以外の場合、デプロイが開始すると、正常なインスタンスの数は正常なインスタンスの指定された最小数以下となり、CodeDeploy によりデプロイ全体が直ちに失敗します。

また、CodeDeploy は指定された正常なインスタンスの最小数および正常なインスタンスの実際の数を使用して、複数のインスタンスにアプリケーションリビジョンをデプロイするかどうかと、その方法を決定します。デフォルトでは、CodeDeploy は正常なインスタンスの数が、指定された正常なインスタンスの最小数を下回るリスクなく、可能な限り多くのインスタンスにアプリケーションリビジョンをデプロイします。

一度にデプロイする必要があるデプロイ先のインスタンス数を決定する場合、CodeDeploy は次の計算を使用します。

```
[total-hosts] - [minimum-healthy-hosts] =
        [number-of-hosts-to-deploy-to-at-once]
```

例えば、次のようになります。
+ デプロイグループに 10 個のインスタンスがあり、正常なインスタンスの最小数を 9 に設定した場合、CodeDeploy は一度に 1 つのインスタンスにデプロイします。
+ デプロイグループに 10 個のインスタンスがあり、正常なインスタンスの最小数を 3 に設定した場合、CodeDeploy は最初のバッチで同時に 7 つのインスタンスにデプロイし、2 番目のバッチで残りの 3 つのインスタンスにデプロイします。
+ デプロイグループに 10 個のインスタンスがあり、正常なインスタンスの最小数を 0 に設定した場合、CodeDeploy は同時に 10 個のインスタンスにデプロイします。

**例**

次の例では、10 個のインスタンスがあるデプロイグループを前提としています。

正常なインスタンスの最小数: 95%  
CodeDeploy は正常なインスタンスの最小数を 10 個のインスタンスに切り上げます。これは正常なインスタンスの数と等しくなります。全体的なデプロイは、いずれのインスタンスにもリビジョンをデプロイすることなく、直ちに失敗します。

正常なインスタンスの最小数: 9  
CodeDeploy は一度に 1 個のインスタンスへリビジョンをデプロイします。いずれかのインスタンスへのデプロイが失敗した場合、正常なインスタンスの数は正常なインスタンスの最小数に等しくなるため、CodeDeploy のデプロイ全体は直ちに失敗します。このルールの例外は、最後のインスタンスが失敗した場合でも、デプロイは引き続き成功することです。  
CodeDeploy は、一度に 1 個のインスタンスずつ、デプロイが失敗するか、デプロイ全体が完了するまで、デプロイを続行します。10 のデプロイすべてに成功した場合、デプロイグループには 10 個の正常なインスタンスが含まれます。

正常なインスタンスの最小数: 8  
CodeDeploy は一度に 2 個のインスタンスへリビジョンをデプロイします。これらのうち 2 つのデプロイに失敗した場合、CodeDeploy は直ちにデプロイ全体を失敗します。このルールの例外は、最後のインスタンスが 2 番目に失敗した場合でも、デプロイは成功することです。

正常なインスタンスの最小数: 0  
CodeDeploy は、一度にデプロイグループ全体へリビジョンをデプロイします。デプロイ全体が成功するには、インスタンスに対して、少なくとも 1 つ以上のデプロイが成功する必要があります。正常なインスタンスが 0 の場合、デプロイは失敗します。これは、デプロイ全体を成功としてマークするには、正常なインスタンスの最小値が 0 であっても、デプロイ全体の完了時に 1 つ以上のインスタンスが正常であることが要件であるためです。

## アベイラビリティーゾーンあたりの正常なインスタンスの最小数について
<a name="minimum-healthy-hosts-az"></a>

**注記**  
このセクションでは、Amazon EC2 インスタンスを表す用語としてインスタンスとホストを同じ意味で使用しています。****

複数の[アベイラビリティーゾーン](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones)のインスタンスにデプロイする場合は、オプションで[zonal configuration](deployment-configurations-create.md#zonal-config)機能を有効にすると、CodeDeploy は一度に 1 つのアベイラビリティーゾーンにデプロイできます。

この機能を有効にすると、CodeDeploy は正常なホストの数が「ゾーンあたりの正常なホストの最小数」および「正常なホストの最小数」の値を常に超えていることを確認します。**正常なホストの数がいずれかの値を下回ると、CodeDeploy はすべてのアベイラビリティーゾーンでデプロイに失敗します。

一度にデプロイする先のホストの数を計算するために、CodeDeploy は「ゾーンあたりの正常なホストの最小数」と「正常なホストの最小数」の値の両方を使用します。CodeDeploy では、`[A]` と `[B]` (以下の `[A]` と `[B]`) の計算結果の小さい方を使用します。**

```
[A] = [total-hosts] - [min-healthy-hosts] =
        [number-of-hosts-to-deploy-to-at-once]
```

```
[B] = [total-hosts-per-AZ] - [min-healthy-hosts-per-AZ] =
        [number-of-hosts-to-deploy-to-at-once-per-AZ]
```

一度にデプロイする先のホストの数を決定すると、CodeDeploy はその数のホストに (一度に 1 つのアベイラビリティーゾーンずつ) バッチでデプロイします。オプションでゾーン間に一時停止（または「ベイク時間」）を挟みます。

**例**

デプロイが以下のように設定されている場合:
+ `[total-hosts]` は `200`
+ `[minimum-healthy-hosts]` は `160`
+ `[total-hosts-per-AZ]` は `100` 
+ `[minimum-healthy-hosts-per-AZ]` は `50`

結果...
+ `[A]` = `200 - 160 = 40`
+ `[B]` = `100 - 50 = 50`
+ `40` は `50` より少ない

したがって、CodeDeploy は一度に `40` ホストにデプロイします。

このシナリオでは、次のようにデプロイされます。

1. CodeDeploy は最初のアベイラビリティーゾーンにデプロイします。

   1. CodeDeploy は最初の `40` ホストにデプロイします。

   1. CodeDeploy は次の `40` ホストにデプロイします。

   1. CodeDeploy は残りの `20` ホストにデプロイします。

      これで、1 つ目のアベイラビリティーゾーンへのデプロイが完了しました。

1. (オプション) CodeDeploy は、**[監視期間]** または **[最初のゾーン監視期間を追加]** の設定で定義されているように、最初のゾーンへのデプロイが「ベイク」されるまで待機します。問題がなければ、CodeDeploy は続行します。

1. CodeDeploy は 2 番目のアベイラビリティーゾーンにデプロイします。

   1. CodeDeploy は最初の `40` ホストにデプロイします。

   1. CodeDeploy は次の `40` ホストにデプロイします。

   1. CodeDeploy は残りの `20` ホストにデプロイします。

      これで、2 番目かつ最後のアベイラビリティーゾーンへのデプロイが完了しました。

ゾーン設定機能の詳細と、アベイラビリティーゾーンあたりの正常なインスタンスの最小数を指定する方法については、「[zonal configuration](deployment-configurations-create.md#zonal-config)」を参照してください。