[SEO 副标题]
本指南展示如何在 AWS 上运行 Galaxy 软件,让您受益于 Galaxy 平台的易用性,同时使用 AWS 专门构建的服务来完成所需的无差异化繁重任务,而不会影响您的安全性或数据完整性。Galaxy 是一款开源 Web 应用程序,您可以通过其图形化 Web 界面运行生物医学研究的数据密集型作业。本指南借助 AWS 用于数据存储和计算的原生服务,展示了在上传、管理和分析大型数据集时,如何优化 Galaxy 的端到端平台。
请注意:[免责声明]
架构图
[架构图描述]
第 1 步
Galaxy 用户通过应用程序负载均衡器的公共端点访问 Galaxy Web 应用程序。
第 2 步
Galaxy 将用户元数据和历史记录存储在 Amazon Aurora Serverless 托管的 PostgreSQL 数据库中,Galaxy 用户可通过 Galaxy Web 服务器进行访问。此访问的凭证存储在 AWS Secrets Manager 中。
第 3 步
Galaxy 数据卷存储用户数据,包括用于处理的输入数据和已处理的数据。Amazon Elastic File System(Amazon EFS)提供存储容量。
第 4 步
Galaxy 利用消息队列在内部进程之间进行通信。本指南在 Amazon MQ 上托管消息队列,这是一项托管的消息代理服务,此处使用的是 RabbitMQ。代理的凭证存储在 AWS Secrets Manager 中。
第 5 步
用户可以通过 Galaxy Web 服务器查看、安排和管理 Galaxy Jobs 容器组(pod)中的生物信息学作业。
第 6 步
AWS Backup 定期备份 Amazon EFS 文件系统和 PostgreSQL 数据库。
第 7 步
Galaxy 组件和 AWS 基础设施的监控和日志收集都集中在 Amazon CloudWatch 中。
第 8 步
Amazon Elastic Kubernetes Service(Amazon EKS)提供控制面板,为 Kubernetes 容器组(pod)管理网络和节点,并通过添加或移除节点进行横向扩展。其他容器组(pod)通过 Amazon EKS 部署,以便与 Secrets Manager 同步密钥,并将日志发布到 CloudWatch。
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
本指南使用的服务可让您通过监控和日志记录,全面了解工作负载,同时还能为您提供可靠、稳定、可信赖的应用程序。例如,通过 CloudWatch,您可以通过指标、个性化控制面板和日志获得可观测性,此外还可以根据本指南中的指标定义警报,从而监控工作负载的运行状况,最大限度地降低事故造成的影响。此外,Amazon EKS 集群还可以识别运行状况不佳的容器,并自动将它们替换为新容器,使您的工作负载能够应对事故和事件。
-
安全性
默认情况下,所有传入 Galaxy 的连接均来自公共互联网,并通过可公开访问的应用程序负载均衡器定向到 Galaxy 服务器。或者,也可将本指南配置为使用专用子网中的内部应用程序负载均衡器,其中流量通过虚拟专用网络(VPN)连接或 AWS Direct Connect 进行路由。在这两种情况下,计算资源都部署在专用子网内,不能直接从公共互联网访问。Galaxy 通过自身的用户管理或 Active Directory 联合身份验证服务(AD FS)处理应用程序级身份验证和授权。
-
可靠性
为了实现可靠的应用程序级架构,本指南的各个组件都作为松散耦合的 Kubernetes 容器组(pod)部署。此外,消息代理是完全托管的服务 Amazon MQ,在我们的默认配置中,它包含一个备用服务器。最后,共享文件系统通过 Amazon EFS 提供,具有高度可用性,通过 Aurora Serverless 提供的数据库也是如此。
-
性能效率
Amazon EKS 是一项 AWS 原生服务,本指南重点介绍通过经济划算的方法,使用选定的资源部署和配置该服务,让您可以实现具有高可用性和低运营成本的可靠 Kubernetes 应用程序。Amazon EKS 的架构跨越多个可用区,可实现高可用性。虽然在部署到可用区的子网之间会存在一些流量,但其延迟应该不会对性能产生任何重大影响。
Amazon EFS 旨在提供无服务器、完全弹性的文件存储,让您无需预置或管理存储容量和性能,即可共享文件数据。它提供了便携式操作系统接口(POSIX)文件系统,具有生物信息工作负载所需的性能。
-
成本优化
在 Amazon EKS 集群中,影响数据传输成本的一个重要因素是外部客户端通过应用程序负载均衡器对 Kubernetes 服务的调用。调用服务时的数据传输成本被映射为运行在不同可用区的容器组(pod)间通信。
由于计算节点的最小、最大和所需数量以及相应的 Amazon Elastic Compute Cloud(Amazon EC2)参数具有高度可配置性,因此资源得到了有效管理。
最后,无服务器架构采用按价值付费的定价模式,并可根据需求进行扩展。这包括 Aurora Serverless 数据库和 Amazon EFS。我们建议您以编程方式标记属于某个项目的 AWS 资源,然后在 AWS Cost Explorer 成本管理服务中使用标记创建自定义报告,以实现成本的可视化和监控。
-
可持续性
通过选择合理调整规模的实例,您可以仅使用所需的资源,从而减少不必要的碳排放。同时,通过使用具有动态扩展功能的服务,可以最大限度地减少后端服务对环境的影响,并确保根据网站的需求扩展计算资源。此外,使用完全托管的服务(例如 Amazon EFS)可以最大限度地减少所需的资源。
相关内容
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。