本指南演示如何使用多种无服务器计算和数据库服务构建高度可用的住宿预订系统,每种服务均针对特定功能量身定制。它展示了用于支持管理门户后端、库存管理以及预订引擎、移动应用程序和第三方系统中搜索和预订功能的服务。借助本指南,您可以开发出稳定、低延迟的库存和预订服务,能够处理任何规模的需求。
请注意:[免责声明]
架构图
[架构图描述]
第 1 步
物业管理员对管理员门户的访问权限存储在 Amazon Simple Storage Service(Amazon S3)存储桶中,通过 Amazon CloudFront 提供服务。
物业管理员通过 Amazon API Gateway 创建业务对象(如房间类型、费率、购物和预订规则、税费等),Amazon API Gateway 将调用 Amazon Cognito 验证请求中的凭证。
第 2 步
AWS Lambda 处理配置请求,并将其存储在 Amazon S3 和 Amazon DynamoDB 中。配置更改会调用 Amazon EventBridge 事件,供应用程序的其他部分处理。
第 3 步
来自 EventBridge 的新配置事件会调用一个 Lambda 函数,该函数会从 Amazon S3 读取已发布的配置,并更新 Amazon Aurora 无服务器关系数据库中的库存数据。
第 4 步
客户端应用程序将搜索到的目的地传递给 AWS Fargate 中托管的地理定位服务。地理定位服务调用 Amazon Location Service 来确定 GeoHash。Amazon ElastiCache 缓存结果,以提高性能并降低成本。
第 5 步
客户端应用程序使用 GeoHash,通过 API Gateway 调用购物 API,并通过 Lambda 搜索该位置的物业。该服务从 NoSQL 数据库 DynamoDB 中检索 Geohash 映射,并从库存 API 和动态定价微服务中检索物业。
第 6 步
定价微服务为购物服务提供动态酒店价格。它从 Amazon S3 读取已发布的酒店配置。
第 7 步
预订微服务使用 API Gateway、Lambda 和 Amazon S3 来处理客户端预订请求。它在 Amazon Quantum Ledger Database(Amazon QLDB)中创建预订记录。然后,它向 Amazon Kinesis 发布预订,供动态定价微服务和其他分析应用程序或第三方应用程序使用。
开始使用
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
EventBridge 让您能够实时响应事件,它会根据 AWS 环境中的变化自动做出响应。Amazon CloudWatch 可监控 AWS 资源和应用程序,提供对性能、运营状况和整体状态的洞察,让您可以采取积极措施维持卓越运营。通过这些服务,您可以构建和运营与业务目标相一致的可靠、可扩展、高效的系统。
-
安全性
AWS Identity and Access Management(IAM)可管理对 AWS 资源的访问权限,定义和实施最低权限访问,并支持多重身份验证(MFA),以增强安全性。Amazon Cognito 可简化用户身份验证和授权,在保护用户数据的同时实现安全的应用程序访问。AWS CloudTrail 可提供对账户活动、审计、监控和安全策略合规性的可视性。EventBridge 可自动响应安全事件(例如轮换访问密钥或禁用受感染的资源),从而强化整体安全态势。
-
可靠性
EventBridge 简化了事件的管理和分发,实现了可靠的事件驱动型架构。Aurora Serverless 可根据对高可用性和容错能力的需求,自动扩展数据库容量。此外,Fargate 可为容器化应用程序提供可靠且可扩展的基础设施,您无需管理服务器或集群。Location Service 可提供可靠而准确的位置数据,有助于提高应用程序的整体可靠性。
-
性能效率
CloudFront 通过在边缘站点进行缓存、减少延迟和改善用户体验,实现了内容的高效交付。DynamoDB 提供了快速且可扩展的 NoSQL 数据库性能,在任何规模下都能提供个位数毫秒级的响应时间,因此适用于具有高读写流量和高性能要求的应用程序。
-
成本优化
Amazon S3 提供了经济实惠的存储和内容交付服务,您只需为使用的存储付费。Lambda 可提供无服务器计算,将减少基础设施开支。此外,Lambda 无需您预置或管理服务器即可运行代码,因此您只需为消耗的计算时间付费。
-
可持续性
无服务器计算服务 Lambda 和 Fargate 可根据实际工作负载需求自动预置和扩展资源,从而为可持续发展做出贡献。这些服务通过优化资源利用率并消除闲置资源,最大限度地减少浪费、降低能耗和碳排放。
相关内容
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。