Amazon Web Services are widely used in digital businesses these days. That is possible because everybody heard about services such as EC2, SQS, or S3. Those are used heavily in production systems and they work well. In 2020, AWS offers more than 175 services. You can imagine that it’s hard to remember all of them. As a result, while some of them can be very helpful, nobody talks about them.
So I prepared a list of four services on AWS that your team could benefit from.
CloudFormation is a service that enables us to describe infrastructure as code. Infrastructure as code is a well-known practice to set out and manage IT infrastructure through the configuration files. With CloudFormation, we can define all required components and dependencies between them.
There are a few benefits to having everything in configuration files. First, it makes it possible to speed up the processes, as the task stays only within the code. No navigation between different services and connecting them through the user interface. Second, it adds more reliability and reduces human errors. The code can be reviewed by other engineers, and in case of mistake, the changes can be reverted quickly.
For example, the following piece of code creates a new S3 bucket under your account:
As you can see, only seven lines of code can create a new S3 bucket with a default setup at any moment. No need to do the job manually through the AWS console.
CloudFormation supports two formats: JSON and YAML. Besides that, CloudFormation offers features such as nested stacks, exporting values, or passing parameters between stacks. Indeed, it is a very powerful service to maintain the whole company’s infrastructure.
CloudFormation is a free service and you need to pay only for provisioned components.
2. Trusted Advisor
Do you want to ensure that your system is security-compliant? Are you looking for cost optimization of your current setup? Trusted Advisor is what you need. It offers guidance on how to improve fault tolerance, increase performance and security, and reduce costs.
Trusted Advisor dashboard
There is a list of recommended actions available for each section. Those actions are advised according to your setup. Trusted Advisory does real-time constant checks of the components in use and evaluates them.
Trusted Advisor security dashboard
In case an issue is found, Trusted Advisor provides a good explanation about the issue and suggests a way of fixing it. This service will help you to use different AWS components in the proper and most efficient way.
Trusted Advisor has different supported plans. That means if you want to have more features enabled, you have to upgrade your plan.
Many websites provide an option to sign up and create an account. As developers, we know what it costs. The task is trivial but still requires a good amount of time to establish a user management system. Your users would like to have options not only to sign up and log in but also to update their profile or restore their password if they forget it.
Thankfully, AWS has a great service called Cognito. It has a wide range of features for user management. You can define which fields are mandatory when users sign up, define policies such as password strength and multifactor authentication, specify custom UI, etc. It is possible to connect the Lambda function for each user action. For example, every time a user signs into the system, the Lambda function can make a record to the database or send a push notification.
Along with that, Cognito has an SDK for mobile platforms and the web. With the SDK, it is easier to integrate a full solution with front-end clients. Building a new user management feature for your solution has never been so simple.
The last service that is underutilized on AWS is X-Ray. It has the purpose of helping developers to debug and analyze distributed applications. This is useful for developers. In case of any issues with the running production system, X-Ray enables us to trace back all requests and responses between the components and identifies the issues or bottlenecks.
X-Ray works in the following way. First, an SDK must be added to the application. Then the X-Ray daemon needs to be launched. It works as a middleware collecting all requests and synchronizing it with the AWS console. Later, all calls to AWS services, databases, and HTTP/HTTPS requests will be visualized for further analysis.
Example of X-Ray console from the documentation.
This makes X-Ray a very helpful service for engineers building distributed systems. There are also additional features available such as sampling rules, grouping, and detailed analytics. You have to check it out, as it can bring some insights into how your application works.
Starting from generic services such as S3 and ending with specific services for machine learning, Amazon Web Services have a lot to offer every digital business. Feel free to explore them and bring your company to the next level.