為 CodeDeploy (AWS CloudFormation 範本) 建立 Amazon EC2 執行個體 - AWS CodeDeploy

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為 CodeDeploy (AWS CloudFormation 範本) 建立 Amazon EC2 執行個體

您可以使用我們的 AWS CloudFormation 範本快速啟動執行 Amazon Linux 或視窗伺服器的 Amazon EC2 執行個體。您可以使用 AWS CLI、主 CodeDeploy 控台或 AWS API 透過範本啟動執行個體。除了啟動執行個體之外,範本還會執行下列動作:

  • 指示授 AWS CloudFormation 與執行個體參與 CodeDeploy部署的權限。

  • 標記執行個體, CodeDeploy 以便在部署期間找到它。

  • 在執行個體上安裝並執行 CodeDeploy 代理程式。

您不必使用我們的設 AWS CloudFormation 定 Amazon EC2 執行個體。如需替代方案,請參閱使用的例證 CodeDeploy

我們不會為執行 Ubuntu 伺服器或 RHEL (RHEL) 的 Amazon EC2 執行個體提供 AWS CloudFormation 範本。

開始之前

在您可以使用 AWS CloudFormation 範本啟動 Amazon EC2 執行個體之前,請務必完成以下步驟。

  1. 請確定您已建立管理使用者,如中所述步驟 1:設定。仔細檢查用戶是否具有以下最低權限,並添加任何不存在的權限:

    • 雲形:*

    • codedeploy:*

    • ec2:*

    • IAM:AddRoleToInstanceProfile

    • IAM:CreateInstanceProfile

    • IAM:CreateRole

    • IAM:DeleteInstanceProfile

    • IAM:DeleteRole

    • IAM:DeleteRolePolicy

    • IAM:GetRole

    • IAM:DeleteRolePolicy

    • IAM:PutRolePolicy

    • IAM:RemoveRoleFromInstanceProfile

  2. 請確定您擁有執行個體金鑰組,以啟用對執行 Amazon Linux 之 Amazon EC2 執行個體的 SSH 存取權,或對執行 Windows 伺服器執行個體的 RDP 存取權。

    若要尋找 key pair 名稱,請在 https://console.aws.amazon.com/ec2 開啟 Amazon EC2 主控台。在導覽窗格中,於 Network & Security (網路與安全) 下選擇 Key Pairs (金鑰對),然後記下清單中的金鑰對。

    若要產生新的 key pair,請參閱使用 Amazon EC2 建立 key pair。請確定 key pair 是在區域和中的端點中列出的其中一個區域中建立AWS 一般參考。否則,您無法搭配使用執行個體 key pair CodeDeploy。

使用 AWS CloudFormation 範本 (主控台) 啟動 Amazon EC2 執行個體

  1. 請登入 AWS Management Console 並開啟 AWS CloudFormation 主控台,網址為 https://console.aws.amazon.com/cloudformation

    重要

    使用您所使 AWS Management Console 用的相同帳戶登入開始使用 CodeDeploy。在導覽列的區域選取器中,選擇 [區域] 中列出的其中一個區域和中的端點AWS 一般參考。 CodeDeploy 僅支援這些區域。

  2. 選擇 Create Stack (建立堆疊)。

  3. [選擇範本] 中,選擇 [指定 Amazon S3 範本網址]。在方塊中,輸入您所在地區的 AWS CloudFormation 範本位置,然後選擇 [下一步]。

    區域 AWS CloudFormation 範本的位置
    美國東部 (俄亥俄) 區域 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-il-central-1.amazonaws.com/aws-codedeploy-il-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
    亞太區域 (墨爾本) 區域 https://aws-codedeploy-ap-southeast-4.s3.ap-southeast-4.amazonaws.com/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.sa-east-1.amazonaws.com/templates/latest/CodeDeploy_SampleCF_Template.json
  4. Stack name (堆疊名稱) 方塊中,輸入堆疊的名稱 (例如,CodeDeployDemoStack)。

  5. Parameters (參數) 中,輸入下列資訊,然後選擇 Next (下一步)

    • 針對 InstanceCount,輸入您要啟動的執行個體數目。(建議您保留預設值 1)。

    • 針對 InstanceType,輸入您要啟動的執行個體類型 (或保留預設值 t1.micro)。

    • 在中 KeyPairName,輸入執行個體 key pair 名稱。只輸入金鑰對名稱,而非金鑰對副檔名。

    • 對於 OperatingSystem「方塊」,請鍵入Windows以啟動執行 Windows 伺服器的執行個體 (或保留 Linux 的預設值)。

    • 針對 SSHLocation,輸入 IP 地址範圍,以用於使用 SSH 或 RDP 連線至執行個體 (或保留預設值 0.0.0.0/0)。

      重要

      提供的0.0.0.0/0預設值僅用於展示目的。 CodeDeploy 不需要 Amazon EC2 執行個體不受限制地存取連接埠。根據最佳實務,建議您限制對 SSH (和 HTTP) 連接埠的存取。如需詳細資訊,請參閱保護 Amazon EC2 執行個體的秘訣

    • 對於 TagKey,輸入部署期間 CodeDeploy 要用來識別執行個體的執行個體標記金鑰 (或保留「名稱」的預設值)。

    • 針對 TagValue,輸入在部署期間用 CodeDeploy 來識別執行個體的執行個體標記值 (或保留預設值 CodeDeployDemo)。

  6. Options (選項) 頁面上,將選項方塊空白,然後選擇 Next (下一步)

    重要

    AWS CloudFormation 標籤與標 CodeDeploy 籤不同。 AWS CloudFormation 使用標籤來簡化基礎結構的管理。 CodeDeploy 使用標籤來識別 Amazon EC2 執行個體。您在「指定參數」頁面上指定了 CodeDeploy標籤。

  7. 在 [檢閱] 頁面的 [功能] 中,選取 [我確認 AWS CloudFormation 可能會建立 IAM 資源] 方塊,然後選擇 [建立]。

    建立堆疊並啟動 Amazon EC2 執行個體之後 AWS CloudFormation ,在 AWS CloudFormation 主控台中,「狀態」欄中會顯示 CREATE_COMPLETE此程序需要幾分鐘的時間。

若要確認 CodeDeploy 代理程式是否在 Amazon EC2 執行個體上執行,請參閱管理 CodeDeploy 代理程式作,然後繼續執行建立應用程式 CodeDeploy

使用 AWS CloudFormation 範本 (AWS CLI) 啟動 Amazon EC2 執行個體

  1. 在呼叫create-stack命令時使用我們的 AWS CloudFormation 範本。此堆疊將啟動已安裝 CodeDeploy 代理程式的新 Amazon EC2 執行個體。

    若要啟動執行 Amazon Linux 的亞馬遜 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

    若要啟動執行視窗伺服器的 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

    鑰名稱是執行個體 key pair 名稱。只輸入金鑰對名稱,而非金鑰對副檔名。

    模板網址是您所在地區的 AWS CloudFormation 模板的位置:

    區域 AWS CloudFormation 範本的位置
    美國東部 (俄亥俄) 區域 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-il-central-1.amazonaws.com/aws-codedeploy-il-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
    亞太區域 (墨爾本) 區域 https://aws-codedeploy-ap-southeast-4.s3.ap-southeast-4.amazonaws.com/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.sa-east-1.amazonaws.com/templates/latest/CodeDeploy_SampleCF_Template.json

    此命令會使用指定 Amazon S3 儲存貯體中的 AWS CloudFormation 範本建立名CodeDeployDemoStack為的 AWS CloudFormation 堆疊。Amazon EC2 執行個體以 t1.micro 執行個體類型為基礎,但您可以使用任何類型。它會加上 CodeDeployDemo 值的標籤,但您可以將它加上任何值的標籤。它已套用指定的執行個體金鑰對。

  2. 調用命describe-stacks令以驗證命名的 AWS CloudFormation 堆棧CodeDeployDemoStack是否成功創建:

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

    傳回 CREATE_COMPLETE 值之前,請不要繼續進行。

若要確認 CodeDeploy 代理程式是否在 Amazon EC2 執行個體上執行,請參閱管理 CodeDeploy 代理程式作,然後繼續執行建立應用程式 CodeDeploy