使用 Container 进行 Auto Scaling Group 二部曲

使用 Container 进行 Auto Scaling Group 二部曲

目标是要透过 ECS 来进行 Auto Scaling Group 的规划

基础环境建置

基础环境指的是网络环境、容器的内容以及负载均衡器。接下来的操作其实跟 ASG 步进缩放政策 Step scaling policies 笔记 类似,可以参照该网址,但为方便起见我们还是操作一遍

  1. 建置 VPC 与相关的子网 - 请参阅 Amazon VPC 实操
  2. 新增 EC2 实例 - 请参阅 Amazon Elastic Compute Cloud (EC2) 笔记
  3. 建立 Docker Container Image - 请参阅 Amazon Elastic Container Service (Amazon ECS) 简介
  4. 将 Docker Container Image 上传至储存库 - 请参阅 Amazon Elastic Container Registry (ECR) 笔记
  5. 新增 Application Load Balancer (ALB) - 请参阅 Elastic Load Balancing (ELB) 笔记

ECS 相关建置

  1. 建置 ECS 丛集 - 请参阅 使用 Container 进行 Auto Scaling Group 首部曲

  2. 建置 Amazon ECS Task Definitions
    此步骤最重要的目的是定义容器要如何运行。进入 ECS 控制台,在左手选单选择 Task Definition,并在右边按下 Create new Task Definition

选择任务启动模式,请选择 EC2 模式

Select launch type compatibility: EC2

Configure task and container definitions
Task Definition Name: ithometask1
Task Role: EcsTaskExecutionRole
Network Mode: Bridge
Task execution role: EcsTaskExecutionRole

定义任务名称与网络模式
图 1. 定义任务名称与网络模式

接下来要定义容器内容,按下 Add container 后,请输入容器相关的信息

Container Definitions
Standard
Container name: ithomeContainer
Image: 950646218716.dkr.ecr.ap-southeast-1.amazonaws.com/ithome-repo:latest
Memory Limits (MiB): Hard Limit - 150, Soft limit - 100
Port mappings
Host port, Container port, Protocol
0, 80, tcp

映像档 (Image)指的是先前在 ECR 所放置的容器映像档;内存限制 (memory limit) 可以参阅 Amazon Elastic Container Registry (ECR) 笔记,透过docker stats 查出整个 Container 执行时至少需要 17.7MB 的内存,所以先设定为 100M 的内存供 Container 使用;埠号对应 (Port mappings) 因为一台主机会开启多个容器,所以将主机端口号设为 0,让系统自行决定。

容器定义
图 2. 容器定义

  1. 建立 ECS 的服务
    接下来就是把上面定义好的任务放到丛集里去运行,这个动作称之为新增服务 (create service)。进入 ECS 控制台,在左手选单选择 Clusters,并在右边按下刚刚建立的丛集 ithomeCluster,选择下方页签 Services,并按下 Create

建立丛集的服务
图 3. 建立丛集的服务

建立丛集的服务需要四个步骤:
步骤 1. Configure service
Launch type: EC2
Task Definition: ithometask1
Cluster: ithomeCluster
Service name: ithomeService
Service type: REPLICA
Number of tasks: 4
Deployment type: Rolling update
Placement Templates: AZ balanced spread

服务的一般组态设定
图 4. 服务的一般组态设定

步骤 2. Configure network
Load balancer type: Application Load Balancer
Service IAM role: AWSServiceRoleForECS
Load balancer name: ithomeALB

Container to load balance
将 ithomeContainer 设定给 ALB,所以按下 Add to load Balancer,并完成以下设定
Production listener port: 80:HTTP
Target group name: ithomeTargetGroup

指定负载均衡器
图 5. 指定负载均衡器

将 Container 指定给负载均衡器
图 6. 将 Container 指定给负载均衡器

步骤 3. Set Auto Scaling (optional)
设定自动扩缩

Service Auto Scaling: Do not adjust the service’s desired count

步骤 4. Review
再次确认内容

完成后会启动服务器。进入 ECS 控制台,在左手选单选择 Clusters,并在右边按下 ithomeCluster,在 Services 页签可以看到启动的任务(tasks),这些任务就是由 Container 所负责,可以发现 EC2 的实例只有两个,,但 task 却有四个,这四个 task 会分布在这两个实例中。

检视在丛集里的服务器
图 7. 检视在丛集里的服务器

透过检视事件可以清楚的知道发生了甚么事,做系统不会永远的是那么顺利的,所以务必要学会看系统的事件。

检视在服务器内的事件
图 8. 检视在服务器内的事件

最重要的就是提供服务的网页是否可以正常执行,所以一定要用 ALB 所提供的网址检视网页服务是否正常?

检视网页
图 9. 检视网页

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值