

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

# 了解如何為 Fargate 建立 Amazon ECS Windows 任務
<a name="Windows_fargate-getting_started"></a>

將 AWS Fargate Fargate 用於 Amazon ECS 支援 AWS Fargate 的區域中的任務，以在 上開始使用 Amazon ECS。

完成下列步驟，以在 AWS Fargate上開始使用 Amazon ECS。

## 先決條件
<a name="first-run-prereqs-windows"></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="create_fargate_windows_cluster-v2"></a>

您可以建立使用預設 VPC 且名為 **windows** 的全新叢集。

**使用 建立叢集 AWS 管理主控台**

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** (叢集名稱) 中，輸入 **windows**。

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

1. (選用) 為協助識別您的叢集，請展開 **Tags** (標籤)，然後設定標籤。

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

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

1. 選擇**建立**。

## 步驟 2：註冊 Windows 任務定義
<a name="register_fargate_windows_task_def_console"></a>

您必須先註冊任務定義，才能在您的 Amazon ECS 叢集中執行 Windows 容器。以下任務定義範例會在具有 `mcr.microsoft.com/windows/servercore/iis` 容器映像之容器執行個體的連接埠 8080 顯示一個簡單的網頁。

**向 註冊範例任務定義 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": 80,
                       "containerPort": 80,
                       "protocol": "tcp"
                   }
               ]
           }
       ],
       "memory": "4096",
       "cpu": "2048",
       "networkMode": "awsvpc",
       "family": "windows-simple-iis-2019-core",
       "executionRoleArn": "arn:aws:iam::012345678910:role/ecsTaskExecutionRole",
       "runtimePlatform": {"operatingSystemFamily": "WINDOWS_SERVER_2019_CORE"},
       "requiresCompatibilities": ["FARGATE"]
   }
   ```

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

## 步驟 3：以您的任務定義建立服務
<a name="create_fargate_windows_service_console"></a>

註冊您的任務定義之後，即可用以放置任務到您的叢集中。下列程序會以您的任務定義建立一項服務，並在您的叢集放置一項任務。

**使用主控台從您的任務定義建立服務**

1. 在導覽窗格中，選擇 **Clusters** (叢集)，然後選取您在 [步驟 1：建立叢集](#create_fargate_windows_cluster-v2) 中建立的叢集。

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

1. 在 **Deployment configuration** (部署組態)，指定應用程式的部署方式。

   1. 在 **Task Definitions** (任務定義) 中，選擇您在 [步驟 2：註冊 Windows 任務定義](#register_fargate_windows_task_def_console) 中建立的任務定義。

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

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

1.  在 **Networking** (聯網) 下，您可以建立新的安全群組，或選擇現有的安全群組。請確定您使用的安全群組已在 [先決條件](#first-run-prereqs-windows) 下方列出傳入規則。

1. 選擇**建立**。

## 步驟 4：檢視服務
<a name="view_windows_fargate_service"></a>

您的服務已於您的叢集中啟動任務後，您可以在瀏覽器中檢視服務並開啟 IIS 測試頁面，確認容器正在執行。

**注意**  
您的容器執行個體約需 15 分鐘來下載和解壓縮 Windows 容器基礎層。

**檢視服務**

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

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

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

1. 在 **Services** (服務) 索引標籤中，**Service name** (服務名稱) 下，選擇您在 [步驟 3：以您的任務定義建立服務](#create_fargate_windows_service_console) 中建立的服務。

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

1. 在任務頁面 **Configuration** (組態) 區段的 **Public IP** (公有 IP) 中，選擇 **Open address** (開放地址)。

## 步驟 5：清除
<a name="first-fargate-run-cleanup"></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 或負載平衡器。