使用 建立您的第一個快速模式服務 AWS CLI - Amazon Elastic Container Service

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

使用 建立您的第一個快速模式服務 AWS CLI

本教學課程說明如何使用 建立快速模式服務應用程式 AWS AWS CLI。您將部署簡單的 Web 應用程式,以示範快速模式服務的核心功能。

先決條件

開始前,請確保您具備以下條件:

  • 具有適當許可 AWS 的帳戶

  • AWS AWS CLI 已安裝和設定的

  • 存放在 Amazon ECR 或私有登錄檔中的容器映像

步驟 1:建立 IAM 角色

快速模式服務需要兩個 IAM 角色。任務執行角色允許 Amazon ECS 代您提取容器映像和寫入日誌。使用下列政策建立任務執行角色和基礎設施角色:

#Create the roles with ECS trust policies aws iam create-role --role-name ecsTaskExecutionRole \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole", } ] }' aws iam create-role --role-name ecsInfrastructureRoleForExpressServices \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessInfrastructureForECSExpressServices", "Effect": "Allow", "Principal": { "Service": "ecs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
#Attach the AWS managed policies aws iam attach-role-policy --role-name ecsTaskExecutionRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy aws iam attach-role-policy --role-name ecsInfrastructureRoleForExpressServices \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRoleforExpressGatewayServices

如需詳細資訊,請參閱Amazon ECS 任務執行 IAM 角色

步驟 2:建立您的第一個快速模式服務應用程式

使用最低必要參數建立快速模式服務應用程式:

aws ecs create-express-gateway-service \ --image "public.ecr.aws/nginx/nginx:latest" \ --execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole \ --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices \ --monitor-resources

此命令會使用下列項目建立快速模式服務應用程式:

  • 從映像名稱產生的唯一服務名稱

  • 1 個 vCPU 和 2 GB 記憶體

  • HTTPS 流量的連接埠 80

  • 根據 CPU 使用率自動擴展

  • 預設 VPC 和公有子網路中的面向網際網路的 Application Load Balancer

  • 此服務唯一的 URL 格式 servicename.ecs.region.on.aws

命令會在佈建資源時持續監控資源,並傳回狀態。服務部署完成後,應用程式 URL 已準備好接收流量。當您中斷監控時,會傳回所建立服務的相關資訊,包括服務 ARN 和 URL:

{ "service": { "cluster": "arn:aws:ecs:region:123456789012:cluster/default", "serviceName": "nginx-1234", "serviceArn": "arn:aws:ecs:region:123456789012:service/default/nginx-1234", "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices", "status": { "statusCode": "ACTIVE" }, "createdAt": "UNIXTIMESTAMP" } }

步驟 3:使用自訂設定建立快速模式服務應用程式

您可以指定其他參數來自訂快速模式服務應用程式:

aws ecs create-express-gateway-service \ --execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole \ --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices \ --primary-container \ ‘{“image”=“123456789012.dkr.ecr.region.amazonaws.com/my-app:latest", \ “containerPort”=8080, \ “environment”=[{“name”=“ENV”,”value”=“production”},{“name”=“DEBUG”,”value”=“false”}]}’ \ --service-name "my-web-app" \ --cpu 2 \ --memory 4 \ --health-check-path "/health" \ --scaling-target ‘{“minTaskCount”=3,”maxTaskCount”=100}’ --monitor-resources

這會建立具有下列項目的應用程式:

  • 自訂名稱 "my-web-app"

  • 2 個 vCPU 和 4 GB 記憶體

  • 應用程式流量的連接埠 8080

  • 自訂運作狀態檢查端點

  • 環境變數

  • 最少 3 個任務,最多 100 個任務用於自動擴展

步驟 4:監控您的部署

--monitor-resources 旗標適用於對快速模式服務的任何建立、更新或刪除呼叫。但是,您也可以隨時監控服務中的資源,與變動動作分開。部署時間可能會因需要佈建的資源而有所不同。狀態變更為 後ACTIVE,您的應用程式就已準備好接收流量。

aws ecs monitor-express-gateway-service --service-arn arn:aws:ecs:region:123456789012:service/app-23d97h88

您也可以找到快速模式服務應用程式的目前組態和狀態:

aws ecs describe-express-gateway-service --service-arn arn:aws:ecs:region:123456789012:service/app-23d97h88

步驟 5:存取您的應用程式

使用提供的 URL 在啟用時存取快速模式服務應用程式。URL 格式為:

https://<service-name>.ecs.<region>.on.aws/

例如:

https://app-23d97h88.ecs.us-west-2.on.aws/

您的應用程式現在正在執行:

  • 自動 SSL/TLS 終止

  • 跨多個可用區域的負載平衡

  • 根據 CPU 使用率自動擴展

  • CloudWatch 記錄和監控

  • 用於未來更新的 5XX 轉返警示和 Canary 部署