[AWS] 03 - BATCH & ECS
AWS BATCH
文档:https://docs.aws.amazon.com/zh_cn/batch/latest/userguide/batch_user.pdf
就让我们按照文档,走一遍。本篇主要是导读。
前提摘要
一、创建IAM User
Goto: [AWS] IAM User
/* implement */
简单的Demo
一、配置queue、jobs
Goto: AWS Batch Tutorial Part 1
Goto: AWS Batch Tutorial Part 2
Ref: https://hub.docker.com/r/bjjware/aws-batch-demo
本地创建镜像,提交到hub.docker.com。
二、前端对接queue
(vue.js --> Flask) Lambda --> SQS --> Lambda --> queue --> BATCH
ECS介绍
Ref: https://edu.51cto.com/center/course/lesson/index?id=199645
Ref: 简评AWS Fargate (Serverless K8S)
Ref: AWS Lambda都是浮云,AWS Fargate才是王道——无服务器的未来,有我没你!
开启容器之旅
一、Amazon ECR (EC2 Container Registry)
Ref: 什么是 Amazon Elastic Container Registry?
BTW ECR (Elastic Container Registry) is only a storage for your containers. It's to be used with ECS.
二、创建ECR容器库
-
EC2 Container Service
-
"开始使用" 按钮
第一步,配置存储库。
第二步,构建、标记和推送Docker映像。
aws ecr的返回结果是一个cmd (非常长):docker login -u ...
下一步,执行这条长命令,提示:Loign Succeeded。
-
Docker 构建镜像
docker build -t ecsdemo .
-
Docker 标记镜像
docker tag ecsdemo:latest 919796776125.dkr.ecr.cn-north-1.amazonaws.com.cn/ecsdemo:latest
-
Docker 推送镜像
docker push 919796776125.dkr.ecr.cn-north-1.amazonaws.com.cn/ecsdemo:latest
可见镜像上传结果。
微服务
一、定义一个任务、运行一个服务
Manage: 资源定义,状态跟踪;
Scheduler: 资源调度;
Agent: 状态是什么样的,代理功能。
例如:web server + log collection,有这么两个容器,一个任务同时启动。
三台机器。
一个 task 可以最多跑10个contrainers。
要么是”计算任务”,计算结束就任务终止。
或者是“网页服务”,遇到意外崩溃再启动其他服务给予协助。
二、集群
创建集群 (demo-cluster) --> 集群名字,准备两台机器 (实例)。
-
TASK 任务定义
[添加容器]
容器名称,指定 docker image。
内存限制:例如 128M
端口映射:例如 80 --> 3000 tcp
默认下,一个物理CPU 划分为了128个单元。
关键容器的,一旦该容器失败,则全局任务为失败。
[约束]
任务定义结果,修订版2,有版本控制。
三、任务 变 服务
任务数将设置为:2
Long-Running App的百分比设置的理解。
任务置放原则 Placement Strategy:
四、服务状态
服务启动后的状态。可见有两个容器、两个任务。
End.