Q27 — AWS SAA-C03 第15章

第 27/100 题 | ← 返回第15章

Q1127. 一家公司在其本地数据中心运行一个单体应用。该公司使用 Java/Tomcat 构建该应用。该应用使用 Microsoft SQL Server 作为数据库。该公司希望将应用程序迁移到 AWS。哪种解决方案能够以最少的运营开销满足这一要求?

正确答案: A. 使用 AWS App2Container 将应用程序容器化。在 Amazon Elastic Kubernetes Service (Amazon EKS) 上部署应用程序。将数据库部署到 Amazon RDS for SQL Server。配置多可用区部署。

解析

满足将应用程序迁移到 AWS 的要求且运营开销最少的解决方案是:A. 使用 AWS App2Container 将应用程序容器化。在 Amazon Elastic Kubernetes Service (Amazon EKS) 上部署应用程序。将数据库部署到 Amazon RDS for SQL Server。配置多可用区部署。解释:AWS App2Container:此服务简化了现有应用程序容器化的过程,减少了迁移所需的操作工作量。Amazon EKS:使用像 Amazon EKS 这样的托管 Kubernetes 服务可以最大限度地减少与管理 Kubernetes 基础设施相关的运营开销,使公司能够专注于应用程序本身。Amazon RDS for SQL Server:RDS 负责管理数据库,包括备份、修补和扩展,与在 EC2 实例上管理数据库相比,这显著降低了运营开销。多可用区部署提供了高可用性和故障转移功能。为什么其他选择不适合:B:设置自管理的 Kubernetes 集群会增加操作复杂性和开销,因为公司需要手动管理整个 Kubernetes 基础架构和 SQL Server 可用性组。C:此选项涉及应用程序架构的重大更改,因为它需要迁移到具有 Amazon S3 和 DynamoDB 的无服务器架构,这可能不适合基于 Java/Tomcat 构建的单片应用程序。D:与选项 C 类似,使用 DynamoDB 作为数据库层需要从 SQL Server 到 NoSQL 数据库进行重大的架构更改,从而增加复杂性和运营开销。因此,选项 A 为将应用程序迁移到 AWS 提供了功能和最小运营开销的最佳平衡。为了以最少的运营开销将带有 Microsoft SQL Server 的单体 Java/Tomcat 应用程序迁移到 AWS,解决方案应该:尽量减少重写/重新架构:避免重写应用程序(例如,转换为微服务或 NoSQL)。利用托管服务:使用 AWS 托管服务(例如 RDS)来降低运营开销。保留现有技术栈:尽可能让应用程序在 Java/Tomcat 和 SQL Server 上运行。关键要求:单片应用程序:可能不适合微服务或无服务器架构。Java/Tomcat:应在兼容的计算服务(例如 EC2、ECS 或 EKS)上运行。Microsoft SQL Server:应在托管数据库服务(如果可能)或兼容实例上运行。最低运营开销:优先选择托管服务,而非自管基础设施。期权分析:选项A:使用 AWS App2Container 将应用程序容器化。在 Amazon Elastic Kubernetes Service (Amazon EKS) 上部署应用程序。将数据库部署到 Amazon RDS for SQL Server。配置多可用区部署。为什么有效:AWS App2Container:自动执行 Java/Tomcat 应用程序的容器化(减少手动工作)。Amazon EKS:托管 Kubernetes(比自行管理的 Kubernetes 运营开销更低)。Amazon RDS for SQL Server:完全托管的 SQL Server 数据库(无需管理备份、补丁或高可用性)。多可用区 RDS:为数据库提供内置高可用性 (DR)。最佳平衡:在容器化应用的同时充分利用托管服务(尽量减少重写)。选项 B:将应用程序容器化,并将其部署到 Amazon EC2 实例上的自管理 Kubernetes 集群上。将数据库部署到单独的 EC2 实例上。设置 Microsoft SQL Server Always On 可用性组。失败原因:高昂的运营开销:自主管理的 Kubernetes 需要修补、扩展和监控。SQL Server Always On 需要手动设置、监控和故障转移管理。更复杂:比选项 A 有更多活动部件。开销不小:这种方法比使用托管服务需要更多的劳动力。选项C:将 Web 应用程序的前端部署为 Amazon S3 上的网站。使用 Amazon DynamoDB 作为数据库层。失败原因:需要进行重大重写:该应用程序是单片 Java/Tomcat(不是静态前端)。DynamoDB 是 NoSQL(与 SQL Server 模式不兼容)。不适合单片应用程序:这种方法需要彻底重新架构。选项D:使用 AWS App2Container 将应用程序容器化。在 Amazon Elastic Kubernetes Service (Amazon EKS) 上部署应用程序。使用 Amazon DynamoDB 作为数据库层。失败原因:DynamoDB 不兼容性:该应用使用 SQL Server(关系型数据库),而非 DynamoDB(NoSQL)。迁移到 DynamoDB 需要大量架构和查询重写。开销并非最低:重写数据库层会增加显著的复杂性。最佳选择:选项 AAWS App2Container + Amazon EKS + Amazon RDS for SQL Server(多可用区)提供:通过 App2Container 实现容器化,最大程度减少人工投入。托管 Kubernetes (EKS)(比自主管理的开销更低)。托管 SQL Server (RDS)(无需管理数据库操作)。高可用性(多可用区 RDS)(内置故障转移)。最终答案:A. 使用 AWS App2Container 将应用程序容器化。在 Amazon Elastic Kubernetes Service (Amazon EKS) 上部署应用程序。将数据库部署到 Amazon RDS for SQL Server。配置多可用区部署。补充说明:AWS App2Container 简化了旧版应用程序的容器化。RDS for SQL Server 是 SQL Server 工作负载的最佳托管数据库选项。EKS 比自托管 Kubernetes 更具托管性(减少了 DevOps 工作量)。避免使用 NoSQL(DynamoDB)可确保与现有应用程序的兼容性。