AWS: Cloud Servers
Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon providing on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis. These cloud computing web services provide a variety of basic abstract technical infrastructure and distributed computing building blocks and tools. One of these services is Amazon Elastic Compute Cloud (EC2), which allows users to have at their disposal a virtual cluster of computers, available all the time, through the Internet. AWS’s virtual computers emulate most of the attributes of a real computer, including hardware central processing units (CPUs) and graphics processing units (GPUs) for processing; local/RAM memory; hard-disk/SSD storage; a choice of operating systems; networking; and pre-loaded application software such as web servers, databases, and customer relationship management (CRM).
The AWS technology is implemented at server farms throughout the world, and maintained by the Amazon subsidiary. Fees are based on a combination of usage (known as a “Pay-as-you-go” model), hardware, operating system, software, or networking features chosen by the subscriber required availability, redundancy, security, and service options. Subscribers can pay for a single virtual AWS computer, a dedicated physical computer, or clusters of either. As part of the subscription agreement, Amazon provides security for subscribers’ systems. AWS operates from many global geographical regions including 6 in North America.
Amazon markets AWS to subscribers as a way of obtaining large scale computing capacity more quickly and cheaply than building an actual physical server farm. All services are billed based on usage, but each service measures usage in varying ways. As of 2017, AWS owns 33% of all cloud (IaaS, PaaS) while the next two competitors Microsoft Azure and Google Cloud have 18%, and 9% respectively, according to Synergy Group.
1. Describe the Web-Request-Response-Cycle.

As we start to build out web applications, it is important to be able to visualize the way information flows through the system; typically called the Request/Response Cycle.
First a user gives a client a URL, the client builds a request for information (or resources) to be generated by a server. When the server receives that request, it uses the information included in the request to build a response that contains the requested information. Once built, that response is sent back to the client in the requested format, to be rendered to the user.
It is our job as web developers to build out and maintain servers that can successfully build responses based on standardized requests that will be received. But, what does a standard request look like? We need to know that before we can start building servers that will respond successfully.
The standard, or protocol we use is HTTP.
2. Explain what a “server” is, as it relates to the WRRC.
A server contains a resource, either data or some sort of functionality. When a client makes a request to the server, the server attempts to access the desired resource and returns a status code and a message.
3. What does it mean to “deploy” an application?
Deployment is running an application on a server or device or making it available to run on a server or device.
Server Software or hardware that provides functionality or resources to a client.
Pub/Sub An asyncronous pattern used for transmission of data. A publisher writes the data and subscribers listen for that data.
WRRC A cycle of requests and responses that allow the internet to exist. Clients send requests to servers and servers send responses.

Ibarhem Al-omari
Email: ibrahem.omari96@gmail.com