跳至主要内容

AWS 解决方案库

使用 Amazon Athena 自动查询 Amazon S3 日志的指南

概览

本指南演示自动化工作流程,用户可轻松查询和识别各种 Amazon Simple Storage Service(Amazon S3)相关日志中的请求。通过部署所提供的 AWS CloudFormation 堆栈,用户可以建立必要的基础设施,以自动复制和处理 Amazon S3 日志。该工作流程使用无服务器查询服务 Amazon Athena,让用户能够针对日志数据运行 SQL 查询,并识别潜在的安全或操作问题。

工作原理

这些技术细节包含一张架构图,用于说明如何有效使用本解决方案。该架构图展示了关键组件及其相互作用,并逐步概述了架构的结构和功能。

自信地进行部署

为部署做好准备了吗? 查看 GitHub 上的示例代码,了解详细的部署说明,以根据需要按原样部署或进行自定义部署。 

访问示例代码

Well-Architected 支柱

上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。

本指南使用 CloudFormation 实现全面的资源部署跟踪和可视性。此外,Lambda 亚马逊 CloudWatch 日志中记录操作事件,而亚马逊 SNS 则提供近乎实时的工作流程状态通知。此外,Amazon S3 批量操作可大规模执行复制操作,提供任务和汇总级别的详细完成报告。这种组合可通过详细的日志记录和监控功能快速识别问题并分析根本原因。

阅读“卓越运营”白皮书

安全最佳实践通过 AWS 身份和访问管理 (IAM) 实施,采用最小权限原则。每个组件,尤其是 Lambda 函数,其运行权限范围仅限于特定任务所需的权限。这种精细访问控制可最大限度地减少潜在的攻击面。

阅读《安全性》白皮书

该架构通过多个 AWS 服务支持高可用性工作负载。首先,Lambda 是无服务器服务,旨在随着并发请求数量的增加而自动扩展;该服务还跨多个可用区(AZ)运行每个函数,以帮助确保高可用性。其次,Amazon SNS 会将收到的每条消息存储在多个可用区中,并且每条消息至少传递一次。第三,Amazon S3 为需要查询的 Amazon S3 日志提供跨多个可用区的可靠且持久的存储。第四,Amazon S3 批量操作提供专门构建的功能,可通过错误重试和扩展,执行可靠的大规模对象复制。最后,AWS 软件开发套件 (AWS SDK) 经过优化,可以执行重试和退避以处理暂时性错误。

阅读《可靠性》白皮书

Lambda 支持并行 API 请求处理,而 Athena 则提供基于 SQL 的查询功能,可根据数据量进行自动扩展。此外,Amazon S3 批量操作可高效处理数十亿个对象, Amazon S3 可提供一致的低延迟日志数据访问。这种无服务器方法既能消除基础设施管理开销,又能保持高性能。

阅读《性能效率》白皮书

本指南通过无服务器计算和高效的存储管理,将成本降至最低。具体而言,Amazon S3 生命周期规则会自动过期不必要的数据,而 Lambda 仅按实际使用的计算时间收费。此外,Athena 的按查询付费模式可消除对持久查询基础设施的需求。最后,Amazon S3 批量操作无需专用计算资源即可提供经济高效的批量操作。

阅读《成本优化》白皮书

本指南通过有效利用资源,促进可持续性。事件驱动的 Lambda 函数仅在需要时消耗资源,而 Amazon S3 生命周期策略会自动删除不必要的数据。无服务器架构可消除闲置资源的浪费,解决方案的自动扩缩功能有助于确保资源与实际需求相匹配。最后,与 Amazon SNS 集成后,用户无需维护专用基础设施即可实现高效的信息传递。 

阅读《可持续性》白皮书

免责声明

示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。

找到今天要查找的内容了吗?

请提供您的意见,以便我们改进网页内容的质量。