Aiven is a new company that aims to simplify data storage and management in the cloud. In this article, I look at the benefits Aiven provides, its pricing model, and how their pricing compares to directly hosting your data services on AWS. I also consider when it makes sense to use Aiven vs. hosting on AWS directly.
The Problem of "Cloud Sprawl"
As we've discussed on this blog before, modern cloud providers have become insanely complex. Infrastructure as a Service (IaaS) companies like AWS continue to add an impressive array of features and services every month.
However, while that's made cloud services more useful, it's also made them harder to understand. Developers new to the cloud have to understand a huge host of similar-looking services and features before they can even make fundamental architecture decisions.
At the same time, this sprawl has made cloud dashboards much harder to use. Many AWS users complain about how hard it is to navigate the AWS Console in its current state.
In response, we've seen the rise of Platform as a Service (PaaS). PaaS companies like Heroku and service like Google App Engine aim to reduce the complexity of deploying software applications by providing an out of the box application stack consisting of data storage, virtual servers, virtual networking, and other foundational services.
What is Aiven?
Aiven is a PaaS product focused on data management. With Aiven, users can spin up a vast array of data storage and search services on various IaaS providers, including AWS, Google Cloud, and Microsoft Azure.
After you create an account on Aiven, you can spin up one or more of a larger number of data storage services, including event messaging (Kafka), relational and object-relational data storage (MySQL, PostgreSQL), time series databases (InfluxDB, M3DB), in-memory caching (Redis), and several others.
Once you select a service, you can select to host your infrastructure on a number of cloud providers: AWS, Google Cloud, Microsoft Azure, DigitalOcean, and UpCloud. You can also select a hosting plan, which determines how much memory and processor power your service can access.
Once your service is up and running, you can see the details on your Aiven dashboard. From here, you can access connection information and connect to your data host. Aiven also provides easy access to additional information about your service, including logs, connection pools, metrics, and backups.
One of Aiven's greatest features is its ease of use. The Aiven UI is far and away easier to navigate than most cloud consoles. Creating a new data service generally takes a few clicks. And Aiven offers easy access to data (metrics, users, etc.) that would require a lot of customized setup if you were creating the service directly on a cloud provider.
Aiven also offers hosting flexibility. With support for five major IaaS providers, teams that use Aiven can easily locate their data hosting in the same cloud provider and even the same region as their application.
Since it's a PaaS, Aiven generally offers "black box" hosting. In other words, data services are hosted on cloud service accounts owned and operated by Aiven. However, customers with over $5000/month of spend can contact Aiven to arrange for direct hosting on their own cloud service accounts.
Finally, Aiven supports a number of advanced features for migration and monitoring The company supports its own aiven-db-migrate tool for migrating from an existing PostgreSQL database to Aiven. Aiven can also integrate with a number of different alerting and monitoring systems, including AWS CloudWatch Logs and Metrics, DataDog, Promethseus, and Syslog. (You can also set up your own metrics dashboarding easily with an Aiven-hosted Grafana dashboard.)
Aiven Pricing vs. AWS Pricing
Beyond features, however, we were also interested in the pricing model. How much does it cost to run a database service in Aiven versus, say, running it directly on AWS?
You won't be surprised to learn that Aiven costs more than vanilla AWS. That's only natural: it's a business providing a service. In this case, the service includes automation of data storage service creation, a slick management user interface, and the ability to create and manage resources cross-cloud.
But what's the cost? And is it worth it? The answer, as always, is: it depends on your scenario.
We ran the numbers on PostgreSQL hosting and compared using Aiven to running an equivalent-sized PostgreSQL instance directly on AWS. For example, Aiven's Startup-4 plan gives you 2 CPUs and 4GB of RAM and a single database instance . So we correlated this with an RDS PostgreSQL db.t4g.medium instance, which supports the same hardware configuration, hosted in a single Availability Zone. All RDS hardware specification data was derived from the AWS Web site and all AWS prices were calculated using the pricing calculator.
Below is a brief summary of the pricing differences for Aiven's startup plans:
Setting aside implementation costs for a moment, the charge for hosting your database directly on AWS will cost around 38% less than hosting it on Aiven. That price difference does include some networking costs that Aiven covers on your behalf. However, many of those charges can be avoided by proper placement of your AWS resources (e.g., running your RDS instance in the same VPC as your application, or using VPC peering to avoid Internet data transfer charges).
Of course, the bill is only half the story. You can't - and shouldn't - ignore how many person-hours or vendor dollars it might take to implement a direct IaaS solution. This will depend on how seasoned your staff is at data storage management and what reusable deployment and configuration solutions you already have available. If your team is starting from scratch with little cloud data management experience, Aiven will likely pay for itself.
When Direct Hosting on AWS Makes Sense
Does that mean you shouldn't use Aiven? Far from it. If your team doesn't have a data expert who's skilled in the various technologies that Aiven supports, its ease of use can save you significant time and money. Aiven's direct logging and metrics support may also save you dev dollars. And if you're pursuing a multi-cloud deployment strategy, Aiven's ability to deploy to all major cloud providers is a huge point in its favor.
However, if you don't have a multi-cloud strategy, the cost of Aiven may be more than it's worth. One way to answer this question for your team is to consider how much data you're storing.
Aiven charges a flat rate for data storage even if you don't use the entire allocation. By contrast, AWS only charges you for the data storage you actually use. And AWS charges far less than Aiven for the same amount of data.
On Aiven, you'll pay around $5 per every extra 5GB of storage on Aiven. Aiven gives small discounts the more storage you buy; e.g., an extra 80GB costs around $42/mo. instead of $50. But this still contrasts sharply with AWS, where an extra 10GB of storage only costs a little over $1 a month.
For example, under Aiven's Startup-4 plan, you receive up to 80GB of storage. If you use less than this on AWS, you'll save a few extra dollars a month. But you'll also have a lot more room to grow on AWS. In this configuration, you can store up to 450GB on a single-AZ configuration of PostgreSQL before you're paying as much as you pay to use Aiven.
In short, if your storage needs will fit within Aiven's default data tiers for your service level, it may well be worth the spend. But that value quickly decreases as your storage needs increase. If you expect large data growth, you may either want to consider hosting on AWS directly from the start, or ensuring you have a plan to migrate from Aiven to direct AWS hosting as your needs change.
Backup Storage Costs
One point we didn't address in the above is the cost of backup storage. On Starter plans, Aiven gives you two days of backups (14 days for Business plans). By contrast, you only get one included backup when you host directly on AWS.
However, AWS backup storage costs are (as of this writing) a scant US $0.095 per GiB. So, even in the case of the Starter-4 plan, adding a second backup on AWS only costs an additional $7.60 a month for 80 GB on AWS. Therefore, backups shouldn't be much of a factor in your cost calculations.
TinyStacks and Aiven
Like the folks at Aiven, we here at TinyStacks also think the cloud is too complicated! That's why we've built a service that provides full DevOps deployment pipeline automation. (You can see it in action on our YouTube channel!) We also include the ability to create an RDS PostgreSQL database - or use any other existing Amazon RDS instance - as part of each stack.
If you need to pursue a multi-cloud strategy, or use another data service outside of Amazon RDS, you can use any of your Aiven-hosted services easily from TinyStacks. Just pass the information for your Aiven resource - such as DNS name, port, and credentials - into your TinyStacks-hosted Docker app. Your application can read these secrets and connect to your Aiven data assets as it would any other data storage resource.
Aiven is an advanced and easy to use interface to various cloud data services. Whether it's worth the premium, however, depends on your use case. For multi-cloud deployments and teams without a data expert, Aiven can be a wise investment. However, AWS-only shops with high data storage needs will want to weigh their usage carefully before deciding whether that investment will yield dividends.