因为容器的特性,它可以把整个程序运行环境打包到镜像中,我们不需要再单独为其配置运行环境,根据这方面特性,对运行在容器中的应用程序迁移上云变得简单了很多,用户不需要对代码进行任何更改即可完成迁移上云。
那么在 AWS 上面有哪些容器平台供我们选择使用呢?相对于本地自建的容器平台又有什么优势?
在 AWS 云平台中,有两个容器编排工具,一个是 Amazon Elastic Container Service (ECS) 或 Amazon Elastic Kubernetes Service (EKS)。
-
如果应用程序是运行在单机上面的,在云中最佳的选择是 ECS,ECS 是一项高度可扩展的快速容器管理服务,它可轻松运行、停止和管理集群上的 Docker 容器,ECS 与 Identity and Access Management (IAM)、Amazon Virtual Private Cloud (VPC) 和 Amazon Route 53 等 AWS 服务深度集成,并在安全性、可靠性和可用性方面进行了广泛的测试,以支持内部和客户的任务关键型服务。
-
如果应用程序运行在 Kubernetes 上的,在云中的最佳选择是 EKS,EKS 则是运行 Kubernetes 的最安全、可靠且可扩展的方式。EKS 提供的控制平面不仅可扩展且高度可用,还能跨多个可用区运行,以消除单点故障。EKS 可运行上游 Kubernetes,并且经认证与 Kubernetes 一致,因此可以获得社区中开源工具的所有优势。
在 AWS 上运行容器时,也有两个平台可以选择。首先,可以选择是否要管理服务器。如果想要进行容器的无服务器计算,请选择 AWS Fargate,如果需要控制计算环境的安装、配置和管理,则选 Amazon EC2。
Fargate 是客户跨 ECS 和 EKS 在 AWS 上运行容器的首选方式。客户喜欢 Fargate 是因为它提供容器的无服务器计算,此服务可使他们专注于构建其应用程序。使用 Fargate,无需预置和管理服务器,而且可以为每个应用程序指定资源并为其付费,并通过设计隔离应用程序来提高安全性。
-
AWS 容器平台优势
-
低成本:可以选择部分 spot 实例作为底层资源节省费用。
-
企业就绪
-
弹性扩展:云中 EKS 相比自建的 Kubernetes 多 Cluster AutoScaler 特性,可以根据负载扩展集群中的服务器数量,ECS 中由 capacity providers 来提供底层计算资源弹性伸缩。
-
更可靠:ECS 和 EKS 的控制面板由 AWS 完全托管,服务的可用性由 AWS 专业技术团队维护。
-
网络:使用 Amazon VPC CNI,使 container 或者 pod 具有 VPC IP,省去网络封包,提升网络性能。
-
负载均衡:通过使用 AWS ALB,可以让流量直达 container 或者 pod 的 IP,k8s 集群可以省去 service 的分发,提升性能。
-
权限:可以直接为 container 或者 pod 赋予 IAM role 级别的权限,安全访问 AWS 其他服务。
那么面对这么多服务,我们该如何选择呢?
-
首先对于非分布式的应用,也就是单个的容器服务,我推荐选择 ECS + EC2 平台,ECS 为我们简化了容器设定,降低管理容器的门槛,用户只需要按照容器运行的要求设置好 Task definitions 即可,如果您不想管理 EC2,那推荐选择 EC2 + Fargate。
-
对于运行在 k8s 平台的应用程序,首选推荐 EKS + EC2 平台,也可以启动一部分 spot 实例混搭以节省费用,可以把在本地 k8s 上使用的 yaml 文件直接在 EKS 上运行,不需要特别的修改,整个迁移相对来说更加简单,相对于 ECS,需要运维人员更高的一些容器编排技能。对于一些访问量波动比较大的应用程序,我们可以运行在 Fargate 平台上面,弹性扩展底层硬件。
数据迁移
这里所说的数据主要是静态存放的数据,以及一些归档数据,需要把这些数据传输到 S3 中,数据迁移工具的选择主要是考量数据量的大小,以及本地数据中心的带宽大小,不同的组合用到的迁移工具也不尽相同。
-
AWS DataSync 是一种数据传输服务,可以简化、自动执行和加快本地存储与 Amazon S3 或 Amazon Elastic File System (Amazon EFS) 或 Amazon FSx for Windows File Server 之间的数据迁移。DataSync 使用本地代理连接到 NFS 文件系统,并快速迁移文件数据(比开源复制工具的速度快 10 倍),而无需编写和管理脚本。DataSync 能够执行完整的初始副本,增量传输以及对已传输数据的验证。如果您有可用的网络带宽,那么 DataSync 是迁移基于文件的数据的相对简单方法。
-
AWS Transfer for SFTP (AWS SFTP) 是一项完全托管的 AWS 服务,可让您通过安全文件传输协议 (SFTP) 将文件传入和传出 Amazon Simple Storage Service (Amazon S3) 存储。SFTP 也称为安全外壳 (SSH) 文件传输协议。
-
AWS Snow 系列可以为那些需要在严峻的非数据中心环境中运行操作、将大量数据迁出本地环境以及遇到缺乏一致网络连接的情况的客户提供帮助。Snow 系列由 AWS Snowcone、AWS Snowball 和 AWS Snowmobile 组成,可以提供各种物理设备和容量点,其中大部分设备还内置有计算功能。这些服务使您能够在本地经济高效地使用 AWS 云的存储和计算能力,从而有效地传输数据并加速迁移。
我们可以很简单的通过数据库和带宽估算出数据上云所消耗的时间,企业可以根据自己所能承受的能力来选择不同的工具,对于一些数据量比较小的,可以使用 DataSync,SFTP,当然也可也使用 aws cli 把数据传输到 S3,然后对于数据量比较巨大的,通过网络传输相当消耗时间的,我们可以使用 Snow 系列来传输数据。
四、优化
利用 AWS 安全管理服务来管理云环境,从而管理和监控云环境中的应用程序。开始在迁移期间使用这些服务,也可以在迁移后继续使用其中的部分服务来保证混合云的一致体验。
-
云成本管理:AWS 账单和成本管理是一项 Web 服务,借助该服务提供的功能可帮助您监控成本并支付账单。Amazon Web Services (AWS) 根据使用情况向您的账户收取费用,可确保您只需按实际使用量付费。
-
使用 AWS 产品/服务节省费用:购买 AWS 的 RIs 还有 Savings Plans 服务,借助 Compute Optimizer 的推荐调整虚拟机的大小,以实现利用率最高,价值最大化。
-
加快实现应用现代化:利用所节省的资源来增添更多云功能,慢慢把云中的工作负载迁移到无服务模式,实现应用的现代化。
(编辑:广安站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|