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

CodeDeploy 用の Amazon EC2 インスタンスの作成 (AWS CloudFormation テンプレート)

AWS CloudFormation テンプレートを使用して、Amazon Linux または Windows Server を実行する Amazon EC2 インスタンスをすばやく起動できます。AWS CLI、CodeDeploy コンソール、または AWS API を使用して、テンプレートでインスタンスを起動できます。インスタンスを起動することに加えて、テンプレートでは以下を実行します。

  • CodeDeploy デプロイに参加するアクセス権限をインスタンスに付与するよう AWS CloudFormation に指示します。

  • インスタンスにタグ付けして、デプロイ中に CodeDeploy がそのインスタンスを見つけられるようにします。

  • インスタンスで CodeDeploy エージェントをインストールおよび実行します。

Amazon EC2 インスタンスの設定に AWS CloudFormation を使用する必要はありません。代替方法については、「CodeDeploy のインスタンスの使用」を参照してください。

Ubuntu Server または Red Hat Enterprise Linux (RHEL) を実行する Amazon EC2 インスタンス用の AWS CloudFormation テンプレートは提供していません。

重要

AWS CloudFormation テンプレートを使用して Amazon EC2 インスタンスを起動する場合、呼び出し元の IAM ユーザーには、AWS CloudFormation および AWS サービスと、AWS CloudFormation が依存しているアクションへのアクセス権が必要です。「ステップ 1: IAM ユーザーをプロビジョニングする」のステップに従って呼び出し元の IAM ユーザーをプロビジョニングしていない場合、少なくとも以下のポリシーをアタッチする必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*", "codedeploy:*", "ec2:*", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PassRole", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile" ], "Resource": "*" } ] }

AWS CloudFormation テンプレートを使用して Amazon EC2 インスタンスを起動する (コンソール)

開始する前に、Amazon Linux を実行する Amazon EC2 インスタンスへの SSH アクセスまたは Windows Server を実行するインスタンスへの RDP アクセスを有効にするインスタンスのキーペアが必要です。キーペアのファイル拡張子ではなく、キーペア名のみを入力します。

キーペア名を見つけるには、Amazon EC2 コンソール (https://console.aws.amazon.com/ec2) を開きます。ナビゲーションペインの [ネットワーク & セキュリティ] の下で、[キーペア] を選択し、リストのキーペア名をメモします。

新しいキーペアを生成するには、「Amazon EC2 を使用してキーペアを作成する」を参照してください。AWS General Referenceの「リージョンとエンドポイント」に一覧表示されているリージョンのいずれかにキーペアが作成されていることを確認してください。それ以外の場合、CodeDeploy でインスタンスのキーペアを使用できなくなります。

  1. AWS マネジメントコンソール にサインインした後、AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation) を開きます。

    重要

    CodeDeploy の使用開始」 で使用したのと同じアカウントで AWS マネジメントコンソール にサインインします。ナビゲーションバーのリージョンセレクターで、AWS General Referenceの「リージョンとエンドポイント」に一覧表示されているリージョンの 1 つを選択します。CodeDeploy ではこれらのリージョンのみがサポートされます。

  2. [Create Stack] を選択します。

  3. [テンプレートの選択] で、[Amazon S3 テンプレートの URL を指定する] を選択します。ボックスに、使用するリージョンの AWS CloudFormation テンプレートの場所を入力し、[Next (次へ)] を選択します。

    Region Location of AWS CloudFormation template
    米国東部 (オハイオ) リージョン http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/templates/latest/CodeDeploy_SampleCF_Template.json
    米国東部 (バージニア北部) リージョン http://s3.amazonaws.com/aws-codedeploy-us-east-1/templates/latest/CodeDeploy_SampleCF_Template.json
    米国西部 (北カリフォルニア) リージョン http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/templates/latest/CodeDeploy_SampleCF_Template.json
    米国西部 (オレゴン) リージョン http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/templates/latest/CodeDeploy_SampleCF_Template.json
    カナダ (中部) リージョン http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/templates/latest/CodeDeploy_SampleCF_Template.json
    欧州 (アイルランド) リージョン http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/templates/latest/CodeDeploy_SampleCF_Template.json
    欧州 (ロンドン) リージョン http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/templates/latest/CodeDeploy_SampleCF_Template.json
    http://s3-eu-west-3.amazonaws.com/aws-codedeploy-eu-west-3/templates/latest/CodeDeploy_SampleCF_Template.json
    欧州 (フランクフルト) リージョン http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/templates/latest/CodeDeploy_SampleCF_Template.json
    アジアパシフィック (香港) リージョン http://s3-ap-east-1.amazonaws.com/aws-codedeploy-ap-east-1/templates/latest/CodeDeploy_SampleCF_Template.json
    アジアパシフィック (東京) リージョン http://s3-ap-northeast-1.amazonaws.com/aws-codedeploy-ap-northeast-1/templates/latest/CodeDeploy_SampleCF_Template.json
    アジアパシフィック (ソウル) リージョン http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/templates/latest/CodeDeploy_SampleCF_Template.json
    アジアパシフィック (シンガポール) リージョン http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/templates/latest/CodeDeploy_SampleCF_Template.json
    アジアパシフィック (シドニー) リージョン http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/templates/latest/CodeDeploy_SampleCF_Template.json
    アジアパシフィック (ムンバイ) リージョン http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/templates/latest/CodeDeploy_SampleCF_Template.json
    南米 (サンパウロ) リージョン aws-codedeploy-ap-northeast-1.s3.ap-east-1.amazonaws.com/templates/latest/CodeDeploy_SampleCF_Template.json
  4. [スタック名] ボックスに、スタックの名前 (CodeDeployDemoStack など) を入力します

  5. [Parameters] に以下を入力し、[Next] を選択します。

    • [InstanceCount] には、起動するインスタンスの数を入力します(デフォルトの 1 のままにしておくことをお勧めします)。

    • [InstanceType] には、起動するインスタンスタイプを入力します (またはデフォルトの t1.micro のままにします)。

    • [KeyPairName] には、インスタンスのキー名を入力します。

    • [OperatingSystem] ボックスに Windows と入力して、Windows Server を実行するインスタンスを起動します (またはデフォルトの [Linux] のままにします)。

    • [SSHLocation] には、SSH または RDP でインスタンスに接続するのに使用される IP アドレス範囲を入力します (またはデフォルトの 0.0.0.0/0 のままにします)。

      重要

      デフォルトの 0.0.0.0/0 は、デモンストレーションの目的でのみ提供されます。CodeDeploy では、ポートへの無制限のアクセス権限を持つ Amazon EC2 インスタンスは必要ありません。ベストプラクティスとして、SSH (および HTTP) ポートへのアクセスを制限することをお勧めします。詳細については、「Amazon EC2 インスタンスの保護のヒント」を参照してください。

    • [TagKey] には、デプロイ中にインスタンスを特定するために CodeDeploy によって使用されるインスタンスのタグキーを入力します。(またはデフォルトの [Name] のままにします)。

    • [TagValue] には、デプロイ中にインスタンスを特定するために CodeDeploy によって使用されるインスタンスのタグ値を入力します (またはデフォルトの [CodeDeployDemo] のままにします)。

  6. [Options] ページで、オプションボックスは空白のまま残し、[Next] を選択します。

    重要

    AWS CloudFormation タグ は CodeDeploy タグとは異なります。AWS CloudFormation はタグを使用して、インフラストラクチャの管理を簡略化します。CodeDeploy はたくぎを使用して Amazon EC2 インスタンスを識別します。[パラメータを指定] ページで CodeDeploy タグを指定します。

  7. [Review (確認)] ページの [Capabilities (機能)] で、[I acknowledge that AWS CloudFormation might create IAM resources] ボックスをオンにし、[作成] を選択します。

    AWS CloudFormation がスタックを作成し、Amazon EC2 インスタンスを起動した後、AWS CloudFormation コンソールの [Status (ステータス)] 列に [CREATE_COMPLETE] が表示されます。この処理には数分かかることもあります。

CodeDeploy エージェントが Amazon EC2 インスタンスで実行されていることを確認するには、「CodeDeploy エージェントのオペレーションの管理」を参照して、「CodeDeploy でアプリケーションを作成」に進みます。

AWS CloudFormation テンプレートを使用して Amazon EC2 インスタンスを起動する (AWS CLI)

CodeDeploy の使用開始」の手順に従って、CodeDeploy で使用する AWS CLI をインストールおよび設定します。

create-stack コマンドを呼び出す前に、Amazon Linux を実行する Amazon EC2 インスタンスへの SSH アクセスまたは Windows Server を実行する Amazon EC2 インスタンスへの RDP アクセスを有効にする Amazon EC2 インスタンスのキーペアが必要です。キーペアのファイル拡張子ではなく、キーペア名のみを入力します。

キーペア名を見つけるには、Amazon EC2 コンソール (https://console.aws.amazon.com/ec2) を開きます。ナビゲーションペインの [ネットワーク & セキュリティ] の下で、[キーペア] を選択し、リストのキーペア名をメモします。

キーペアを生成するには、「Amazon EC2 を使用してキーペアを作成する」を参照してください。AWS General Referenceの「リージョンとエンドポイント」に一覧表示されているリージョンのいずれかにキーペアが作成されていることを確認してください。それ以外の場合、CodeDeploy でインスタンスのキーペアを使用できなくなります。

  1. create-stack コマンドの呼び出しに AWS 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

    template-url は使用するリージョンの AWS CloudFormation テンプレートの場所です。

    Region Location of AWS CloudFormation template
    米国東部 (オハイオ) リージョン http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/templates/latest/CodeDeploy_SampleCF_Template.json
    米国東部 (バージニア北部) リージョン http://s3.amazonaws.com/aws-codedeploy-us-east-1/templates/latest/CodeDeploy_SampleCF_Template.json
    米国西部 (北カリフォルニア) リージョン http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/templates/latest/CodeDeploy_SampleCF_Template.json
    米国西部 (オレゴン) リージョン http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/templates/latest/CodeDeploy_SampleCF_Template.json
    カナダ (中部) リージョン http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/templates/latest/CodeDeploy_SampleCF_Template.json
    欧州 (アイルランド) リージョン http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/templates/latest/CodeDeploy_SampleCF_Template.json
    欧州 (ロンドン) リージョン http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/templates/latest/CodeDeploy_SampleCF_Template.json
    http://s3-eu-west-3.amazonaws.com/aws-codedeploy-eu-west-3/templates/latest/CodeDeploy_SampleCF_Template.json
    欧州 (フランクフルト) リージョン http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/templates/latest/CodeDeploy_SampleCF_Template.json
    アジアパシフィック (香港) リージョン http://s3-ap-east-1.amazonaws.com/aws-codedeploy-ap-east-1/templates/latest/CodeDeploy_SampleCF_Template.json
    アジアパシフィック (東京) リージョン http://s3-ap-northeast-1.amazonaws.com/aws-codedeploy-ap-northeast-1/templates/latest/CodeDeploy_SampleCF_Template.json
    アジアパシフィック (ソウル) リージョン http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/templates/latest/CodeDeploy_SampleCF_Template.json
    アジアパシフィック (シンガポール) リージョン http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/templates/latest/CodeDeploy_SampleCF_Template.json
    アジアパシフィック (シドニー) リージョン http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/templates/latest/CodeDeploy_SampleCF_Template.json
    アジアパシフィック (ムンバイ) リージョン http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/templates/latest/CodeDeploy_SampleCF_Template.json
    南米 (サンパウロ) リージョン aws-codedeploy-ap-northeast-1.s3.ap-east-1.amazonaws.com/templates/latest/CodeDeploy_SampleCF_Template.json

    このコマンドでは、指定された Amazon S3 バケットの AWS CloudFormation テンプレートを使用して、CodeDeployDemoStack という名前の AWS CloudFormation スタックを作成します。Amazon EC2 インスタンスは、t1.micro インスタンスタイプに基づいていますが、任意のタイプを使用できます。このインスタンスは、CodeDeployDemo の値でタグ付けされていますが、任意の値でタグ付けできます。指定されたインスタンスのキーペアが適用されています。

  2. CodeDeployDemoStack という名前の AWS CloudFormation スタックが正しく作成されたことを確認するには、describe-stacks コマンドを呼び出します。

    aws cloudformation describe-stacks --stack-name CodeDeployDemoStack --query "Stacks[0].StackStatus" --output text

    CREATE_COMPLETE の値が返されるまで進まないでください。

CodeDeploy エージェントが Amazon EC2 インスタンスで実行されていることを確認するには、「CodeDeploy エージェントのオペレーションの管理」を参照して、「CodeDeploy でアプリケーションを作成」に進みます。