【AWS】【ECS】部署流程

目录

■简介:什么是ECS

■控制台操作

[■AWS ECS 【CLI】的具体操作部分(三个步骤)](#■AWS ECS 【CLI】的具体操作部分(三个步骤))

[什么是 CLI?](#什么是 CLI?)

[1. 注册新任务定义 (Register New Task Definition)](#1. 注册新任务定义 (Register New Task Definition))

[使用 AWS CLI 注册](#使用 AWS CLI 注册)

[2. 更新服务使用新任务定义 (Update Service with New Task Definition)](#2. 更新服务使用新任务定义 (Update Service with New Task Definition))

[使用 AWS CLI 更新](#使用 AWS CLI 更新)

[3. 查询服务状态验证部署 (Verify Deployment Status)](#3. 查询服务状态验证部署 (Verify Deployment Status))

[使用 AWS CLI 查询](#使用 AWS CLI 查询)

总结


================

■简介:什么是ECS

  • 集群 (Cluster) :您容器应用运行的基础设施集合,可以是一组 EC2 实例(需要您管理服务器),也可以使用AWS Fargate 这种无服务器模式(无需管理服务器,只需为资源付费)。

  • 任务定义 (Task Definition):一份描述您的应用如何运行的"蓝图",类似于 Docker Compose 文件。它定义了使用哪个镜像、需要多少 CPU 和内存、开放哪些端口以及环境变量等。

  • 服务 (Service):负责确保指定数量的任务(即基于任务定义运行的容器实例)始终处于运行状态。它还会与负载均衡器集成,实现流量分发和滚动更新

==========

■控制台操作

=================

==========

============

==========

■AWS ECS 【CLI】的具体操作部分(三个步骤)

什么是 CLI?

CLICommand Line Interface (命令行界面)的缩写。它是一种基于文本的交互工具,允许用户通过输入命令来与操作系统或云服务进行交互。在 AWS 中,AWS CLI 是一个官方提供的命令行工具,您可以在本地终端或 CI/CD 环境中使用它来管理 AWS 资源(如 ECS、EC2、S3 等),而无需登录 AWS 管理控制台。使用 CLI 可以实现自动化、可重复的部署操作。

1. 注册新任务定义 (Register New Task Definition)

任务定义是部署到 ECS 的"蓝图",它描述了您的容器应用如何运行,包括:

  • 容器镜像地址(如您的 Liberty 镜像)

  • 容器所需的 CPU 和内存

  • 端口映射

  • 环境变量

  • 启动命令等

当您修改了应用配置或镜像版本时,就需要创建一个新版本的任务定义。

使用 AWS CLI 注册

首先,准备一个 JSON 文件(例如 task-definition.json),内容类似:

javascript 复制代码
json
{
    "family": "my-liberty-app",
    "networkMode": "awsvpc",
    "requiresCompatibilities": ["FARGATE"],
    "cpu": "1024",
    "memory": "3072",
    "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole",
    "containerDefinitions": [
        {
            "name": "liberty-container",
            "image": "icr.io/appcafe/websphere-liberty:25.0.0.12-full-java21-openj9-ubi-minimal",
            "portMappings": [
                {
                    "containerPort": 9080,
                    "protocol": "tcp"
                }
            ],
            "essential": true
        }
    ]
}

然后执行命令:

bash 复制代码
aws ecs register-task-definition --cli-input-json file://task-definition.json

成功后,AWS 会返回新注册的任务定义 ARN 和版本号(如 my-liberty-app:3)。

控制台操作

进入 ECS → 任务定义 → 创建新任务定义,填写相关信息后保存,会自动生成一个新版本。

======================

2. 更新服务使用新任务定义 (Update Service with New Task Definition)

服务负责维护指定数量的任务实例。当您需要发布新版本时,只需更新服务引用的任务定义版本,ECS 会自动执行滚动更新(逐步停止旧任务、启动新任务)。

使用 AWS CLI 更新

bash 复制代码
aws ecs update-service \
    --cluster MyCluster \
    --service MyService \
    --task-definition my-liberty-app:3 \
    --force-new-deployment

===

控制台操作

进入集群 → 选择服务 → 点击"更新 (Update)",在"任务定义"下拉列表中选择新版本,然后按照向导完成更新。

===

3. 查询服务状态验证部署 (Verify Deployment Status)

更新服务后,您需要监控部署进度,确保新版本任务正常运行,且旧版本任务已终止。

使用 AWS CLI 查询

查看服务状态

bash 复制代码
aws ecs describe-services --cluster MyCluster --services MyService

===

  • services[].deployments:列出正在进行的部署,包括任务定义、状态(PRIMARY/ACTIVE)、滚动更新的统计(如 runningCount, desiredCount)。

  • services[].events:最近的服务事件日志,包含任务启动/停止信息。

  • services[].runningCount:当前运行的任务数,应等于 desiredCount

====

查看具体任务列表

bash 复制代码
aws ecs list-tasks --cluster MyCluster --service-name MyService

查看单个任务详情

bash 复制代码
aws ecs describe-tasks --cluster MyCluster --tasks <task-arn>

可以检查任务的 lastStatus 是否为 RUNNINGhealthStatus 是否为 HEALTHY(如果配置了健康检查)。

控制台操作

进入集群 → 选择服务 → 查看"部署"标签页和"事件"标签页,可以看到正在进行的部署进度和最新事件;点击"任务"标签页可以查看所有任务实例的状态。

====

总结

这三个步骤构成了 ECS 应用更新的核心循环:

  1. 注册新任务定义(记录应用新版本配置)

  2. 更新 服务引用该新版本(触发滚动部署) // 注册后跟新,才能生效

  3. 查询 服务状态确保部署成功(监控并验证) // 并非必须操作

您可以将这些命令集成到 CI/CD 流水线(如 Jenkins、GitHub Actions)中,实现全自动化的持续部署。如果过程中遇到权限不足等问题,请检查 IAM 角色是否包含 ecs:RegisterTaskDefinitionecs:UpdateServiceecs:DescribeServices 等权限。

====

相关推荐
Johny_Zhao2 天前
OpenClaw中级到高级教程
linux·人工智能·信息安全·kubernetes·云计算·yum源·系统运维·openclaw
Johny_Zhao4 天前
centos7安装部署openclaw
linux·人工智能·信息安全·云计算·yum源·系统运维·openclaw
Johny_Zhao7 天前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
NineData7 天前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
SaaS_Product12 天前
从实用性与体验角度出发,OneDrive有什么替代品
云计算·saas·onedrive
小扎仙森12 天前
关于阿里云实时语音翻译-Gummy推送WebSocket
websocket·阿里云·云计算
Elastic 中国社区官方博客12 天前
Elastic 公共 roadmap 在此
大数据·elasticsearch·ai·云原生·serverless·全文检索·aws
Shacoray12 天前
OpenClaw 接入阿里云百炼 Coding Plan 指南
阿里云·ai·云计算·qwen3·openclaw·coding plan
TG_yunshuguoji12 天前
阿里云代理商:2026 年阿里云国际站上云接入指南
服务器·阿里云·云计算
阿里云云原生12 天前
阿里云可观测 2026 年 1 月产品动态
阿里云·云计算