5 AWS serverless services you must know
As Cloud becomes more prominent, the sheer amount of services can become overwhelming. This begs the question, which services should you know about?
In our last blog post, we focused on the issue of pricing when it comes to AWS. We brought up the fact that AWS offers its customers over 200 services, which, if you think about it, is quite astonishing. Although it is a great advantage to have all these services at hand, it can potentially lead to all sorts of problems for users, one of them being cost, which you can read about in our earlier posts. Another issue that arises is the fact that it is tough to keep track of what all these services do, what the pros and cons are, and which services complement each other well. In light of this, we decided to give you a rough list of five AWS serverless services that you absolutely must know.
Fargate
Fargate is an AWS service that you can use when running Amazon ECS containers. Fargate is a serverless service, which means that you don't have to deal with servers or deploy and manage large amounts of EC2 instances. Instead, you can focus on building the application at hand, while Fargate handles the complex infrastructure behind it. For example, tasks such as scaling each EC2 instance manually are removed with the use of Fargate. To put it plainly, you set everything up at the container level, such as the compute and memory resources required, and then Fargate takes care of the rest, while you sail off into the sunset with only your application and its code in your mind.
Lambda
Lambda is another serverless service that AWS offers. It lets you focus on writing and executing code while it handles everything else such as provisioning and scaling RAM and CPU. Now, I know what you are thinking, Lambda reminds you a lot of Fargate. However, there are some important differences to take into account. Lambda is an event-driven service (buzzword bingo!), which means that it only runs in the case of an event, such as a message from an SNS or an incoming HTTP request. The consequence of this is that the execution can be delayed (also known as a cold start), which might be alright in some situations, but in others, unacceptable.
Another noticeable difference regards runtime. While Fargate lets you set up your application in containers, configure compute and memory resources and then launch it, Lambda essentially only lets you manage your application's code. Ultimately, this means that, with Lambda, as opposed to Fargate, you don't have any control over the runtime. However, while Fargate might give you more control, this might make it a bit harder to set up than Lambda.
SQS
Simple Queue System is a messaging service that allows you to transfer, store and receive data by placing it in a queue. Consumers can then "pull" messages from the queue. SQS locks your messages while processing them, and also doesn't require other services to be available, which means you don't have to worry about losing messages. This is extremely important if you handle sensitive data such as bank or healthcare errands.
SNS
When talking about SQS, you also have to talk about SNS. The main difference between these two services is that the Simple Notification System "pushes" the messages to the consumer rather than places it in a queue. These messages can be sent between applications, or between applications directly to a person. Now, there is an advantage to combining the usage of SQS and SNS. By doing this, you make sure that you can control the messages' pace, decreasing the odds of your end-point simply crashing from a heavy volume of messaging.
RDS Aurora
AWS Aurora is a relational management system. It is compatible with both MySQL and PostgreSQL. Aurora gives you the performance of commercial databases and the flexibility of an open source. If that isn't compelling enough, since it is a serverless service, you only pay for the capacity you consume, which ultimately leads to lower costs.
Some final words
These five serverless services are by no means all of them, but they are a pretty good starting point if you are just starting to get into AWS or want to learn more about it. Another thing that probably becomes apparent is the advantage of using these services in combination. For example, as mentioned before, SQS and SNS work brilliantly in combination with AWS Lambda. If some of these services sparked your interest, you could easily read more about every specific one, for example on AWS´s website. This is certainly one of the big upsides of AWS: There is not a shortage of information out there about it.