Migrating Legacy Java-based Software to AWS with High Availability: Best Practices and Strategies

Migrating Legacy Java-based Software to AWS with High Availability

Prev Question Next Question

Question

An agile team just starts using AWS, and the team leader wants them to move the legacy Java-based software to the AWS platform in 2 weeks.

The requirement is that the new environment must be highly available, and the infrastructure is managed as code and version controlled.

Besides, the team has good experiences of Chef, so they want to use that knowledge during the migration.

Which actions should the team perform to meet the needs? Select 2.

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D. E.

Correct Answer - A, D.

Options A, D are Correct:

Firstly, OpsWorks is a supported service in CloudFormation according to https://aws.amazon.com/about-aws/whats-new/2014/03/03/aws-cloudformation-supports-aws-opsworks/

The AWS OpsWorks Resource Types in CloudFormation includes:

AWS::OpsWorks::App.

AWS::OpsWorks::ElasticLoadBalancerAttachment.

AWS::OpsWorks::Instance.

AWS::OpsWorks::Layer.

AWS::OpsWorks::Stack.

AWS::OpsWorks::UserProfile.

AWS::OpsWorks::Volume.

Secondly, EC2 application instances should be managed inside OpsWorks, and they do not belong to infrastructure preparations.

Option A is more accurate than Option.

C.Option A is CORRECT: Because infrastructure should be done via CloudFormation, and it can be easily version controlled.

Either CodeCommit or GitHub is ok.

Option B is incorrect: Because CloudFormation supports OpsWorks service.

A nested template could be utilized to maintain OpsWorks related resources.

Option C is incorrect: Because infrastructure refers to the resources which do not change frequently, such as VPC subnets and Bastion hosts.

EC2 instances are application related and should be maintained within OpsWorks stacks.

Option D is CORRECT: Because the team can use the Chef experiences in OpsWorks to build up the application.

Together with.

Option A, a highly available environment can be built.

Option E is incorrect: Because the OpsWorks service is supported in CloudFormation.

It makes more sense to create an OpsWorks stack as a CloudFormation resource.

The team's goal is to migrate their legacy Java-based software to AWS while ensuring high availability, infrastructure as code, and version control. Additionally, they have prior experience with Chef and would like to utilize it during the migration process.

Out of the five options given, the two most suitable actions the team should perform are A and B.

Option A recommends using CloudFormation templates to build up infrastructure such as VPC, NAT Gateway, Bastion, and Route53. Using infrastructure as code will enable the team to automate their infrastructure deployment and management. Version controlling the templates using CodeCommit will help them track changes made to the infrastructure over time, and they can also revert to earlier versions if needed.

Option B suggests using Chef in EC2 to build up the web services. As the team has prior experience with Chef, it would be easier for them to manage and configure their application using existing cookbooks. They can add an auto-scaling group with an appropriate configuration to ensure high availability.

Option C is similar to option A, where AWS infrastructure such as VPC, NAT Gateway, Bastion host, Security Groups, and EC2 instances are created using CloudFormation templates. However, this option suggests using GitHub for version control instead of CodeCommit.

Option D recommends using a nested CloudFormation template to create an OpsWorks stack with a Java layer. Although this option meets the requirements, it might not be the best approach as it adds complexity to the infrastructure.

Option E suggests using OpsWorks to build up the Java web services. However, as OpsWorks cannot be put into the CloudFormation template, it would be difficult to manage the infrastructure as code and version control it.

In summary, the team should use CloudFormation templates for infrastructure deployment and version control it using CodeCommit. They should also use Chef in EC2 to build up the web services and add an auto-scaling group for high availability.