AWS Public Sector Blog

Optimizing nonprofits’ costs in the cloud

Now more than ever, nonprofits have to optimize their costs and stretch their funds to maximize dollars invested in their mission. Often, nonprofits evaluate efficiency based on their operating expenses. For many, this means turning to the cloud to eliminate the upfront costs of buying servers and building data centers. With the cloud, nonprofits can better understand their bills, uncover foundational strategies for optimizing costs, set up budget alerts, and track costs and usage so they only spend on resources that they need.

Understand your bill

The first step to identify potential savings on your Amazon Web Services (AWS) costs is figuring out your bill, which will help you keep costs under control and identify places for savings. For example, the AWS Billing & Cost Management Dashboard gives an overall view of your AWS costs. The AWS Cost Explorer allows you to dive deeper into the costs, track, and analyze your AWS usage.

Under AWS Cost Explorer, you can review the monthly costs by service report to understand where your costs are and then prioritize your cost management by idle services or big-ticket items. Grouping by region allows you to understand where your services live as services could have different pricing depending on the region. Grouping by linked account allows you to understand what AWS account needs investigation. If you group by instance type, you can see if you have the right size.

Take advantage of right sizing to pay for only what you use

Right sizing is the process of matching instance types and sizes to your workload performance and capacity requirements at the lowest possible cost. It’s also the process of looking at deployed instances and identifying opportunities to eliminate or downsize without compromising capacity or other requirements. AWS helps customers control their resource capacity and pay only for what they consume.

Historically, IT departments have had to provision for peak demand. In the cloud, you can minimize costs because you provision capacity based on average usage rather than future peak usage. Right sizing can help save up to 70 percent on your monthly bill. The key is understanding your organization’s usage needs and patterns and knowing how to take advantage of the elasticity of the AWS Cloud to respond to those needs. Right sizing is an ongoing process and needs to be part of your organization’s process, as performance and capacity requirements can change over time.

Use automatic recommendations to pick the right size

The AWS Compute Optimizer generates optimization recommendations to reduce the cost and improve the performance of your Amazon Elastic Compute Cloud (Amazon EC2) instances. Each recommendation is based on CPU, memory, network, and local disk usage. Before implementing the recommendation, check for the future needs of instance usage. AWS Compute Optimizer only looks at the most recent 14-day time period and doesn’t forecast future needs. If the recommendation is for a savings plan, check the impact and how the recommendation will be billed. Also, investigate the performance risk, the amount of effort to test, and make sure the new instance recommendation will perform as planned. Check out more information and recommendations on when and how to change the Amazon EC2 instance type.

Turn off instances to automatically save up to 70 percent

Shutting down idle instances that are no longer being used or only used for a short period is a simple way to reduce operational costs. You can schedule instances to only run during a certain period of the day. For example, development instances may only be needed during working hours.

Before turning off instances, identify the owner of the instance, understand the impact of instance termination, and measure the level of effort to re-create the instance in case you need to restore. Terminating instances can delete or leave Amazon Elastic Block Store (Amazon EBS) volumes, so make sure you have a backup strategy. The AWS Instance Scheduler allows you to configure start and stop schedules for your Amazon EC2 and Amazon Relational Database Service (Amazon RDS) instances. By configuring your instances to run during business hours, you can save up to 70 percent compared to running 24 hours a day.

Recognize database cost savings

Using Amazon Aurora, a MySQL- and PostgreSQL-compatible database engine, can help cut down your database costs by 90 percent. Because it is a fully managed service, it helps you save time by automating time-consuming tasks such as provisioning, patching, backup, recovery, failure detection, and repair.

Removing data from Aurora frees up the space. For example, you can drop or truncate a table. This automatic reduction in storage usage helps you to minimize storage charges. Creating and restoring a snapshot does not reduce the allocated storage, though. Monitoring performance and key metrics enables you to identify the right size of the Aurora instance type.

Reduce costs on data transfer

Identifying data transfer charges and the traffic through a Network Address Translation (NAT) Gateway can help you optimize costs. If the majority of your NAT gateway traffic comes from Amazon Simple Storage (Amazon S3) or Amazon DynamoDB in the same region, switch the NAT gateway to a VPC endpoint.

Identify data hoarding and legacy datasets savings

Data hygiene is important to identifying wasted storage. By moving data that is at the end of its lifecycle and accessed on rare occasions to Amazon S3 Glacier Deep Archive, you can save up to 80 percent of Amazon S3 pricing.

Amazon S3 Intelligent-Tiering is an Amazon S3 storage class that analyzes your storage access patterns. It delivers automatic cost savings by moving data between two access tiers—frequent access and infrequent access—when access patterns change. Amazon S3 Intelligent-Tiering monitors access patterns and moves objects that have not been accessed for 30 consecutive days to the infrequent access tier. There are no retrieval fees in Amazon S3 Intelligent-Tiering. If an object in the infrequent access tier is accessed later, it is automatically moved back to the frequent access tier. No additional tiering fees apply when objects are moved between access tiers within the Amazon S3 Intelligent-Tiering storage class. Read more about the different Amazon S3 storage classes.

Amazon S3 analytics storage class analysis is a report that analyzes storage access patterns of all the objects in a bucket. Or, you can filter the report by an object tag or common prefix. You can use the information to choose a more appropriate storage class, improve lifecycle policies, and make predictions around future usage and growth.

Amazon S3 Inventory provides a report that lists objects and their corresponding metadata on a daily or weekly basis for an Amazon S3 bucket, which provides an alternative to the Amazon S3 List API. This report allows you to identify objects by name and metadata to move to a different storage class.

Use savings plans

Savings plans allows savings up to 72 percent on Amazon EC2, AWS Fargate, and AWS Lambda usage in exchange for a commitment to a consistent usage amount (measured in dollars/hour), instead of specific instance configurations like in Reserved Instances. You can find customized savings plans recommendations based on your past usage. Note, promotional credits have limitations when used for savings plans.

Control costs with alerts thresholds

AWS can monitor and send alerts when the actual or forecasted cost or usage exceeds your budget limit, and good practice is to set up the alerts staggered at 80 percent, 90 percent, and 100 percent of your budget limit, which helps you take action before the bill goes beyond your budget limit.

AWS Budgets Dashboard is a hub for creating, tracking, and inspecting budgets. Creating alert notifications and custom budget thresholds supports you in keeping spending in check. Alert notifications can let you know when the costs or usage exceed (or are forecast to exceed) your budget amount.

AWS Cost Anomaly Detection leverages advanced machine learning technologies to identify anomalous spend and root causes. In three steps, you can create your own contextualized monitor and receive alerts when any anomalous spend is detected. Let builders build and let AWS Cost Anomaly Detection monitor your spend and reduce the risk of billing surprises.

Take advantage of tax exemptions for US-based nonprofits

If you are a US-based nonprofit and tax-exempt in a particular state, you may be eligible to use your tax exemptions for future purchases from AWS. Open a case in the Support Center. Then, attach an electronic copy of your valid tax exemption certificate to the case by using the add attachment button. For information about AWS US sales tax policies and practices, see Tax help – United States. If you’re not sure whether your AWS usage is subject to US sales tax, consult your tax advisor.

Learn more

Nonprofits can take advantage of additional AWS materials to organize and track cost and usage, enhance control through consolidated billing and access permission, enable better planning through budgeting and forecasting, or further lower cost with resources and pricing optimizations. Learn more about AWS for nonprofits.