Answer: C.
Option A is incorrect because setting up the stage and informing your customers to change their endpoint will affect them by adding downtime on their side.
Option B is incorrect as the same as above but adding the usage plan only helps throttle requests.
It will still affect the customers.
Option C is CORRECT as enabling canary release will allow the developer to route a % of the traffic to the new API in a random order ensuring no one customer is affected too long.
Canary release is a part of a stage in the API Gateway console.
Option D is incorrect because promoting a canary release will make the deployment release, thereby having no delta between the canary and base stage.
If this option is selected, all customers will be affected.
Reference:
https://aws.amazon.com/about-aws/whats-new/2017/11/amazon-api-gateway-supports-canary-release-deployments/
Further, read.
https://docs.aws.amazon.com/apigateway/latest/developerguide/canary-release.html
The correct answer for this question is C. Create a stage and enable canary release.
Explanation: When deploying a new feature, it is crucial to ensure minimal impact to customers. A canary release is an effective way to do this. It involves releasing the new feature to a small subset of users first, and gradually increasing the percentage of users who receive the update over time.
Option A is incorrect because simply creating a new stage and informing customers to change their endpoint will not provide any protection against unexpected problems or errors that may occur during the deployment.
Option B is partially correct because attaching a usage plan can help manage access and usage of the new API. However, it still does not address the main concern of ensuring minimal impact to customers during the deployment.
Option D is incorrect because promoting a canary release means making the new feature available to all customers, which goes against the objective of minimizing impact.
Therefore, the best answer is C. By creating a new stage and enabling canary release, the new feature will be released gradually to a subset of users, allowing for monitoring and troubleshooting before a wider release. This approach ensures minimal impact to customers while allowing for the testing of the new feature in real-time.