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

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

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

重要

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

重要

IAM ユーザーのアクセスキー (永続的認証情報) をローテーションする計画を立ててください。アクセスキーのローテーションの詳細については、「アクセスキーの更新」を参照してください。

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

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

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

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

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

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

注記

register-on-premises-instance コマンドは register https://docs.aws.amazon.com/cli/latest/reference/deploy/register.html コマンドの代替です。オンプレミスインスタンスを設定し、主に自分で に登録してタグ付けする場合は、 register-on-premises-instance CodeDeploy コマンドを使用します。また、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-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-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/*" ] } ] }
    注記

    前述の Amazon S3 バケットのいずれかにアクセスしようとしたときにアクセス拒否エラーが表示される場合は、バケットのリソース ARN の /* の部分 (例: arn:aws:s3:::aws-codedeploy-sa-east-1) を省略してみてください。

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

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

を使用して AWS CLI 登録https://docs.aws.amazon.com/cli/latest/reference/deploy/register.htmlコマンドを呼び出し、以下を指定します。

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

    重要

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

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

    重要

    --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-onpremises-instances コマンドを呼び出します。

  • オプションで、オンプレミスインスタンスが登録される AWS リージョン CodeDeploy ( --regionオプションを指定)。これは、「AWS 全般のリファレンス」(例: us-west-2) の「リージョンエンドポイント」にリストされているサポートされたリージョンの 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 呼び出し、以下を指定します。

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

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

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

  • オプションで、 CodeDeploy エージェントをインストールするカスタムの場所 ( --agent-installerオプションを使用)。このオプションは、 が公式にサポート CodeDeploy していない CodeDeploy エージェントのカスタムバージョン ( のCodeDeployエージェントリポジトリに基づくカスタムバージョンなど) をインストールする場合に便利です GitHub。値は、次のいずれかを含む Amazon S3 バケットへのパスである必要があります。

    • CodeDeploy エージェントインストールスクリプト (Linux または Unix ベースのオペレーティングシステムの場合、 のCodeDeployエージェントリポジトリのインストールファイルと似ています GitHub)。

    • CodeDeploy エージェントインストーラパッケージ (.msi) ファイル (Windows ベースのオペレーティングシステム用)。

    このオプションを指定しない場合、 は、オンプレミスインスタンス上のオペレーティングシステムと互換性のある公式にサポートされているバージョンの CodeDeploy エージェントを、独自の場所からインストールするよう 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 インスタンスかどうかを確認します。そうである場合は、エラーメッセージが表示されます。

  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 Server、Ubuntu Server、または Red Hat Enterprise Linux) を使用してオンプレミスインスタンスにアプリケーションをデプロイするステップ 2: サンプルのアプリケーションリビジョンを作成する で説明してあるものを作成できます。

重要

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

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

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

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

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