在 Amazon ECS 和 Amazon Fargate 上部署多租户 SaaS 应用程序

云计算
re:Invent
0
0
## 视频 <video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video> ## 导读 在 [Amazon ECS](https://aws.amazon.com/cn/ecs/?trk=cndc-detail) 上构建 SaaS 解决方案的趋势越来越明显。开发多租户 SaaS 应用程序需要解决多个问题,包括租户隔离、租户登录、特定于租户的计量、监控和其他 SaaS 方面。在本论坛中,探索在 Amazon Fargate 上部署解决方案时如何管理多租户方面。 ## 演讲精华 <font color = "grey">以下是小编为您整理的本次演讲的精华,共1300字,阅读时间大约是6分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font> 演讲者Nathan和Jessica在演讲开始时强调,建立成功的SaaS企业以与客户建立信任为核心。Nathan回忆早期职业生涯时,曾与两位经验丰富的SaaS企业家共事,他们教会他建立SaaS就等于建立客户信任。这对Nathan而言是一个关键的心态转变,因为他在基础设施决策方面认识到应注重客户的信任和体验,而不仅仅是技术因素。 Nathan和Jessica总结了设计优秀的SaaS应用所追求的四个主要客户信任支柱: 1. 我信任你的软件在我需要的时候可用 第一个支柱关注于确保SaaS应用的可用性。Nathan解释说,可用性并非只是存在与否的问题,而是在谱系中有不同程度的可用性。理想的状况是尽量减少停机事件,并保持尽可能接近100%或"绿色"的可用性。 为了实现最大化的可用性,一个有效的方法是通过隔离来实施。例如,蜂窝架构将租户划分为独立的单元或隔离仓。如果一个单元出现问题,只有一部分租户会受到影响,而不会影响整个客户群。亚马逊云科技的Fargate还通过在每个任务自己的隔离微型虚拟机中启动任务,进一步增强了这种隔离效果。 2. 我信任你会保护我的数据安全 第二个支柱涉及到客户数据的隐私和安全问题。Nathan和Jessica强调了加密、访问控制和审计的重要性。这些措施可以帮助增强客户对SaaS应用的信任度。 3. 我信任你会在我遇到问题时提供帮助 第三个支柱涉及客户支持和服务质量。Nathan和Jessica指出,提供及时、有效的支持和帮助是建立客户信任的关键。这可能包括在线帮助文档、实时聊天支持以及电话支持等。 4. 我信任你会持续改进和创新 第四个支柱关乎SaaS应用的持续发展和改进。Nathan和Jessica认为,不断更新和改进产品以满足客户需求是维持客户信任的重要途径。这可以通过收集用户反馈、定期发布新功能和改进等方式实现。 使用[Amazon ECS](https://aws.amazon.com/cn/ecs/?trk=cndc-detail)的特性,如断路器,执行零停机时间的滚动部署。当新的部署出现问题时,断路器会自动回滚并失败,以防止停机。据Jessica介绍,通过提前捕获问题,可以避免糟糕的部署给客户带来损失。 首先,将工作负载分离到不同的环境,如临时和生产环境。这样可以在新代码影响最终用户之前进行测试和验证。其次,限流可以帮助解决共享资源池中的“吵闹邻居”问题,例如限制计算和每个租户的需求。Jessica提供了一个API速率限制策略的例子,该策略根据租户级别限制请求和突发容量,从而防止一个租户的用量峰值降低其他租户的性能。 在安全性方面,我信任您的软件来保护我们的数据安全。对于SaaS企业来说,安全是至关重要的。客户数据泄露的漏洞可能会破坏信任并摧毁一个SaaS业务。相较于单体架构,微服务在安全性隔离方面更具优势。采用微服务: - 每个服务都可以通过细粒度的网络安全规则进行防火墙隔离,因为它们具有单独的网络接口。这样,如果一个服务被攻击,可以减少受影响的范围。Nathan解释说,在传统的EC2环境中,需要在主机上打开许多端口以允许容器之间的通信。但是,使用Fargate时,只允许在微服务任务之间进行最低限度的通信。 - 服务可以被授予细粒度的IAM角色,以便在发生漏洞时,只有特定服务可以访问的资源才会暴露。角色还可以进一步按租户级别进行范围划分,以实现更强大的隔离。Nathan提供了一个例子,其中Web任务的IAM角色可以访问S3,而API任务的角色只能访问DynamoDB。 - ECS FireLens提供详细的审计日志,包括元数据如租户ID,从而能够追踪任何潜在的安全漏洞。Nathan解释了如何查询CloudWatch Logs中的结构化数据,以了解可能受未授权访问影响的租户。 - 谨慎的数据库建模(例如,将租户ID作为分区键)可以作为最后一道防线,防止跨租户数据访问。Nathan通过一个示例说明了这一点,即在使用仅用户ID作为键的情况下,由于使用了租户ID前缀,因此可以防止这种访问泄漏。 x86/Intel CPU的基准线Fargate vCPU成本分析:相较于Graviton CPU,基于vCPU的价格便宜了22%,若考虑到性能的提升,最高可节省40%的成本。此外,Fargate Spot服务相较于基准线的按需x86定价,最高可节省68%的费用。 事件驱动的架构使得容器能够根据需求启动和停止,从而避免了资源的浪费。例如,内森设计了一个应用,该应用使用Lambda处理短视频,而使用Fargate处理更长时间的视频。这种方式充分利用了各个服务的优势,降低了成本。演讲者强调,首要任务是最大化客户信任,让开发人员能够专注于快速功能开发而非基础设施管理。ECS和Fargate在多租户SaaS环境中支持了许多实现这些目标的性能。总的来说,演讲者讨论了SaaS应用程序的四个客户信任支柱:可用性——通过诸如microVMs和滚动部署之类的隔离技术来最大限度地提高正常运行时间。安全性——借助微服务和细粒度的IAM角色来限制影响范围,并提供详细的审计日志记录。功能——减轻维护负担,以便有更多的时间用于敏捷功能开发。可持续性——通过对细粒度计费、Graviton、Spot和事件驱动架构进行优化来降低成本。内森和杰西卡提供了许多关于如何使用ECS和Fargate功能支持多租户SaaS应用程序的这些客户信任支柱的例子。他们的见解表明,最成功的SaaS平台首先关注赢得客户信任,然后再做出技术决策。采用这种以客户为中心的方法有助于支持长期的可持续性和增长。 **下面是一些演讲现场的精彩瞬间:** 亚马逊云科技致力于提供优质且高度可靠的云服务,客户可以信赖这些服务以满足其需求。 ![](https://d1trpeugzwbig5.cloudfront.net/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate/images/rebranded/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate_0.png) 领导层解释了亚马逊云科技的分布式架构如何通过隔离故障来确保服务的高可用性,从而防止大规模服务中断。 ![](https://d1trpeugzwbig5.cloudfront.net/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate/images/rebranded/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate_1.png) 为了有效地管理资源,限制不同类型客户的CPU和内存使用可以通过资源定义来实现。 ![](https://d1trpeugzwbig5.cloudfront.net/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate/images/rebranded/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate_2.png) 领导层还谈到了新功能可能带来的维护挑战——为了解决新问题,需要对代码进行更改。 ![](https://d1trpeugzwbig5.cloudfront.net/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate/images/rebranded/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate_3.png) 演讲者展示了一系列工具,以便使用CDK扩展ECS功能的部署。 ![](https://d1trpeugzwbig5.cloudfront.net/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate/images/rebranded/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate_4.png) 原生容器洞察功能提供了来自[Amazon ECS](https://aws.amazon.com/cn/ecs/?trk=cndc-detail)和Fargate的详细遥测数据,使查询和操作分析成为可能。 ![](https://d1trpeugzwbig5.cloudfront.net/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate/images/rebranded/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate_5.png) Fargate技术使得长运行的Web服务应用程序能够最低限度地降低成本。 ![](https://d1trpeugzwbig5.cloudfront.net/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate/images/rebranded/CON313-Deploying_multi_tenant_SaaS_applications_on_Amazon_ECS_and_AWS_Fargate_6.png) ## 总结 本演讲主要关注在开发基于[Amazon ECS](https://aws.amazon.com/cn/ecs/?trk=cndc-detail)和Fargate的SaaS应用过程中如何建立客户信任。演讲者探讨了信任的四个关键方面:可用性、安全性、新功能以及业务可持续性。 为了确保高可用性,他们建议使用微服务架构进行故障隔离并降低影响,同时采用蓝绿部署和金丝雀部署等高级部署策略。ECS中的一个重要功能是电路破断器,可以自动回滚不良部署。Fargate的microVMs也有助于实现任务间的隔离。 在安全性方面,每个微服务的细粒度IAM角色及与亚马逊云科技VPC集成可实现服务间流量的防火墙。通过为特定租户设定IAM角色以访问共享资源(如数据库),实现多租户隔离。CloudWatch FireLens提供了审计日志记录以追踪访问情况。 为了更快速地交付新功能,演讲者推荐使用基础设施自动化工具,如亚马逊云科技的Copilot、CDK和CloudFormation,以降低维护成本。[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)选项如Fargate可最大化开发者的时间投入在新功能开发上。 最后,针对业务可持续性,通过使用Container Insights等工具监测每个微服务的资源利用率,有助于提高盈利能力。Fargate的定价模式允许按需扩展单个容器以最小化浪费。此外,利用Spot实例和Graviton处理器进一步降低成本。 总的来说,演讲者为使用容器构建安全、灵活、创新且经济高效的SaaS应用提供了实用的建议和亚马逊云科技的相关服务。 ## 演讲原文 ## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站! [2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站") [点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯! [点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯! ## 即刻注册亚马逊云科技账户,开启云端之旅! [【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“") [【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭