Considering the AWS-Supported Platforms
If you haven’t dealt with AWS or the cloud yet, you might be tempted to think of platforms as a specific combination of items. For example, when viewing your own local setup, you have a server that runs a specific operating system and has a specific set of hardware resources.
The system has a specific Database Management System (DBMS) installed and relies on certain kinds of other software to provide end-user resources. The development platform is specific, too. You use a particular language with a predefined set of libraries to code application in just one way. The cloud doesn’t work this way. When working with the cloud, you have an array of operating systems that can support any of a number of DBMSs and has access to a wide assortment of end-user resource products.
Even the development environment is different. You can code at several different levels. In fact, when using the AWS Lambda service, you don’t really consider platform or resources in the conventional sense at all. What you’re most interested in is a process for obtaining a particular result given a certain bit of data regardless of the source or output. The environment no longer really matters; what does matter is the process and the result obtained from the process.
With all these caveats and differences in mind, the question becomes one of determining the best way to use particular services rather than what functionality you have available. The following information gives you a quick overview of how to obtain more information about AWS support for specific platform features, given a particular service.
Obtaining an overview of the supported platforms
AWS is all about the services. You can see these services divided into categories. A category exists for every need. In just looking at the broad assortment of categories, you could get overwhelmed quite quickly.
The problem becomes even more obvious when you open one of the categories. For example, you see the Compute category below, which is the first place you should go to discover what you can access in the way of development platforms.
To perform most tasks, you create an EC2 virtual server. Drilling down into the EC2 virtual server information, you find a wealth of instance types from which to choose, a few of which fall into the free tier of services. The instance types define things like the number of CPUs, amount of memory, and type of storage supplied for your virtual server. You also need to consider the operating system, which means selecting between a Windows or Linux version, in this case.
Choosing an appropriate platform for your needs
By now, you should have the idea that creating an appropriate platform isn’t a matter of finding a set of AWS features to meet your app needs. What it comes down to is finding the set of features that helps you code
- With the least effort
- In the shortest time
- For the least amount of money
The whole issue of cost can become significant with AWS because you quickly find yourself paying all sorts of hidden fees for things that you didn’t know you needed or thought would be free. You can find more information in AWS For Admins For Dummies, by John Paul Mueller (Wiley 2016). However, you do get enough information to make smart decisions about building a development environment and using that environment to create applications.
The best way to find an appropriate platform for your development needs is to start slowly, using one of the services at a time and adding services only as you need them, rather than trying to build a complete development environment at the outset. If you attempt to create a complete development environment, you’re almost certain to make serious mistakes with so many different services providing such a great amount of overlapping functionality.
Most developers start with an EC2 setup and possibly add the Lambda service to it to begin experimenting with AWS as a coding platform. AWS also provides access to the developer tools. The AWS Command Line Interface can prove extremely helpful in getting started with AWS because you get a feel for how things work in an interactive environment.
Use the free-tier services as much as possible at the beginning to reduce the cost of experimentation. Only when you see an actual need to modify your configuration to use paid services should you make the change. Relying on this approach will give you a better feel as to how to make your setup efficient and what you can actually expect in the way of performance using less capable setups.