Modern software development requires more than just managed infrastructure to run applications. Connected and scalable services, such as databases, message queues, API gateways, content caches, analytics, and others are the building blocks used to create modern cloud-native applications. These connected services are one of the key advantages that Amazon’s AWS platform offers. Although AWS is often considered solely for hosted infrastructure, AWS also offers dozens of managed services that can be used to accelerate and scale applications. However, before using these services, several factors should be considered.
In general, using a hosted Amazon service, like Elastic Map Reduce (EMR) used for managing Big Data, should allow for faster application development and data analysis. Amazon manages the service for you, handles the installation and upgrades, and maintains the underlying infrastructure. Letting AWS handle this for you allows engineering resources to focus on adding the most value to your business. However, using a hosted service like EMR should not be treated as “fire and forget.” There are a number of ongoing efforts required to effectively plan for and utilize these managed services, such as configuration, security, data intake, and customization.
Another consideration in using any hosted service is pricing. AWS compute instances (EC2) are billed by the hour, but this is not true for all AWS services. A service like Simple Queue Service, used for messaging between services and applications, has pricing that scales based on the message count. These queues automatically scale as demand increases, but development teams will still need to accurately model future message rates in order to predict costs.
Interestingly, many AWS services can be utilized by applications hosted outside of AWS core infrastructure. A service like Simple Notification Service, which is used to provide notifications to applications and mobile devices, can be integrated into applications throughout the enterprise, regardless where the application runs. Running a service like this in-house may be difficult to replicate at Amazon’s global scale and cost.
Although utilizing AWS services can speed application development and reduce the resources needed for infrastructure management, using them without a clear strategy can lead to lock-in. If your application stack has connections to the myriad of AWS value-add services, it can be nearly impossible to migrate off AWS. Therefore which services are used by the business need to be carefully considered; some services may be strategic to keep in-house, some data may need to stay in-house, or some key expertise may need to be maintained. Having a clear plan on your application and infrastructure strategy before unleashing engineering teams on AWS is key to prevent lock-in and to get the most value out of what AWS offers.
At IBB, our Cloud and Software Transformation group has real-world experience developing strategies for effective use of Amazon Web Services (AWS) and their integration with hybrid cloud environments. Let us know how we can help you.