For an introduction to the basics of AWS, you can read first the "Understanding Amazon Web Services" article http://pinte.ro/Blog/IT/Understanding-Amazon-Web-Services/51
AWS Core Services
There are 4 foundational services used by most customers of AWS to perform typical computing, storage and routing actions:

Elastic Compute Cloud(EC2)
This service can be considered as a virtual machine where you can run an application. With EC2 instances you can do anything that you can do with a computer. You can use it to run application, be it a web application or local. EC2 instances can have very specific software installed on them to do all sorts of tasks.

The term Cloud Compute means that it can be used for computing anything you would do on your personal computer at home. Elastic means that the computing service can expand and retract as needed, which means scalability. Rules can be set up that the scaling up and down happen automatically.
The basic building block of EC2 is an instance. An instance is a virtual server which is operating system agnostic. Then you would put an image on such an instance, which is a combination of an operating system and then some application preinstalled. Examples are linux, microsoft and other operating systems.
Amazon provides, manages and updates software images that are available. Notice that Amazon will NOT update an image once you created your own instance, this has to be done manually.
After you have decided what image to create, you can configure what resources it should make available, like CPU, RAM, network performance etc.
Once the image and instance type have been selected, you can select a certain number of instances to replicate with the same image and type.
Storage needs to be further set up which is known by the term elastic block storage(EBS). EBS is not the same as simple storage S3, EBS is specifically for using wit EC2, whereas S3 is for both storing and serving up independent files. Next, there are various security configurations like controlling who can have access to this EC2 instances.
EBS is a Persistent local storage for Amazon EC2, for relational and NoSQL databases, data warehousing, enterprise applications, Big Data processing, or backup and recovery.
Storage Types in AWS:

Benefits of EC2:

Elasticity - Amazon EC2 enables you to increase or decrease capacity within minutes, not hours or days. You can commission one, hundreds, or even thousands of server instances simultaneously. You can also use Amazon EC2 Auto Scaling to maintain availability of your Amazon EC2 fleet and automatically scale your fleet up and down depending on its needs, in order to maximize performance and minimize cost. To scale multiple services, you can use AWS Auto Scaling.
Control - You have complete control of your instances, including root access, and the ability to interact with them as you would any machine. You can stop any instance while retaining the data on the boot partition, and then subsequently restart the same instance using web service APIs. Instances can be rebooted remotely using web service APIs, and you also have access to their console output.
Flexibility - You have the choice of multiple instance types, operating systems, and software packages. Amazon EC2 allows you to select a configuration of memory, CPU, instance storage, and the boot partition size that is optimal for your choice of operating system and application. For example, choice of operating systems includes numerous Linux distributions and Microsoft Windows Server.
Integrated - Amazon EC2 is integrated with most AWS services such as Amazon Simple Storage Service (Amazon S3), Amazon RDS, and Amazon VPC to provide a complete, secure solution for computing, query processing, and cloud storage across a wide range of applications.
Amazon EC2 offers a highly reliable environment where replacement instances can be rapidly and predictably commissioned. The service runs within Amazon’s proven network infrastructure and data centers.
Amazon EC2 offers a highly reliable environment where replacement instances can be rapidly and predictably commissioned. The service runs within Amazon’s proven network infrastructure and data centers.
Reliable - Amazon EC2 offers a highly reliable environment where replacement instances can be rapidly and predictably commissioned. The service runs within Amazon’s proven network infrastructure and data centers.
Secure - Security is the highest priority. As an AWS customer, you will benefit from a data center and network architecture built to meet the requirements of the most security-sensitive organizations. Amazon EC2 works in conjunction with Amazon VPC to provide security and robust networking functionality for your compute resources.
Inexpensive - Using Amazon EC2 lets you can take advantage of Amazon’s scale—it enables you to pay a very low rate for the compute capacity you actually consume. For more information, see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html.
Easy - To get started with Amazon EC2, use the AWS Management Console, the AWS CLI, or the AWS SDKs. AWS is free to get started.
Amazon charges for EC2 instances by the hour, and the amount per hour differs based on the instance type and image that you selected. Windows images for example will cost more than linux images.
There is also an Amazon calculator where you can estimate exactly what your EC2 usage will cost.
Amazon Machine Image (AMI)
An Amazon Machine Image (AMI) provides the information required to launch an instance. You must specify an AMI when you launch an instance. You can launch multiple instances from a single AMI when you need multiple instances with the same configuration. You can use different AMIs to launch instances when you need instances with different configurations.

Steps to launch an Amazon EC2 Instance:
a) Determine the AWS Region in which you want to launch the Amazon EC2 instance.
b) Launch an Amazon EC2 instance from a pre-configured AMI.
c) Choose an instance type based on CPU, memory, storage, and network requirements.
d) Configure network, IP address, security groups, storage volume, tags, and key pair.
Simple Storage Service(S3)
This service is AWS static file hosting service. This can be used in conjunction with EC2, or also by itself. S3 is a service that hosts files. It can be used for any type of file.

Buckets are the foundational object structure in S3. A bucket is your route resource which you can add, delete or modify objects. There are some set of configuration options you can set on buckets, like permissions, hosting options and logging. Buckets are assigned urls which can be used to access the objects contained within them. S3 is useful for hosting a static website. This is the easiest way to host a static website with the minimum cost.

You can have up to 100 buckets in each account by default. S3 bucket names must be unique for the whole AWS ecosystem.
You can control access to both the bucket and the objects—for example, controlling who can create, delete, and retrieve objects in the bucket. You can also view access logs for the bucket and its objects, and choose the AWS Region where a bucket is stored to optimize for latency, minimize costs, or address regulatory requirements
Regarding pricing, S3 is priced in concordance with the following aspects:

Prices differ by region and costs get cheaper as volume goes up. For a price simulator for S3 storage, you can consult the following link: https://aws.amazon.com/s3/pricing/
Some common use scenarios for S3 are:

Additional, S3 has a number of options which you can configure:

With Requester Pays buckets, the requester instead of the bucket owner pays the cost of the request and the data download from the bucket. The bucket owner always pays the cost of storing data.
Versioning is a means of keeping multiple variants of an object in the same bucket. You can use versioning to preserve, retrieve, and restore every version of every object stored in your Amazon S3 bucket.
You can host a static website on Amazon Simple Storage Service (Amazon S3). On a static website, individual webpages include static content. They might also contain client-side scripts. By contrast, a dynamic website relies on server-side processing, including server-side scripts such as PHP, JSP, or ASP.NET. Amazon S3 does not support server-side scripting. AWS also has resources for hosting dynamic websites.
Lifecycle management includes expiring objects and archiving objects (transitioning objects to the Amazon Glacier storage class).
Relational Database Service(RDS)
This service is responsible for hosting several different managed relational databases offered by Amazon.AWS takes care of scheduled automated backups, software updates etc. If you would install your own Database in EC2, you would be responsible for all database backups, redundancy or security patches.
With RDS, AWS handles all this tasks for you. The configuration is also easy with the web interface. RDS offers a lot of well known relational database providers:

Each provider has a different price with different configuration and connection options.
When picking a RDS Database, you would also pick a EC2 instance it will be running on, which means you can decide what kind of performance the Database would have. The resources can be changed of course later on.
With RDS Securty is assured via Security Groups where you can control security settings like who can access your DB.
The Pricing depens on the type of DB, the Region it is hosted and the EC2 Instance Type.
EC2 with Database vs RDS
Amazon database services are easier to set up, manage, and maintain than running database software on Amazon EC2. They let you focus on tasks other than the day-to-day administration of the database platform. Alternatively, running your own database software will give you more control, flexibility, and choice. Depending on your application and your requirements, you might prefer one over the other.

With RDS, you can focus on your business and applications, and have AWS take care of the undifferentiated heavy lifting tasks such as provisioning the database, performing backup and recovery tasks, and managing security patches, storage, and minor version updates. You don't have to manage backups and, most importantly, point-in-time recoveries of your database. You are able to scale the instance type up or down based on your workload patterns without being concerned about licensing and the complexity involved.
AWS Database types in RDS
As the cloud continues to drive down the cost of storage and compute, a new generation of applications have emerged, creating a new set of requirements for databases. These applications need databases to store terabytes to petabytes of new types of data, provide access to the data with millisecond latency, process millions of requests per second, and scale to support millions of users anywhere in the world. To support these requirements, you need both relational and non-relational databases that are purpose-built to handle the specific needs of your applications.

AWS includes some new relational databases for transactional applications, non-relational databases for internet-scale applications, a data warehouse for analytics, an in-memory data store for caching and real-time workloads, and a graph database for building applications with highly connected data. If you are looking to migrate your existing databases to AWS, the AWS Database Migration Service (AWS DMS) makes that easy and cost-effective.
Amazon RDS Benefits

Easy to administer - Amazon RDS makes it easy to go from project conception to deployment. Use the console, the Amazon RDS CLI, or API calls to access the capabilities of a production-ready relational database in minutes. No need for infrastructure provisioning, and no need for installing and maintaining database software.
Highly scalable - You can scale your database's compute and storage resources with only a few mouse clicks or an API call, often with no downtime. Many Amazon RDS engine types allow you to launch one or more read replicas to offload read traffic from your primary database instance.
Available and durable - Amazon RDS runs on the same highly reliable infrastructure used by other services. When you provision a Multi-AZ DB Instance, Amazon RDS synchronously replicates the data to a standby instance in a different Availability Zone. Amazon RDS has many other features that enhance reliability for critical production databases, including automated backups, database snapshots, and automatic host replacement.
Fast - Amazon RDS supports the most demanding database applications. You can choose between two SSD-backed storage options: one optimized for high-performance OLTP applications, and the other for cost-effective general-purpose use. In addition, Amazon Aurora provides performance on par with commercial databases at 1/10th the cost.
Secure - Amazon RDS makes it easy to control network access to your database. Amazon RDS also lets you run your database instances in Amazon VPC, which enables you to isolate your database instances and to connect to your existing IT infrastructure through an industry-standard encrypted IPsec VPN. Many Amazon RDS engine types offer encryption at rest and encryption in transit.
Inexpensive - You pay very low rates and only for the resources you actually consume. In addition, you benefit from the option of On-Demand pricing with no up-front or long-term commitments, or even lower hourly rates via our Reserved Instance pricing.
Route53
This service is the DNS services that empowers your EC2 instance and S3 buckets to be accesible via URL's. It allows you to configure domain names to resolve to internal AWS services. It is Amazons solution for DNS Management.
You can use domain names you already own, or you can register new ones through AWS.
Route53 is the core to letting users interact with services in AWS. It works by first setting up a hosted zone, which is basically a route domain name like example.com. Using a domain zone, you can use route 53 to set up sub domains and configure them to route to an AWS resource
Additional AWS Extended Services
Additional to the 4 core services described earlier, there are more than 160 services currently, but we will cover some of the main services next:

Elastic Beanstalk(EB)
EB is an application service that makes it easy to run your code and scale it on AWS. It's simply running your code on EC2 instances, but it takes the typical use case of running an application and adds a lot of conviniences that make AWS much easier to work with.
Elastic beanstalk manages a lot of operations for you, which you would have to do manually on EC2. Deploying your code through EB can take place from the web console, through the AWS command line, or through the SDK.
EB is a free service offered by AWS. What you would pay are the EC2 instances, load balancers and S3 storage that is being used separately.
Lambda
This is a service that lets you execute small pieces of code without managing servers. Lambda provides function code execution as a service. it will execute some code without configuration required.
Related to pricing, you will only pay for how long your code is running.
DynamoDB
This is a database service that provides something different than RDS, it is the solution for NoSQL needs. It supports both document and key value store models.
Virtual Private Cloud(VPC)
This infrastructure service allows you to create isolated virtual networks to launch instances in and keep them secure.
CloudWatch
This is a monitoring service that can both trigger alarms and consume logs.

Access all your metrics from a single platform - Modern applications are distributed (that is, they run on microservices architectures) and generate lots of data in the form of metrics, logs, and more. You need a way to easily collect, access, and correlate these data points from individual sources in silos (server, network, database, etc.) to effectively monitor applications and infrastructure resources. CloudWatch enables you to collect metrics and logs from all your AWS resources, applications, and services that run on AWS and on-premises servers, helping you break down data silos so you can easily gain system-wide visibility.
Visibility across your applications, infrastructure, and services - Gaining visibility across your distributed stack means correlating and visualizing metrics and logs to quickly pinpoint and resolve issues. With CloudWatch, you can visualize key metrics like CPU utilization and memory. You can also correlate a log pattern to quickly get the context and go from diagnosing the problem to understanding the root cause.
Reduce mean time to resolution (MTTR) and improve total cost of ownership (TCO) - CloudWatch enables you to set high-resolution alarms and take automated actions. This means freeing up important resources to focus on adding business value. For example, you can get alerted on Amazon EC2 instances and set up Auto Scaling to add or remove instances. You can also execute automated responses to detect and shut down unused EC2 resources, reducing billing overages and improving resource optimization.
Drive insights to optimize applications and operational resources - You need a unified operational view, real-time granular data, and historical reference to optimize performance and resource utilization. With CloudWatch, you get enhanced monitoring with 1-second granularity and up to 15 months of metrics storage and retention. You also have access to native CloudWatch features, such as Metric Math, to perform calculations on your metric data. For example, you can aggregate usage across an entire fleet of EC2 instances to derive operational and utilization insights.
Pay as you go - With CloudWatch, there is no up-front commitment or minimum fee; you simply pay for what you use. You will be charged at the end of the month for your usage. For more information, see https://aws.amazon.com/cloudwatch/pricing/. You can estimate your monthly bill using the AWS Simple Monthly Calculator.
CloudFront
This is a content delivery network service that can move your files closer to the user requesting them.
IT
aws services amazon web services
21.10.2019
Acasa