Talking with people in the industry at large, there is no question about the high level of admiration (and sometimes a bit of envy and angst) for what Amazon Web Services (AWS) has done to revolutionize the world of IT infrastructure. But I’m not sure everyone is aware of just how critical AWS has become to the startup world in particular.
As a startup, by definition you have limited funding and limited resources. The last thing you need to do is to waste capital on building out infrastructure. So at Prevoty, we run everything in the cloud. Everything. As a company we literally have no infrastructure that we own – our only capital outlay is our laptops (and they are BYOD!).
And we are by no means unique. Discussing with my peers in other early stage companies, not one of them gives any thought to actually buying any gear. The days of startup CTO’s unpacking boxes, racking, stacking, and praying that they had enough power and ventilation in their “data center” (that is actually a broom closet) are long gone.
AWS has a program called AWS Activate specifically designed to help startups using the AWS infrastructure to network and learn from each other. Part of the program is the AWS Startup Spotlight on Medium and we were fortunate enough to be featured. Included in the article is a brief overview of how we use AWS as a platform to deliver the Prevoty service:
- Route 53 manages our DNS. Frankly, we wish a lot of DNS managers were as simple and intuitive as this.
- We provision elastic load balancers (ELBs) for various services: API, Preview (demo sandboxes), WWW, etc. For select services, we terminate SSL on ELBs – this is such a convenience over managing certificates across EC2 instances.
- Naturally we use EC2. For our API tier, we have some customers that hit us north of 20,000 requests/second. We’ve never run into any networking or ELB issues during any of these spikes. Last year, I developed a service called SmartCache (written in Go and runs on EC2) that’s effectively a combination of a cache/queue with aggregated persistence to MySQL. SmartCache helps us keep track of all the high-level statistics over arbitrary time periods.
- We take advantage of EC2 tags to help us logically group services. We deploy Go binaries to our servers that are daemonized. For deployments, we’ve built a homegrown system (called PD) for AWS. PD allows us to not only spin up more instances but also manage code rolls as well as creating new images with default packages and configurations.
- We use SQS as a message bus between our API servers and asynchronous processing, such as link analysis.
- We use MySQL RDS for account persistence and aggregated statistics. Our data model is relatively de-normalized, which gives us opportunities to experiment with moving facets to DynamoDB.
- Last but not least, we recently started using DynamoDB and absolutely love it. Fast and managed key/value storage has been great for keeping track of aggregated statistics and API request/response metadata.
Today, we are proud to announce that Prevoty is now available for deployment in private clouds! It probably won’t come as a surprise that our first customers for this are all using AWS VPCs.
You can read the full AWS Startup Spotlight article here: https://medium.com/aws-activate-startup-blog/prevoty-winning-the-war-against-zero-day-attacks-b905b9b707bf