

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

# 為 CodeDeploy (AWS CLI 或 Amazon EC2 主控台） 建立 Amazon EC2 執行個體
<a name="instances-ec2-create"></a>

這些指示說明如何啟動已設定為在 CodeDeploy 部署中使用的新 Amazon EC2 執行個體。

您可以使用我們的 CloudFormation 範本來啟動執行 Amazon Linux 或 Windows Server 的 Amazon EC2 執行個體，該執行個體已設定為在 CodeDeploy 部署中使用。我們不會為執行 Ubuntu Server 或 Red Hat Enterprise Linux (RHEL) 的 Amazon EC2 執行個體提供 CloudFormation 範本。如需使用範本之替代方案的詳細資訊，請參閱[使用 CodeDeploy 的執行個體](instances.md)。

您可以使用 Amazon EC2 主控台 AWS CLI或 Amazon EC2 APIs 來啟動 Amazon EC2 執行個體。

## 啟動 Amazon EC2 執行個體 （主控台）
<a name="instances-ec2-create-console"></a>

### 先決條件
<a name="instances-ec2-create-console-prerequisites"></a>

如果您尚未這麼做，請遵循 中的指示[CodeDeploy 入門](getting-started-codedeploy.md)來設定 並 AWS CLI 建立 IAM 執行個體描述檔。

### 啟動 Amazon EC2 執行個體
<a name="instances-ec2-create-console-steps"></a>

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)：// 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Instances (執行個體)**，然後選擇 **Launch Instance (啟動執行個體)**。

1. 在 **Step 1: Choose an Amazon Machine Image (AMI) (步驟 1：選擇 Amazon Machine Image (AMI))** 頁面上，從 **Quick Start (快速入門)** 標籤中找出您想要使用的作業系統和版本，然後選擇 **Select (選取)**。您必須選擇 CodeDeploy 支援的 Amazon EC2 AMI 作業系統。如需詳細資訊，請參閱[CodeDeploy 代理程式支援的作業系統](codedeploy-agent.md#codedeploy-agent-supported-operating-systems)。

1. 在**步驟 2：選擇執行個體類型**頁面上，選擇任何可用的 Amazon EC2 執行個體類型，然後選擇**下一步：設定執行個體詳細資訊**。

1. 在**步驟 3：設定執行個體詳細資訊**頁面的 **IAM 角色**清單中，選擇您在 中建立的 IAM 執行個體角色[步驟 4：為您的 Amazon EC2 執行個體建立 IAM 執行個體描述檔](getting-started-create-iam-instance-profile.md)。如果您已使用建議的角色名稱，則選擇 **CodeDeployDemo-EC2-Instance-Profile**。如果您已建立自己的角色名稱，則請選取該名稱。
**注意**  
如果**網路**清單中未顯示預設虛擬私有雲端 (VPC)，您必須選擇或建立 Amazon VPC 和子網路。選擇 **Create new VPC (建立新 VPC)** 或 **Create new subnet (建立新的子網路)**，或兩者皆選。如需詳細資訊，請參閱[您的 VPC 和子網路](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)。

1. 選擇 **Next: Add Storage (下一步：新增儲存體)**。

1. 將 **Step 4: Add Storage (步驟 4：新增儲存)** 頁面保持不變，然後選擇 **Next: Add Tags (下一步：新增標籤)**。

1. 在 **Step 5: Add Tags (步驟 5：新增標籤)** 頁面上，選擇 **Add Tag (新增標籤)**。

1.  在 **Key (金鑰)** 方塊中，輸入 **Name**。在 **Value (值)** 方塊中，輸入 **CodeDeployDemo**。
**重要**  
**Key (金鑰)** 和 **Value (值)** 方塊的內容區分大小寫。

1. 選擇 **Next: Configure Security Group (下一步：設定安全群組)**。

1. 在 **Step 6: Configure Security Group (步驟 6：設定安全群組)** 頁面上，選取 **Create a new security group (建立新的安全群組)** 選項。

   針對執行 Amazon Linux、Ubuntu Server 或 RHEL 的 Amazon EC2 執行個體設定預設 SSH 角色。針對執行 Windows Server 的 Amazon EC2 執行個體設定預設 RDP 角色。

1. 如果您想要開啟 HTTP 連接埠，請選擇 **Add Rule (新增規則)** 按鈕，然後從 **Type (類型)** 下拉式清單中選擇 **HTTP**。接受預設 **Source (來源)** 值 **Custom 0.0.0.0/0**，然後選擇 **Review and Launch (檢閱並啟動)**。
**注意**  
在生產環境中，我們建議限制對 SSH、RDP 和 HTTP 連接埠的存取，而不是指定 **Anywhere 0.0.0.0/0**。CodeDeploy 不需要不受限制的連接埠存取，也不需要 HTTP 存取。如需詳細資訊，請參閱[保護 Amazon EC2 執行個體安全的秘訣](https://aws.amazon.com/articles/1233)。

   如果出現 **Boot from General Purpose (SSD) (以一般用途 (SSD) 開機)** 對話方塊，則請遵循說明，然後選擇 **Next (下一步)**。

1. 將 **Step 7: Review Instance Launch (步驟 7：檢閱執行個體啟動)** 頁面保持不變，然後選擇 **Launch (啟動)**。

1. 在 **Select an existing key pair or create a new key pair (選取現有金鑰對或建立新的金鑰對)** 對話方塊中，選擇 **Choose an existing key pair (選擇現有的金鑰對)** 或 **Create a new key pair (建立新的金鑰對)**。若您已經設定 Amazon EC2 執行個體金鑰對，則可以在這裡選擇它。

   如果您還沒有 Amazon EC2 執行個體金鑰對，則請選擇 **Create a new key pair** (建立新的金鑰對)，然後給予可輕鬆辨識的名稱。選擇**下載金鑰對**，將 Amazon EC2 執行個體金鑰對下載至您的電腦。
**重要**  
如果您想要使用 SSH 或 RDP 存取 Amazon EC2 執行個體，您必須擁有金鑰對。

1. 選擇 **Launch Instances** (啟動執行個體)。

1. 選擇 Amazon EC2 執行個體的 ID。在啟動執行個體並通過所有檢查之前，請不要繼續進行。

### 安裝 CodeDeploy 代理程式
<a name="instances-ec2-create-console-agent"></a>

在 CodeDeploy 部署中使用 CodeDeploy 代理程式之前，必須先在 Amazon EC2 執行個體上安裝 CodeDeploy 代理程式。如需詳細資訊，請參閱[安裝 CodeDeploy 代理程式](codedeploy-agent-operations-install.md)。

**注意**  
您可以在主控台中建立部署群組時，設定 CodeDeploy 代理程式的自動安裝和更新。

## 啟動 Amazon EC2 執行個體 (CLI)
<a name="instances-ec2-create-cli"></a>

### 先決條件
<a name="instances-ec2-create-cli-prerequisites"></a>

如果您尚未這麼做，請遵循 中的指示[CodeDeploy 入門](getting-started-codedeploy.md)來設定 並 AWS CLI 建立 IAM 執行個體描述檔。

### 啟動 Amazon EC2 執行個體
<a name="instances-ec2-create-cli-steps"></a>

1. **僅適用於 Windows Server** 如果您正在建立執行 Windows Server 的 Amazon EC2 執行個體，請呼叫 **create-security-group**和 **authorize-security-group-ingress**命令來建立安全群組，以允許 RDP 存取 （預設為不允許） 和 HTTP 存取。例如，若要建立名為 *CodeDeployDemo-Windows-Security-Group* 的安全群組，請執行下列命令，一次一個：

   ```
   aws ec2 create-security-group --group-name CodeDeployDemo-Windows-Security-Group --description "For launching Windows Server images for use with CodeDeploy"
   ```

   ```
   aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security-Group --to-port 3389 --ip-protocol tcp --cidr-ip 0.0.0.0/0 --from-port 3389
   ```

   ```
   aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security-Group --to-port 80 --ip-protocol tcp --cidr-ip 0.0.0.0/0 --from-port 80
   ```
**注意**  
基於示範，這些命令會建立安全群組，以允許透過連接埠 3389 無限制地存取 RDP，或透過連接埠 80 無限制地存取 HTTP。最佳實務是建議限制對 RDP 和 HTTP 連接埠的存取。CodeDeploy 不需要不受限制的連接埠存取，也不需要 HTTP 存取。如需詳細資訊，請參閱[保護 Amazon EC2 執行個體安全的秘訣](https://aws.amazon.com/articles/1233)。

1. 呼叫 **run-instances**命令來建立和啟動 Amazon EC2 執行個體。

   在您呼叫此命令之前，需要收集下列資訊：
   + 您用於執行個體的 Amazon Machine Image (AMI) ID (*ami-id*)。若要取得 ID，請參閱[尋找合適的 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html)。
   + 您建立的 Amazon EC2 執行個體類型名稱 (*instance-type*)，例如 `t1.micro`。如需清單，請參閱 [Amazon EC2 執行個體類型](https://aws.amazon.com/ec2/instance-types/)。
   + IAM 執行個體描述檔的名稱，具有存取 Amazon S3 儲存貯體的許可，該儲存貯體存放您區域的 CodeDeploy 代理程式安裝檔案。

     如需建立 IAM 執行個體描述檔的詳細資訊，請參閱 [步驟 4：為您的 Amazon EC2 執行個體建立 IAM 執行個體描述檔](getting-started-create-iam-instance-profile.md)。
   + Amazon EC2 執行個體金鑰對的名稱 (*key-name*)，可讓 SSH 存取執行 Amazon Linux、Ubuntu Server 的 Amazon EC2 執行個體，或讓 RHEL 或 RDP 存取執行 Windows Server 的 Amazon EC2 執行個體。
**重要**  
只輸入金鑰對名稱，而非金鑰對副檔名。例如，*my-keypair*，而非 *my-keypair.pem*。

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

     若要產生金鑰對，請參閱[使用 Amazon EC2 建立金鑰對](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair)。請務必在 [區域和端點](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)中列出的其中一個區域中建立金鑰對*AWS 一般參考*。否則，您將無法搭配 CodeDeploy 使用 Amazon EC2 執行個體金鑰對。

   **適用於 Amazon Linux、RHEL 和 Ubuntu Server**

   若要呼叫 **run-instances**命令來啟動執行 Amazon Linux、Ubuntu Server 或 RHEL 的 Amazon EC2 執行個體，並連接您在 中建立的 IAM 執行個體描述檔[步驟 4：為您的 Amazon EC2 執行個體建立 IAM 執行個體描述檔](getting-started-create-iam-instance-profile.md)。例如：

   ```
   aws ec2 run-instances \
     --image-id ami-id \
     --key-name key-name \
     --count 1 \
     --instance-type instance-type \
     --iam-instance-profile Name=iam-instance-profile
   ```
**注意**  
此命令會為 Amazon EC2 執行個體建立預設安全群組，允許存取多個連接埠，包括透過連接埠 22 進行無限制的 SSH 存取，或者透過連接埠 80 進行 HTTP 存取。最佳實務是，我們建議僅限制對 SSH 和 HTTP 連接埠的存取。CodeDeploy 不需要不受限制的連接埠存取，也不需要 HTTP 連接埠存取。如需詳細資訊，請參閱[保護 Amazon EC2 執行個體安全的秘訣](https://aws.amazon.com/articles/1233)。

   **對於 Windows Server**

   若要呼叫 **run-instances**命令來啟動執行 Windows Server 的 Amazon EC2 執行個體，並連接您在 中建立的 IAM 執行個體描述檔[步驟 4：為您的 Amazon EC2 執行個體建立 IAM 執行個體描述檔](getting-started-create-iam-instance-profile.md)，並指定您在步驟 1 中建立的安全群組名稱。例如：

   ```
   aws ec2 run-instances --image-id ami-id --key-name key-name --count 1 --instance-type instance-type --iam-instance-profile Name=iam-instance-profile --security-groups CodeDeploy-Windows-Security-Group
   ```

   這些命令會使用指定的 AMI、金鑰對和執行個體類型啟動單一 Amazon EC2 執行個體，並使用指定的 IAM 執行個體描述檔，並在啟動期間執行指定的指令碼。

1. 請記下輸出中的 `InstanceID` 值。如果您忘記此值，您可以稍後對 Amazon EC2 執行個體金鑰對呼叫 **describe-instances**命令來取得。

   ```
   aws ec2 describe-instances --filters "Name=key-name,Values=keyName" --query "Reservations[*].Instances[*].[InstanceId]" --output text
   ```

   使用執行個體 ID 呼叫 **create-tags**命令，該命令會標記 Amazon EC2 執行個體，以便 CodeDeploy 稍後可以在部署期間找到它。在下列範例中，標籤名為 **CodeDeployDemo**，但您可以指定任何您想要的 Amazon EC2 執行個體標籤。

   ```
   aws ec2 create-tags --resources instance-id --tags Key=Name,Value=CodeDeployDemo
   ```

   您可以同時將多個標籤套用至執行個體。例如：

   ```
   aws ec2 create-tags --resources instance-id --tags Key=Name,Value=testInstance Key=Region,Value=West Key=Environment,Value=Beta
   ```

   若要確認 Amazon EC2 執行個體已啟動並通過所有檢查，請使用執行個體 ID 呼叫 **describe-instance-status**命令。

   ```
   aws ec2 describe-instance-status --instance-ids instance-id --query "InstanceStatuses[*].InstanceStatus.[Status]" --output text 
   ```

如果執行個體已啟動並通過所有檢查，則 `ok` 會出現在輸出中。

### 安裝 CodeDeploy 代理程式
<a name="instances-ec2-create-console-agent"></a>

在 CodeDeploy 部署中使用 CodeDeploy 代理程式之前，必須先在 Amazon EC2 執行個體上安裝 CodeDeploy 代理程式。如需詳細資訊，請參閱[安裝 CodeDeploy 代理程式](codedeploy-agent-operations-install.md)。

**注意**  
您可以在主控台中建立部署群組時，設定 CodeDeploy 代理程式的自動安裝和更新。