AWS CodeDeploy
ユーザーガイド (API バージョン 2014-10-06)

CodeDeploy と連動するように Amazon EC2 インスタンスを設定する

これらの手順は、CodeDeploy デプロイで使用するために、Amazon Linux、Ubuntu Server、Red Hat Enterprise Linux (RHEL)、あるいは Windows Server を実行している Amazon EC2 インスタンスを設定する方法を示します。

注記

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

ステップ 1: IAM インスタンスプロファイルが Amazon EC2 インスタンスにアタッチされていることを確認する

  1. AWS マネジメントコンソールにサインインをしたあと、https://console.aws.amazon.com/ec2/ にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[Instances] の下にある [Instances] を選択します。

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

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

    フィールドが空の場合は、IAM インスタンスプロファイルをインスタンスにアタッチすることができます。詳細については、「IAM ロールをインスタンスにアタッチする」を参照してください。

ステップ 2: アタッチされた IAM インスタンスプロファイルが正しいアクセス権限を持っていることを確認する

  1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

  2. ナビゲーションペインで [Roles (ロール) ] を選択します。

  3. 前のセクションのステップ 4 で書き留めた IAM ロールの名前を参照し、選択します。

    注記

    ステップ 3: CodeDeploy のサービスロールを作成する」の手順に従って作成したサービスロールの代わりに AWS CloudFormation テンプレートにより生成されたサービスロールを使用する場合、次の点に注意してください。

    AWS CloudFormation テンプレートの一部のバージョンでは、生成されて Amazon EC2 インスタンスにアタッチされた IAM インスタンスプロファイルの表示名は、IAM コンソールの表示名と同じではありません。たとえば、IAM インスタンスプロファイルが CodeDeploySampleStack-expnyi6-InstanceRoleInstanceProfile-IK8J8A9123EX の表示名で、IAM コンソールの IAM インスタンスプロファイルが CodeDeploySampleStack-expnyi6-InstanceRole-C5P33V1L64EX の表示名である可能性があります。

    IAM コンソールのインスタンスプロファイルを特定するには、CodeDeploySampleStack-expnyi6-InstanceRole のプレフィックスがどちらでも同じことを確認します。これらの表示名が異なる理由に関する詳細については、「インスタンスプロファイル」を参照してください。

  4. [Trust Relationships] タブを選択します。[信頼されたエンティティ] に [ID プロバイダー ec2.amazonaws.com] を読み取るエントリがない場合、この Amazon EC2 インスタンスを使用できません。停止し、CodeDeploy のインスタンスの使用 の情報を使用して Amazon EC2 インスタンスを作成します。

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

    [The identity provider(s) ec2.amazonaws.com] を読み取るエントリがあり、Amazon S3 バケットにアプリケーションを保存する場合は、[Permissions (アクセス許可)] タブを選択します。

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

  6. [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"}]}

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

    { "Version": "2012-10-17", "Statement": [ { "Action": [ ... Some actions may already be listed here ... "s3:Get*", "s3:List*" ... Some more actions may already be listed here ... ], ... } ] }

    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:::replace-with-your-s3-bucket-name/*", "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-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }

ステップ 3: Amazon EC2 インスタンスにタグを付ける

Amazon EC2 インスタンスにタグをつけて、CodeDeploy がデプロイ中に見つけられるようにする方法に関する詳細について、「コンソールでタグを使用する」を参照してから、このページに戻ります。

注記

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

ステップ 4: AWS CodeDeploy エージェントを Amazon EC2 インスタンスにインストールする

CodeDeploy エージェントを Amazon EC2 インスタンスにインストールして、動作していることを確認する方法に関する詳細について、「CodeDeploy エージェントのオペレーションの管理」を参照してから、「CodeDeploy でアプリケーションを作成」に進みます。