本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解如何為 Amazon ECS 受管執行個體建立任務
了解如何將 Amazon ECS 受管執行個體與 Amazon ECS 搭配使用來執行容器化應用程式。
先決條件
開始本教學之前,先完成下列動作:
-
您已完成設定使用 Amazon ECS 一節中的步驟。
-
已完成「設定以使用 Amazon ECS。」中的步驟。
-
您有 Amazon ECS 受管執行個體所需的 IAM 角色。其中包含:
-
基礎設施角色 - 允許 Amazon ECS 代表您呼叫 AWS 服務,以管理 Amazon ECS 受管執行個體基礎設施。
如需詳細資訊,請參閱Amazon ECS 基礎設施 IAM 角色。
-
執行個體設定檔 – 為在受管執行個體上執行的 Amazon ECS 容器代理程式與 Docker 常駐程式提供許可。
執行個體角色名稱必須包含
ecsInstanceRole做為字首,以符合基礎設施角色中的iam:PassRole動作。如需詳細資訊,請參閱Amazon ECS 受管執行個體執行個體設定檔。
-
-
您已建立 VPC 和安全群組。本教學課程使用託管於 Amazon ECR Public 的容器映像,因此您的執行個體必須有網際網路存取權。若要將網際網路的路由提供給執行個體,請使用下列其中一個選項:
-
透過具有彈性 IP 地址的 NAT 閘道使用私有子網路。
-
使用公有子網路,並將公有 IP 位址指派給執行個體。
如需詳細資訊,請參閱建立 Virtual Private Cloud。
如需有關安全群組與規則的資訊,請參閱 Amazon Virtual Private Cloud User Guide 中的 Default security groups for your VPCs 和 Example rules。
-
-
(選用) AWS CloudShell 是一種工具,可為客戶提供命令列,而不需要建立自己的 EC2 執行個體。如需詳細資訊,請參閱《AWS CloudShell 使用者指南》中的什麼是AWS CloudShell?。
步驟 1:建立叢集
-
開啟 Amazon ECS 主控台,網址為 https://console.aws.amazon.com/ecs/v2
。 -
從導覽列中選取要使用的「區域」。
-
在導覽窗格中,選擇叢集。
-
在 Clusters (叢集) 頁面上,選擇 Create cluster (建立叢集)。
-
在叢集組態下的叢集名稱欄位中,輸入叢集的唯一名稱。
-
在基礎結構下,選擇 Fargate 與受管 EC2。
-
設定受管執行個體:
-
在基礎結構角色欄位中,選取您為受管執行個體基礎結構管理工作建立的 IAM 角色。
-
在執行個體設定檔欄位中,選取您建立的
ecsInstanceRole。 -
在執行個體屬性欄位中,選擇使用 ECS 預設值。
-
-
在聯網下設定受管執行個體的 VPC 與子網路:
-
在 VPC 欄位中,選取託管受管執行個體的 VPC。
-
在子網路欄位中,選取一個或多個將在其中啟動受管執行個體的子網路。
-
針對 Security groups (安全群組),選取一個或多個安全群組。
-
-
(選用) 若要將標籤新增至叢集,請展開標籤區段,然後設定標籤。
-
選擇建立。
步驟 2:建立任務定義
任務定義是您應用程式的藍圖。每次在 Amazon ECS 中啟動任務時,您都必須指定任務定義。服務接著會知道要為容器使用哪個 Docker 映像、要在任務中使用多少個容器,以及每個容器的資源配置。請遵循下列步驟建立任務定義:
-
在導覽窗格中,選擇 Task Definitions (任務定義)。
選擇 Create new task definitio (建立新任務定義)、Create new task definition with JSON (使用 JSON 建立新的任務定義)。
-
將下列 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" } -
選擇建立。
步驟 3:建立服務
Amazon ECS 服務可讓您在 Amazon ECS 叢集中同時執行並維持指定數目的任務定義執行個體。請遵循下列步驟建立服務:
-
在導覽窗格中選擇叢集,然後選取
managed-instance-tutorial叢集。 -
在 Services (服務) 索引標籤上,選擇 Create (建立)。
-
針對任務定義系列,選擇 managed-instance-tutorial。
對於服務名稱,輸入
managed-instance-tutorial-service。-
在環境下,選擇容量提供者策略。
-
在聯網下設定下列項目:
選擇現有的 VPC 或建立新的 VPC。
-
針對子網路,選擇要使用的子網路。
對於安全群組,請選擇現有的安全群組,或建立新的安全群組,以允許連接埠 80 上的傳入流量。
-
選擇建立。
步驟 4:檢視服務
服務啟動後,您可以檢視它以了解它的更多資訊並進行測試。
-
選擇
managed-instance-tutorial-service服務。 -
從任務索引標籤中,選擇執行中任務的任務 ID。
-
在網路下的公有 IP 中,選擇開啟位址。
-
您應該會看到 Apache HTTP 伺服器測試頁面,該頁面可確認 Web 伺服器是否正在正常執行。
步驟 5:清除
完成本教學課程後,您應該清理相關資源,以免未使用的資源產生費用。
-
在導覽窗格中,選擇叢集。
-
在叢集頁面上,選取
managed-instance-tutorial叢集。 -
選擇 Services (服務) 索引標籤。
-
選取
managed-instance-tutorial-service服務,然後選擇刪除。 -
在確認提示中,輸入
delete,然後選擇刪除。 -
刪除服務之後,在導覽窗格中選擇叢集。
-
在叢集頁面上,選取
managed-instance-tutorial叢集,然後選擇刪除叢集。 -
在確認提示中,輸入
delete managed-instance-tutorial,然後選擇刪除。