AWS is perfect for startups - only pay for what you need, scale to as big as you want, and access over 100 different AWS web services to make it much quicker to build your app. The rich library of services that AWS offer let you access best-practice solutions to almost any technology need. Almost every internet startup builds on AWS for this reason.
AWS is hard! Especially when you're just starting out - you need every second of developer time to show up in your product, not months spent trying to wrangle AWS to get it up and running.
With Idealstack - you develop your PHP app just like any PHP developer is used to working - write your code locally, then deploy it over SFTP, over SSH (eg using tools like PHP Deployer) or using continuous deployment tools like Jenkins or AWS's own CodeBuild (we've written an article on using CodeBuild with Idealstack)
Idealstack abstracts away a lot of the 'hard problems' you need to solve for a startup, for instance:
Idealstack uses your own AWS account to host your application. You have full control, and if (god forbid!) you should ever outgrow idealstack, you can migrate off our platform. Cancelling your Idealstack account does not destroy your hosting cluster in AWS - you own that, not us.
You'll obviously lose access to the magic that we've created (eg our simple hosting console, our docker containers and our custom autoscale system), but you probably had to build those anyway - at least you can start from something that works.
The beauty of using Idealstack & AWS together is that you have all the power of AWS at your disposal. So one day, if you need it, you can do things that neither you or we even considered. No other hosting system out there can match this flexibility.
Here's just a few examples:
There's many many more, that's the point - you have absolute freedom to develop new services or solve your unique problems, that you can never get on any other type of hosting.
Unlike most other means of deploying apps on AWS, Idealstack works like a normal PHP hosting console. If your team are capable of using tools like Cpanel or Plesk, or hosting providers like Godaddy, they're capable of using Idealstack with little or no training. Idealstack can be a drop-in replacement for your existing systems or can co-exist alongside them, without providing another confusing tool for your team to work with. At the same time you can use all the power of AWS, when you are ready for it and the time is right. As a startup, you need to produce an MVP as soon as possible, not waste your time on tooling, servers, and training your team.
We built Idealstack in Laravel, which we'd strongly recomend for any startup as it was built with startups in mind and has modules to handle lots of tricky but non-differentiating features like billing and email. We run Idealstack on Idealstack, so we can vouch for it being a great platform for Laravel on AWS. But any other framework, like Zend, Symfony, CakePHP and native code works just as well.
<?php //How do I use highly-available sessions across my cluster using DynamoDB? // It happens automatically, just use normal PHP session functions: session_start(); $_SESSION['Normal Session Stuff'] = 'Easy!'; //How do I send email using AWS's Simple Email Service? // Just use normal PHP mail functions: mail('email@example.com', "Here's an email through SES!", "Just sent you this with the normal PHP mail command"); //How do I read and write files on a highly-available clustered file store? // Just use normal PHP file IO: $file_contents = file_get_contents("myfile.txt"); file_put_contents("myfile.txt", "How easy was that"); //How do I connect to a clustered, highly available mysql-compatible database? // Idealstack sets all this up for you, // including the alias 'database' for your db hostname $mysqli = new mysqli('database', 'your_user', 'your_pass', 'your_db'); //How do I compress and minify the output of my PHP // app to get higher performance and google rank? // mod_pagespeed does it automatically: echo "<!-- Do nothing, it happens automatically with google's mod_pagespeed -->"; //How do I make my app autoscale? // It'll happen automatically: $todo = null;