Amazon Web Services (AWS) has the largest cloud computing market share (32%) amongst all leading cloud providers. It offers a far wider range of services and functionalities, be it infrastructure technologies (compute, storage, and databases) or emerging technologies (machine learning and artificial intelligence, data lakes and analytics, and the Internet of Things). This allows users to quickly, easily, and cost-effectively migrate and build the most advanced and sophisticated applications on the cloud. AWS services also offer the most comprehensive functionalities, including a wide range of purpose-built databases for cost and performance optimization.
But how can one choose the right set of AWS services from their wide array of offerings? Making the right choice is crucial for the success of developing or migrating an application to make sure that it meets its pre-defined objective and also achieves the business goals.
When assessing an AWS service for your business, keep the following aspects in mind:
1. Establish the business context: To make key system decisions and leverage their impact, it is crucial to have the correct business context. Below are the key points to help you identify the business context better:
- The underlying workflows
- The stakeholders
- Volume handled in the workflows
- Existing IT investments and interactions
- Measured impact of disruption in the workflow
2. Check the availability of the service in your region: AWS services and products vary from region to region. As a result, you must verify that the service you're seeking is available in the AWS regions of your choice.
3. Examine performance and scalability constraints: To avoid concerns like sluggish response times or frequent outages, your AWS cloud service should be able to support your application as it expands. Here's a checklist to help you evaluate the performance and scalability of AWS services in relation to your business needs.
- Applicable limitations (especially narrow) of the service, in terms of the number of provisioned resources, data retention periods, throughput, payload size, and storage size.
- AWS resources or configurations that drive scale for your applications. For example, provisioned EC2 instances, Amazon RDS read replicas, ElastiCache cluster size.
- Scaling scenarios—handling low usage, gradual growth, and spikes.
4. Assess failure recovery options & ease of use: Examine the most common AWS service error scenarios for accessing your existing AWS ecosystem, creating new AWS resources, and in connectivity. Consider the cost and method of redundancy solutions, such as additional AWS resources that will take over in the event of a breakdown, as well as the failover systems that will bring it back online.
5. Assess control, access, and security mechanisms for resources and data: In AWS, Identity and Access Management is the central and global system for managing authentication and permissions. Resource-based policies, CloudTrail support, and Encryption at Rest are among the additional tools available, which differ by service. It's crucial to determine whether or not a service supports resource-based policies. For an AWS service, it's critical to assess the API operations available in CloudTrail.
6. Check programming languages that are supported by the Software Development Kits (SDKs): AWS offers a wide range of programming languages in its SDKs and includes all services in each SDK package. However, SDKs are not used to implement all application code. Check that the AWS service you're interested in supports all code components in your application, not just the SDK.
7. Check if seamless integration is possible: AWS built-in integrations are straightforward to use, providing event-driven functionality that would have taken a lot of time and effort for you to develop and operate. Assess the implementation effort for AWS cross-service integrations that aren't built-in. It makes things a lot easier if all of the AWS cloud services are in the same area.
8. Examine the features for monitoring and incident management: Given the importance of monitoring, consider the relevance of the metrics to your application. Ascertain that the metric dimensions and posting intervals are responsive when it comes to notifying important issues. You must assess the suitability of the existing methods for automatically triggering timely and successful remediation.
9. Assess the scope for automation: Examine how an AWS service can help you automate the setup and deployment of apps. The automated operations that must execute before, during, or after resource creation for the AWS service must also be identified.
10. Evaluate the costs:
- Pay attention to the AWS price dimensions that apply to your application and AWS service to avoid paying a monthly fee for an AWS service you don't need.
- Calculate AWS pricing for low and high application utilization. Some AWS cloud services get less expensive as consumption increases.
- For a certain AWS service, compare the pricing across all AWS regions. You must be aware of the price differences between regions, as some services can be much more expensive than those in the least-priced zone.
We hope that the above AWS Services cheat sheet helps you find the perfect set of services for your requirements. After you've chosen the suitable Amazon cloud services and started running workloads on it, you can concentrate on optimizing your cloud costs.
If you need help in selecting the right AWS Services or to enhance the efficiency and cost-effectiveness of your cloud infrastructure, connect with our AWS-certified cloud experts. Claim a free AWS Well-Architected review today and discover how to achieve guaranteed savings on your entire AWS bill.