Cause Site Outages and Report Results
CCA625 Project 3: Lab 3 Cause Site Outages and Report Results Overview In this lab, we will cause site outages and errors to test the dashboard that we created in the previous lab.
Lab Instructions LAB REPORT
You are required to submit a lab report to the assignment dropbox in Project 3, Step 4. Throughout the steps below within this lab, you will see indicators labeled with LAB REPORT. At those points, you should incorporate an item from that step into your report.
Examples include screenshots of your progress, URLs for running AWS instances, and summaries of your progress.
Write a paragraph in your lab report summarizing what you expect to get out of this lab assignment, how you expect it to help you in the Cloud Computing program at UMGC, and whether you foresee complications in completing the labs.
1. In a web browser, log in to your AWSEducate CCA 625 classroom, click on the "AWS Console" button, and select the CloudWatch service.
If your AWS resources do not appear, check to see if the correct region is selected. If not, use the navigation bar to change the region to the region where your AWS resources are located.
2. Click the Dashboards menu on the left.
3. Click on the BallotOnline-Dashboard link, and you should see a screen similar to the one below.
Used with permission from Amazon Web Services.
LAB REPORT
Take a screenshot of your CloudWatch dashboard before proceeding and insert it into your lab report. You should also write a paragraph explaining how you expect your CloudWatch dashboard to be affected by the activities in this lab.
4. Go to the BallotOnline New Web Service URL from your Project 2 Lab Report.
Example: http://CCA625-LB-1234567890.us-east-1.elb.amazonaws.com
5. Now, to generate traffic and errors, you are going to append a nonexistent web page to the end of the BallotOnline New Web Service URL from the previous step.
Example: http://CCA625-LB-1234567890.us-east-1.elb.amazonaws.com/this-page-does-not-exist.html
LAB REPORT
Take a screenshot of the results that you receive in your browser and insert it into your lab report.
6. Monitor your CloudWatch Dashboard while you refresh your browser window for the above nonexistent webpage 20 times.
7. On your CloudWatch dashboard window, click on the Refresh icon.
You should see the following types of changes in your dashboard:
EstimatedALBActiveConnectionCount should substantially increase.
HTTPCode_Backend_4XX count should increase.
LAB REPORT
Take a screenshot of the dashboard and insert it into your lab report. Write a paragraph explaining why the dashboard changed and provide some examples of other activities that could affect the dashboard.
8. Using the SSH connection to your EC2 instance, run the following command to check that nginx is running on each instance:
netstat -an | grep 80 | grep LISTEN
You should see the following output:
TCP 0 0.0.0.0:80 0.0.0.0:* LISTEN
9. Stop the nginx server on one of your instances by entering the following in the command line:
sudo nginx -s stop
10. Run this command to check that nginx is down and nothing is listening on port 80:
netstat -an | grep 80 | grep LISTEN
You should not see any output from the above command.
11. Go to your CloudWatch dashboard and click on the Refresh button. You should see UnHealthyHostCount increasing as in the screenshot below. If you don’t see any change, wait a few minutes and click on Refresh again. It may take a few minutes for CloudWatch to scan the systems.
Used with permission from Amazon Web Services. Use the mouse to zoom in on the graph to look at it in more detail:
12. Now, you are going to go to the BallotOnline New Web Service URL from the previous step (the Load Balancer URL) to confirm that the site is still available with one instance down.
Example: http://CCA625-LB-1234567890.us-east-1.elb.amazonaws.com/index.html
If you can successfully connect to the BallotOnline website, then your load balancer is working properly.
LAB REPORT
Take a screenshot of your CloudWatch dashboard and the BallotOnline website (including the URL), and insert it into your report along with your observations during this portion of the lab.
13. Now, you will take down your other instance to generate a complete failure scenario.
14. Run this command to check that nginx is running on your other instance (remember we have stopped it on one of our instances):
netstat -an | grep 80 | grep LISTEN
You should see the following output:
TCP 0 0.0.0.0:80 0.0.0.0:* LISTEN
15. Stop the nginx server on one of your instances with:
sudo nginx -s stop
16. Run this command to check that nginx is down and is no longer listening:
netstat -an | grep 80 | grep LISTEN
You should not see any output from the above command.
17. Now, you are going to go to the BallotOnline New Web Service URL from the previous step to confirm that the site is no longer available with both instances down.
Example: http://CCA625-LB-1234567890.us-east-1.elb.amazonaws.com/index.html
If you can no longer connect to the BallotOnline website, then you have successfully caused a complete outage of the site by shutting down the service on both instances.
18. Go to your CloudWatch dashboard and select custom from the menu at the upper right. Select 1 Minutes.
Used with permission from Amazon Web Services. Click on the Refresh button.
You should see the UnhealthyHostCount equal to the number of instances that you have, and the HealthyHostCount as 0.
From a service-level perspective, it is important that you always have instances available behind your load balancer. For this lab, we only have two instances, so you can lose one of them and still maintain availability of the service.
LAB REPORT
Take a screenshot of your CloudWatch dashboard and analyze what actions you could take to minimize the likelihood of outages and ensure compliance with your service-level requirements. Your analysis should be at least two paragraphs in length.
Now that you've successfully caused a service outage, and seen what it can do to your site, you can stop and terminate your AWS infrastructure. Remember, billing continues until you terminate your infrastructure.
Stop and Terminate AWS Infrastructure Warning: Do not perform the steps in this section until you are finished with all of the labs in Project 3, have submitted all of your lab reports, and have a grade that meets project requirements.
19. Go to the AWS CloudWatch Console.
20. Click on Dashboards.
21. Click on each of your dashboards, then click Actions: Delete Dashboard, and then confirm with Delete Dashboard.
22. Go to the EC2 console by selecting EC2 from the Services menu at the top of your window.
23. Click on Auto Scaling Groups on the left.
24. Select your CCA625-Lab-Scaling-Group autoscaling group.
25. Click on the Actions: Delete menu.
26. Confirm that you wish to delete your auto-scaling group with Yes, Delete.
27. Click on Instances on the left.
28. Click on each of your instances and then go to Actions: Instance State: Terminate. When prompted, click Yes, Terminate. Repeat for both instances.
29. Click on Load Balancers on the left.
30. Click on your load balancer (CCA625-LB), and then go to Actions: Delete.
You should check your AWSEducate Classroom Account Status on your classroom page periodically to ensure that you are no longer being billed for anything.
Congratulations!
You have completed the lab. Now, return to the classroom to submit your Lab Report for Step 4 in the assignment dropbox.
- CCA625 Project 3: Lab 3 Cause Site Outages and Report Results
- Overview
- Lab Instructions
- Stop and Terminate AWS Infrastructure