【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

走近 Fargate,动手配置属于自己的 Fargate 集群

  • 2019-11-04
  • 本文字数:2698 字

    阅读完需:约 9 分钟

走近Fargate,动手配置属于自己的Fargate集群

Fargate 简介

就在大约三年前,AWS 宣布Amazon Elastic Container Service(Amazon ECS)在 AWS 上大规模运行和管理容器。 利用 Amazon ECS,您可以高规模和高可用性地运行您的工作负载,而无需担心运行自己的集群管理和容器编排软件。


现在,AWS 宣布推出 AWS Fargate ,使您能够将容器作为基本的计算单元,而无需管理底层实例。 借助 Fargate,您不需要在集群中配置,部署或扩展虚拟机来运行容器。 今天,Fargate 可以与 Amazon ECS 一起使用,计划在未来支持 Kubernetes(Amazon EKS)的亚马逊弹性容器服务。


Fargate 具有灵活的配置选项,因此您可以紧密匹配您的应用程序需求和精确的每秒计费。



  • 无需管理任何 EC2 实例

  • 基于任务的源生 API

  • 计费到 CPU 和 Memory 级别,按照 Task 使用的这些资源按秒计费

Fargate 优势

无需管理群集


使用 AWS Fargate,您只需考虑容器,以便能够集中精力构建和运行应用程序。AWS Fargate 消除了管理 Amazon EC2 实例群集的需要。您不必再选择实例类型、管理群集调度和优化群集利用率。使用 Fargate,所有这些麻烦都将不复存在。


无缝扩展


借助 Fargate,您可以轻松扩展应用程序。您不必再担心是否为容器应用程序预置了足够多的计算资源的问题。在您指定应用程序要求 (例如 CPU、内存等) 后,AWS Fargate 会以高度可用的方式管理运行您的容器所需的所有扩展和基础设施。您不再需要决定何时扩展群集,也不需要将其打包即可实现最佳利用率。使用 Fargate,您可以在几秒钟内启动数以万计的容器,并轻松扩展以运行最重要的关键任务型应用程序。


与 AMAZON ECS 和 EKS 集成


AWS Fargate 与 Amazon ECS 无缝集成。您只需按照定义 Amazon ECS 的方式定义您的应用程序。您可以将应用程序打包到任务定义中,指定所需的 CPU 和内存,定义每个容器需要的联网和 IAM 策略,并将所有这些内容上传至 Amazon ECS。完成所有设置后,AWS Fargate 就会为您启动和管理容器。


ECS 和 Fargate 集成的优势总结:


开始动手配置 Fargate 集群

在之前配置基于 EC2 的 AWS ECS 服务时,您需要首先创建包含几个 EC2 实例的 ECS 集群。在这个集群中,您需要根据所有运行的容器性能选择合适的 EC2 实例, 配置好自动扩展策略,以保证底层的 EC2 实例可以完全有效的承载上层容器。


但是在 Fargate 中,您可以直接跳过配置底层 EC2 实例的细节,直接根据您的需要配置您希望使用的容器任务参数。而将承载容器的底层 EC2 实例交给 AWS 来维护。



下面就让我们来亲手配置一个属于自己的 Fargate 集群,来体验 Fargate 给我们带来的容器配置和管理的便利性。


目前 Fargate 已经可以在 AWS 的控制台上正式使用了,不过现在仅支持 us-east-1 区域。我们登录后切换到 us-east-1 进行配置。Docker 镜像采用的是 Docker 官方的 Nginx 镜像。

Fargate 基本配置步骤

1. 在 Amazon ECS 服务下面的 Task Definition 创建界面可以选择 Fargate。


如果希望创建原来使用的普通 ECS 集群,则是选择 EC2 类型



2. 设置 Task 和 Container 细节


目前 Fargate 的网络类型只能选择 awsvpc 类型。awsvpc 网络类型会给每一个任务单独分配一个 ENI 网卡,可以使得在网络层面访问每个任务容器和访问 VPC 内部的 EC2 一个。详细关于 awsvpc 网络类型的介绍,可以参考下面两篇文档:


Under the Hood: Task Networking for Amazon ECSIntroducing Cloud Native Networking for Amazon ECS Containers



因为没有 EC2 的概念了,所以需要给 Task 设定内存和 CPU。而且在配置的时候下面有推荐的 CPU 和内存数量



Container 配置部分和普通的 ECS 一样



配置容器名称,容器镜像的 URL,容器占用的内存大小以及容器内部希望暴露的端口等。



使用 Fargate 创建的任务,容器日志会自动启用。启用后容器的日志会在 CloudWatch 创建并直接打入 CloudWatch 日志流中。因为用户使用 Fargate 时不会创建 EC2 实例,所以推荐打开容器日志,可以更好的监控容器的状态。



3. 设置 ECS Cluster


在 Cluster 配置中选择 AWS Fargate 使用的集群



在配置集群和网络中,如果要创建新的 VPC,那么需要勾选该选项。如果希望利用现有的 VPC,那么不勾选该选项即可。后面在创建任务时,会进入分配任务到某个 VPC 的步骤。



在创建好了集群之后,在总界面上可以看见,每个 Cluster 可以混搭 Fargate 以及普通基于 EC2 的 ECS 主机。而我们刚才通过 Fargate 创建的集群,从控制台可以看见,是无需我们维护底层的 EC2 实例信息的。也不会在这里出现。



集群创建完毕之后。开始创建 Fargate 的任务。在集群中启动 Task,Launch 类型选择 Fargate



网络部分选择对应希望放入的 VPC,如果希望 Fargate 创建的 Task 可以被公网访问的话,勾选 auto-assign public IP。全部设置完毕之后,点击 Run Task,启动任务



4. 查看 Fargate 相关 Task 细节


在 Task 处可以看见运行了 Fargate 的容器,



点入 Task,可以看见该 Task 绑定的网卡细节,包括私网 IP 地址和 MAC 地址。但是如果要看公网地址,那么需要进一步点击 ENI




访问该界面发现 Nginx 已经启动



5. 增加负载均衡器(ALB/NLB)


多个任务创建完毕之后。我们需要给新创建的任务添加负载均衡器。因为 Fargate 没有 EC2 实例会暴露出来。只会暴露 ENI 网卡的 IP 地址。所以在负载均衡器方面,仅支持可以添加 IP 地址的 ALB 和 NLB。


添加 Target Group,再次注意,因为 Fargate 没有 Instance 的概念,所以 Target Type 需要选择 IP



针对这个 Target Group 添加目标




创建 ALB,Target Group 选择之前创建的组



创建 ALB 结束之后,已经可以通过 ALB 的域名可以正常访问 Fargate 创建的容器了



6. Fargate 容器日志查看


前面说到可以通过 CloudWatch Logs 的方式记录任务容器的日志。打开 CloudWatch 服务,在 Logs 界面写,可以找到新创建的 ECS Fargate 任务的日志流。



在该日志流中记录了 Fargate 生成的 2 个容器的日志



点击进入其中一个容器的日志,可以看见刚才 MAC 笔记本通过 firefox 浏览器通过 ALB 访问容器的日志记录



至此,一个前端通过 ALB 做负载均衡,后端由 Fargate 生成的由 Nginx 组成的集群搭建完成。整个过程不需要您维护任何 EC2 的实例。完全由 AWS 来帮您维护 EC2 实例,您只需要关系您的容器即可。


作者介绍:


姚远


亚马逊 AWS 解决方案架构师,负责基于 AWS 的云计算方案架构的咨询和设计,同时致力于 AWS 云服务在国内的应用和推广。现致力于网络和 DevOps 相关领域的研究。在加入 AWS 之前,在思科中国担任系统工程师,负责方案咨询和架构设计,在企业私有云和基础网络方面有丰富经验。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/approached-fargate-hands-on-configuration-belongs-to-their-own-fargate-cluster/


2019-11-04 08:001229

评论

发布
暂无评论
发现更多内容

新一代音视频架构在元宇宙场景的实践

网易云信

音视频开发

【网易云信】新一代音视频架构在元宇宙场景的实践

网易智企

音视频开发

华为开发者大会2022直播攻略请查收!

HarmonyOS开发者

HarmonyOS

深圳大数据培训哪个机构比较靠谱

小谷哥

前端面试查漏补缺

loveX001

JavaScript

深圳区块链交易所的交易方式及开发搭建

W13902449729

深圳区块链交易所开发

金融服务的超级App

FinClip

Wallys//IPQ8072/IPQ8074/IPQ8072A/IPQ8074A/HighPower 802.11ax SoC for Routers, Gateways and Access Points

Cindy-wallys

wifi6 IPQ8074 IPQ8074A

存在“致命缺陷”?低代码发展方向如何?

SoFlu软件机器人

软件测试 | 测试开发 | 校招面试真题 | 面试时被问到知识盲区,该怎么办呢?

测吧(北京)科技有限公司

测试

大数据培训和自学哪个靠谱?

小谷哥

js事件循环与macro&micro任务队列-前端面试进阶

loveX001

JavaScript

软件测试面试真题 | 常见网络状态响应码

测试人

软件测试 面试题 状态码 测试开发

在线KMS激活windows系统

源字节1号

软件开发 小程序开发

思码逸 X 贝壳:用代码分析,升级既有效能度量体系

思码逸研发效能

数据 研发效能 研发管理工具

决策树-用回归树拟合正弦曲线

烧灯续昼2002

机器学习 决策树 sklearn 11月月更

实时渲染如何改变视频制作和动画制作

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

新闻新体验!3DCAT助力开启红网“元宇宙”新闻直播间

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

软件测试 | 测试开发 | 测试人生 | 低学历无未来?从小公司到拿下年薪45W+ ,这个90后小哥哥好励志~

测吧(北京)科技有限公司

测试

直呼内行!阿里大佬离职带出内网专属“高并发系统设计”学习手册

程序知音

Java 并发编程 高并发 java架构 后端技术

Oracle表空间设计基本原则

默默的成长

oracle 前端 11月月更

web前端开发培训怎么样,应该怎么来学习

小谷哥

Web渗透测试攻防之浅述信息收集

网络安全学海

网络安全 安全 信息安全 渗透测试 信息收集

2022干货来袭!阿里大佬“亲码”Java全线笔记,差距不止一点点

程序知音

Java java面试 后端技术 Java面试题 Java面试八股文

为什么应该切换到实时渲染

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

实时渲染将如何改变工作方式

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

圆梦腾讯之后,我收集整理了这份“2022Java常见面试真题汇总”

程序知音

Java java面试 Java面试题 Java面试八股文 后端面试

「边缘运算-工厂大脑-云指挥调度中心」的全方位异常事件告警处理架构|智慧工厂系列专题04

EMQ映云科技

物联网 IoT 11月月更 边缘运算 云边协同

web前端培训学习应该怎么规划

小谷哥

应该怎么去学习java培训

小谷哥

华为开发者大会2022即将召开 精彩主题演讲线上同步直播

科技汇

走近Fargate,动手配置属于自己的Fargate集群_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章