

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

# オンプレミスインスタンスを登録するために登録コマンド (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)」を参照してください。