AWS is the largest cloud provider in the world, responsible for enabling cutting edge companies like Amazon, Netflix or Airbnb. It's a powerful tool when developing applications that need to scale quickly, like web applications.
This article will give you an overview of AWS and the different services and capabilities the platform provides.
AWS comprises of a multitude of individual services that interact and work in a complex number of ways. We will examine the key functionalities of a AWS ad how they can work for your application.
We will approach AWS from a developer perspective, that means from a user of the services. We will examine hot the services interact since that is the key part of developing for AWS.
In the first part we will describe what cloud computing is actually solving. Cloud is definitely the buzzword of the century, we will take a look of what it means and why it matters to your application.
Core services of AWS
The core services are the ones that the majority of applications will utilize, such as:
Elastic Compute Cloud(EC2)
Simple Storage Service(S3)
Relational Database Service(RDS)
Route53
Further, there are some other services which we will cover briefly:
Elastic Beanstalk(EB)
Lambda
DynamoDB
Virtual Private Cloud (VPC)
CloudFront
CloudWatch
Why using the "Cloud"?
The cloud industry began to provide a solution to small and large businesses alike that needed an affordable and flexible way to serve Web content to customers.
By abstracting away the physical hardware, removing much of the configuration both virtually and geographically, the cloud is able to get companies up and going quickly. Most pricing models allow companies to pay for what they use instead of a physical machine. And as cloud service providers improve, deploying an application to a new machine became as easy as a single click.

The cloud is especially popular for startups, enabling them to move quickly. Enterprise companies are moving to the cloud more and more. A big advantage is that companies don't have to manage physical data centers, the cloud does the hosting for them. In the next picture, on the left, the whole hardware and software infrastructure is hosted and maintained by the company which has the application, whereas on the left, everything is managed in the cloud:

With the cloud, many problems for hosting web applications in your own data center are solved, like providing physical hardware, managing the web server and scaling the web server based on workload.
Cloud Computing Models
There are three big types of cloud computing models in AWS:

Infrastructure as a Service (IaaS)
Infrastructure as a Service, IaaS, contains the basic building blocks for cloud IT and typically provide access to networking features, computers (virtual or on dedicated hardware), and data storage space. Infrastructure as a Service provides you with the highest level of flexibility and management control over your IT resources and is most similar to existing IT resources that many IT departments and developers are familiar with today.
Platform as a Service (PaaS)
Platforms as a service remove the need for organizations to manage the underlying infrastructure (usually hardware and operating systems) and allow you to focus on the deployment and management of your applications. This helps you be more efficient as you don’t need to worry about resource procurement, capacity planning, software maintenance or patching.
Software as a Service (SaaS)
Software as a Service provides you with a completed product that is run and managed by the service provider. In most cases, people referring to Software as a Service are referring to end-user applications. With a SaaS offering you do not have to think about how the service is maintained or how the underlying infrastructure is managed; you only need to think about how you will use that particular piece software. A common example of a SaaS application is web-based email where you can send and receive email without having to manage feature additions to the email product or maintaining the servers and operating systems that the email program is running on.
Cloud Deployment Models

On-premises/private
The application is deployed locally, but this does not benefit from the cloud like elasticity and the newest technologies.
Hybrid
This is the mostly used model especially in enterprise level companies which are migrating to the cloud.This is typically a time consuming task. This is a good start to move to the "Cloud" only model.
Cloud
This model benefits the most from the cloud advantages.
Amazon Web Services
Around 2003, some engineers at amazon figured out that not only did Amazon need standardized server configurations, but that there was a potentially huge revenue waiting if they could sell thosesame capabilities to other businesses. In one year after this proposal to offer a service to businesses for Cloud Computing that AWS was created and the first Simple Queue Service was launched in 2004. Amazon was one of the first companies to adopt the cloud computing so successfully.
AWS is a collection of cloud computing services that can be utilized individually or in tandem to run a computer application. We can call it also Cloud computing services because the services are running in some magical data centers somewhere, and marketing people need some simple terms for these things. these services provide some type of computing operation, whether it be literal computing, messaging, storage, routing, or something else. You can run any type of application with AWS.
Why depend on AWS?
Large tech enterprises have their entire infrastructure running on AWS, like Netflix, which is a huge vote of confidence for the service. The two biggest reasons why someone would use AWS are "Low Cost" and "Easy Scalability".

Without AWS or a similar cloud provider, a company would first look for buying a server for serving the Web application, perhaps a separate server for the DB, Cables, Dedicated room etc. All of this before having even one single customer paying for her service seems a little daunting. On AWS, the upfront cost is nothing for most services. You only pay for what you use, usually on a monthly basis.
The other big reasons for using cloud providers is Scalability. In case of a "self hosted" server, there is a danger that the application dies from too many requests. In such cases you need to sclae up, but the only option is to order another server, which could take quite some time. The user experience is suffering and the business might go down entirely.
By deploying in AWS, this scalability concern is resolved in literal seconds, with AWS adding more servers runnign your application takes only a few clicks. You pay only for what you use.
Stop Guessing Capacity
Eliminate guessing about your infrastructure capacity needs. When you make a capacity decision before deploying an application, you often end up either sitting on expensive idle resources or dealing with limited capacity. With cloud computing, these problems go away. You can access as much or as little as you need and scale up and down as required with only a few minutes’ notice.

Increase speed and agility
In a cloud computing environment, new IT resources are only ever a click away, which means you reduce the time it takes to make those resources available to your developers from weeks to just minutes. This results in a dramatic increase in agility for the organization, because the cost and time it takes to experiment and develop is significantly lower.
Deploy Globally
Why would you have your application with AWS deployed in different parts of the world? There are two reasons: reducing latency and adding redundancy. For users, the time it takes for requests to cover geographic distance is one of the hardest challenges to overcome. Latency is essentially the time it takes to get data from your server to the users browser and vice versa. The latency typically increases as the distance between server and user increases.

AWS solves this by having servers running in different parts of the world. By having the application deployed closer to the users leads to a much better latency. AWS has the most data servers in the most geographical areas from all cloud providers existing currently.
AWS regions and availability zones

Regions are physical locations where certain services are hosted. Usually having a server running in the same country or continent as the the user reduces the latency it takes for a client to communicate with the server.
Within each region AWS also has Availability zones. An availability zone is a collection of data centers that that have completely separate power networking and connectivity, but are connected via hyper fast fiber optics.
AWS constantly increases the global infrastructure to decrease latency and increase performance. In February 2019, AWS had 22 regions and 69 availability zones, with plans for other 3 regions and 12 availability zones.

If one data center goes down, the others provide a redundant fail over. By scaling your application across several availability zones and regions, you can achieve nearly unlimited up time for you application.
How does AWS work?
Nearly all services inside AWS interact with each other over TCP connections. It really depends on the port a service might use. For instance, each type of database has its own port of choice.
If you create all of your service instances in the same virtual private cloud, then they will have local IP addresses, and you can make super fast connections to them.
Since all of the services interact mostly the same on your local development machine as they do in the cloud, you can add and build on services as you like. For example, for a simple web site the first step might be to connect to a database service and AWS. Then, you can connect them using S3 for static file storage. You can work with this services exactly the same on your development environment as you would in the cloud.

The biggest change when moving your application to the cloud is securing it, which cannot be done while your app is developed locally. Once in the cloud, connections between services are secured via Security Groups, which are essentially light firewalls around each service instance. This configuration can be done by using the AWS web console and is mostly straight forward.

Three Ways to Interact with AWS
AWS users can create and manage resources on the platform in three ways. All three options are built on a common, REST-like API that serves as the foundation of AWS.

AWS Management Console
The console provides a rich graphical interface to a majority of the features offered by AWS. (Note: From time to time, new features may not have all of their capabilities baked into the console when the feature initially launches.)

AWS Command Line Interface (AWS CLI)
The CLI provides a suite of utilities that can be launched from a command program in Linux/Mac or Windows. AWS provides language specific SDKs for most popular languages:

These language-specific SDKs contain APIs that allow you to easily incorporate the wide range of AWS Cloud services into your code without writing the functions yourself. There are extensive notes and documentation on how to use the SDKs listed above. Some of the examples of documentation that is provided for you include, guides on how to get started, developer guides, API references, and community forums or developer blogs.
For more information about these SDKs, see https://aws.amazon.com/getting-started/tools-sdks.
Software Development Kits (SDKs)
AWS provides packages that enable accessing AWS in a large variety of popular programming languages. This not only makes it easy to use AWS in your existing applications, but also enables creating applications to deploy and monitor complex systems entirely via code.
AWS Alternatives

AWS is one of many providers of cloud services, but they have distinguished themselves as one of the most reliable, and also as having the largest geographical footprint.
There are many cloud providers currently available, one of the biggest competitor is Microsoft Azure. Azure started around 2010 as the cloud became more popular. The general model of Azure is similar like AWS with scalable services and flexible prices. The pricing of AWS seems to be more slightly competitive, but that shouldn't be the main factor when deciding which to use. One of the advantages of Azure is that it is the best place to run Microsoft products.
Additional, Google has also cloud services, named as Google Cloud Platform. Currently not used that much, it will be interesting to see how Google Cloud evolves in time.
For a description of the main services in AWS, read the following article "AWS Service Types" http://pinte.ro/Blog/IT/AWS-Service-Types/52
IT
aws amazon web services
16.10.2019
Acasa