本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 建立您的第一個快速模式服務 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 部署