Site Reliability Engineering (SRE) focuses on keeping services reliable and scalable. A crucial part of this discipline is monitoring, which is where the concept of Golden Signals comes into play.
Golden Signals help teams quickly identify and diagnose issues within a system. This article breaks down what these signals are, why they're important, and how they can be used to maintain healthy systems.
The Four Golden Signals
SRE principles streamline monitoring by focusing on four key metrics—latency, errors, traffic, and saturation—collectively known as Golden Signals. Instead of tracking numerous metrics across different technologies, focusing on these four metrics helps in quickly identifying and resolving issues.
Latency:Latency is the time it takes for a request to travel from the client to the server and back. High latency can cause a poor user experience, making it critical to keep this metric in check. For example, in web applications, latency might typically range from 200 to 400 milliseconds. Latency monitoring helps detect slowdowns early, allowing for quick corrective action.
Errors:Errors refer to the rate of failed requests. Monitoring errors is essential because not all errors have the same impact. For instance, a 500 error (server error) is more severe than a 400 error (client error) because the former often requires immediate intervention. Identifying error spikes can alert teams to underlying issues before they escalate into major problems.
Traffic:Traffic measures the volume of requests coming into the system. Understanding traffic patterns helps teams prepare for expected loads and identify anomalies that might indicate issues such as DDoS attacks or unplanned spikes in user activity. For example, if your system is built to handle 1,000 requests per second and suddenly receives 10,000, this surge might overwhelm your infrastructure if not properly managed.
Saturation:Saturation is about resource utilization; it shows how close your system is to reaching its full capacity. Monitoring saturation helps avoid performance bottlenecks caused by overuse of resources like CPU, memory, or network bandwidth. Think of it like a car's tachometer: once it redlines, you're pushing the engine too hard, risking a breakdown.
Challenges associated with monitoring saturation in microservices:
Complexity of Microservice Architectures:In microservice environments, various services are often built on different technologies (e.g., Node.js, databases, Swift). Each service may handle resource usage differently, making it challenging to monitor and understand overall system saturation accurately. Saturation occurs when resources such as CPU, memory, or network bandwidth are fully utilized, leading to degraded performance.
Resource Utilization Visibility:Since each microservice can have its unique metrics, gaining a clear view of overall saturation is difficult. Teams need to aggregate and standardize data from multiple services to accurately assess saturation levels. This can be time-consuming and requires expertise across different technology stacks.
Identification of Bottlenecks:Saturation often results in bottlenecks where some services are overloaded while others are underutilized. Pinpointing which service is causing the bottleneck in a complex system can be difficult without a cohesive monitoring approach like the one provided by SRE Golden Signals.
Dynamic and Variable Loads:In microservice architectures, traffic and resource demands can fluctuate rapidly, making it essential to monitor saturation in real-time. Services must adapt to changes in load, but without proper monitoring, it's easy to miss critical saturation points that can impact overall system performance.
Why Golden Signals Matter
Golden Signals provide a comprehensive overview of a system's health, enabling SREs and DevOps teams to be proactive rather than reactive. By continuously monitoring these metrics, teams can spot trends and anomalies, address potential issues before they affect end-users, and maintain a high level of service reliability.
SRE Golden Signals help in proactive system monitoring
SRE Golden Signals are crucial for proactive system monitoring because they simplify the identification of root causes in complex applications. Instead of getting overwhelmed by numerous metrics from various technologies, SRE Golden Signals focus on four key indicators: latency, errors, traffic, and saturation.
By continuously monitoring these signals, teams can detect anomalies early and address potential issues before they affect the end-user. For instance, if there is an increase in latency or a spike in error rates, it signals that something is wrong, prompting immediate investigation.
What are the key benefits of using "golden signals" in a microservices environment?
The "golden signals" approach is especially beneficial in a microservices environment because it provides a simplified yet powerful framework to monitor essential metrics across complex service architectures.
Here’s why this approach is effective:
▪️Focuses on Key Performance Indicators (KPIs)
By concentrating on latency, errors, traffic, and saturation, the golden signals let teams avoid the overwhelming and often unmanageable task of tracking every metric across diverse microservices. This strategic focus means that only the most crucial metrics impacting user experience are monitored.
▪️Enhances Cross-Technology Clarity
In a microservices ecosystem where services might be built on different technologies (e.g., Node.js, DB2, Swift), using universal metrics minimizes the need for specific expertise. Teams can identify issues without having to fully understand the intricacies of every service’s technology stack.
▪️Speeds Up Troubleshooting
Golden signals quickly highlight root causes by filtering out non-essential metrics, allowing the team to narrow down potential problem areas in a large web of interdependent services. This is crucial for maintaining service uptime and a seamless user experience.
By applying these golden signals, SRE teams can efficiently diagnose and address issues, keeping complex applications stable and responsive.
How can the "one-hop dependency view" assist in troubleshooting?
The "one-hop dependency view" in application performance monitoring (APM) simplifies troubleshooting by focusing only on the services that directly impact the affected service.
Here’s how it helps:
▪️Reduces Investigation Scope
Rather than analyzing the entire microservices topology, the one-hop view narrows the scope to immediate dependencies. This selective approach allows engineers to focus on the most likely sources of issues, saving time in identifying the root cause.
▪️Streamlines Root-Cause Analysis
By examining only the services one level away, the team can apply the golden signals (latency, errors, traffic, saturation) to detect any anomalies quickly. If a direct dependency is experiencing problems, it becomes immediately apparent without unnecessary complexity.
▪️Decreases Mean-Time-to-Recovery (MTTR)
With fewer services to investigate, the MTTR is significantly reduced. Engineers can identify and address the root issue faster, minimizing downtime and maintaining the application’s reliability.
Using the one-hop dependency view helps SRE teams keep the troubleshooting process efficient, especially in complex, interdependent service ecosystems
Practical Application: Using APM Dashboards
Application Performance Management (APM) dashboards integrate Golden Signals into a single view, allowing teams to monitor all critical metrics at once. For example, the operations team can use APM dashboards to get insights into latency, errors, traffic, and saturation. This holistic view simplifies troubleshooting and reduces the mean time to resolution (MTTR).
Here's how they work together:
▪️Centralized Monitoring with APM Dashboards:APM tools provide dashboards that centralize the key Golden Signals—latency, errors, traffic, and saturation. This centralized view allows operations and development teams to monitor the health of their applications in real-time. By displaying these critical metrics in one place, APM tools simplify the identification of performance issues, making it easier to spot trends and anomalies that need attention.
▪️"One Hop" Dependency Views:APM tools often support a "one hop" dependency view, which shows only the immediate downstream services connected to a problematic service. This feature is particularly useful in complex microservice environments where pinpointing the root cause of an issue can be daunting. By focusing on immediate dependencies, teams can quickly assess which services are functioning within normal parameters and which are experiencing issues, thereby speeding up the troubleshooting process.
▪️Proactive Issue Detection and Resolution:Integrating Golden Signals into APM tools allows for proactive monitoring, where issues can be identified before they escalate into more serious problems. For example, if a service’s saturation levels begin trending upwards, the APM tool can alert the team before users experience degraded performance. This proactive approach helps reduce the mean time to resolution (MTTR) and improves overall service reliability.
▪️ Customization for Different Teams:The video also mentions that APM tools can be customized for different stakeholders within the organization. While the operations team may focus on all four Golden Signals, development teams might create specialized dashboards that prioritize the signals most relevant to their services. This tailored approach ensures that both dev and ops teams are aligned and can address issues quickly, often even before they impact the end-users.
In essence, the integration of SRE Golden Signals with APM tools empowers teams to maintain high levels of service performance and reliability by providing clear, actionable insights into the most critical aspects of their systems.
What is the significance of distinguishing 500 vs. 400 errors in SRE monitoring?
The distinction between 500 and 400 errors in SRE monitoring is crucial because it impacts how issues are prioritized and addressed.
Here’s a breakdown:
500 Errors (Server Errors)
These indicate serious problems on the server side, such as downtime or crashes. They require immediate attention because they prevent users from accessing the service entirely, often resulting in significant disruptions. For instance, a 500 error signals that something is failing within the server's infrastructure, meaning end-users can’t receive a response at all. Therefore, these errors are more critical in incident response and may trigger alerts for the SRE team.
400 Errors (Client Errors)
These typically indicate client-side issues, where a request is invalid or needs adjustment, like when the requested resource doesn’t exist or is restricted. Such errors might be resolved simply by retrying or by the client correcting the request, so they’re usually less urgent. Monitoring 400 errors can still reveal trends or user behavior that may require attention, but they don't indicate systemic issues.
In summary, recognizing the difference allows SREs to prioritize resources on issues that directly affect the system’s reliability and availability (like 500 errors) versus issues that may just need minor adjustments or retries.
Conclusion
Ready to take your system's reliability and performance to the next level? Gart Solutions offers top-tier SRE Monitoring services to ensure your systems are always running smoothly and efficiently. Our experts can help you identify and address potential issues before they impact your business, ensuring minimal downtime and optimal performance.
Discover how Gart Solutions can enhance your system's reliability today! Learn from our IT Monitoring case studies (Monitoring Solution for a B2C SaaS Music Platform and Advanced Monitoring for Digital Landfill Management) to learn more about our SRE Monitoring expertise.
https://youtu.be/BqPXUxhshTM?si=EWFFu0JNYgJCj7g0
When we talk about cost-effectiveness, it's crucial to understand that we're not simply advocating for the cheapest options available. Our approach is about creating sustainable solutions that provide long-term value.
Why the Cheapest Option Isn't Always the Best Long-Term Choice
The cheapest option often seems tempting, especially when budgets are tight. However, opting for the lowest-cost solution can lead to significant challenges down the line. Cheap solutions often come with hidden costs, such as lower quality, limited scalability, and higher maintenance requirements. Over time, these issues can accumulate, resulting in higher total costs and potentially jeopardizing your business operations.
For example, it's essential to approach cloud startup programs carefully. Often, businesses make mistakes in network design and services while using free cloud credits, leading to significant additional infrastructure costs once the free period ends.
One startup leveraged free credits from the Google Cloud Startup Program to quickly build their product. However, when the free period ended, they faced crippling infrastructure costs due to lack of optimization. Check this case study: DevOps for Microsoft HoloLens Application Run on GCP
At Gart Solutions, we advocate for a strategic approach to cost optimization that balances savings with quality and performance. Our solutions are designed to scale with your business, allowing you to manage costs effectively as you grow.
Sustainable Cost Reductions
In tough economic times, slashing IT costs can seem like a quick fix. However, indiscriminate cuts can harm long-term competitiveness. To optimize IT spending effectively, CIOs and IT managers must steer clear of three common pitfalls.
Just as the harmful practice of bloodletting persisted for centuries, so too does the urge to cut costs without careful consideration. While economic challenges like inflation and decreased demand pressure IT budgets, drastic reductions can be counterproductive. Unlike inflation, IT costs are likely to continue rising.
To achieve sustainable cost reductions, IT leaders must avoid these mistakes:
Short-term focus: Cutting across the board can hinder future growth and innovation.
Overreliance on consultants: Consultants often suggest low-hanging fruit, leaving limited potential for long-term savings.
Neglecting stakeholders: Ignoring the impact of IT cuts on business operations can damage relationships and hinder outcomes.
Our Approach to Cost-Effective and Sustainable IT Solutions
Smart Savings vs. Crucial Investments
We understand that not all areas of your IT infrastructure require the same level of investment. Our experts guide you on where it's prudent to save costs and where it's crucial to invest. This balanced approach ensures you get the best value without compromising on quality or performance. Our expertise helps you make informed decisions that align with your financial and operational goals.
By carefully analyzing your needs and implementing smart strategies, we ensure that you're getting the most out of your IT investments. This approach not only reduces waste but also ensures that every dollar spent contributes directly to your business goals.
Read more: 20 Easy Ways to Optimize Expenses on AWS and Save Over 80% of Your Budget
Strategic Product Design
The cornerstone of our cost-effective approach is strategic product design. We focus on laying down the right basic architecture from the start, emphasizing long-term stability and scalability. This ensures that your IT solutions can adapt and grow with your business without encountering major issues or requiring extensive reworks.
Our solutions are designed with your future in mind. We create systems that can scale seamlessly as your business grows, allowing you to manage costs effectively at every stage of your journey. One of the key benefits of our approach is the ability to avoid future technological problems related to growth, migration, or other common challenges.
This forward-thinking approach prevents the need for costly overhauls down the line and provides a stable foundation for your ongoing success.
Check this cost optimization case study: Cutting Costs by 81%: Azure Spot VMs Drive Cost Efficiency for Jewelry AI Vision
Cloud Costs in DevOps
Cloud costs in DevOps can be broadly categorized into two main types: operational costs and capital costs. Each category encompasses specific elements that contribute to the overall financial picture of a DevOps environment.
FinOps
FinOps complements our cost-effective approach by adding a layer of financial governance and optimization to cloud operations. This ensures that our clients not only build sustainable solutions but also maintain financial efficiency throughout their cloud journey.
FinOps, or Financial Operations, is an evolving cloud financial management discipline that brings financial accountability to the variable spend model of cloud, enabling distributed teams to make business trade-offs between speed, cost, and quality.
At Gart Solutions, we integrate FinOps practices into our DevOps and cloud services to further enhance cost-effectiveness and sustainability.
By incorporating FinOps principles, we help our clients:
Gain better understanding and control of their cloud costs
Optimize cloud spend without sacrificing performance or innovation
Align cloud investments with business objectives
Create a culture of cost awareness and accountability
The Long-Term Value of Cost-Effectiveness
It's tempting to opt for the cheapest solution available, but this often leads to increased costs and headaches down the road. Here's why our cost-effective approach provides better long-term value:
▪️ Reduced Total Cost of Ownership: By investing in quality solutions upfront, you avoid the hidden costs of frequent upgrades, maintenance, and system failures.
▪️ Improved Reliability: Our robust solutions minimize downtime and performance issues, ensuring your business operations run smoothly.
▪️ Enhanced Adaptability: With scalable systems in place, your IT infrastructure can evolve with your business needs without requiring complete overhauls.
▪️ Better Resource Allocation: By optimizing your IT spending, you free up resources that can be invested in other areas of your business.
Conclusion
At Gart Solutions, we believe that true cost-effectiveness is about creating sustainable, high-quality solutions that provide long-term value. By focusing on strategic design, smart resource utilization, and future-proofing your systems, we help you build a robust IT infrastructure that supports your business goals while keeping costs under control.
Choose Gart Solutions for DevOps and cloud services that don't just save you money today, but continue to deliver value well into the future.
Remember, indiscriminate cost-cutting can do more harm than good. A well-planned approach focused on long-term value is key to achieving sustainable IT cost reductions.
In my experience optimizing cloud costs, especially on AWS, I often find that many quick wins are in the "easy to implement - good savings potential" quadrant.
[lwptoc]
That's why I've decided to share some straightforward methods for optimizing expenses on AWS that will help you save over 80% of your budget.
Choose reserved instances
Potential Savings: Up to 72%
Choosing reserved instances involves committing to a subscription, even partially, and offers a discount for long-term rentals of one to three years. While planning for a year is often deemed long-term for many companies, especially in Ukraine, reserving resources for 1-3 years carries risks but comes with the reward of a maximum discount of up to 72%.
You can check all the current pricing details on the official website - Amazon EC2 Reserved Instances
Purchase Saving Plans (Instead of On-Demand)
Potential Savings: Up to 72%
There are three types of saving plans: Compute Savings Plan, EC2 Instance Savings Plan, SageMaker Savings Plan.
AWS Compute Savings Plan is an Amazon Web Services option that allows users to receive discounts on computational resources in exchange for committing to using a specific volume of resources over a defined period (usually one or three years). This plan offers flexibility in utilizing various computing services, such as EC2, Fargate, and Lambda, at reduced prices.
AWS EC2 Instance Savings Plan is a program from Amazon Web Services that offers discounted rates exclusively for the use of EC2 instances. This plan is specifically tailored for the utilization of EC2 instances, providing discounts for a specific instance family, regardless of the region.
AWS SageMaker Savings Plan allows users to get discounts on SageMaker usage in exchange for committing to using a specific volume of computational resources over a defined period (usually one or three years).
The discount is available for one and three years with the option of full, partial upfront payment, or no upfront payment. EC2 can help save up to 72%, but it applies exclusively to EC2 instances.
Utilize Various Storage Classes for S3 (Including Intelligent Tier)
Potential Savings: 40% to 95%
AWS offers numerous options for storing data at different access levels. For instance, S3 Intelligent-Tiering automatically stores objects at three access levels: one tier optimized for frequent access, 40% cheaper tier optimized for infrequent access, and 68% cheaper tier optimized for rarely accessed data (e.g., archives).
S3 Intelligent-Tiering has the same price per 1 GB as S3 Standard — $0.023 USD.
However, the key advantage of Intelligent Tiering is its ability to automatically move objects that haven't been accessed for a specific period to lower access tiers.
Every 30, 90, and 180 days, Intelligent Tiering automatically shifts an object to the next access tier, potentially saving companies from 40% to 95%. This means that for certain objects (e.g., archives), it may be appropriate to pay only $0.0125 USD per 1 GB or $0.004 per 1 GB compared to the standard price of $0.023 USD.
Information regarding the pricing of Amazon S3
AWS Compute Optimizer
Potential Savings: quite significant
The AWS Compute Optimizer dashboard is a tool that lets users assess and prioritize optimization opportunities for their AWS resources.
The dashboard provides detailed information about potential cost savings and performance improvements, as the recommendations are based on an analysis of resource specifications and usage metrics.
The dashboard covers various types of resources, such as EC2 instances, Auto Scaling groups, Lambda functions, Amazon ECS services on Fargate, and Amazon EBS volumes.
For example, AWS Compute Optimizer reproduces information about underutilized or overutilized resources allocated for ECS Fargate services or Lambda functions. Regularly keeping an eye on this dashboard can help you make informed decisions to optimize costs and enhance performance.
Use Fargate in EKS for underutilized EC2 nodes
If your EKS nodes aren't fully used most of the time, it makes sense to consider using Fargate profiles. With AWS Fargate, you pay for a specific amount of memory/CPU resources needed for your POD, rather than paying for an entire EC2 virtual machine.
For example, let's say you have an application deployed in a Kubernetes cluster managed by Amazon EKS (Elastic Kubernetes Service). The application experiences variable traffic, with peak loads during specific hours of the day or week (like a marketplace or an online store), and you want to optimize infrastructure costs. To address this, you need to create a Fargate Profile that defines which PODs should run on Fargate. Configure Kubernetes Horizontal Pod Autoscaler (HPA) to automatically scale the number of POD replicas based on their resource usage (such as CPU or memory usage).
Manage Workload Across Different Regions
Potential Savings: significant in most cases
When handling workload across multiple regions, it's crucial to consider various aspects such as cost allocation tags, budgets, notifications, and data remediation.
Cost Allocation Tags: Classify and track expenses based on different labels like program, environment, team, or project.
AWS Budgets: Define spending thresholds and receive notifications when expenses exceed set limits. Create budgets specifically for your workload or allocate budgets to specific services or cost allocation tags.
Notifications: Set up alerts when expenses approach or surpass predefined thresholds. Timely notifications help take actions to optimize costs and prevent overspending.
Remediation: Implement mechanisms to rectify expenses based on your workload requirements. This may involve automated actions or manual interventions to address cost-related issues.
Regional Variances: Consider regional differences in pricing and data transfer costs when designing workload architectures.
Reserved Instances and Savings Plans: Utilize reserved instances or savings plans to achieve cost savings.
AWS Cost Explorer: Use this tool for visualizing and analyzing your expenses. Cost Explorer provides insights into your usage and spending trends, enabling you to identify areas of high costs and potential opportunities for cost savings.
Transition to Graviton (ARM)
Potential Savings: Up to 30%
Graviton utilizes Amazon's server-grade ARM processors developed in-house. The new processors and instances prove beneficial for various applications, including high-performance computing, batch processing, electronic design automation (EDA) automation, multimedia encoding, scientific modeling, distributed analytics, and machine learning inference on processor-based systems.
The processor family is based on ARM architecture, likely functioning as a system on a chip (SoC). This translates to lower power consumption costs while still offering satisfactory performance for the majority of clients. Key advantages of AWS Graviton include cost reduction, low latency, improved scalability, enhanced availability, and security.
Spot Instances Instead of On-Demand
Potential Savings: Up to 30%
Utilizing spot instances is essentially a resource exchange. When Amazon has surplus resources lying idle, you can set the maximum price you're willing to pay for them. The catch is that if there are no available resources, your requested capacity won't be granted.
However, there's a risk that if demand suddenly surges and the spot price exceeds your set maximum price, your spot instance will be terminated.
Spot instances operate like an auction, so the price is not fixed. We specify the maximum we're willing to pay, and AWS determines who gets the computational power. If we are willing to pay $0.1 per hour and the market price is $0.05, we will pay exactly $0.05.
Use Interface Endpoints or Gateway Endpoints to save on traffic costs (S3, SQS, DynamoDB, etc.)
Potential Savings: Depends on the workload
Interface Endpoints operate based on AWS PrivateLink, allowing access to AWS services through a private network connection without going through the internet. By using Interface Endpoints, you can save on data transfer costs associated with traffic.
Utilizing Interface Endpoints or Gateway Endpoints can indeed help save on traffic costs when accessing services like Amazon S3, Amazon SQS, and Amazon DynamoDB from your Amazon Virtual Private Cloud (VPC).
Key points:
Amazon S3: With an Interface Endpoint for S3, you can privately access S3 buckets without incurring data transfer costs between your VPC and S3.
Amazon SQS: Interface Endpoints for SQS enable secure interaction with SQS queues within your VPC, avoiding data transfer costs for communication with SQS.
Amazon DynamoDB: Using an Interface Endpoint for DynamoDB, you can access DynamoDB tables in your VPC without incurring data transfer costs.
Additionally, Interface Endpoints allow private access to AWS services using private IP addresses within your VPC, eliminating the need for internet gateway traffic. This helps eliminate data transfer costs for accessing services like S3, SQS, and DynamoDB from your VPC.
Optimize Image Sizes for Faster Loading
Potential Savings: Depends on the workload
Optimizing image sizes can help you save in various ways.
Reduce ECR Costs: By storing smaller instances, you can cut down expenses on Amazon Elastic Container Registry (ECR).
Minimize EBS Volumes on EKS Nodes: Keeping smaller volumes on Amazon Elastic Kubernetes Service (EKS) nodes helps in cost reduction.
Accelerate Container Launch Times: Faster container launch times ultimately lead to quicker task execution.
Optimization Methods:
Use the Right Image: Employ the most efficient image for your task; for instance, Alpine may be sufficient in certain scenarios.
Remove Unnecessary Data: Trim excess data and packages from the image.
Multi-Stage Image Builds: Utilize multi-stage image builds by employing multiple FROM instructions.
Use .dockerignore: Prevent the addition of unnecessary files by employing a .dockerignore file.
Reduce Instruction Count: Minimize the number of instructions, as each instruction adds extra weight to the hash. Group instructions using the && operator.
Layer Consolidation: Move frequently changing layers to the end of the Dockerfile.
These optimization methods can contribute to faster image loading, reduced storage costs, and improved overall performance in containerized environments.
Use Load Balancers to Save on IP Address Costs
Potential Savings: depends on the workload
Starting from February 2024, Amazon begins billing for each public IPv4 address. Employing a load balancer can help save on IP address costs by using a shared IP address, multiplexing traffic between ports, load balancing algorithms, and handling SSL/TLS.
By consolidating multiple services and instances under a single IP address, you can achieve cost savings while effectively managing incoming traffic.
Optimize Database Services for Higher Performance (MySQL, PostgreSQL, etc.)
Potential Savings: depends on the workload
AWS provides default settings for databases that are suitable for average workloads. If a significant portion of your monthly bill is related to AWS RDS, it's worth paying attention to parameter settings related to databases.
Some of the most effective settings may include:
Use Database-Optimized Instances: For example, instances in the R5 or X1 class are optimized for working with databases.
Choose Storage Type: General Purpose SSD (gp2) is typically cheaper than Provisioned IOPS SSD (io1/io2).
AWS RDS Auto Scaling: Automatically increase or decrease storage size based on demand.
If you can optimize the database workload, it may allow you to use smaller instance sizes without compromising performance.
Regularly Update Instances for Better Performance and Lower Costs
Potential Savings: Minor
As Amazon deploys new servers in their data processing centers to provide resources for running more instances for customers, these new servers come with the latest equipment, typically better than previous generations. Usually, the latest two to three generations are available. Make sure you update regularly to effectively utilize these resources.
Take Memory Optimize instances, for example, and compare the price change based on the relevance of one instance over another. Regular updates can ensure that you are using resources efficiently.
InstanceGenerationDescriptionOn-Demand Price (USD/hour)m6g.large6thInstances based on ARM processors offer improved performance and energy efficiency.$0.077m5.large5thGeneral-purpose instances with a balanced combination of CPU and memory, designed to support high-speed network access.$0.096m4.large4thA good balance between CPU, memory, and network resources.$0.1m3.large3rdOne of the previous generations, less efficient than m5 and m4.Not avilable
Use RDS Proxy to reduce the load on RDS
Potential for savings: Low
RDS Proxy is used to relieve the load on servers and RDS databases by reusing existing connections instead of creating new ones. Additionally, RDS Proxy improves failover during the switch of a standby read replica node to the master.
Imagine you have a web application that uses Amazon RDS to manage the database. This application experiences variable traffic intensity, and during peak periods, such as advertising campaigns or special events, it undergoes high database load due to a large number of simultaneous requests.
During peak loads, the RDS database may encounter performance and availability issues due to the high number of concurrent connections and queries. This can lead to delays in responses or even service unavailability.
RDS Proxy manages connection pools to the database, significantly reducing the number of direct connections to the database itself.
By efficiently managing connections, RDS Proxy provides higher availability and stability, especially during peak periods.
Using RDS Proxy reduces the load on RDS, and consequently, the costs are reduced too.
Define the storage policy in CloudWatch
Potential for savings: depends on the workload, could be significant.
The storage policy in Amazon CloudWatch determines how long data should be retained in CloudWatch Logs before it is automatically deleted.
Setting the right storage policy is crucial for efficient data management and cost optimization. While the "Never" option is available, it is generally not recommended for most use cases due to potential costs and data management issues.
Typically, best practice involves defining a specific retention period based on your organization's requirements, compliance policies, and needs.
Avoid using an undefined data retention period unless there is a specific reason. By doing this, you are already saving on costs.
Configure AWS Config to monitor only the events you need
Potential for savings: depends on the workload
AWS Config allows you to track and record changes to AWS resources, helping you maintain compliance, security, and governance. AWS Config provides compliance reports based on rules you define. You can access these reports on the AWS Config dashboard to see the status of tracked resources.
You can set up Amazon SNS notifications to receive alerts when AWS Config detects non-compliance with your defined rules. This can help you take immediate action to address the issue. By configuring AWS Config with specific rules and resources you need to monitor, you can efficiently manage your AWS environment, maintain compliance requirements, and avoid paying for rules you don't need.
Use lifecycle policies for S3 and ECR
Potential for savings: depends on the workload
S3 allows you to configure automatic deletion of individual objects or groups of objects based on specified conditions and schedules. You can set up lifecycle policies for objects in each specific bucket. By creating data migration policies using S3 Lifecycle, you can define the lifecycle of your object and reduce storage costs.
These object migration policies can be identified by storage periods. You can specify a policy for the entire S3 bucket or for specific prefixes. The cost of data migration during the lifecycle is determined by the cost of transfers. By configuring a lifecycle policy for ECR, you can avoid unnecessary expenses on storing Docker images that you no longer need.
Switch to using GP3 storage type for EBS
Potential for savings: 20%
By default, AWS creates gp2 EBS volumes, but it's almost always preferable to choose gp3 — the latest generation of EBS volumes, which provides more IOPS by default and is cheaper.
For example, in the US-east-1 region, the price for a gp2 volume is $0.10 per gigabyte-month of provisioned storage, while for gp3, it's $0.08/GB per month. If you have 5 TB of EBS volume on your account, you can save $100 per month by simply switching from gp2 to gp3.
Switch the format of public IP addresses from IPv4 to IPv6
Potential for savings: depending on the workload
Starting from February 1, 2024, AWS will begin charging for each public IPv4 address at a rate of $0.005 per IP address per hour. For example, taking 100 public IP addresses on EC2 x $0.005 per public IP address per month x 730 hours = $365.00 per month.
While this figure might not seem huge (without tying it to the company's capabilities), it can add up to significant network costs. Thus, the optimal time to transition to IPv6 was a couple of years ago or now.
Here are some resources about this recent update that will guide you on how to use IPv6 with widely-used services — AWS Public IPv4 Address Charge.
Collaborate with AWS professionals and partners for expertise and discounts
Potential for savings: ~5% of the contract amount through discounts.
AWS Partner Network (APN) Discounts: Companies that are members of the AWS Partner Network (APN) can access special discounts, which they can pass on to their clients. Partners reaching a certain level in the APN program often have access to better pricing offers.
Custom Pricing Agreements: Some AWS partners may have the opportunity to negotiate special pricing agreements with AWS, enabling them to offer unique discounts to their clients. This can be particularly relevant for companies involved in consulting or system integration.
Reseller Discounts: As resellers of AWS services, partners can purchase services at wholesale prices and sell them to clients with a markup, still offering a discount from standard AWS prices. They may also provide bundled offerings that include AWS services and their own additional services.
Credit Programs: AWS frequently offers credit programs or vouchers that partners can pass on to their clients. These could be promo codes or discounts for a specific period.
Seek assistance from AWS professionals and partners. Often, this is more cost-effective than purchasing and configuring everything independently. Given the intricacies of cloud space optimization, expertise in this matter can save you tens or hundreds of thousands of dollars.
More valuable tips for optimizing costs and improving efficiency in AWS environments:
Scheduled TurnOff/TurnOn for NonProd environments: If the Development team is in the same timezone, significant savings can be achieved by, for example, scaling the AutoScaling group of instances/clusters/RDS to zero during the night and weekends when services are not actively used.
Move static content to an S3 Bucket & CloudFront: To prevent service charges for static content, consider utilizing Amazon S3 for storing static files and CloudFront for content delivery.
Use API Gateway/Lambda/Lambda Edge where possible: In such setups, you only pay for the actual usage of the service. This is especially noticeable in NonProd environments where resources are often underutilized.
If your CI/CD agents are on EC2, migrate to CodeBuild: AWS CodeBuild can be a more cost-effective and scalable solution for your continuous integration and delivery needs.
CloudWatch covers the needs of 99% of projects for Monitoring and Logging: Avoid using third-party solutions if AWS CloudWatch meets your requirements. It provides comprehensive monitoring and logging capabilities for most projects.
Feel free to reach out to me or other specialists for an audit, a comprehensive optimization package, or just advice.