オンプレミスインスタンスを登録するために登録コマンド (IAM ユーザー ARN) を使用 - AWS CodeDeploy

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

オンプレミスインスタンスを登録するために登録コマンド (IAM ユーザー ARN) を使用

重要

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

重要

IAM ユーザーのアクセスキー (永久認証情報) をローテーションする計画を立てていることを確認してください。「」を参照してください。

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

registerコマンドを使用すると、 CodeDeploy 次の操作ができます。

  • コマンドを用いて指定しない場合、オンプレミスインスタンスのために、AWS Identity and Access Management の中に IAM ユーザーを作成します。

  • オンプレミスインスタンスの設定ファイルに IAM ユーザーの認証情報を保存します。

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

  • コマンドの一部にタグを指定した場合、オンプレミスインスタンスにタグを追加します。

注記

register-on-premises-instanceこのコマンドは register コマンドの代わりになります。 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 セッション ARN) を使用してオンプレミスインスタンスを登録します。」を参照してください。

ステップ 1: オンプレミスインスタンスで AWS CLI をインストールして設定

  1. オンプレミスインスタンスに AWS CLI をインストールします。AWS CLI ユーザーガイドGetting set up with the AWS Command Line Interface の指示に従います。

    注記

    CodeDeploy オンプレミスインスタンスを使用するためのコマンドは、AWS CLIのバージョン 1.7.19 以降で使用できます。AWS CLI がすでにインストールしてある場合は、aws --version を呼び出してバージョンをチェックします。

  2. オンプレミスインスタンスに AWS CLI を設定します。AWS CLI ユーザーガイドConfiguring the AWS Command Line Interface の指示に従います。

    重要

    AWS CLI を設定するときに (例えば、aws configure のコマンドを呼び出す場合など)、AWS で指定されている許可に加えて少なくとも以下の オンプレミスインスタンスを設定するための前提条件 のアクセス権限を持つ IAM ユーザーのシークレットキー ID とシークレットアクセスキーを必ず指定します。これにより、 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:::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-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-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }

ステップ 2: 登録コマンドを呼び出す

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

AWS CLI を使用し、register コマンドを呼び出して、以下を指定します。

  • オンプレミスインスタンスを一意に識別する名前 CodeDeploy (--instance-nameオプションを指定)。

    重要

    後でオンプレミスインスタンスを識別するために、特にデバッグのため、オンプレミスインスタンスの一意な特徴を示す名前 (例えば、もしあれば、シリアルナンバーや一意の内部アセット識別子など) を使用することを強くお勧めします。名前に MAC アドレスを指定した場合、MAC アドレスには、コロン (:) など、 CodeDeploy 許可しない文字が含まれることに注意してください。許可された文字の一覧については、「CodeDeploy 限界」を参照してください。

  • 必要に応じて、このオンプレミスインスタンスと関連付ける既存の IAM ユーザーの ARN (--iam-user-arn のオプションを用いて) ユーザーの ARN を取得するには、get-user コマンドを呼び出すか、または、IAM コンソールの Users セクションで IAM ユーザー名を選択した後、Summary セクションで User ARN の値を見つけます。このオプションを指定しない場合、 CodeDeploy AWSアカウントに代わって IAM ユーザーを作成し、オンプレミスインスタンスと関連付けます。

    重要

    --iam-user-arn オプションを指定する場合は、「ステップ 4: オンプレミスインスタンスに設定ファイルを追加」の説明にあるとおり、オンプレミスインスタンスの設定ファイルを手動で作成することも必要です。

    1 つのオンプレミスインスタンスのみに対し、1 人の IAM ユーザーのみを関連付けることができます。複数のオンプレミスインスタンスに 1 人の IAM ユーザーを関連付けようとすると、エラー、オンプレミスインスタンスへのデプロイの失敗、またはオンプレミスインスタンスへのデプロイが無期限の保留状態のままとなります。

  • 必要に応じて、デプロイ先の Amazon EC2 インスタンスのセットを識別するために使用するオンプレミスインスタンスタグのセット (--tagsオプションを指定)。 CodeDeploy 各タグを Key=tag-key,Value=tag-value で指定します (例: Key=Name,Value=Beta Key=Name,Value=WestRegion)。このオプションを指定しない場合、タグは登録されません。後でタグを登録するには、add-tags-to-on-premises-instances コマンドを呼び出します。

  • 必要に応じて、 CodeDeploy でオンプレミスインスタンスを登録する AWS リージョン (--region オプションで指定)。これは、AWS General Reference(例えば、us-west-2)の Region and endpoints にリストされているサポートされたリージョンの 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 ユーザーとアクセス権限および認証情報を使用して認証および操作します。

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

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

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

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

ステップ 3: インストールコマンドを呼び出す

オンプレミスインスタンスから、AWS CLI を使用して install コマンドを呼び出し、以下を指定します。

  • 設定ファイルへのパス (--config-file オプションで指定)。

  • 必要に応じて、オンプレミスインスタンスにある既存の設定ファイルを置き換えるかどうか (--override-config オプションで指定)。指定しない場合、既存の設定ファイルは置き換えられません。

  • 必要に応じて、 CodeDeploy でオンプレミスインスタンスを登録する AWS リージョン (--region オプションで指定)。これは、AWS General Reference(例えば、us-west-2)の Region and endpoints にリストされているサポートされたリージョンの 1 つである必要があります。このオプションを指定しない場合、IAM ユーザーの呼び出しに関連付けられているデフォルトの AWS のリージョンが使用されます。

  • 必要に応じて、 CodeDeploy エージェントをインストールするカスタムロケーション (--agent-installerオプションを指定)。このオプションは、 CodeDeploy CodeDeployのエージェントリポジトリに基づくカスタムバージョンをインストールしようとします GitHub。 CodeDeploy 値は、次のいずれかを含む Amazon S3 バケットへのパスである必要があります。

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

例:

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 インスタンスかどうかを確認します。そうである場合は、エラーメッセージが表示されます。

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

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

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

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

  3. CodeDeploy オンプレミスインスタンスでオンプレミスインスタンスをインストールし、起動します。

ステップ 4: デプロイアプリケーションリビジョンをオンプレミスインスタンスにデプロイする

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

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

重要

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

ステップ 5: オンプレミスインスタンスへのデプロイを追跡

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

Amazon EC2 インスタンスへのデプロイの追跡と同様の方法でオンプレミスインスタンスへのデプロイの追跡をします。手順については、「 CodeDeploy デプロイの詳細の 」を参照してください。

他のオプションについては、「オンプレミスインスタンスオペレーションの管理 CodeDeploy」を参照してください。