Which solution will meet these requirements with the LEAST operational overhead?
Rewrite the application to surface a custom error to the application log when issues occur. Automatically parse logs for errors. Create an Amazon CloudWatch alarm to provide alerts when issues are detected.
Create an AWS Lambda function to test the website. Configure the Lambda function to emit an Amazon CloudWatch custom metric when errors are detected. Configure a CloudWatch alarm to provide alerts when issues are detected.
Create an Amazon CloudWatch Synthetics canary. Use the CloudWatch Synthetics Recorder plugin to generate the script for the canary run. Configure the canary in line with requirements. Create an alarm to provide alerts when issues are detected.
In the Amazon CloudWatch console, turn on Application Insights. Create a CloudWatch alarm to provide alerts when an issue is detected.
Explanations:
This option requires custom error handling and log parsing, which introduces manual complexity and operational overhead. It does not directly address monitoring the website’s frontend issues, such as missing or incorrect pages.
While using AWS Lambda and CloudWatch custom metrics can detect errors, it requires building and maintaining a custom function to test the website. This introduces additional operational overhead for writing, testing, and managing the Lambda function.
AWS CloudWatch Synthetics can be used to create canaries that simulate user interactions with the website. It provides an automated way to monitor the site for issues like broken links or incorrect pages, with minimal operational overhead. CloudWatch alarms can be set to trigger when issues are detected.
Application Insights is more focused on monitoring application-level issues in resources like EC2 or RDS, not for detecting front-end issues such as broken links or incorrect webpages. This would not directly solve the problem described.