The AWS ecosystem is complex and very different from the traditional cloud providers you may be used to. We explain the differences, what their different services are used for and how they coincide with the competition.
How is Amazon AWS different from other cloud providers?
To put it simply – they have it all. AWS has so many services that we could not list them all in this article, so there will almost certainly be something to suit your use case.
You will probably use several AWS services, rather than renting a large server or two to run everything. This is the big change compared to other providers, but it should make your network much more scalable and fault tolerant. Distribution times for new EC2 computing instances are in minutes and you can create them from snapshots you define, making automatic scaling of your network a viable and recommended option.
AWS handles much more than other cloud providers and often provides preventative solutions to common cloud problems, such as databases, content delivery networks and storage. You do not have to spend hours configuring these services or setting up your own solutions. You are not locked into using anything (for example, you can always use an EC2 instance to run your database), but the advanced solutions will often have a price advantage in any case, and with almost all services having a free level , do not do it is not bad to try things.
AWS are also divided into zones, defined by the region in which they are located. Data transmitted between regions is usually counted as data transmitted over the Internet and may cost more. Regions also have different prices depending on the AWS infrastructure, so data stored in Australia will cost more than in the US. Some services, such as EBS volumes, are locked to the region they were created in unless you back them up to S3 and transfer regions.
In addition to dividing by region, AWS also has accessibility zones within these regions, for individual data centers. Having two instances in different accessibility zones does not matter as much as regions, as they are linked to low latency links, but it is something you should take into account when starting new instances.
You should probably stick to using a single region and accessibility zone unless you have a good reason not to, just to prevent headaches along the way.
How does AWS pricing also work?
AWS pricing is extremely measured and sometimes a bit complicated. There are no flat rates for AWS services; AWS divides the pricing for each service into many different categories. You can visit the / price page for any AWS service to see detailed information on exactly what you will be charged for.
Let’s break down a sample count. Here we have a t2.small EC2 instance in the northern Virginia region. We are charged for each hour it runs, which is $ 17.11, but we are also charged for how much storage space we have allocated to this instance – $ 8 for 80 GB.
We also keep a snapshot of data on disk as a backup, which costs less than the allocated storage, but still costs money. We are also charged for “Elastic IP address not linked to a current instance”, as AWS IP addresses cost money to keep if you do not use them, which is something you may not catch until you find it on the invoice. We also have an instance that runs in the Ohio region, which is in a separate category on the invoice and in the EC2 Management Console.
In addition to all the different EC2 fees, we are charged for data transfer over all AWS. It is divided by type, but in total up to 15 GB, which costs $ 1.37. You will be charged for data transfer for most services, from S3 storage to EC2, from EC2 out to the Internet etc. The most important thing that is free is data transferred from S3 to CloudFront, Amazon’s CDN, but only because CloudFront-to- Internet costs money and otherwise you will be charged twice. Just remember that when you move data around or via AWS, you will be charged for it.
How much does AWS cost?
AWS has a price premium compared to other hosting solutions such as Digital Ocean, Linode and OVH. If you only use one AWS service, such as EC2, it’s better to go with another host.
However, if you are willing to pay a premium for easy configuration and quick installation of your network, AWS can save time on server development and configuration. Reserved instances are also much cheaper than on-demand instances and can save a lot of money on EC2 costs, but you should only commit to one if you know how much you need.
You can use the AWS price calculator to find out how much AWS will cost you before you buy, and you can use Cost Explorer to see past and forecast prices for your current AWS resources. AWS also has a very generous free level for most of its services, so you can prototype certain applications for free.
EC2 – Standard servers, many options
Amazon’s Elastic Compute Cloud (EC2) is their universal cloud service, and you will almost certainly use it in some form if you run on AWS. An ongoing EC2 server is called an instance and they are based on scalability. you can automatically launch new instances from templates in minutes and distribute as much computing power as you need.
You can start new instances from the EC2 Management Console, which shows everything you run.
There are many different types of EC2 instances, all optimized for different things. They each have their own identifier, which
c5.4xlarge. You can install any operating system you want, including images that are preconfigured with different programs, or you can launch new instances from snapshots you define.
Unlike other hosts where you often have to rent servers for long periods, you can distribute EC2 instances on site to meet fluctuating demand. If your site experiences a lot of traffic during the day, but slows down at night, there is not much reason to pay to keep your network at maximum capacity, and you can certainly scale back to the morning. AWS makes it easy to do this type of time-based scaling with EC2 Auto Scaling.
Storage and data management
AWS has three main storage services that you can use. The most common is Elastic Block Storage (EBS), which is the standard used for EC2 instances. These are volumes that can only be reached when mounted on an EC2 instance. They are designed to be cloud hard drives that you can move between instances and save snapshots of. The standard EBS type is a general purpose SSD, but there are different types of volumes.
Simple Storage Service (S3) is Amazon’s standalone data hosting service. S3 stores individual files as objects in a flat hierarchy and is much cheaper to store a lot of data (over 4 times as cheap as EBS). You fill buckets with data and you are charged per GB with separate levels if you store over 50 TB.
You can reference files by their ID to download them either to EBS volumes or to the Internet via the AWS command-line toolkit, and you will be charged per GB for all data you download. Data that you do not retrieve too often can be moved to S3 Glacier, which takes less money per stored GB but charges more for retrieval, perfect for archiving.
Elastic File System (EFS) is somewhere in between. It’s basically a scalable cloud NAS for your AWS services; It has structure and directories, can be accessed by several EC2 instances at a time and will grow as you add more files. However, it is much more expensive than S3 or EBS and can also be slower, so you should only use it if your application really needs it.
Load balancers are entry points for your network that can balance traffic over several EC2 instances or containers. They are fairly easy to install, but will be an integral part of any network setup that requires multiple servers.
Pricing for load balancers is a bit complicated, but you will be billed every hour for what your most used resource is, from new connections, active connections, processed GB or rule evaluations. If your load balancer processed a lot of data for only a few connections, you will be billed based on that.
RDS – Amazon’s database hosting service
Amazon’s Relational Database Service (RDS) makes it easy to set up a database server. Everything is fully managed, so you do not have to worry about technical problems with configuring a DB server. RDS databases are easy to scale, with support for read replicas and load balancers.
RDS supports several different database types, including MySQL and PostgreSQL, but perhaps more interesting is Aurora, Amazon’s own database that is MySQL and PostgreSQL compliant while being five times faster and much cheaper.
Whatever you choose, you pay per GB for database storage and per GB for data transfer. If you do not use Aurora, you will also have to pay for the calculation to run the database server, for which you will be charged per hour. This is the big advantage of Aurora; Since everything is handled by Amazon, you do not need a dedicated server and the cost is kept low.
Alternatively, you can always run your own server with an EC2 instance, but you pay the same amount for EBS storage.
Lambda and elastic bean stalk – apps without servers
Lambda and Elastic Beanstalk are different ways to run apps without managing servers. For Elastic Beanstalk, the idea is that you can upload your code and let the service handle the allocation of AWS resources automatically, so you do not have to spend time as a sysadmin to get your code up and running. This can be very useful for small applications, and you always have full control over all instances created by the service if you need to configure things manually later. Elastic Beanstalk is free to use in itself, but you have to pay for what it assigns.
Lambda is a little different and lets you run code in AWS ecosystems without servers. You create a Lambda function, select a runtime such as Node 8.10 or Python 3.7, and your code will be executed when that function is triggered, either manually or automatically. You can set triggers to run your code when data is placed in an S3 bucket or when fired from other AWS services. You will be charged based on how much memory you use and for how long you use it.
Cloudfront – Amazon CDN
Cloudfront is Amazon’s content delivery network (CDN), which is used to power Prime video and Hulu. If you need to deliver a lot of static content to a lot of people, a CDN helps relieve the stress of having to set up multiple instances of load balancing web servers. Cloudfront caches your content in several data centers around the world and delivers it for cheaper than EC2 would do.
Cloudfront acts as an entry point for large-scale web apps and is also optimized for dynamic content and supports both the WebSockets protocol and traditional HTTP POST requests. You can also run Lambda code on the same servers as Cloudfront, called Lambda @ Edge. Because you drive much closer to your users, you can perform operations with much lower latency.
Pricing is fairly simple; you are charged based on how much data is sent over the network and how many individual requests are made. An important thing to note, however, is that data transferred from S3 to CloudFront (and out to the Internet) is free. You only pay for CloudFront, which is cheaper than S3 per GB.