AWS Fargate——让容器轻松运行

 

AWS Fargate

AWS2017年底的峰会上宣布 Fargate的时候,比较直白的介绍是:有这么个新工具,它将允许ECS用户直接在云中运行容器。

 

纵观软件开发领域,不论是云服务(IaaS)、版本控制系统,协作工具或持续集成工具的诞生、还是容器化架构或者无服务器计算服务(PaaS)的出现,都有一个共同的特点:降低了对服务器的系统管理员,DevOpsIT支持人员等的依赖。

  新事物Fargate到底能做些什么呢? 

在了解Fargate之前,我们先来了解一下Amazon Elastic Container Service (ECS)吧。

Docker使容器技术普及开来,便很快被广泛采用。随着Kubernetes的成功,AWS推出了自己的容器管理服务:Amazon Elastic Container ServiceECS)。

ECS是一项高度可扩展的高性能容器管理服务,支持 Docker 容器,并让您能够在托管的 Amazon EC2 实例集群上轻松运行应用程序。

请参考:https://www.amazonaws.cn/ecs/

随着需求的日益复杂化,我们发现在管理EC2 Instance的同时,还必须管理一些额外的层,这让ECS变得越来越复杂。

使用ECS在集群中运行中的EC2 实例(Instance)配置弹性伸缩时,每个实例上可以承载多个不同的Task,这就要求:遵循相同的弹性伸缩规则;伸缩的EC2实例类型必须相同;不同资源的容器需要协同……这么多的任务就需要大量繁琐的工作,这时候,AWS Fargate 就应运而生了。

AWS Fargate是适用于 Amazon ECS 的计算引擎,允许您在无需管理服务器或集群的情况下运行容器。借助 AWS Fargate,您不再需要预置、配置和扩展虚拟机的集群即可运行容器。

请参考:https://www.amazonaws.cn/fargate/

从这里可以看到,FargateAWS ECS 支持的一种新的计算引擎。Fargate AWS上的部署架构,如下图所示:

1

从这个架构中,可以看到Fargate

您将不用再将您的任务,运行在EC2上。

 

  Fargate是如何工作的呢?

01需要部署一个自己的存储库,也就是Docker Image

2

02推送镜像

3

03创建任务定义,在任务定义中,选择Fargate

4

04任务定义完成

5

05运行任务,启动类型,选择Fargate

6

06选择好网络环境

7

07如此,便可以应用将启动起来。

8

服务启动整个过程,可以说是十分快捷简单了。

  ECS EC2ECS Fargate架构对比  

9

使用ECS EC2,您需要维护您的集群,并可能还需要保证AMI 自身的安全,或者安装一些相应的补丁。使用Fargate,将没有这些顾虑,这也意味着:

使用Fargate,运维将更加简单。你只需为你使用的资源付费,你就能更快地迭代您的应用。Fargate EC2 更加轻量级。

10小美

那么,需要将所有ECS任务都切换到Fargate吗?

11小明

当然不是。如上所述,在某些情况下,您的成本将增加三倍以上,所以在它们降低成本之前,您可能最好使用标准EC2实例。

11小明

但是,在以下情况下,Fargate可能对您更有益:

Ø  如果您无法很好地伸缩你的ECS任务,会导致大量空闲的CPU或内存,而使用Fargate,您只需为在任务中定义的资源付费。

Ø  对于按需或按定时计划运行的任务,并不需要一直运行着的EC2实例。使用Fargate,您只需在任务运行时付款。

Ø  适用于有内存和/CPU使用率峰值的任务。有利于节省您配置和管理的时间。

  Fargate的价格  

12

您只需支付运行任务所消耗的vCPU和内存的费用,

而无需为存储等其他资源做考虑。

https://www.amazonaws.cn/fargate/pricing/

一个轻量的web应用,运行一年,

0.25vCPU来计算,一年只需要¥525.6

快来使用Fargate吧!

Silver Lining 御云者平台,已经实现了从EC2到容器,到Fargate+LambdaServerless的究极进化。只需要专注业务的开发,而无需考虑到运维的成本,在保证业务连续性的同时,大大提高的迭代业务的迭代速度。