Announcing my bootstrapped startup: RestBackup
restbackup.com
restbackup.com
For example:
What happens to my data if you decide that this isn't fun anymore? What happens if you get sign-ups that store a bunch of data but don't pay their bills? What happens if you get sued, are you personally liable or is this an entity? What are the terms of use? What kind of support is available?
From your site, it appears that you are in the process of solving these questions, but there's likely to be a lot more road to cover before it goes from web app to startup in my mind.
Good luck!
1. I'm doing this to make money. I also want the satisfaction of creating something of value to folks all over the world. It's high-time that our software back itself up automatically.
2. When a customer uploads a file to RestBackup, their account is billed for the cost of storing the file for the full retention period. If they don't pay their bill, their account will be deactivated, but their paid data will be kept. Unpaid data will be handled on a case-by-case basis.
3. I will choose a lawyer this month to iron out the terms of service. Incorporation will occur before the paid Beta-test program begins.
There's an even more important question: Am I building the right product? I need early adopters to help answer this question. Thanks for your feedback and I hope to see you in the RestBackup alpha test!
Right now this is a fairly transparent re-use of S3 with some clever features on top - I can see the appeal - but I'm thinking "Yeah, we could rig that up over the weekend and do the same thing here.... no need to pay double the price for S3 storage when a few hours of in-house work will take care of it.
Also - as to "never delete" "Never" is an awfully long time. Mistakes are made, and while "never" might seem like a safety net, there also might be a time when I need to delete data that's been stored offsite -for legal reasons or because someone screwed up.
It looks like something targeted at technically-savvy users, and those users are probably equally capable of doing this themselves with S3 or otherwise.
RestBackup keeps your data until it expires. You specify the retention period for each access url, up to 60 months. When a file is uploaded, your account is billed for the cost of keeping the file for the entire retention period. I'm still working a suitable way to facilitate deletes. I want to be flexible and find the right balance between functionality and safety. Since this is a backup service, I feel that safety must take priority.
RestBackup also prevents accidental and malicious deletions. The service keeps your data for the specified period of time no matter what.
While the S3 API is one of the less ugly ones, a bunch of it is crappily stateful and non-idempotent (like bucket creation).
Good luck!
Now I need early adopters to help me turn this into a killer product!
Thanks!
I also love it that files can't be overwritten - clearly you thought this trough! I am currently appending large random strings to my S3 uploads to avoid overwrites.
However, I would prefer to have the files stored in my own AWS account. I'm thinking I would create a special bucket, give you the credentials for it and you would run the EC2 instances required to accept the files and store them there. You would bill me per URL and for the bandwidth, while Amazon will bill me for the storage directly.
Why would you like to use your own S3 bucket as the backing store? I would love to talk with you more about this.
I understand that ties you to AWS and restricts your future options, but this might be a good place for you to start - targeting existing AWS users who need a little bit of extra automation.
One thing that drives me nuts about a lot of backup services is that they say that the data is encrypted. It is important to recognize the two places where data can be intercepted:
* In transport, unless it's done over TLS/SSL. Most services provide this. * Once stored. This is done very rarely and if it is done, the provider is the one that has the encryption key.
With your service you can actually take care of both by simply instructing your users to encrypt the file before uploading it.
Another bits of functionality I'd say you are missing are "diff" backups. I don't necessarily want to upload my entire 300GB multimedia library each day when I want to back it up (especially if I'm being charged for traffic). I'd rather upload a small diff.
A very cool use of this technology would be a FUSE plugin for browsing your storage area.
The httpfs FUSE plugin should work with RestBackup. I can fix it if it doesn't work. Would you like to sign up for the alpha-test and give it a try?
- Do you encrypt the data before storing it to S3 or store as-is? I need to think about it more but assuming you store as-is, I think I prefer that over Tarsnap's approach. You may want to consider a comparison between this service as well. (As a side note, I would be using Tarsnap right now but I'm in Canada)
- What is the need for charging for Request Processing? I guess that would prevent storing many small files, but it complicates the pricing model. It will be easier to communicate your offering if all costs are included in the data transfer and storage prices.
RestBackup receives the data from the customer via HTTPS and submits it to S3 also over HTTPS. So the data is encrypted in-transit but remains in S3 as-is. This is the minimum viable product. I'm considering encrypted storage as a feature for the public Beta.
RestBackup has per-request charges for the same reason that S3 and CloudFiles have them: to avoid losing money on high-volume request loads on small files. If you need to store many small files, it might be more efficient to package them up in a tar archive.
Thanks for the great comment and the tweet! I hope to see you in the alpha-test!
PUT does not mean what you think it means. The whole point of PUT is that you're replacing an existing resource, which gets you idempotence. You're not supposed to use it to create a resource at the supplied URL, and the whole point is that you can PUT to the same URL repeatedly.
You want POST. Using PUT is making your service less restful.
> The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6
I interpret this to mean that if you PUT to /some/file then you should be able to GET /some/file and get back the same thing. RestBackup access urls provide this behavior.
If you're really set on using PUT, you could change your semantics a bit so that PUTting the original file again results in 200 OK but attempts replace it with a different file return 409 Conflict or something.
1. cheap. (these are my customers, right?)
and
2. Not managed or controlled by me. (the whole /point/ of backups is to cover them if I really screw it up, so backing up on to my own equipment is of limited utility.)
Actually, a s3 clone at half the price would be about perfect.
Free services have their limitations. If you want to ship a product that can backup out-of-the-box, without any customer configuration, good luck doing that for free. Save yourself the pain and use RestBackup. My management API lets you create and manage thousands of access urls, with per-url limits. A software vendor can use this API to generate an access url for each application license that they sell. This way each customer's data is separate and secure and the vendor maintains control of the charges incurred by each customer. Paid services like RestBackup can offer these kinds of management features while still remaining economical for commercial software vendors.
I'm not interested in competing with free services. I want to build a product that folks will pay for.
Tell you what I do have a burning need for: automatic backup of my free, CPanel-based shell account. This includes my databases, my crons, my home directory... I want to be able to jump webhosts in a jiffy if necessary. I would definitely pay for that.
I would also just be comforted in knowing that ALL my data is backed up off site! I'm sure other people have similar concerns. I'd be delighted to pay $5-$10/month for such a service and I wouldn't use hardly any download bandwith so your variable costs would be low.
Consider it.. please?
I would love to offer a tool that can automatically back up CPanel to RestBackup. Ideally, CPanel Inc. would add this feature into CPanel. Can you run a cron job in your shell account to do the backups? Please join the alpha-test and I can help you set this up. Submit the feedback form to request your invitation: http://www.restbackup.com/#feedback