

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

# 了解如何為 Amazon ECS 受管執行個體建立任務
<a name="getting-started-managed-instances"></a>

了解如何將 Amazon ECS 受管執行個體與 Amazon ECS 搭配使用來執行容器化應用程式。

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

 開始本教學之前，先完成下列動作：
+ 您已完成[設定使用 Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/get-set-up-for-amazon-ecs.html) 一節中的步驟。
+ 已完成「[設定以使用 Amazon ECS。](get-set-up-for-amazon-ecs.md)」中的步驟。
+ 您有 Amazon ECS 受管執行個體所需的 IAM 角色。其中包含：
  + 基礎設施角色 - 允許 Amazon ECS 代表您呼叫 AWS 服務，以管理 Amazon ECS 受管執行個體基礎設施。

    如需詳細資訊，請參閱[Amazon ECS 基礎結構 IAM 角色](infrastructure_IAM_role.md)。
  + 執行個體設定檔 – 為在受管執行個體上執行的 Amazon ECS 容器代理程式與 Docker 常駐程式提供許可。

    執行個體角色名稱必須包含 `ecsInstanceRole`做為字首，以符合基礎設施角色中的 `iam:PassRole` 動作。

    如需詳細資訊，請參閱[Amazon ECS 受管執行個體執行個體設定檔](managed-instances-instance-profile.md)。
+ 您已建立 VPC 和安全群組。本教學課程使用託管於 Amazon ECR Public 的容器映像，因此您的執行個體必須有網際網路存取權。若要將網際網路的路由提供給執行個體，請使用下列其中一個選項：
  + 透過具有彈性 IP 地址的 NAT 閘道使用私有子網路。
  + 使用公有子網路，並將公有 IP 位址指派給執行個體。

  如需詳細資訊，請參閱[建立 Virtual Private Cloud](get-set-up-for-amazon-ecs.md#create-a-vpc)。

  如需有關安全群組與規則的資訊，請參閱 *Amazon Virtual Private Cloud User Guide* 中的 [Default security groups for your VPCs](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#DefaultSecurityGroup) 和 [Example rules](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#security-group-rule-examples)。
+ （選用） AWS CloudShell 是一種工具，可為客戶提供命令列，而不需要建立自己的 EC2 執行個體。如需詳細資訊，請參閱《[AWS CloudShell 使用者指南》中的什麼是](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)*AWS CloudShell*？。

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

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

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

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

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

1. 在**叢集組態**下的**叢集名稱**欄位中，輸入叢集的唯一名稱。

1. 在**基礎結構**下，選擇 **Fargate 與受管 EC2**。

1. 設定受管執行個體：

   1. 在**基礎結構角色**欄位中，選取您為受管執行個體基礎結構管理工作建立的 IAM 角色。

   1. 在**執行個體設定檔**欄位中，選取您建立的 `ecsInstanceRole`。

   1. 在**執行個體屬性**欄位中，選擇**使用 ECS 預設值**。

1. 在**聯網**下設定受管執行個體的 VPC 與子網路：

   1. 在 **VPC** 欄位中，選取託管受管執行個體的 VPC。

   1. 在**子網路**欄位中，選取一個或多個將在其中啟動受管執行個體的子網路。

   1. 針對 **Security groups (安全群組)**，選取一個或多個安全群組。

1. (選用) 若要將標籤新增至叢集，請展開**標籤**區段，然後設定標籤。

1. 選擇**建立**。

## 步驟 2：建立任務定義
<a name="getting-started-step2"></a>

任務定義是您應用程式的藍圖。每次在 Amazon ECS 中啟動任務時，您都必須指定任務定義。服務接著會知道要為容器使用哪個 Docker 映像、要在任務中使用多少個容器，以及每個容器的資源配置。請遵循下列步驟建立任務定義：

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

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

1. 將下列 JSON 複製並貼到編輯器中，取代預先填入的 JSON：

   **account-id** 將 取代為 AWS 您的帳戶 ID，並將 **region**取代為您正在使用的區域。

   ```
   {
     "family": "managed-instance-tutorial",
     "networkMode": "awsvpc",
     "executionRoleArn": "arn:aws:iam::account-id:role/ecsTaskExecutionRole",
     "containerDefinitions": [
       {
         "name": "sample-app",
         "image": "public.ecr.aws/docker/library/httpd:latest",
         "essential": true,
         "portMappings": [
           {
             "containerPort": 80,
             "hostPort": 80,
             "protocol": "tcp"
           }
         ],
         "logConfiguration": {
           "logDriver": "awslogs",
           "options": {
             "awslogs-group": "/ecs/managed-instance-tutorial",
             "awslogs-region": "region",
             "awslogs-stream-prefix": "ecs"
           }
         }
       }
     ],
     "requiresCompatibilities": [
       "MANAGED_INSTANCES"
     ],
     "cpu": "1024",
     "memory": "2048"
   }
   ```

1. 選擇**建立**。

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

Amazon ECS 服務可讓您在 Amazon ECS 叢集中同時執行並維持指定數目的任務定義執行個體。請遵循下列步驟建立服務：

1. 在導覽窗格中選擇**叢集**，然後選取 **managed-instance-tutorial** 叢集。

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

1. 針對**任務定義系列**，選擇 **managed-instance-tutorial**。

1. 對於**服務名稱**，輸入 **managed-instance-tutorial-service**。

1. 在**環境**下，選擇**容量提供者策略**。

1. 在**聯網**下設定下列項目：

   1. 選擇現有的 VPC 或建立新的 VPC。

   1. 對於**子網路**，選擇要使用的子網路。

   1. 對於**安全群組**，請選擇現有的安全群組，或建立新的安全群組，以允許連接埠 80 上的傳入流量。

1. 選擇**建立**。

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

服務啟動後，您可以檢視它以了解它的更多資訊並進行測試。

1. 選擇 **managed-instance-tutorial-service** 服務。

1. 從**任務**索引標籤中，選擇執行中任務的任務 ID。

1. 在**網路**下的**公有 IP** 中，選擇**開啟位址**。

1. 您應該會看到 Apache HTTP 伺服器測試頁面，該頁面可確認 Web 伺服器是否正在正常執行。

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

完成本教學課程後，您應該清理相關資源，以免未使用的資源產生費用。

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

1. 在**叢集**頁面上，選取 **managed-instance-tutorial** 叢集。

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

1. 選取 **managed-instance-tutorial-service** 服務，然後選擇**刪除**。

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

1. 刪除服務之後，在導覽窗格中選擇**叢集**。

1. 在**叢集**頁面上，選取 **managed-instance-tutorial** 叢集，然後選擇**刪除叢集**。

1. 在確認提示中，輸入 **delete managed-instance-tutorial**，然後選擇**刪除**。