Amazon started his online book sales business back in 1995 to end today, selling everything. To achieve this, Amazon did not only have to deal with marketing issues but had to invest in the information system and the hardware base in order to manage a huge volume of traffic that was generated every day worldwide. For this reason, in just a few years, there was an enviable networking infrastructure and a series of services called “Amazon Web Services ” or AWS, designed and based on reliability, scalability, and speed. Amazon conceived this experience with in- house staff, as at the time there was no computer on sale capable of satisfying the traffic generated by the company in the Internet world.
If we want to understand the services available, we must assimilate two concepts well, one related to the Amazon Web Services also called AWS and the other on the networking structure. We will report a description to clarify some concepts better, while immediately afterward; the services will be listed, divided by group, with the possible connection.
Definition of cloud computing
Many words have been spent trying to define the term cloud computing, and unfortunately, there is still a lot of confusion to try to understand what can be considered a cloud and what is not. Surely not all the services and technologies to which we are accustomed to accessing can be defined as cloud computing services.
The birth of Amazon Web Services
The real idea came in 2006 when Amazon understood that its infrastructure and its web services, which he used currently only for itself, could be shared with other companies that need a reliable infrastructure for their business. In a nutshell, he began selling cloud-computing technology many years ahead of any other IT services company.
Even the payment method is particular, in fact, you only pay for what you use, there are no fixed-rate contracts or fixed-rate tickets as we are used to seeing in hosting plans, even here as we would have seen, the advantages are many and can save significant amounts of money as compared to a proprietary structure.
Global networking structure
Amazon provided a number of data centers around the world; the terms geographic area and area of availability were used. The first identifies the physical area where the data centers of the resources we want to buy are located, while the second identifies the redundant centers that are present in the same geographical area.
For example, in the European geographical area of Ireland, we have three different availability zones, while in the USA, Virginia area, we have the possibility to choose four availability zones. For many services (like Amazon S3), it would be enough to select a geographical area, and the resources will be automatically replicated for the various availability zones we choose.
AWS edge locations
The choice of the geographical area on AWS is very important, as it influences the latency and, therefore, the response times, normally it is good to choose the nearest geographical area, the costs for the same service are different between Brazil, USA, Europe, etc., etc. Some services initially are not available for all geographical areas.
As for the distribution of content worldwide, such as static resources or some multimedia files such as streaming videos, Edge Locations are also used, which are infrastructures that are used for specific delivery functions, in such a way to approach requests and improve response times if you want to see the map go to Amazon Global Infrastructure.
Amazon Web Services
The services made available today are quite a few, also because Amazon’s AWS section releases some news or new services every month. In any case, to facilitate selection, the AWS is divided into six different groups:
1. Compute: in this group, we find all the services for computing resources, therefore the management of virtual servers in EC2 cloud, the Lambda service for the execution of code following events on other AWS services or Container Service (ECS) facilitates the management of groups of instances with particular characteristics in common.
2. Storage: here, all the services related to storage and storage of large online data. In the list, we find the Amazon S3 storage service, storage designed for backups called Amazon Glacier, a direct connection solution without internet between company and cloud with Storage Gateway.
3. Database: through these services, we can manage databases without having to install specific software on our virtual servers and take advantage of the automatic scalability of Amazon. We can choose a NoSQL database like DynamoDB, a report database like MySQL and Microsoft SQL Server in RDS, RAM caching system in ElastiCache, and a high-speed Redshift data warehouse system.
4. Networking & CDN: in this group, we find the services concerning network resources. Therefore, the management of a DNS with Route 53, private resources with non-public servers and customizable VPC network, boundaries with Virtual Private Cloud, dedicated connections between the company and Amazon AWS with VPN connection through Direct Connect, the distribution of static and multimedia content on different geographical regions with CloudFront.
5. Migration: in this section, there are Amazon services that provide for the migration of different resources; for example, we can migrate heterogeneous databases with the Amazon DMS service or move large amounts of corporate data with a hardware device called Snowball to be sent directly to the headquarters of Amazon.
6. Developer Tools: all services for supporting general programming and sharing source flows. Save the sources in a Private GIT with CodeCommit, manage the continuous release with CodePipeline, and automate the deployment with CodeDeploy.
Management Tools: these are all the services for the management aspects concerning the general management of the system. Check the performance indicators and activate automatic actions with CloudWatch, check the complete history on the current and historical configuration of your changes with Config, monitor API calls with CloudTrail, and get advice on resources from Trusted Advisor.
Security & Identify: these are services for general management and access control through security policies. Safely control and manage all access permissions with IAM, synchronize active directory with Directory Service, etc.
Analytics: here, we find the services that perform analyzes based on large data structures. The first service released is Elastic MapReduce, based on a framework called Hadoops, ideal for data warehousing.
Artificial intelligence: in this group, we find several useful services for developers to integrate AI algorithms in their applications. For example, you can use the Amazon Rekognition service with which you can recognize objects or scenes in an image or the Amazon Polly service for the translation of a text in Audio format.
Internet of Things: AWS has created specific IoT services such as AWS Greengrass and AWS IoT. They will help you collect and send data to the cloud, facilitating the loading and analysis of this information and allowing you to manage your devices so that you can focus on developing applications that meet your needs.
Game Development: This group is dedicated to services for the development of professional video games, in which both the development tools and the necessary hardware resources are made available. For example, we find the Amazon GameLift service, the Amazon Lumberyard service, a multi-platform 3D game engine.
Mobile Services: in this section, there are services that can be used by mobile applications to perform specific tasks. Like identity management for logins and synchronizations with Cognito and mobile statistics with Mobile Analytics.
Application Services: here, we find all those services that we can use by directly calling specific applications that run in the cloud without having to buy EC2 instances or online storage. For example, we have a particular search engine called CloudSearch, used for video conversions with Elastic Transcoder, job planning with SWF, and application development in a low-latency environment for gaming with AppStore.
Messaging: In the messaging group, we find all the Amazon services with which it is possible to manage message communications, for example, complete management of notifications between different supports with Amazon SNS, a mail delivery service with Amazon SES, and the distribution management of the workload through message queues with Amazon SQS.
Business Productivity: in this group, we find all the services for business applications, such as the service for the management of corporate email with WorkMail and the management for documents with WorkDocs. Some of these services can be integrated into your company with clients released by Amazon.
Desktop & App Streaming: in this group, there are all the services that belong to desktop environments such as the Virtual Desktop service called WorkSpaces and the streaming application development service is known as AppStream 2.0.
Compute & Networking, EC2: A web service that provides data processing capabilities in the cloud provides through virtualization the possibility to choose different operating systems, services, and databases already ready. The service can be managed via a web console or via the API to be used in a programming environment. Amazon EC2 also provides a number of sub-services for the advanced management of our instance, such as traffic balancing, Auto Scaling, and more.
Services of AWS
With this new service, you can easily manage a VPS “Virtual Private Server” and start a web application with predefined images, such as WordPress, Joomla, Magento, Drupal, and more, in just a few minutes. To use this service, it is not necessary to have special system knowledge, and it is possible to start a server in production with a few simple steps.
The Amazon EC2 service provides only computational power, which, once configured from a systemic point of view and with the addition of specific software, can run any application. For many, this results in inconvenience, because you have to take on all the problems related to the configuration of the instance before worrying about the application. This is precisely why Amazon has developed Elastic Beanstalk, which allows you to upload the application directly to AWS without worrying about other aspects.
This service allows you to define functions that can call a particular code; you must execute it when an event occurs on AWS services. For example, if you edit a file on S3 if an element is inserted on DynamoDB or a message that comes to Amazon Kinesis. The peculiarity of this service is that we do not have to worry about scalability, for example, we do not care if there is a change in Amazon S3 per second or 100,000, the functions will continue to work and execute the code that will be assigned to it.
AWS Batch allows you to run easily and effectively hundreds of thousands of batch processing jobs on AWS. Dynamically providing the optimal amount and type of computing resources (CPU or memory) based on the volume and resource requirements specific to the batch jobs sent. With AWS Batch, there is no need to install and manage calculation software or server clusters to perform the work, and this allows you to focus on analyzing the results and solving problems.
With this “storage” service, it is possible to store and recover large amounts of data, at any time and from anywhere on the web. It provides users with the ability to access the same highly scalable, reliable, and fast data storage infrastructure that Amazon uses to keep its network of websites up and running. This service can also be used as a secure form of backup, both for other AWS services like EC2, but also as a backup for corporate servers.
Elastic File System
It provides us with the scalable file storage for use with Amazon EC2 instances. Amazon EFS is easy to use and offers an interface that allows you to create and configure file systems quickly and easily. The service is designed to offer availability and durability, providing performance that meets a wide range of workloads, including Big Data applications.
Unlike the Amazon S3 service, it represents a low-cost solution suitable for storing what concerns the backup functions. Surely, it is a great service for corporate network environments, but it can also be used for personal use instead of other services such as Dropbox, the important thing is to understand the differences well and check the cost table. This service has been designed to store information that normally should you should not download, except for recovery problems. If used in this way, the prices are very advantageous, and the cost is much lower as compared to S3, which is optimized for the publication of the contents and not only for their storage.
This service allows you to install in your local network software that takes care of the physical copy of the disks connected to the local servers in the storage environment on S3. If a disk should fail, we can quickly restore it from the Amazon S3 service and reboot the system to normal operation. If instead, we have a fault, we can start instances on EC2 and restore EBS snapshots, at least until normal recovery.
A web service that offers complete management of a relational database such as MySQL, Oracle, Microsoft SQL, etc. and with which it is possible to integrate other AWS services, in addition to simplifying backup, resizing, and patching activities. With this service, we don’t have to install and configure a database software on our EC2 instances, and we don’t have to worry about data alignment, let alone scalability. All these aspects will be handled automatically by the Amazon RDS service.
This service allows the complete management of a NoSQL database in a cloud-computing environment. This is an exceptional combination of scalability and the elimination of some limits in relational databases. This service was born after 15 years of experience with SimpleDB and Dynamo used on the Amazon.com website, which in any case, had limits on the size of the dataset. The DynamoDB service will have no size limits and will automatically replicate data on three data centers. The service also frees us from backup and recovery problems.
With this service, we can easily manage a complex functionality such as a RAM caching cluster. This service is fully compatible with Memcached. In fact, on a Memcached cluster, it is necessary to deal with quite complex systemic steps, in addition to the fact that a lot of control maintenance and verification, in general, is required. With the Amazon ElastiCache service, all this management becomes much simpler and incredibly scalable. Cache servers with over 200G of available RAM can be generated with a few clicks.
With this service, we can create a data warehouse system in just a few minutes, and perform all the SQL database queries we need. With this solution, it is possible to reduce the initial costs of a data warehouse system and avoid the complexities associated with this type of solution. In fact, using the Redshift service, we can only think of storing our data and not worry about the complexity related to the hardware structure and the problems of maintaining a very expensive infrastructure.
This is a secure connection between a company’s infrastructure and the AWS cloud. Amazon VPC allows companies to connect their networks to Amazon Web Services resources through the VPN (a virtual private network) so that they can expand the functions through cloud technology. For example, we could delegate some very heavy processing functions to the servers started in the cloud, which, however, will be reachable only by our internal network and accessible only by company accounts.
CloudFront is a web service for “content delivery,” which is the distribution of static content or streaming at high speed and with low latency. The configuration is very simple since the service is connected to Amazon S3, in fact, it is enough to associate the resource of a bucket to CloudFront, and automatically the resource will be replicated in the different “edge points” scattered around the world, which will be used to meet the demands that they will be closer.
We know very well that one of the weak points for the cloud in the company, especially in Italy, is the connection and internet bandwidth. In fact, Amazon’s services are much appreciated when it comes to public resources, while they are seen as more problematic when a private network needs to be implemented with VPN connections in the cloud. For companies that need a secure connection, it is possible to create a direct line between the company and the nearest Amazon data center without passing through the internet.
Route 53 is a fast and reliable DNS service that manages the corporate network or the resources present in Amazon Web Services like Amazon EC2 or S3. With this service, you can manage an unlimited number of domains and use Load Balancing features, using the Weighted Resource Record Sets technique. Obviously, you can also use this service for a private network or for the management of domains that you have in other registers. The advanced Health Check control options and the possibility to buy or transfer domains are also provided.
Database Migration Service helps to migrate a database in a simple way. The source database will remain operational even during the migration to minimize the interruptions of the applications that use it. Database Migration Service allows you to migrate data to and from most of the most used commercial and open source databases. The service supports both homogeneous migrations, for example, from Oracle to Oracle, and heterogeneous migrations between different database platforms, for example, from Oracle to Aurora or from Microsoft SQL Server to MySQL.
AWS Server Migration Service (SMS) is an agent-less service that simplifies and speeds up the migration of thousands of local AWS workloads. This service allows you to automate, schedule, and monitor incremental replicas of active server volumes, making it much easier to coordinate large-scale server migrations.
This particular service allows large amounts of data to be moved to the cloud using a hardware component made available by Amazon instead of internet bandwidth. Each appliance can hold 50 terabytes of data, and you can request several tools to perform a parallel backup. We can reduce several days of internet transfer to 48-hour operations and follow the entire ordering, shipping, and recovery process through management consoles.
CodeStar allows you to develop, build, and distribute applications in AWS. This service offers a unified user interface that simplifies the management of development activities. With AWS CodeStar, you can set up a continuous distribution tool-chain in just a few minutes, which speeds up code distribution. AWS CodeStar simplifies the collaboration of the development team and enhances security since it allows you to manage access with maximum simplicity and set up project owners, as well as who can modify it or just view it.
CodeCommit is a fully managed source-code control service, which simplifies the corporate hosting of private GIT repositories in a secure and highly scalable way. CodeCommit eliminates the need to manage your source control system or to worry about resizing its infrastructure. CodeCommit provides storage capabilities, such as source code and binary code, and integrates seamlessly with existing GIT tools.
CodeBuild is a self-managed service for compiling source code, running tests, and producing software packages ready for deployment. With this service, it is not necessary to configure and manage servers for any power level required. With this service, the processes run in parallel, and the necessary scalability is managed directly by Amazon, producing an always-performing result.
This service automates the deployment of an application present on EC2 instances. AWS CodeDeploy simplifies and speeds up the release of new features, helps avoid downtime during distribution, and manages the complexity of updating applications. You can use this service to automate distributions, eliminating manual operations subject to errors, and scalability management in order to use the same software distribution technique to an instance or thousands.
CodePipeline is a continuous distribution service used to update applications quickly and reliably. CodePipeline creates, tests, and distributes the code every time it is modified, based on custom models and processes configured by the user. This allows you to distribute quickly and reliable features and updates. It is possible to create a complete solution with maximum simplicity using the pre-installed plug-ins of third-party services such as GitHub.
The service helps developers analyze and debug production and distributed applications such as those created with microservice architecture. With X-Ray, you can identify the performance of your application and related services to identify and resolve the root cause of problems and performance errors.
One of the fundamental aspects to keep under control after developing an application or a web service is to monitor performance through monitoring, not only for what concerns the use of disks or the CPU but also for many other parameters. Amazon CloudWatch is the monitoring and alarm solution from Amazon Web Services. The use of Simple Notification Service (SNS) allows the sending of alarms via various supports that can be activated when a pre-set threshold is reached, so be notified immediately.
With Cloudformation, it is possible to create templates with a JSON structure, which allows the creation of predefined configurations, that you can use to start and configure AWS resources that serve an application. For example, we could prepare a template that configures the start of a new instance with an operating system, decide the software to install and start additional services. To date, there are several templates for configurations of all kinds, for example, templates for WordPress, Drupal, and Joomla.
AWS CloudTrail is a service that records all API calls generated by any source, such as consoles or applications and writes log files. The callers, call time, source IP address, request parameters, and response items returned by the AWS service are recorded. The AWS API call history produced by CloudTrail allows a complete security analysis and tracking of AWS resource change.
This service provides an inventory of our resources, lists configuration history, and notifications of any changes. With Config, it is possible to discover existing resources, export an inventory with all the configuration details, and always determine how and when a resource has been configured in any period.
OpsWorks is an application management service created to facilitate those who use the DevOps development model, more info on Wikipedia. OpsWorks can automatically scale the application and keep the infrastructure healthy by replacing the instances that are blocked. OpsWorks, unlike Beanstalk, offers more flexibility and control, allowing you to customize the types of servers and services used.
Service Catalog allows organizations to create and manage catalogs of IT services approved for use in AWS. Such IT services can include everything from images of virtual machines, servers, software, and databases to entire architectures for multi-level applications. The service allows you to check the available IT services and their versions, the configuration of available services, and access via permissions by individuals, groups, departments, or cost centers.
With this service, it’s like having a personal cloud expert, and it helps you to improve resources following best practices. Inspect the AWS environment and find opportunities to save, improve system performance and reliability, or help fill security gaps. Since 2013, customers who use it have received over 1.7 million recommendations and achieved more than $ 300 million in cost reductions.
Automate frequent tasks such as change requests, monitoring, patch management, security, and backup, as well as providing comprehensive lifecycle services to manage infrastructure provisioning, execution, and support. AWS Managed Services improves agility, reduces costs, and relieves manual infrastructure management tasks that typically distract valuable resources from the core business.
Through this service, it is possible to control and securely manage access to AWS services and resources by its users. Using IAM, you can create and manage users and groups and use permissions to allow and/ or deny access to resources. The IAM service also allows integration with existing users in your company network, and it also provides a series of APIs for customization and authorization management through procedural programs, it will be possible to manage users, roles, permissions, and credentials.
Amazon Inspector is an automated security service that helps improve the security of a system and the compliance of applications deployed in AWS. Amazon Inspector examines applications for vulnerabilities or divergences from best practices. After performing an exam, Amazon Inspector provides a detailed list with the evaluation results, sorted by severity level.
Certificate Manager is a service that simplifies the purchase and management of SSL certificates for use with AWS services. You can use the SSL / TLS certificates to secure network communications and establish the identity of Web sites on the Internet. You can quickly request a certificate, distribute it on AWS such as Elastic Load Balancing load balancers or Amazon CloudFront distributions, and allow AWS Certificate Manager to manage certificate renewals.
This service allows you to link resources on AWS between an on-premise environment of Microsoft Active Directory and a stand-alone environment in the cloud. Connecting to a local directory is simple, and once the connection is established, all users can access resources and applications using existing credentials. It is also possible to launch directories based and managed on Samba in minutes, making it easier to manage Windows workloads using the Amazon cloud.
This service allows you to query objects in an S3 bucket with a SQL compatible language. This avoids the forcing of all those complex scripts to write many times in order to manage the objects in S3. Athena is a serverless service and does not need any infrastructure for executing queries that will be executed by a batch system in Amazon AWS.
MapReduce is a framework introduced by Google for distributed computing on large amounts of data in computer clusters. The Map () node takes the problem request, and the resolution algorithm divides it into many different sub-problems and distributes them to different nodes. The Reduce () node takes the answers of all the sub-problems and prepares the answer. In Amazon, you can experiment with this technique with all the nodes we need and test the speed of our resolution algorithm.
This service allows users to search for content within applications or websites quickly and effectively. CloudSearch technology is the same used by Amazon.com for product-related searches, and the service tries to make developers who want to integrate research into their sites, released from the logic of public search engines. Using this service, developers can create their own search domain, store all the information in a database, and customize all search queries with the results list.
Quicksight is the Amazon Business Intelligence service, and you can import the data you want to analyze from different sources, such as Redshift, Amazon RDS, Amazon S3, third party sources, CSV files, and much more. Once you acquire the data, a very powerful engine called SPICE will process it, which will allow you in obtaining the results in graphic format with a few seconds of processing even on much data.
Lex is a new Amazon AWS service for creating and writing a BOT for automatic conversation management using both text and voice. The design of this tool was to help all developers to integrate these complex algorithms easily and quickly into their applications, in both desktop and mobile environments.
With Amazon Polly, it is possible to translate a written text into a voice file that will use a spoken language, so it will not only be a translation into a voice but will be a true interpretation of the text that will make it a real spoken voice. In the console of this service, you will find several examples with which to start doing general tests.
Amazon Rekognition is an automatic image recognition service using different artificial intelligence algorithms. The use of the service is very simple, and the ease of its use would surprise you. Simply store an image on an S3 bucket calling an API and reading the result in JSON format.
Amazon GameLift is a new service that allows you to distribute, manage, and recalibrate multi-player session-based video games by reducing the amount of time needed to create multi-player back-ends from thousands of hours to minutes. Available to developers using Lumberyard, GameLift is built on a cloud infrastructure that allows for rapidly expanding or reducing the capacity of game servers based on demand, without the need for additional programming costs.
Multi-player games created with Lumberyard, a free multi-platform 3D game engine integrated with Amazon AWS and Twitch, are ready for use with the Amazon GameLift service, which reduces the technical risks that often push programmers to eliminate cloud-based multi-player features from their projects.
Amazon Cognito simplifies saving user data, such as app preferences or the current state of a game. You can do everything without writing backend code and without managing a complex infrastructure. You can save user data locally so that applications work even when they are offline.
With this service, you can easily manage campaigns in a mobile environment by defining the user target, the messages you want to send, and much more. Amazon Pinpoint can help you determine who to send push notifications to and decide when to send them, all with an integrated system that will allow you to check campaign results.
Amazon SQS is one of the very first services released by Amazon, which allows the distribution of operations and, therefore, of workload through message queues present on one or more servers. For example, we could have a server that analyzes a web page and inserts in a queue the references to all the images on this page. The queue is analyzed by a series of other servers that can divide the workload and mark the end message as processed.
This service is a document storage solution that also adds collaboration features between different users of the company. Once the documents have been stored in this service, you can consult them from different platforms. In fact, in addition to the classic web application, we can use all Android and iOS devices.
You can use Amazon Chime for online meetings, video conferences, calls, chats, and share content, both inside and outside the organization. Amazon Chime allows you to work productively from anywhere. You can encrypt all your communications, the chat history is never stored on your devices, and you can limit your meetings to see who participates.
The service called AWS IoT is a platform that allows connected devices to interact easily and securely with cloud applications and other devices. AWS IoT can support billions of devices and thousands of billions of messages and can process and route those messages to AWS endpoints and other devices in a secure and reliable manner.
This software allows you to perform calculations, messaging, and data caching locally for the devices. With Greengrass, connected devices can perform AWS Lambda functions, keep device data synchronized, and communicate securely with other devices, even when not connected to the Internet.