【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 等权限。

====

相关推荐
红海云9 小时前
Prompt越长越好吗?何时该停手
云计算
红海云13 小时前
DeepSeek Harness 的插件化边界
云计算
honsor14 小时前
工业级网口温湿度变送器 ModbusTCP 机房动环环境监测终端
运维·网络·人工智能·物联网·安全·云计算·智能温湿度监测系统
月落汀兰15 小时前
从需求到上线:华为云搭建高可用 Web 站点,ECS/RDS/ELB/AS 组件协同实践
华为云·云计算
月落汀兰15 小时前
云上故障怎么排查?华为云 IAM 权限、CES 监控、LTS 日志、CTS 审计完整指南
华为云·云计算
聚搜云——JuSouClouD17 小时前
在阿里云代理商渠道买轻量服务器,带宽套餐支持自选吗?
服务器·阿里云·云计算
程序员大阳18 小时前
使用Putty登录阿里云Ubuntu ECS服务器方法
ubuntu·云计算·ssh·ecs·putty
智慧医养结合软件开源18 小时前
【源码交付】智慧养老系统 · Java + Vue3-技术架构
大数据·人工智能·信息可视化·云计算
聚搜云——JuSouClouD19 小时前
2026找阿里云代理商采购GPU服务器,有没有额外折扣?
服务器·阿里云·云计算
聚搜云——JuSouClouD1 天前
阿里云代理商能帮忙设计架构方案吗?有哪些增值服务
阿里云·架构·云计算