Step 1: Gain an understanding of the existing applications and platform, then build a roadmap to identify redundancies and cost optimization opportunities
The first thing we do is create an application roadmap to map out your entire system architecture to understand unnecessary system redundancies or unneeded scaling configurations. We look to gain a deep understanding of the application stack and cloud usage by application. Knowing and tracking cloud costs by application is critical for the company to understand what each application uses.
Due to the many ways to execute a workload, and how teams within an organization are structured across multiple functions, we generally find a few big opportunities for cost efficiencies during this phase.
Step 2: Gain a full understanding of technical cost optimizations through monitoring, reporting, and governance
To get a full understanding of cost optimizations, we look at four areas, specifically:
Utilization (Compute, Mem, Disk, Storage). Most organizations believe they are operating at the right level of computing utilization. However, after doing an analysis, we usually uncover that most computing resources are underutilized, even though companies are paying for full utilization. In some cases, instances could be shut down as well, with no impact.
Controlling cloud costs requires the triad of monitoring, reporting, and governance to be properly aligned. Cloud monitoring is the process of using automated software to gain visibility into application, user, and file behavior. Auditing and reporting are close adjuncts of monitoring and help to identify patterns and potential security gaps in the infrastructure.
Some key strategies that can help optimize your cloud utilization costs are:
Caching storage. By running frequent requests through low latency in-memory data stores, cloud users can save significant costs on data storage. AWS ElastiCache is a popular solution that reduces latency to sub-millisecond response times.
Data compression. Reducing the size of your storage unit with a data compression algorithm can also save on the overall cost of storage.
Auto-scaling. The ability to automatically scale up or down compute resources in cases where production workloads are variable and unpredictable. Azure Autoscaling offers a service that adjusts the capacity to help users get the best performance per unit of cost.
Optimize API calls. The key to development today is to improve functionality and reduce latency. Each new service or HTTP call within an application can multiply costs. With Amazon’s new API Gateway, developers can now address this issue with more efficient, lower latency API calls.
Optimize storage. You can optimize your cloud-based storage using these characteristics:
- Size: How much storage do you really need?
- Data Transfer (bandwidth): How often does your data need to move from one location to another?
- Retrieval Time: How quickly do you need to access your data?
- Retrieval Requests: How often do you need to access your data?
Turn off unused resources and right-size. It’s not unusual for an administrator or developer to “spin up” a temporary server to perform a function and forget to turn it off when the job is done or forget about older snapshots that aren’t being used. Automation can solve some of these issues by setting defined rules or notifying users. You should turn off idle instances and right-sizing instances that are either over-provisioned or poorly matched to the workload, based on the analysis of instance performance and user needs and patterns. Also, you have the option to “auto park” resources, which is the ability to shut down a resource during non-peak hours and automate the spinning up and spinning down processes.
Alerts. Setting thresholds on your AWS and Azure billing data sources can help identify when you’re close to exceeding your budget or your average monthly cost. Daily reports can be sent individually, to the finance team, or even to the engineers that are provisioning and running services in the cloud.
Identity and Access Management. For enterprises with complex organizational structures, hundreds of workgroups, and many projects, it’s important to have full visibility of who is using what cloud resources and when. Cloud Identity and Access Management (IAM) can give IT admins a centralized view of their cloud environment along with compliance and security controls. IAM is about connecting the right users to the right resources on the cloud in the most secure fashion. IAM must serve as a baseline component of an integrated security and compliance layer across an organization’s entire cloud infrastructure.
Account consolidation. In most of the major cloud platforms, you can create “billing families,” which allows you to associate all of your accounts under one billing profile. We take a look at all of the accounts and recommend an account consolidation plan to help you achieve better rates and a full streamlined view of your billing.