在亚马逊云容器服务上托管应用程序的5个步骤

本文描述了使用Amazon在云上托管应用程序的5个步骤弹性容器服务(ECS)而且弹性容器注册表(ECR)使用多云策略。
开发人员正在转向在云上托管应用程序,并使用市场领导者提供的各种云服务,如:谷歌(GCP)、亚马逊(AWS)和微软(Azure)。
如今,我们的应用程序必须准备好应对多种挑战,例如:根据需要进行扩展,支持更快的云部署(DevOps工作方式)以及安全参数,并从各个方面支持云自动化。此外,当涉及到企业应用程序时,高可用性和健壮性是必须的!
在这个时代云计算,亚马逊的云原生服务,如ECS和ECR,通过提供以下服务来满足我们的需求,帮助我们轻松地在云上构建、托管和维护应用程序:
- ECS用于云DevOps:
- EC2云服务器
- EBS云存储
- ELB用于负载均衡
- 这种用于应用程序的自动伸缩
- CloudFormation堆栈-维护所有AWS组件
- ECR为Container Registry是一种云原生解决方案用于维护我们所有的容器映像
ECS加速云的自动化我们不需要在我们自己的集群管理系统(如Kubernetes和配置管理系统)上操作。在ECS中托管集群和运行任务有两种不同的方法:
- 通过使用AWS Fargate启动类型来启动集群,将集群托管在无服务器基础设施上,该基础设施由Amazon ECS管理。
- 在Amazon Elastic Compute Cloud (Amazon EC2)实例集群上托管任务,该实例通过使用EC2启动类型进行管理。
你知道吗?
Artifactory Cloud可以作为您的Kubernetes Docker Registry.
它可以为您的k8s集群提供编排应用程序所需的图表和图像。了解更多关于如何做到的信息轻松地将Artifactory配置为EKS的Kubernetes注册表.
AWS Fargate是AWS提供的原生云基础设施,用于运行容器而无需管理服务器。在这种情况下,AWS将负责基础设施的配置、配置和扩展以运行集群。但是,通过Fargate使用EC2服务来启动ECS将为用户提供更多的基础设施控制。
ECS与ECR的工作流程图
下面是如何使用上述组件在云中托管应用程序的指南。
步骤1:创建图像并将其推送到ECR
亚马逊的容器注册表使开发人员可以轻松地存储、管理和部署容器映像云DevOps一个舒适的方法。为了开始使用它,我们需要在AWS ECR上创建一个存储库。然后我们可以使用Docker客户端使用AWS URI验证ECR这样我们就可以使用docker push和docker pull命令来从存储库中推送和拉出图像。
一旦安装就绪,我们就可以在本地机器上创建自己的自定义Docker映像,并将它们推送到ECR存储库中,然后可以由任何访问AWS ECR存储库的Docker客户端检索。
我们可以使用任何外部Docker注册表,例如JFrog Docker注册表,而不是ECR存储Docker镜像,然后可以直接拉到ECS集群。
步骤2:使用所需的容器创建任务定义
的任务定义Stage定义如何启动容器。

我们将通过自定义容器来定义云计算所需的所有参数,在ECS集群上运行,通过为Docker容器提供自定义配置,设置参数,如要公开的端口、Docker镜像、CPU共享、内存需求、环境变量等。
我们可以通过在任务定义的容器定义部分中选择添加容器选项,使用自定义配置添加所需的容器。

我们还可以配置容器网络设置和日志记录配置CloudWatch.
步骤3:创建ECS集群
ECS集群是任务、服务和基础设施的组合。使用Fargate启动类型的任务被部署到由AWS管理的基础设施上,使用EC2实例(Linux/Windows)的任务是容器实例(EC2)应用程序在其上旋转。Amazon ECS容器实例是一个普通的EC2实例,预安装了Docker和ECS代理ECS-optimized AMI.

此外,我们还可以通过安装和配置docker和ECS代理,将常规的EC2实例添加到集群中。
步骤4:在集群中运行定义的任务
在此阶段,我们将从创建的集群中的Task选项卡将任务链接到ECS集群。我们可以指定要使用的任务定义及其版本和此任务的副本数量(通常用于运行项目的子模块)。同样,我们可以定义任务分配策略以及在集群中运行已定义任务的约束。

此外,我们还可以创建定期运行这些任务的计划作业。

步骤5:配置Service服务于ELB和ASG
在这个阶段,我们可以配置服务使在特定集群上运行的任务在ECS集群中同时运行和维护指定数量的任务定义。如果我们的任何任务失败或由于任何原因停止,ECS服务调度器将使用具有相同任务定义的云部署启动另一个实例来替换它,并在服务中维护所需的任务计数。

服务调度器有两种工作策略:
- 副本—该策略在集群中放置和维护所需的任务数量。
- 守护进程-此策略确保任务在所有活动容器实例中存在或运行。
除了在我们的服务中保持所需的任务计数外,我们还可以配置以下内容:
- 负载均衡器:可以配置内部使用的负载均衡器亚马逊ELB.
- 服务发现:我们可以使用亚马逊53号公路为我们的服务创建一个命名空间,并允许它通过DNS被发现。
- 自动缩放:配置自动缩放会在指定范围内自动调整我们的服务所需的数量。我们可以修改服务自动伸缩配置随时满足我们的应用需求。
总之,我们可以使用AWS云服务将整个应用程序作为一个容器集群托管,这些容器具有所有高级功能,允许这些容器联网,负载平衡,根据需要自动扩展它们,并提供所需的日志记录。
作为ECR的替代方案,使用JFrog Artifactory云托管在AWS上提供对二进制工件(包括Docker映像)的更多控制、洞察和管理。
除了这些工具和特性,我们还可以使用Amazon的其他产品,例如用于云存储的S3,作为云数据库的RDS等,使我们的应用程序更加云原生。hth华体会最新官方网站
我们现在需要做的就是轻松进入云端!
