Your team was assigned a task to create a Jenkins job to do the backup for a very complicated system.
The Jenkins job will trigger the backup task every week.
For the backup itself, there are several steps involved, including running preparation scripts, launching DB snapshots, checking DB snapshots status, running post scripts, etc.
A Lambda function can implement each step.
Besides, the solution architect expects the running status for each step can be visualized and managed by an AWS owned service.
Which service should you use to achieve this requirement?
Click on the arrows to vote for the correct answer
A. B. C. D.Correct Answer - B.
In this question, it is essential that each step for the backup is visualized in an AWS service.
Step Functions can meet the need as it has provided a UI to help understand the execution status for each step in a state machine.
For example:
Option A is incorrect: Because CodePipeline is normally used for a CI/CD pipeline rather than a state machine.
In this case, the Jenkins job will trigger a backup task in which CodePipeline is unsuitable to be involved.
Option B is CORRECT: Because Step Functions is ideal for managing the various steps, and users can also inspect its visual workflow.
Option C is incorrect: Because SNS can not achieve this requirement by itself.
It has to coordinate with other services.
Option D is incorrect: Amazon EventBridge is a serverless event bus to connect applications using data from your own applications, SaaS, and AWS services, which is not a proper service for this scenario.
The service that best fits the requirement of visualizing and managing the running status of each step is AWS Step Functions.
AWS Step Functions is a fully managed service that allows you to coordinate and visualize the components of your application as a series of steps in a state machine. Each step of the application can be represented as a state, and the transitions between the states are managed by AWS Step Functions.
In this scenario, each step involved in the backup process can be implemented as a Lambda function and each step can be represented as a state in a state machine. The state machine can be created using the AWS Step Functions console or programmatically using AWS SDKs.
AWS Step Functions provides a visual representation of the state machine, allowing you to easily track the execution status of each step. You can also use AWS Step Functions to monitor the progress of the backup task and detect and recover from errors.
AWS CodePipeline is a continuous delivery service that automates the build, test, and deploy phases of your release process. It is primarily used for continuous delivery, and while it does support custom actions, it is not the best fit for this scenario as it is not designed for running complex, multi-step processes.
AWS Simple Notification Service (SNS) is a messaging service that enables you to send notifications to distributed systems and mobile devices. While SNS can be used for monitoring the status of events, it does not provide the orchestration and visualization capabilities that are required in this scenario.
AWS EventBridge is a serverless event bus service that enables you to build event-driven applications. While it provides event routing and filtering capabilities, it does not provide the orchestration and visualization capabilities required to manage the backup process in this scenario.
Therefore, the correct answer is B. AWS Step Functions.