Is Amazon RDS Cost-Effective?
tl;dr version: is 11 cents an hour (almost 1000 dollars a year) a good price to pay for a database? If not, are there any alternatives, especially ones that are compatible with AWS (other than SimpleDB, which won't work for my case)?
Hey all,
I've been working on a site that allows users to upload games so that people can comment, rate, and interact with the games on the site. I'm using Amazon's AWS stuff (Elastic Beanstalk for the jsp "backend", S3 to store the games, images, and other files), and it all works very well, especially considering how clueless I am.
I had also been using Amazon RDS to store comments, ratings, user info, etc. It worked perfectly, but it costs 11 cents an hour, and I'd be running the database constantly, so that comes out to be just under 1000 dollars a year- and that's assuming my needs don't grow.
Then I stumbled upon Amazon's SimpleDB, which seemed perfect- it's all Strings which is fine, it's easy to change the database setup (such as adding a column) without borking things up, and most of all it's free. So I completely redid my site.. and then realized that there are restrictions (can't store anything over 1 KB, which sucks because comments or descriptions can be bigger than that), plus other size restrictions on the tables. So now I'm back to square one- SimpleDB is too restricted for my needs, but RDS seems too expensive for the relatively simple tasks I'd be using it for.
Or maybe I'm just too inexperienced to realize that 1000 bucks a year isn't that much. I have absolutely no experience with any of this stuff, so I can't tell the difference between being ripped off and finding a great bargain.
So, can somebody with more experience point me in the right direction? Should I just suck it up and pay for RDS? It did work perfectly, so I can't complain about what I'm getting for the price, but are there any other options I should explore before committing?
As always, thanks so much for any info you can provide!
Re: Is Amazon RDS Cost-Effective?
A shared web server shouldn't cost much ($3-5/month), and will typically give you a MySQL database as a default database. If this is a route worth looking at, one thing to consider would be to make sure the web server allows remote access to the database, as some will only allow connections through localhost. In this configuration you would have 2 server - one for the DB and the other for the view. Of course, if you are transferring a lot of data between, this might not be optimal efficiency-wise, as the data transfer could end up taking a while. Not sure of your configuration as it stands right now, but alternatively if you can run java on your server and have write access you could try out something like Derby (or if you have write access, just install a database yourself - again not sure of the permissions you currently have).
Re: Is Amazon RDS Cost-Effective?
Thanks for the reply. For the site in question, I'm just using AWS, which I don't think is exactly like a regular server. I'm using Elastic Beanstalk to run Java, but that gets rebuilt every time I make a change, so embedding a derby database into the Java itself probably wouldn't work. And I'm using S3 to store files, but I don't think you can host a non-Amazon database there (and my googling seems to confirm this).
However, you did make me realize a potential solution that I've been overlooking. Although this site is entirely on Amazon, I do already pay for hosting elsewhere for my other site. That site is just static html, but the hosting plan does include access to a database that I've never used. I can perhaps host the database on my existing webhost and access it from Amazon. More research is required, but for now, I'm thinking this is a promising lead.
Thanks again! This might not pan out (for example I have no idea the kinds of limitations my current plan sets for database access, size, bandwidth, etc), so I'm still open for suggestions, but for now I'm feeling pretty good about exploring this option.
Re: Is Amazon RDS Cost-Effective?
I'm not advocating it - I have to confess to never actually using it for anything other than the demo programs - but could you use JuppMap on AWS? Some of the demo programs can be used to test storing / retrieving large binary objects and files. I suspect it would die horribly if you were slashdotted but while your load is low, it might provide free and easy storage. I've just noticed the "Sign up for free account" - that'll be tonight's 'interesting thing to try'.
[edit]I did try it, but foo ... bar. Editing the demo console app was a silly idea. I'll try another day with a tomcat test
Re: Is Amazon RDS Cost-Effective?
I've been checking out JuppMap, but I'm not sure exactly how I could use it for my purposes. I only need to store primitives, but I need to be able to do things like sort by and average, which is one of the limitations of Amazon's SimpleDB. But out of curiosity, how are you running JuppMap on Amazon? The way my stuff works, all the Java gets blown away and rebuilt every time I update the system, which at this point is several times a day. My info needs to persist indefinitely outside of the Java. I could store everything on S3, but then that makes it hard and very inefficient to do averages, sorts, etc.
For those reasons, and for help with maintainability, I'm still thinking my best bet is to look at using a simple hostgator database that my Amazon stuff accesses, at least until my needs outgrow it. Unfortunately, real life calls, and I won't be able to try anything until Wednesday night.
Re: Is Amazon RDS Cost-Effective?
*<:-) I'm an idiot. I wondered how the Java Console App ran on AWS. I've just looked and seen some keys in my preferences back-end which could only have been created by AwsConsoleApp. I thought the ant config somehow magically deployed the console app on ... I'd better stop now.
All my free time has suddenly evaporated. One day I'll get round to deploying a tomcat test and retrying. I'll edit my other post just in case it confuses anybody.
Re: Is Amazon RDS Cost-Effective?
Quote:
Originally Posted by
Sean4u
*<:-) I'm an idiot. I wondered how the Java Console App ran on AWS. I've just looked and seen some keys in my preferences back-end which could only have been created by AwsConsoleApp. I thought the ant config somehow magically deployed the console app on ... I'd better stop now.
Haha, don't worry, I've spent the last few months banging my head against various concepts and realizing how little I actually know. That's a big reason why I wanted to get some other opinions on this database stuff.
Quote:
Originally Posted by
Sean4u
All my free time has suddenly evaporated. One day I'll get round to deploying a tomcat test and retrying. I'll edit my other post just in case it confuses anybody.
Same. But the good news is that it's really easy to use Amazon's Elastic Beanstalk to get a webapp up and running. Here's the tutorial I used, it might help you in the future: Getting Started with AWS Elastic Beanstalk Deployment in Eclipse : Articles & Tutorials : Amazon Web Services
Re: Is Amazon RDS Cost-Effective?
Update: I've successfully created a hostgator database and can access it using hibernate, which means I can access it through my Amazon stuff. Everything is working perfectly!
I think I pay something like 60 bucks a year for the hostgator stuff (which I'd be paying for regardless of the database), so this is definitely a step up from the close to 80 bucks per month I'd be paying for Amazon's RDS database.
Amazon actually did drop their RDS prices yesterday, but for my purposes, I'd only be saving half a cent per hour (still paying 10.5 cents an hour), so it's not really worth it.
So my current plan is to use hostgator's database for the foreseeable future. Thanks again for your guys' input, it really did help clarify my thoughts.