AWS 容器和 AWS 容器服务
在云中构建高级应用程序需要利用云中诞生的技术。容器等技术已变得很常见,以确保与各种部署的一致性并避免出现问题。 Amazon Web Services 还提供与云基础设施配合使用的容器。
借助三种特定的云服务,AWS 允许您执行容器化应用程序。 Amazon Fargate, Elastic Kubernetes Service (EKS), 和**Elastic Container Service (ECS)**是三大AWS容器服务。
在本文中,我们将解释 AWS 容器并讨论三种 AWS 容器服务。
为什么容器很重要?
开发人员可以部署他们的应用程序并使用容器有效地打包它们。它们便于携带、重量轻,并提供标准软件环境,使应用程序在任何地方都能轻松运行和扩展。容器的常见用例包括:
-
开发和部署微服务。
-
执行批处理作业。
-
机器学习服务。
-
将应用程序迁移到云端。
容器的使用
微服务
容器提供进程隔离,这使得将应用程序划分为更小的、独立的单元(称为微服务)变得很简单。
批量处理
批处理和 ETL 任务可以打包到容器中,以便快速启动和扩展。
机器学习
在每个平台上,机器学习模型都可以快速扩展以使用容器进行训练和推理。
混合计划
容器通过标准化代码的分发方式,可以轻松地为在本地和云设置上运行的应用程序创建工作流。
AWS容器的特点
AWS 提供了多种资源,使在云中运行容器化应用程序更简单、更安全。 AWS 容器服务有助于管理您的核心基础设施,无论是在本地还是在云中,以节省时间来满足创新和业务需求。目前,AWS 为大约 80% 的基于云的容器提供支持。
出于安全性、可靠性和可扩展性的考虑,Expedia、Samsung、Expedia 和 Snap 等公司选择在 AWS 上运行其容器。让我们看看 AWS 容器中的其中一些功能。
安全
AWS 提供 210 项服务和基本的安全性、合规性和控制功能。该平台还保证您正在运行最新的安全更新,并为您提供为每个容器指定精细访问权限的灵活性。
可靠性
最好的全球基础设施用于支持 AWS 容器服务,跨越 22 个区域的 69 个可用区 (AZ)。因此,其可靠性毋庸置疑。此外,所有三种 AWS 容器服务都存在服务水平协议 (SLA),它们是:Elastic Kubernetes Service (EKS)、Fargate 和 Elastic Container Service (ECS)。
集成
云的灵活性和安全性可以轻松地与容器的速度相结合。此外,您的容器应用程序可能会受益于 AWS 的广度和深度,从安全性和网络到诊断,这要归功于 AWS 容器服务与其他 AWS 服务的紧密连接方式。
多种选择
您可以通过 AWS 为您的要求选择最佳的计算和容器编排器。要运行您的容器,您可以选择最广泛的服务。
例如,如果您想要容器的无服务器计算,您可以使用 AWS Fargate,或者如果您需要完全控制计算环境的设置、管理和配置,您可以使用 Amazon Elastic Compute Cloud(EC2 )。
同样,您可以为容器编排器选择 Amazon Elastic Kubernetes Service (EKS) 或 Amazon Elastic Container Service (ECS)。借助 AWS 提供的多种选择,您可以选择最适合您业务的容器。
##AWS 容器服务
AWS ECS
为了解决 Amazon Elastic Compute Cloud (EC2) 实例上容器管理的难点,亚马逊在 2014 年发布了 Amazon ECS,它本质上可以称为容器管理服务。在 Amazon ECS 的帮助下,可以快速部署容器,每个容器相互隔离并方便地分布在多个端点上。
AWS 管理控制台、AWS 开发工具包、AWS 命令行界面 (AWS CLI)、AWS Copilot 和 AWS CDK 只是 Amazon 提供的用于创建、管理和访问其 ECS 资源的几个接口。此外,Amazon ECS 提供了一个应用程序接口 (API) 和任务定义,让开发人员可以安装和控制在集群上运行的可扩展应用程序。
使用 ECS 的开发人员可以快速启动、管理和停止集群中的容器。他们可以在使用 Amazon ECS 创建的任务定义中设置容器,这些容器可用于单独操作服务或任务。从这个意义上说,服务是一种配置,可用于在集群中连续管理和运行指定数量的任务。
您可以使用 AWS Fargate 维护的无服务器基础设施来运行您的服务和任务。您还可以在托管 Amazon EC2 实例集群上执行您的流程和服务,以替代对您的基础设施的更多监督和授权。
- 亚马逊ECS的特点
借助 Amazon ECS 的强大功能,开发人员可以从操作单个 Docker 容器发展到监督整个业务应用程序组合。此外,借助 Docker 容器,他们可以将应用程序打包为本地容器并在不更改配置的情况下分发它们。 Amazon ECS 的一些主要功能包括:
- 无服务器
Amazon ECS 允许团队通过基础设施和扩展管理控制专注于更重要的任务。在使用 Amazon ECS 时,您无需维护服务器、处理容量规划或分离容器工作负载以确保安全。根据您的资源要求、隔离规定和可用性需求,您可以规划容器在集群中的放置位置。
- Amazon ECS Anywhere
借助 Amazon ECS Anywhere,开发人员可以在客户管理的基础设施上执行和控制基于容器的应用程序的工作负载。 ECS Anywhere 使开发人员能够扩展其运营并遵守合规性要求,而不会影响其本地投资。
- AWS 身份和访问管理集成
通过 ECS,您可以为您的每一个容器赋予细粒度的权限。在创建应用程序时,这会启用高隔离级别。从本质上讲,您可以启动容器,同时保持 AWS 据报道提供的高标准安全性和合规性。
- 控制平面操作
Amazon ECS 中包含自治控制平面、节点或附加组件,具有 AWS 配置和集成的运营最佳实践。通过消除控制控制平面或节点的麻烦,此类解决方案可帮助团队专注于开发应用程序。
- Amazon ECS 的使用
Amazon ECS 在使 AWS Batch 能够跨容器发送作业方面发挥着巨大作用,网站、微服务、视频处理服务、机器学习和其他领域只是它的一小部分用途。以下是它的一些应用程序的列表:
基于容器的微服务改变了 DevOps 测试和交付应用程序或服务的方式。 Amazon ECS 提供了一种在不影响其他服务的情况下升级和部署任何服务的简单且安全的方法。它还使启动微服务和允许服务发现变得简单。
借助 Amazon ECS Anywhere,基于容器的应用程序可以在云中或本地运行,并提供跨环境的标准化工具、活动调度、管理和报告。
Amazon ECS 用于不同的可用区,以 AWS 的速度、稳定性、规模和可靠性运行 Web 应用程序。
Amazon ECS 支持整个 AWS 服务范围内的批处理、调度和规划,例如 Amazon Fargate、Amazon EC2 和 Amazon EC2 Spot 实例。
AWS Fargate
无服务器计算资源用于运行 AWS ECS,并通过 AWS Fargate 服务预置 EKS 容器。据 AWS 称,Fargate 通过管理和预置必要的基础设施,让您能够专注于开发应用程序。
在托管容器时,Fargate 无需构建、扩展或提供虚拟机集群。因此,您无需选择服务器类型、最大化集群打包或决定何时扩展集群。使用 Fargate,您可以避免过度配置和在不必要的服务器上花费,因为您只需在使用容器时投资用于操作容器的资源。
Fargate 任务在其内核中运行,从而创建一个安全可靠的计算环境。因此,工作负载被隔离并提高了安全性。一些重要的 AWS 客户(包括 Vanguard、Ancestry、Accenture 和 Foursquare)使用 Fargate 来运行他们的任务关键型应用程序。
借助 Amazon CloudWatch Container Insights 等其他 AWS 服务的内置接口,AWS Fargate 提供了良好的可观察性。此外,还有无数第三方工具可用于收集日志和统计信息。
Fargate 使团队能够使用 EKS 或 ECS 容器开发和运行应用程序,而无需进行劳动密集型基础设施管理操作,例如保护和扩展服务器以及修补操作系统。
AWS Fargate 还通过与其他 Amazon Web 服务(例如 Amazon CloudWatch Container Insights)的内置集成提供更好的可观察性。这允许用户使用不同的第三方工具收集日志并观察指标。
Fargate 将始终部署和扩展计算资源以满足您为容器定义的要求,以避免过度配置并避免为您未使用的资源付费。您可以制定储蓄计划并获得名额。尽管 Fargate Spot 选项可以为客户节省高达 70% 的通常价格,但它最适用于可中断的应用程序。
- AWS Fargate 平台的版本 Fargate 平台版本是内核版本和容器运行时版本的混合,它描述了可用于任务结构的运行时环境。您可以选择特定版本,例如 1.4.0,或者在提供平台版本时指定 LATEST。
如果您的服务在启动并运行任务后需要扩展,则使用与父部署相同的版本创建新任务。您可以升级您的服务、更改平台版本,并在新平台版本可用时强制进行新部署。这会将您的任务更新到最新版本。
亚马逊X
托管 AWS Kubernetes 服务 - Amazon Elastic Kubernetes Service,通常称为 Amazon EKS,可扩展、管理和交付容器化应用程序。它可以在现场实施,但通常在亚马逊公共云中运行。 Amazon EKS 的 Kubernetes 管理系统使用多个可用区。由于 AWS EKS 已被认证为 Kubernetes-conformant,因此您可以将它与您当前的工具结合使用。让我们看看 Amazon EKS 的工作原理以及它的组件是什么。
- Amazon EKS 的工作 控制平面和工作程序节点构成了 EKS 集群的两个主要组件。每个集群都在自己的综合托管 VPC(虚拟私有云)中运行。控制平面由三个主节点组成,每个主节点都在单独的可用区中运行。 AWS NLB(网络负载均衡器)接收定向到 Kubernetes API 的传入流量。
工作程序节点在 Amazon EC2 实例上运行,该实例位于不受 AWS 管理的 VPC 中。为工作节点指定的 VPC 在您的控制和配置范围内。您可以使用 SSH 配置工作节点或授予对当前自动化的访问权限。
有两种主要的部署方法。可以为每个应用程序或环境设置一个集群,或者您可以使用 Kubernetes 命名空间和 IAM 安全设置为多个应用程序部署一个集群。
EKS 具有 Amazon VPC 网络策略,可用于限制集群和控制平面之间的流量。控制平面组件只能被批准的集群和账户看到,这由 Kubernetes 基于角色的访问控制决定。
##最后的想法
AWS 提供广泛的服务来管理、维护和操作容器。如果您为工作负载选择合适的 AWS 服务,从小型实验到基本生产应用程序的一切都可以变得更简单。随着您的要求变得越来越复杂,AWS Container Services 确保这仍然是可管理的。
您可以根据需要使用不同的 AWS 容器服务。与复杂性较低的前身相比,它们具有更大的灵活性,因此值得使用。
更多推荐
所有评论(0)