visit
AWS has almost half of the market for all cloud platforms / Canalys
Using the AWS platform, Coursera can handle about 500 Tbytes of traffic per month. In 2009, Netflix became the most prominent first user of AWS among large corporations and now uses over 100,000 server instances on AWS.There is a long list of successful examples of using AWS’s capabilities. But before we proceed into a detailed analysis of these services, let's look at the main ways of interacting with the platform.AWS is accessed and managed through the AWS Console, a site where resources can be managed through a browser. This is one way to interact, but there are others:
SDK is a type of software interaction with the platform. SDKs are implemented for such popular programming languages as C++, Go, Java, JS, .NET, PHP, Python, Ruby. If there is no official SDK for the language you are writing code in; there is probably a library that is supported by the community. Or you can write your own SDK, which will be a kind of wrapper to the HTTP interface provided.
AWS CLI is a command-line utility that is useful for automating processes. It is also suitable for those who are more comfortable using the command line rather than a graphical interface.
1. Doesn't require a big investment
If you want to launch your startup and create a messenger, you will need:2. Provides the largest infrastructure amongst all cloud providers
Today, the AWS infrastructure , each of which has several availability zones. These are one or more .AWS offers many cloud services that can be combined to meet your business and organizational needs.You can easily disable cloud servers and resources you don't use
1. Identity Access Management in AWS
is a service without which teamwork in AWS is impossible. It allows you to create and manage user access levels.When you sign up for AWS, you create an account. Within that account, you can form various resources. To ensure that your team members also have access to these resources, you create users and assign them to each other.For example, you can combine them into separate groups—administrators, testers, or developers. You can then create policies that define access and permissions within your account. For example, you can create a policy that allows you to read and modify all resources and pass this policy to the Administrator group. Or you can allow all resources to be read but forbid them to be modified, and assign this policy to the testers group.Another entity you can create is roles. You create users for people and roles for services. For example, you have a web server, and that means you can create a role for it that allows access to the database. This way you will allow access to the database, but other services won't have it.
2. AWS Simple Storage Service (S3)
is an object storage service that offers automatic scalability.S3 stores copies of the data on different physical devices, which ensures high availability and reliability. The S3 provides an HTTP interface to access and manage data.This is exactly the kind of service we would use if we created our own version of Dropbox or Google Drive. It can also be used to store static site files, for example. S3 provides limitless storage that expands automatically. You won't have to worry about the size available for files. You'll be able to store files up to five terabytes in size.
There are also different storage classes. For example, if you have a file and access it infrequently, you can put it in the infrequent access storage class and you will pay significantly less for storing data. The extra charge, in this case, depends on the number of requests made. The current prices can be seen at .Files can be archived using the S3 glacier service. For example, if you are required by law to keep data for at least three years, this service is just what you need. It will reduce the cost of payment. But there is a disadvantage—it can take several hours to get access to the data.
S3 provides a versioning function. Here’s how it works: after changing files, you can always go back to previous versions and restore them. Lifecycle management allows you to assign a file that, once created, will go into the archive and, after two years, will be completely deleted. S3 supports multi-factor authentication for file deletion. This means that you can configure the repository so that the user can delete files only after passing multi-factor authentication.
3. AWS CloudFront
is essentially the Content Delivery Network, a system of servers around the world that caches static content.A user who wants to receive static content is directed by the system to the nearest server, which will provide the data promptly. Such servers are called edge locations. Their system exists independently of regions and availability zones. This is an additional layer of Amazon's infrastructure. The system works not only to give out files quickly but also to receive them.
If you have an S3 bucket in Europe and a user is trying to download a file from the U.S., the S3 Transfer Acceleration functionality will route it to the nearest edge location, allowing the file to upload to the platform faster, and then it will get to the right region via Amazon's dedicated, high availability, low-latency private network.4. AWS Elastic Computer Cloud (EC2)
is a service that allows you to create virtual machines with different operating systems and install software on them.It takes only a few minutes to create such a virtual machine. EC2 offers different types and configurations of servers. For example, they are customized for specific computing tasks with powerful processors. Another option is servers for working with large amounts of data.EC2 allows you to connect different virtual storages, e.g. general-purpose or high-bandwidth ones, depending on your needs. You can read more about this .EC2 allows you to create bootstrap scripts that will be used during the virtual machine creation phase. You can use these scripts to make presets and install the necessary software. You can also make snapshots of the state of the virtual machine at a certain time. These are used to create the desired image of the virtual machine, and then make a copy with the software and settings already installed.EC2 Offers Different Price Models:
5. AWS Elastic Load Balancer
is a service that allows you to adjust and distribute the load between existing servers.Load Balancer can periodically check servers for availability. If a server fails and does not respond, Elastic Load Balancer stops sending traffic to it and distributes it among the remaining servers.Amazon offers several types of ELBs:6. Auto Scaling with AWS
- a service that allows you to create groups of servers and automatically manage their number.Auto Scaling can support a minimal, yet the necessary number of instances. It allows you to scale manually or configure by the event. For example, if the average CPU utilization exceeds 60%, then you need to add servers. Scalability by schedule is also available. Imagine: you have launched a promotion in your online store. You believe that a huge influx of customers will be exactly on Sunday. This means that on this day it is necessary to scale twice.7. AWS Cloud Watch
is a service for monitoring your resources in AWS.This service allows you to monitor hundreds of different predefined metrics (e.g., CPU, disk, network, and so on) and identify individual metrics. CloudWatch also allows you to collect and analyze logs of your entire infrastructure, applications, and services in one place.Based on the information collected, you can define "alarms" for certain events. For example, create a rule like this: if the average CPU load on your server for a certain period of time does not fall below 80%, CloudWatch will notify about it with an e-mail or SMS to your phone. Or if you have a certain budget for using Amazon's resources, you can set an alarm in the same way, which will warn you that you have exceeded your limit.8. AWS Relational Database Service
is a relational database service from Amazon that supports several engines: MySQL, MariaDB, PostgreSQL, Oracle, and Microsoft SQL.If you use Amazon RDS, the administration of the software is not your responsibility. All necessary software for the database system is already installed, managed, and supported by the AWS platform. RDS provides Multi-Availability Zones functionality for disaster recovery. For example, you can create a copy of your database on a separate server in a different availability zone. This database will be constantly in sync with the primary instance. When the primary server goes down, RDS will automatically switch all requests to the copy located in the other zone. The performance of the application will not be affected.There is also Read Replicas functionality, which allows you to create copies of the database to scale performance. Let's say there is one replica that can't handle the load. To solve this problem, you need to create one additional or multiple replicas that can distribute the read load among themselves and increase performance.9. Amazon Aurora
is a managed, relational database engine compatible with PostgreSQL and MySQL that offers automatic scaling. Amazon claims that its performance is five times that of MySQL and three times that of PostgreSQL.With automatic scaling, you don't have to constantly monitor your remaining space. For high availability and security, by default, all of your data is stored as six copies, two each, in three availability zones. If there is a fire in any of the data centers, Aurora will continue to operate.Aurora Serverless additionally offers automatic scaling of instance power. For example, depending on the current load, the database server can use one vCPU or eight. The automatic start/stop functionality allows you to stop the server if, for example, there are no requests for five minutes.10. DynamoDB by Amazon
is Amazon's primary NoSQL solution. DynamoDB is able to automatically scale up to huge sizes without performance loss.Copies of the data are stored in three physically different locations, providing high availability out of the box. It is important to understand that despite its speed and easy scalability, NoSQL will not provide you with the kind of language power, query power, and data structure rigor that a relational database has. It might not be worth using DynamoDB as a database for finance or health applications.
11. Route53 within AWS infrastucture
is a DNS service that allows you to register a domain name and bind it to different targets within the AWS infrastructure—for example, EC2 instance, Load Balancer, or any other IP outside of Amazon. Route53 offers different types of routing:12. Amazon Cognito
is an authentication and authorization service.It supports modern standards OAuth 2.0, OpenID Connect, and SAML 2.0, and offers registration functionality, multi-factor authentication via email/SMS, a ready-to-use user interface, integration with third-party providers (Facebook, Google, etc.), and Microsoft Active Directory.13. Amazon Simple Queue Service (SQS)
is a service for exchanging messages via queues.Allows for elasticity and weak connectivity between components (services) of the system. RabbitMQ is a popular open source analog to SQS.SQS offers two types of queues:14. AWS Simple Notification Service
is a messaging service that works on the publisher-subscriber model.Suppose you have a publisher who sends a message to an SNS topic. SNS sends the message to several subscribers of the topic. The role of subscribers can be a SQL queue, e-mail, or push notification in a mobile app (you can read more about it ).Here is an example of the use of SNS: Let's say that a new user is registered in the system. We send a message about this action to SNS. The service sends a message to the user with the text that the registration was successful. At the same time, the message is sent to the SQS-queue, where the data is consumed, processed, and sent to the repository for further analysis. The message is also sent in parallel to another SQS queue, the processor of which will try to obtain additional data about the user from a third-party service on the basis of the provided information.15. AWS Lambda
is a service that allows you to execute certain code as a result of events, without worrying about configuring and maintaining infrastructure. In this case, the developer is abstracted from such a notion as a server and can focus more on the implementation of their business tasks.The developer writes code, uploads it to AWS, and creates a Lambda function based on it. He then defines a trigger (event) that will trigger the created function. The code must contain the main handler function (entry point), which will receive details about the event that triggered the function as arguments.Lambda supports different runtimes: Node.js, Python, Ruby, Java, Go, .NET. Custom runtime allows you to customize your runtime and use any other programming languages (more about that ).16. AWS API Gateway
allows you to define HTTP RESTful APIs or websocket interfaces for other AWS resources.You can define HTTP endpoints or websocket routes to different backends, such as AWS Lambda, SQS, or DynamoDB.API Gateway is a managed service that requires no configuration or infrastructure support. At the same time, it provides scalability and fault tolerance. Logging, throttling of requests, and caching are also supported out-of-the-box. At the Gateway API level, authorization can be defined based on integration with the aforementioned AWS Cognito. And based on the Gateway and Lambda APIs, you can create a serverless application.The point is that Lambda can load not only a simple function but also a full-fledged web application. In this case, the Gateway API will work as a proxy, redirecting requests to your application's pipeline.17. AWS CloudFormation
is a service for automating infrastructure deployment.You describe the resources that make up your system in a YML or JSON file. You can recreate copies of the system from this file. CloudFormation is convenient in that the entire system is managed as a single entity. You can delete all the system resources, update, or recreate a copy with almost one command.