Which solution will meet these requirements MOST cost-effectively?
Deploy Amazon EC2 instances in an Auto Scaling group behind an Application Load Balancer for the web tier and for the application tier. Use Amazon Aurora PostgreSQL with Babelfish turned on to replatform the SQL Server database.
Create images of all the servers by using AWS Database Migration Service (AWS DMS). Deploy Amazon EC2 instances that are based on the on-premises imports. Deploy the instances in an Auto Scaling group behind a Network Load Balancer for the web tier and for the application tier. Use Amazon DynamoDB as the database tier.
Containerize the web frontend tier and the application tier. Provision an Amazon Elastic Kubernetes Service (Amazon EKS) cluster. Create an Auto Scaling group behind a Network Load Balancer for the web tier and for the application tier. Use Amazon RDS for SQL Server to host the database.
Separate the application functions into AWS Lambda functions. Use Amazon API Gateway for the web frontend tier and the application tier. Migrate the data to Amazon S3. Use Amazon Athena to query the data.
Explanations:
This option utilizes Amazon EC2 instances in an Auto Scaling group behind an Application Load Balancer, which effectively handles scaling for the web and application tiers. Amazon Aurora PostgreSQL with Babelfish allows the company to replatform from SQL Server without needing to rewrite the application, reducing licensing costs and supporting compatibility. This approach leverages AWS managed services while minimizing changes to the existing application architecture.
This option suggests creating images of all servers and using Amazon EC2 instances in an Auto Scaling group, which is a valid approach. However, using Amazon DynamoDB as the database tier would require significant application changes and potential rewrites, contrary to the requirement of not wanting to rewrite the application. Additionally, AWS DMS is primarily used for migration, not for continuous operations.
Containerizing the application tiers and using Amazon EKS introduces complexity and potential changes to the application architecture. While EKS can handle scaling, this option may not be the most cost-effective since it involves managing container orchestration. Furthermore, using Amazon RDS for SQL Server does not resolve licensing costs effectively, as it still requires SQL Server licenses.
This option proposes separating application functions into AWS Lambda, which would require significant rewrites of the existing .NET application, contrary to the requirement of not wanting to rewrite the application. While using API Gateway and S3 can offer cost savings, the fundamental change to the application architecture makes this option inappropriate for the company’s needs.