Final Report To Executive Managers
XXXXX
CCA 625
University of Maryland Global Campus
XXXXX
Table of Contents
Executive summary 1
Lab results (4–8 pages) 1
Lessons Learned from The Labs 13
Feasibility of cloud environment for BallotOnline web services deployment 15
2
Building An AWS Migration Environment and Configuring the Web ServicesExecutive summary
Compute, databases, storage, analytics, mobile, networking, developer tools, management tools, IoT, security, as well as corporate applications are all available through Amazon Web Services (Wang et al., 2017). These services enable BallotOnline to move more quickly, save money on IT, and grow. Web and mobile apps, game development, data processing and warehousing, storage, archiving, and many more workloads are all powered by AWS, which is trusted by the world's largest companies and the hottest start-ups.
The relational database transfer is supposed to be met with skepticism by the web development team. I have a task to create a proof-of-concept application to test it. During the proof of concept, I have to learn how to use the AWS Management Console to start, stop, and configure Amazon EC2 instances and Amazon RDS DB Instances, store and retrieve Amazon S3 items, and set up elastic load balancers (Zulu et al., 2018). Also, I might learn a lot about AWS and realized that they had complete control over the environment, which am sure will make me feel much more secure about taking the next step.
The standard “mysqlimport” tool is used to migrate relational database files to Amazon RDS instances. I will put up a DB Instance in a single Availability Zone for the test environment, and a multi-AZ deployment for the production environment to enhance availability (Cao et al., 2017). My main goal is to properly test and migrate all data to a database instance, as well as get performance measurements using Amazon CloudWatch and define backup retention settings. I have also to construct migration scripts to automate the process and raise awareness inside the company by hosting a "brownbag" session.Lab results (4–8 pages)
Lab 1 Report
Load Balancer DNS Name:
internal-CCA625-LB-65451032.us-east-1.elb.amazonaws.com
Summary of the Lab
Before beginning this lab, I ensured that the VPC and EC2 instances are correctly configured. In addition, I checked that the security groups for the instances made allow http which is on port 80. Later I installed the Apache web server on every instance filling respective DNS names (Joshi & Shah, 2019).
Incoming traffic is distributed over many targets in one or more Availability Zones, such as EC2 instances, containers, and IP addresses, using Elastic Load Balancing. It monitors the health of the targets it has recorded and only delivers traffic to those who are in excellent form. One can scale the load balancer as the incoming traffic varies using Elastic Load Balancing. It can automatically scale to the vast majority of workloads. The Load bal ...
1. Final Report To Executive Managers
XXXXX
CCA 625
University of Maryland Global Campus
XXXXX
Table of Contents
Executive summary 1
Lab results (4–8 pages) 1
Lessons Learned from The Labs 13
Feasibility of cloud environment for BallotOnline web services
deployment 15
2
2. Building An AWS Migration Environment and Configuring the
Web ServicesExecutive summary
Compute, databases, storage, analytics, mobile, networking,
developer tools, management tools, IoT, security, as well as
corporate applications are all available through Amazon Web
Services (Wang et al., 2017). These services enable
BallotOnline to move more quickly, save money on IT, and
grow. Web and mobile apps, game development, data processing
and warehousing, storage, archiving, and many more workloads
are all powered by AWS, which is trusted by the world's largest
companies and the hottest start-ups.
The relational database transfer is supposed to be met with
skepticism by the web development team. I have a task to cr eate
a proof-of-concept application to test it. During the proof of
concept, I have to learn how to use the AWS Management
Console to start, stop, and configure Amazon EC2 instances and
Amazon RDS DB Instances, store and retrieve Amazon S3
items, and set up elastic load balancers (Zulu et al., 2018).
Also, I might learn a lot about AWS and realized that they had
complete control over the environment, which am sure will
make me feel much more secure about taking the next step.
The standard “mysqlimport” tool is used to migrate relational
database files to Amazon RDS instances. I will put up a DB
Instance in a single Availability Zone for the test environment,
and a multi-AZ deployment for the production environment to
enhance availability (Cao et al., 2017). My main goal is to
properly test and migrate all data to a database instance, as well
as get performance measurements using Amazon CloudWatch
and define backup retention settings. I have also to construct
migration scripts to automate the process and raise awareness
inside the company by hosting a "brownbag" session.Lab results
(4–8 pages)
Lab 1 Report
3. Load Balancer DNS Name:
internal-CCA625-LB-65451032.us-east-1.elb.amazonaws.com
Summary of the Lab
Before beginning this lab, I ensured that the VPC and EC2
instances are correctly configured. In addition, I checked that
the security groups for the instances made allow http which is
on port 80. Later I installed the Apache web server on every
instance filling respective DNS names (Joshi & Shah, 2019).
Incoming traffic is distributed over many targets in one or more
Availability Zones, such as EC2 instances, containers, and IP
addresses, using Elastic Load Balancing. It monitors the health
of the targets it has recorded and only delivers traffic to those
who are in excellent form. One can scale the load balancer as
the incoming traffic varies using Elastic Load Balancing. It can
automatically scale to the vast majority of workloads. The Load
balancer and the instances are created as discussed in the s teps
summarized below;
Step 1: I decided on a load balancer.
Step 2: I determined the parameters of my load balancer.
Step 3: I created a VPC and added security groups to my load
balancer.
Step 4: For my EC2 instances, I set up health checks.
Step 5: I used my load balancer to register EC2 instances.
Step 6: As an optional step, I labeled my load balancer.
Step 7: I built a load balancer and tested it.
Step 8: Remove the load balancer from your system, which was
optional too.
Lab 2 Report
4. To initiate the SSH session, I entered my EC2 login, DNS
information, and keypair into putty. The sudo yum update
command was then run. I installed NGINX on the instance once
that was finished. After receiving a complete, I knew it was put
properly. The next step was to copy files from Ballotonline.biz,
which included a ZIP file that had to be unzipped. I created a
directory for it and then copied the website files from the
traditional web server into it. By executing another command in
the session, I was able to alter the permissions on the website
files to make them less restrictive.
In the first case, I checked to see whether I could visit the
website, and the results reveal that I was able to do so (Wang et
al., 2017). For my second instance, I repeated all of the
procedures as seen in the screenshots below. The second
instance was also successful, demonstrating that the website
could access the data.
Lab 3 Report
I anticipated to see the statistics to every service I wish to
watch or observe before I launch CloudWatch. This experiment
will teach me how to interpret metrics more effectively and
have a better understanding of how various services utilize more
5. data, resulting in higher or lower AWS costs (Zulu et al., 2018).
With this hands-on experience, I feel this lab will aid me in
better understanding AWS and the administration console.
When I was developing a dashboard for Cloudwatch, I
discovered how simple the AWS interface is, especially when
you use it frequently. These labs have been extremely useful in
making the management console more user-friendly. The labs,
in my opinion, also aid in learning how AWS instances operate
and how to modify them using code. The statistics are
summarized as shown in the pictures below;
Lessons Learned from The Labs
Based on the lab practical the lessons learnt include the
following as discussed below;
i Data Migration. Following the proof of concept, I decided to
move all of the application's static files (such as static HTML
content) to an Amazon S3 bucket, create an Amazon S3
CloudFront distribution, and change web page references so that
end-users get content directly from Amazon S3 and Amazon
CloudFront. Using a few scripts and the AWS SDK for Java
libraries, they were able to move all data from tape drives to
Amazon S3.
ii Application Migration. Throughout the application migration
process, I created both small and large instances3 for its web
and tomcat servers. They created AMIs (Amazon Machine
Images, or "golden" system images) for each server type.
During the starting process, AMIs were built to boot directly
from an EBS volume and download the most recent WAR file
binaries from the source code repository (Joshi & Shah, 2019).
In their development and deployment procedures, I moved the
endpoint to the cloud. Security groups were developed to
segregate web servers from application and database servers.
Testing (performance, functionality and so on) was done to
6. ensure that the systems worked as they should and that each
component's exit criteria were met.
iii Leveraging the Cloud. BallotOnline was looking forward to
the day when they could use some of AWS' sophisticated
capabilities when the production site was released. I automated
several steps so that the server could be quickly "connected" to
the topology once it was launched (Shirvani & Gorji, 2020). I
then built an Auto Scaling group of web servers, which allowed
me to automatically supply more capacity when certain
resources reached a given level (Apache web servers CPU
utilization above 70 percent for 15 minutes). Later, I put some
time and effort into simplifying their development and testing
procedures so that cloning testing setups would be simple. I
acquired a lot of expertise with AWS resources and spent time
learning how to use several Availability Zones to increase
availability even further.
iv Optimization. I was able to examine their use habits
throughout the optimization process and discovered that
switching to Reserved Instances would save them 28%. Four
Reserved Instances were acquired for me (2 for web servers and
the other 2 for tomcat servers). Additional scripts were written
to operate their web application in three separate “modes”:
weekend, weekday, and promotion mode (Zulu et al., 2018).
These settings specified the bare minimum of servers that may
be used. I also incorporated Amazon CloudWatch into their
current dashboards so that I can keep track of the system
metrics of each cloud instance in their fleet.
v Technical Skills. The technical skills I learned via AWS setup
and settings are as follows: Operating system essentials,
virtualization fundamentals, networking core principles, as well
as any programming language concepts, among many others.
vi Elastic Load Balancing Services. To increase the availability
and scalability of your applications, Elastic Load Balancing
works with the following services:
a. Amazon EC2. Virtual servers in the cloud that execute your
apps. One may direct traffic to their EC2 instances using the
7. load balancer.
b. Amazon EC2 Auto Scaling. Makes sure that the appropriate
number of instances are operating, even if one of them fails. As
the demand on the instances varies, Amazon EC2 Auto Scaling
allows you to automatically raise or reduce the number of
instances.
c. AWS Certificate Manager. One can provide certificates given
by ACM while creating an HTTPS listener. Certificates are used
by the load balancer to stop connections and decode user
request.
d. Amazon CloudWatch. Allows one to keep an eye on the load
balancer as well as take action as necessary.
e. Amazon ECS. Allows one to run, terminate, as well as
administer the Docker containers on an EC2 cluster. One may
direct traffic to your containers using your load balancer.
f. AWS Global Accelerator. Improves the availability as well as
performance of the application. Use an accelerator to distribute
traffic over several load balancers in one or more AWS
Regions.Feasibility of cloud environment for BallotOnline web
services deployment
The AWS cloud is a collection of all network-connected servers
on which its service platform is hosted, and we sarcastically
refer to it as "the cloud." Some of the following features have
been made possible for a group of computers for the
BallotOnline Organization:
BallotOnline was able to create a new online application as well
as migrate an existing application to the AWS. The team was
able to save 25% on operating expenditures while also freeing
up physical infrastructure for additional activities. A phased-
driven strategy allowed the development team to address all of
the financial, technological, and social-political concerns.
Investing in a proof of concept was a smart move. The resultant
architecture was not only flexible and simple to maintain, but it
was also elastic as well as scalable.
The company can combine the computational power of
numerous processors and storage devices, as well as the network
8. connection of those components, into a single, contiguous unit,
thanks to virtualization (the ability for software to behave like
hardware). In other words, they must pool their resources so
that they may be seen as a single large computer rather than a
collection of smaller computers (Cao et al., 2017).
The workloads which operate on the organization's pool of
resources are not really tied to any particular physical location.
That is, their storage, databases, as well as processes, in
whatever form they are stored, are fully portable over the cloud
(Wang et al., 2017). A self-service portal must be able to setup
the resource pools that operate these workloads. By buying
virtual infrastructure (pooled resources for processing and other
activities) over the Web, any customer who needs to execute a
process on a server can do so.
The capacity of BallotOnline to employ cloud services has
become a critical component of their efficiency and
competitiveness. On the other side, lack of access would
prevent the SME sector from reaching its full potential. In
general, cloud computing services provide an open business
platform for BallotOnline by providing access to time and
distance independent sources of data (Shirvani & Gorji, 2020).
The outcomes of an organization's investment in cutting-edge
technology, such as AWS Cloud Computing in this case,
provide additional insight on adoption patterns. According to
the PEST study, the growing AWS Cloud Computing
technologies have the potential to multiply the company's
productivity, efficiency, and profitability, as well as those of
other small businesses.
For this example, the BallotOnline company, the AWS Cloud
model is supplied to end users as targeted pay-per-use services,
with providers offering assurances through tailored Service
Level Agreements (SLAs). This turns computer power into a
public utility, similar to water, electricity, or gas, and
represents a significant paradigm shift for the IT sector and,
perhaps, society as a whole.
While AWS currently hosts virtual machine-based Web sites, its
9. contemporary business model is focused on offering
functionality to people and companies over the Internet (Zulu et
al., 2018). The emphasis here is on "the Web" in its technical
sense: the servers which transact and exchange data packets
using the HTTP and HTTPS protocols. The Web is frequently
mentioned as the location where ZDNet is published. Modern
software, on the other hand, connects with its users over the
Internet. This concept is well-executed by the BallotOnline
organization.
BallotOnline provides the best options to those in charge of
extending and integrating SaaS applications by continually
reviewing needs. Instead of adopting a PaaS technology that
may have a cost per solution, it obtains a higher return from an
existing SaaS service by moving select applications and
integrations to it.
According to BallotOnline, Cloud-based technology offers
inexpensive start-up costs, low cost for occasional usage,
simplicity of management, scalability, device and location
independence, and rapid innovation. It is critical to establish a
cloud management tooling strategy by choosing and
implementing the most effective cloud management solutions
(Joshi & Shah, 2019). A well-defined, methodical method to
solidifying requirements and matching tools to these needs was
necessary to develop a cohesive cloud management tooling
strategy. This was done in order to reduce the number of tools
required while still meeting all management requirements.
However, even with a single cloud provider, cloud computing
governance is difficult, and it becomes increasingly more
difficult when companies go to multicloud. This is not a one-of-
a-kind situation for BallotOnline. Cloud providers, such as
Amazon Web Services (AWS) in this example, provide on-
demand, self-service resources with limitless capacity, making
it impossible for businesses to see and monitor what is being
used.
10. References
Cao, D. G., An, B., Shi, P. C., & Wang, H. M. (2017).
Providing virtual cloud for special purposes on demand in
jointcloud computing environment. Journal of Computer
Science and Technology, 32(2), 211-218.
Joshi, N., & Shah, S. (2019). A comprehensive survey of
services provided by prevalent cloud computing
environments. Smart intelligent computing and applications,
413-424.
Shirvani, M. H., & Gorji, A. B. (2020). Optimisation of
automatic web services composition using genetic
algorithm. International Journal of Cloud Computing, 9(4), 397-
411.
Wang, H., Shi, P., & Zhang, Y. (2017, June). Jointcloud: A
cross-cloud cooperation architecture for integrated internet
service customization. In 2017 IEEE 37th international
conference on distributed computing systems (ICDCS) (pp.
1846-1855). IEEE.
Zulu, L. L., Ogudo, K. A., & Umenne, P. O. (2018, December).
Emulating software defined network using mininet and
opendaylight controller hosted on amazon web services cloud
11. platform to demonstrate a realistic programmable network.
In 2018 International Conference on Intelligent and Innovative
Computing Applications (ICONIC) (pp. 1-7). IEEE.
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.
12. 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.
http://www.awseducate.com/
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
13. 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
14. 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.
15. 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:
16. 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.
17. 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.
18. 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.
https://console.aws.amazon.com/cloudwatch/
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
19. 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
ResultsOverviewLab InstructionsStop and Terminate AWS
Infrastructure