ECS Fargate导入海洋

AWS Fargate serverless计算引擎的容器与亚马逊弹性容器服务(ECS)和Amazon Elastic Kubernetes服务(的)。Fargate处理实例配置和扩展,用户不需要担心当他们的应用程序需要资源实例旋转起来。雷竞技rabet官网虽然有很多优点,它不是没有的挑战,可以限制其适用性广泛的用例。在这个博客中,我们讨论这些局限性以及如何实现你的目标使用现货,NetApp海洋serverless引擎容器。

ECS Fargate注意事项

Fargate抽象基础设施从用户和管理计算在一个黑盒子。没有访问的实际基础设施集群上运行,用户放弃一些控制和透明度。这个计算价格时表现得尤为明显。平均而言,Fargate上运行的工作负载的成本是三倍在EC2上运行相同的工作负载。对于用户来说,想要运行serverless-but Fargate提供更多的成本有效的选择是有限的。虽然可以运行现场实例,更负担得起的定价模型,为这些AWS没有SLA,他们可以带走没有警告。此外,使用Fargate意味着客户也不能利用他们现有的保留的实例。

也有一些技术上的限制(见AWS Fargate考虑),会影响成本和限制的灵活性。除了一些圆荚体大小限制,网络负载平衡、GPU和其他配置,Fargate还将围捕资源请求特定的大小。这种做法可以创建很多积累浪费。例如,如果请求0.7个vcpu豆荚,1 gb内存,这些请求将由Fargate翻译1个vcpu和2 gb的RAM。与大型集群,这种行为会导致浪费和驱动成本Fargate指控产生请求的大小

海洋ECS

最好的基础设施worlds-hands-free和cost-efficient-Spot NetApp提供海洋,serverless平台专用容器。容器由海洋策划,自动管理底层基础设施,你可以节省高达80%的EC2成本。

为了实现这一显著的成本节约,海洋规定的最佳融合点,保留与企业级SLA和随需应变的实例。应用程序可以运行可靠的现场实例,而现货平台监控现货市场和主动代替危险的实例。

在引擎盖下,海洋使用AI-driven算法理解集群资源利用率和每个容器的要求,选择正确的实例匹配的应用程序的需求。旨在提供serverless体验,用户有能力控制自己的基础设施,当他们想要。他们可以设置集群范围的资源限制和完整的可见性和细粒度的控制他们可能需要它的地方。

海洋包含进一步的优点和特性,比如:

  • 容器驱动自动伸缩功能
    部署任务,海洋尺度集群中的实例的数量满足您的应用程序的要求。海洋学习任务需求和决定什么是最好的实例的大小或类型,以适应这些需求。
  • 净空高度
    空间是一个聪明的缓冲能力,允许立即pod调度和有助于避免等待任务。这使得扩大积极的,而不是只是一个被动的过程。海洋支持自定义空间每个虚拟节点组。
  • 虚拟节点组(VNGs)
    您可以管理不同的工作负载类型在一个集群VNGs(此前发射的规范)。在这里,您可以配置不同的AMI,我概要文件和安全组。海洋的自动定量选择正确的VNG基于属性定义。
  • 高配置
    海洋拥抱“container-first”方法,研究实际集装箱需求和利用装箱算法来匹配任务最有效和优化组合的EC2实例。这样可以确保实例被高度利用,难以实现大规模和跟踪,并提供额外的成本减少20 - 30%。
  • 裁员
    此功能有助于优化ECS服务资源需求的CPU和内存,以增加集群的利用率,进一步降低运营成本。它提供了可行的建议适量的CPU和内存根据实际消费数据。
  • 成本Showback
    的挑战之一运行工作负载在microservices架构是,多个应用程序和服务共享底层基础设施,很难区分各种工作负载的成本。与海洋showback成本,用户获得洞察单独的应用程序的成本,与每日、每周和每月的观点,以及相对和总成本。这种可见性允许更好的预算计划、财务报告和预测。
  • 集群卷
    与集群,您可以通过单击应用配置更改。例如,当一个新版本的Kubernetes释放,控制和数据飞机需要更新。管理服务像ECS处理控制飞机,但集群的工作节点需要更新。海洋集群辊特性可以用来更新职工与新ECS AMI版本节点利用智能部署机制取代集群基础设施以蓝绿色的方式。部署执行智能选择的实例启动时考虑吊舱集群中运行的要求,以及对新工作负载集群进入。
  • 可见性
    海洋可以下钻到集群资源的帮助下详细的指示板显示资源分配和利用的观点,与每个节点故障、部署雷竞技rabet官网、任务和到容器的水平。
  • 自动更新ECS代理
    海洋新ECS代理可用时将检测并自动更新最新版本的AMI。

ECS Fargate导入海洋ECS

Pre-req:

  1. 现场组织创建了。如果你没有注册,创建您的地方组织
  2. AWS帐户链接到一个地方组织:文档
  3. 创建一个现货平台API令牌:文档
  4. Fargate使用一个网络模式:“awsvpc”。为了与埃尼分配给每个任务你必须在你的账户启用VPCtrunking允许多个埃尼分配给一个EC2实例。文档

% aws ecs put-account-setting-default us-west2——启用名称awsvpcTrunking——值区域

  1. 使用一个AMI ECS优化:文档
  2. Python 3和皮普3安装。

第1部分:复制作为EC2服务Fargate服务

下面的脚本将自动导入和复制所有当前运行在指定的ECS Fargate服务集群EC2服务由现货的ECS与海洋的集成管理。

脚本首先解析每一个Fargate-defined安全组,并将所有现有的规则添加到一个新的单一安全组。这是必需的,如果你有超过五安全组只有5个安全组可以被附加到一个EC2实例。新的安全组的创建后,将创建一个新的海洋ECS集群在现货SaaS平台。最后,该脚本将开始复制所有Fargate服务通过创建一个新的任务定义和EC2服务。

  1. 下载spot_ecs_fargate。py和需求。txt:https://github.com/spotinst/spotinst-examples/tree/master/Utilities/AWS/Ocean/ECS
  2. 运行:
    % pip安装- r让

  3. 查看帮助文档查看所有必需的参数:

% python301 _ecs_create_ocean_import_fargate。py import-fargate -

用法:01 _ecs_create_ocean_import_fargate。py import-fargate[选项]# #脚本将收集所有服务和做以下:# # 1)描述指定ECS集群内的所有服务# # 2)收集所有SGs为每个服务# # 3)创建新的主SG # # 4)从现有SGs所有规则复制到主SG # # 5)创建一个地方海洋集群# # 6)复制/所有fargate服务导入EC2服务(这并不删除/删除原始fargate服务)# #注意:请使用您自己的自由裁量权。不负责任何损失或意外删除的AWS基础设施。————account_id =字符串。现货账户ID - t,令牌=字符串的位置。io令牌- e, ecs_cluster现货账户ID——sg_name = =弦会创建安全组的名称。——sg_description =新创建安全组的字符串描述。- r,(即区域=字符串区域代码。vpc us-west-2) - v, vpc =字符串ID - s——subnet_ids =字符串子网ID列表。语法”(“subnet123456789”、“subnet123456789”)的字符串——iam_instance_role =这是AWS ecsInstanceRole实例配置文件。 The instance profile arn EX: arn:aws:iam:123456789:instance-profile/ecsInstanceRole. Documentation --ecs_ami=STRING ECS Optimized AMI. Can be retrieved here --profile=STRING AWS Profile Name (Optional) --access_key=STRING AWS access key (Optional) --secret_key=STRING AWS secret key (Optional) --session_token=STRING AWS session token (Optional) --help display this help and exit

4所示。运行脚本使用:

% python3 py import-fargate[选项]

5。输出:

  1. 安全组ID
  2. 海洋集群ID
  3. 迁移状态

第2部分(可选):重命名复制和删除原始的EC2服务Fargate服务。

目标是自动删除现有Fargate服务和重命名新的EC2服务保持原始Fargate服务相同的命名约定。在导入过程中,添加一个前缀的所有进口服务,因为AWS不会允许两个名称相同的服务。这个脚本是可选的,不需要作为一个可以扩展现有Fargate服务为零,从第1部分使用进口的新服务。

这个过程将缩小原Fargate服务为零和删除它们。删除后,该脚本将重新创建服务使用相同的名称,但是使用的新任务定义启动类型的EC2。一旦创建了新的服务,我们将与前缀删除迁移服务,这样你将有相同数量的服务开始迁移之前和任务。

查看帮助文档查看所有必需的参数:

% python3 spot_ecs_fargate。py rename-fargate -

提供必需的参数和运行脚本的旗帜。

运行脚本使用:

% python3 spot_ecs_fargate。py rename-fargate[选项]

输出:

% python3 spot_ecs_fargate。py rename-fargate - e Steven-ECS - r us-west-2 sfm-steven-1 steven-1更新原始Fargate服务为零:steven-1停止任务:Steven-ECS / 63 d5f0f534d54a9e9e524000821f5a67停止任务:Steven-ECS / f0a7c67a1557400d84e54bb615bf0c7c删除原始Fargate服务:steven-1创建EC2服务:steven-1删除迁移SFM服务:sfm-steven-1完成

现在您已经完成了导入和重命名的过程,你可以开始利用海洋。请访问我们的文档了解更多信息。