What is Redshift?
Amazon Redshift, or AWS Redshift as it’s more commonly called, is a powerful data warehouse that can handle petabytes of structured and semi-structured data. AWS Redshift lets you access data across your data warehouse, operational database and your data lake - all with just standard SQL queries.
Among other benefits, Amazon claims that AWS Redshift costs less to operate than any other cloud data warehouse. However, there’s plenty you need to know about the pricing model for this to be true. Below we’ll share the salient details and follow up with tips and tricks to make AWS Redshift less expensive.
Redshift Costs $42 per Week at Minimum
This is critical information to know before you get started. The cheapest is $0.25 per Hour for a dc2.large (Source: https://aws.amazon.com/redshift/pricing/) in the US East region. This means that a developer working on implementing an AWS Redshift server will cost the company $42 a week, or $186 a month (31 days). At the same time that only gives that engineer 0.16TB of SSD storage. That's definitely not enough to perform a full test and we’re not even talking about production scale yet.
Redshift Pricing Varies by Region
You may also not know that the price changes from region to region; for example, the same server in the Mumbai region is $0.315 per hour ($52.92 a week). At this point you may be thinking, “well that's not too bad.” Let’s look further into the pricing. The next server type that really can handle some decent storage and load is the dc2.8xlarge at $4.80 an hour. That's $806.40 a week.
Redshift Pricing Grows Dramatically With Complexity
By multiplying the hourly rate by 24 hours in a day and 7 days in a week (168 hours total for a week), this price list generates eye-popping costs:
- dc2.large x $0.25 per hour = $42.00 per week
- dc2.8xlarge x $4.80 per hour = $806.40 per week
- ds2.xlarge x $0.85 per hour = $142.80 per week
- ds2.8xlarge x $6.80 per hour = $1,142.40 per week
- ra3.4xlarge x $3.26 per hour = $547.68 per week
- ra3.16xlarge x $13.04 per hour = $2,190.72 per week
For the most expensive option here it'll cost you $9,701.76 a month (31 days) even before you start adding extra storage!
Redshift Servers Can Be Paused to Stop Billing
Recently AWS provided API access to be able to "Pause Clusters." In layman’s terms, we can now stop and start a AWS Redshift server so that you temporarily do not have to pay for the server but it retains its full configuration, functionality and data at the ready for the next time you choose to start it. Now, not every server can or should be deactivated for a period of time, but since AWS Redshift specializes in data warehousing, there’s a high likelihood that some of your instances are being used for development, testing or internal data analysis, making them prime candidates for pausing.
Tips to Get Redshift Costs Under Control
Tip 1: Set Corporate Region Policies for Spinning Up Redshift
When spinning up an AWS Redshift server, a developer may simply choose the region closest to themselves or the region they are most familiar with. The choice means little to this particular engineer, but it can mean quite a lot to your organization’s expenses. We recommend you set up clear policies for region selection within your organization, using the following framework:
Recommended Policy: In-Region Selection for High Traffic Servers
If you expect to be sending data to and from your AWS Redshift server, cross-region network traffic can add up quite a lot, perhaps even more than the cost of the server itself. Whenever you expect to frequently send large amounts of data to and from an AWS Redshift server from a within a single AWS Region, we recommend spinning up the AWS Redshift server in that same region.
Employ this rule when:
- all traffic comes from within the same region
- traffic is frequent and data intensive
Recommended Policy: Lowest Cost Region Selection for All Other Cases
These days, with high speeds and limited latency, it makes little sense to pay more for a specific region when any region is an available option to your business. Ensure your team always selects the cheapest region for AWS Redshift server instances, which typically is US East.
Exceptions to this rule:
- Frequent and data intensive in-region traffic is predicted (see In-Region Selection for High Traffic Servers above)
- The AWS Redshift server will contain identifiable customer data that must remain in a specific governing zone to be in compliance with local law and/or customer contract terms. In this case, rather than selecting US East, please research the lowest cost region available to you in order to comply with regulations.
Tip 2: Establish Corporate Pausing Policies So You Don’t Pay for the Time You Don’t Use
If you’re not configuring each AWS Redshift server with pausing rules that match your business needs, you’re leaving money on the table. We recommend the following corporate policies to ensure that your team is guaranteeing you the best pricing on RDS:
Recommended Policy: Configure Regular Internal-Use Server Availability to Match Working Hours
Let’s take the development server as the first cost saving example. If you didn't run it on the weekends, that’s 48 hours of savings. $42 a week down to $30. A 29% saving. Let's go even further - how about you run it only during business hours? If your DevOps specialists work 12 hour days, that’s now down to $15 a week. That’s a 64% saving over expected costs. Extrapolate that to the next server at $4.80 an hour, and its now $288 for the week down from $806.40.
Importantly, if you adopt this policy, remember to localize your schedules to the working hours of your team, and specifically the working hours of your engineers. Remember, once a teammate turns a server back on, it will not automatically spin down until the next scheduled timeframe.
Key points for this policy:
- Configure regular schedules that match actual working hours of the teams who will be using the instances
- Only adopt the policy for server instances that require regular work or access (see Configure Ad Hoc Servers to Automatically Stop at Logical Breaks below) and do not need to be available 24/7 to your customers for complete system functionality
Recommended Policy: Configure Ad Hoc Servers to Automatically Stop at Logical Breaks
Imagine that you have a copy of non-identifiable production data stored on an AWS Redshift server for the purposes of data analysis by a member of the operations team. Production data analysis isn’t this employee’s full time job, but there are numerous moments in the month when that teammate must perform a data analysis task. In this case, it makes no sense to schedule the server to turn on regularly. Rather, it’s important for your company that the server be regularly turned off to protect yourselves from rising costs that appear simply due to an urgent data analysis task on a Friday afternoon.
To set up this policy, select a time of day each day that is guaranteed to be the end of the working timeframe for any teammate who will be using the instance. Then, configure all instances of this type to automatically pause at that time.
Key points for this policy:
- Select the stop time to be after a logical end point for work on the instance, in the local time zone
- Consider adopting this policy for all regular internal-use servers as a backstop to regular scheduling
Tools by Aimably
Luckily, you’re not in this alone. Aimably offers tools that can help you manage your AWS Redshift footprint as part of the broader AWS Cost Management Solution Suite that we provide. In particular the following features could be very helpful:
Pinpoint Inventory by Region
The Aimably Insight cost research dashboard offers your team the ability to review all your AWS server and service inventory by region. This allows you to identify all regional locations of each of your AWS Redshift servers and understand whether they should be moved to fall in line with your new policies.
Know When Expensive Servers Come Online
In our world of building software, we often require testing with real application data, bringing the need for ad hoc provisioning of AWS Redshift servers to the forefront of cost control conversations. As a business leader, it’s imperative for you to know when a member of the team has chosen to implement an expensive server. Notification of spin up of expensive servers, including RDS, is a key feature of Aimably Warn, our robust notification engine that keeps teams appraised of costs that are at risk of spiraling out of control.
Detailed Instance Scheduling Rules
When we first built our Aimably Reduce module to help teams implement tried and true cost saving projects, our first cost intervention function was server scheduling. Using the Aimably Reduce scheduler, teams can build server-start, server-stop and server start/stop rules around meaningful work calendars in local time zones. Plus, the Aimably Reduce scheduler controls both EC2 and RDS server types, giving you full control over your suite of virtual servers.
Would you like to know more about how Aimably can help you make your use of AWS Redshift less expensive and reduce your AWS bill immediately? Schedule a consultation today to discuss Aimably software and services.