

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

# 了解如何為 EC2 建立 Amazon ECS Windows 任務
<a name="getting-started-ecs-ec2-v2"></a>

在主控台中註冊任務定義、建立叢集與服務，以透過 EC2 來開始使用 Amazon ECS。

完成下列步驟，以使用 EC2 啟動類型來開始使用 Amazon ECS。

## 先決條件
<a name="getting-started-ec2-prereqs"></a>

開始之前，請完成[設定以使用 Amazon ECS。](get-set-up-for-amazon-ecs.md)中的步驟，並確認 IAM 使用者擁有 `AdministratorAccess` IAM 政策範例中指定的許可。

主控台會嘗試自動建立任務執行 IAM 角色，該角色是 Fargate 任務的必要項目。若要確保主控台可成功建立此 IAM 角色，下列其中一項必須為 True：
+ 您的使用者具有管理員存取。如需詳細資訊，請參閱[設定以使用 Amazon ECS。](get-set-up-for-amazon-ecs.md)。
+ 您的使用者具有建立服務角色的 IAM 許可。如需詳細資訊，請參閱[建立角色以將許可委派給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。
+ 具備管理員存取的使用者已手動建立任務執行角色，讓其可在帳戶上提供使用。如需詳細資訊，請參閱[Amazon ECS 任務執行 IAM 角色](task_execution_IAM_role.md)。

**重要**  
使用任務定義建立服務時選取的安全群組，必須為入站流量開放連接埠 80。將下列傳入規則新增至安全群組。如需有關如何建立安全群組的資訊，請參閱 *Amazon EC2 User Guide* 中的 [Create a security group for your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-security-group.html)。  
Type (類型)：HTTP
Protocol (通訊協定)：TCP
連接埠範圍：80
來源：Anywhere (`0.0.0.0/0`)

## 步驟 1：建立叢集
<a name="getting-started-ec2-cluster-v2"></a>

Amazon ECS 叢集是任務、服務和容器執行個體的邏輯分組。

下列步驟將逐步引導您使用一個已註冊至叢集的 Amazon EC2 執行個體來建立叢集，以便讓我們在該叢集上執行任務。若未提及特定欄位，請保留預設主控台值。

**建立新叢集 (Amazon ECS 主控台)**

在開始之前，請指派適當的 IAM 許可。如需詳細資訊，請參閱[Amazon ECS 叢集範例](security_iam_id-based-policy-examples.md#IAM_cluster_policies)。

1. 開啟主控台，網址為 [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)。

1. 從導覽列中選取要使用的「區域」。

1. 在導覽窗格中，選擇**叢集**。

1. 在 **Clusters** (叢集) 頁面上，選擇 **Create cluster** (建立叢集)。

1. 在 **Cluster configuration** (叢集組態) 下的 **Cluster name** (叢集名稱) 中，輸入唯一的名稱。

   名稱可以包含最多 255 個字母 (大小寫)、數字與連字號。

1. (選用) 若要變更任務和服務啟動所在的 VPC 和子網路，請在 **Networking** (聯網) 下，執行下列任一操作：
   + 若要移除子網路，請在 **Subnets** (子網路) 下，對您要移除之每一個子網路選擇 **X**。
   + 若要變更為非 **default** (預設) VPC，請在 **VPC** 下，選擇現有的 **VPC**，然後在 **Subnets** (子網路) 下選擇各個子網路。

1. 若要將 Amazon EC2 執行個體新增至叢集，展開 **Infrastructure** (基礎設施)，然後選取 **Amazon EC2 執行個體**。接下來，設定作為容量提供者的 Auto Scaling 群組：

   1. 要使用現有 Auto Scaling 群組，請從 **Auto Scaling group (ASG)** (Auto Scaling 群組 (ASG)) 中選取該群組。

   1. 若要建立 Auto Scaling 群組，請從 **Auto Scaling group (ASG)** (Auto Scaling 群組 (ASG)) 中選取 **Create new group** (建立新群組)，然後提供有關該群組的下列詳細資訊：
      + 針對 **Operating system/Architecture** (作業系統/架構)，為 Auto Scaling 群組執行個體選擇 Amazon ECS 最佳化 AMI。
      + 對於 **EC2 instance type** (EC2 執行個體類型)，選擇適合您工作負載的執行個體類型。如需不同執行個體類型的詳細資訊，請參閱 [Amazon EC2 執行個體](https://aws.amazon.com/ec2/instance-types/)。

         如果 Auto Scaling 群組使用相同或類似的執行個體類型，則受管擴展效果最佳。
      + 對於 **SSH key pair** (SSH 金鑰對)，選擇在連線到執行個體時證明您身分的金鑰對。
      + 對於 **Capacity** (容量)，輸入 Auto Scaling 群組中要啟動的最小執行個體數和最大執行個體數。Amazon EC2 執行個體在您的 AWS 資源中存在時會產生成本。如需詳細資訊，請參閱 [Amazon EC2 定價](https://aws.amazon.com/ec2/pricing/)。

1. (選用) 若要開啟 Container Insights，請展開 **Monitoring** (監控)，然後開啟 **Use Container Insights** (使用 Container Insights)。

1. (選用) 若要管理叢集標籤，請展開 **Tags** (標籤)，然後執行下列其中一項操作：

   [新增標籤] 選擇**新增標籤**，並執行下列動作：
   + 在**金鑰**欄位中，輸入金鑰名稱。
   + 在**值**欄位中，輸入金鑰值。

   [移除標籤] 選擇標籤「金鑰」和「值」右側的**移除**。

1. 選擇**建立**。

## 步驟 2：註冊任務定義
<a name="getting-started-ec2-task-def-v2"></a>

**向 註冊範例任務定義 AWS 管理主控台**

1. 在導覽窗格中，選擇 **Task Definitions** (任務定義)。

1. 選擇 **Create new task definitio** (建立新任務定義)、**Create new task definition with JSON** (使用 JSON 建立新的任務定義)。

1. 複製下列任務定義範例並貼到方塊中，然後選擇 **Save** (儲存)。

   ```
   {
       "containerDefinitions": [
           {
               "command": ["New-Item -Path C:\\inetpub\\wwwroot\\index.html -Type file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p>'; C:\\ServiceMonitor.exe w3svc"],
               "entryPoint": [
                   "powershell",
                   "-Command"
               ],
               "essential": true,
               "cpu": 2048,
               "memory": 4096,
               "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019",
               "name": "sample_windows_app",
               "portMappings": [
                   {
                       "hostPort": 443,
                       "containerPort": 80,
                       "protocol": "tcp"
                   }
               ]
           }
       ],
       "memory": "4096",
       "cpu": "2048",
       "family": "windows-simple-iis-2019-core",
       "executionRoleArn": "arn:aws:iam::012345678910:role/ecsTaskExecutionRole",
       "runtimePlatform": {"operatingSystemFamily": "WINDOWS_SERVER_2019_CORE"},
       "requiresCompatibilities": ["EC2"]
   }
   ```

1. 驗證您的資訊，然後選擇 **Create** (建立)。

## 步驟 3：建立服務
<a name="getting-started-ec2-service-v2"></a>

Amazon ECS 服務可協助您在 Amazon ECS 叢集中同時執行並維持指定數目的任務定義執行個體。如果您的有任務因為任何原因而故障或停止，Amazon ECS 服務排程器就會啟動任務定義的另一個執行個體取代之，以維護服務中所需的任務數量。如需服務的詳細資訊，請參閱 [Amazon ECS 服務](ecs_services.md)。

**建立服務**

1. 在導覽窗格中，選擇**叢集**。

1. 選取您在 [步驟 1：建立叢集](#getting-started-ec2-cluster-v2) 中建立的叢集。

1. 在 **Services (服務)** 標籤上，選擇 **Create (建立)**。

1. 在 **Environment** (環境) 區段中，執行以下動作：

   1. 在 **Compute options ** (運算選項) 中，選擇 Launch type (啟動類型)。

   1. 針對 **Launch type (啟動類型)**，選取 **EC2**

1. 在 **Deployment configuration** (部署組態) 區段中，執行以下操作：

   1. 在 **Family** (系列) 中，選擇您在 [步驟 2：註冊任務定義](#getting-started-ec2-task-def-v2) 中建立的任務定義。

   1. 針對 **Service name** (服務名稱)，輸入服務的名稱。

   1. 在 **Desired tasks** (所需任務) 中，請輸入 **1**。

1. 檢閱選項，然後選擇**建立**。

1. 選擇 **View service** (檢視服務) 以檢閱服務。

## 步驟 4：檢視服務
<a name="getting-started-ec2-view-v2"></a>

服務是一種 Ｗeb 應用程式，您可以使用 Web 瀏覽器檢視其容器。

1. 開啟主控台，網址為 [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)。

1. 在導覽窗格中，選擇**叢集**。

1. 選擇您執行服務的叢集。

1. 在 **Services** (服務) 索引標籤中，**Service name** (服務名稱) 下，選擇您在 [步驟 3：建立服務](#getting-started-ec2-service-v2) 中建立的服務。

1. 選擇 **Tasks** (任務) 索引標籤，然後選擇服務中的任務。

1. 在任務頁面 **Configuration** (組態) 區段的 **Public IP** (公有 IP) 中，選擇 **Open address** (開放地址)。以下螢幕擷取畫面顯示了預期輸出。  
![\[Amazon ECS 範例應用程式的螢幕擷取畫面。輸出指示「您的應用程式目前正在 Amazon ECS 上執行」。\]](http://docs.aws.amazon.com/zh_tw/AmazonECS/latest/developerguide/images/ECS_Sample_Application.png)

## 步驟 5：清除
<a name="getting-started-ec2-cleanup-v2"></a>

完成使用 Amazon ECS 叢集時，您應該清除與其相關的資源，以免未使用的資源產生費用。

某些 Amazon ECS 資源 (例如任務、服務、叢集和容器執行個體) 可使用 Amazon ECS 主控台進行清除。其他資源，例如 Amazon EC2 執行個體、Elastic Load Balancing 負載平衡器和 Auto Scaling 群組，必須在 Amazon EC2 主控台中手動清除或刪除建立它們的 CloudFormation 堆疊。

1. 在導覽窗格中，選擇**叢集**。

1. 在 **Clusters** (叢集) 頁面，選取您為本教學課程建立的叢集叢集。

1. 選擇 **Services** (服務) 索引標籤。

1. 選取服務，然後選擇 **Delete** (刪除)。

1. 在確認提示中，輸入 **delete** (刪除)，然後選擇 **Delete** (刪除)。

   等到刪除該服務。

1. 選擇 **Delete Cluster (刪除叢集)**。在確認提示中，輸入 **delete *cluster-name***，然後選擇 **Delete** (刪除)。刪除叢集會清除與叢集一起建立的相關聯資源，包括 Auto Scaling 群組、VPC 或負載平衡器。