Features

We're PHP developers ourselves, with decades of combined experience in web application development and website hosting.  We built Idealstack because we were frustrated with the way PHP hosting worked, and we wanted a better way. 

We've built idealstack to work the way hosting should work, rather than being bound by decades of 'legacy thinking' like most other hosting systems are.

If you'd rather just see it in action, watch our 10 minute intro video that walks you through getting up and running on Idealstack

Watch on Youtube

Runs on your own AWS infrastructure

Unlike all the other 'platform as a service' or 'hosting' companies that rent you a slice of their AWS infrastructure, Idealstack configures an ideal PHP hosting stack within your own AWS account.

You have absolute control over your infrastructure and you can add in any other AWS service you like - Elasticache for Redis & Memcache, Elastic Search, big data processing, AI and over a hundred more. 

Even if you decide to cancel your Idealstack account, your hosting will continue to work - you own it, not us

 

 

Automatically sets up an autoscaling, high-availability, premium hosting cluster

Idealstack connects to your AWS account and automatically sets up and configures AWS services : ELB for load balancing, EC2 for server instances, ECS for container management, RDB for databases, VPC for networking, SES for email and many more.  Out of these it constructs a modern cloud-native hosting stack using the best that AWS has to offer.  Then you just have to upload your sites or apps and you are in business.

 

Idealstack enables auto-scaling - when a site comes under heavy load additional server instances are automatically created to handle this load, then removed when it has passed.  On AWS you are only charged per second for the time these servers are running.

It also enables high availability - your sites run across multiple availability zones, so if one instance goes down your site will continue running on the other instances.  If there is a fault with an instance it is recreated automatically

Efficient, secure and affordable shared hosting

Almost all the other ways of hosting PHP on AWS work by creating a single instance (or cluster of instances) per application or website. Idealstack provides shared hosting - multiple sites and applications can run on one AWS cluster. 

Containerization technology is used to isolate the sites from one another so the can't interfere with each other and if one is hacked it can't then compromise the rest. 

Idealstack's unique autoscaling technology can then spread these sites out in the most efficient way across your cluster and autoscale them independently.

Easy for any PHP developer to use

In Idealstack you don't have to wrangle AWS to get it to do what you want.  You setup SitesHosting Plans and under the hood Idealstack configures over 20 different AWS services to implement what you need.  Then upload your website over SFTP and your database using our simple web-based database management tool, and you're in business.

What Idealstack sets up for you with just a few clicks would take months or years to research and  setup yourself, or require you to hire expensive consultants to help you.  And it doesn't require your team to learn new tools or to practice 'Devops'

 

<?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('joe.blogs@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;

Run any app without modifications

Idealstack can run any PHP app, while still letting it take advantage of the power of AWS.  It does this by supporting all the normal PHP functions but transparently mapping them to the appropriate AWS services. 

You don't need to change your code or use the AWS API, and this also means you can run any app like Wordpress, Magento, or your own custom code, even legacy apps.

Cloud Native

Most of the tools that can run PHP on AWS aren't designed for AWS.  They don't use the true power of the AWS platform, because they were designed years ago to run on a single physical server.  They've been updated to use a virtual machine instead of a physical machine, and that's the extent of their AWS support.  It's like the cloud computing revolution never happened.

Idealstack was designed from the ground up for AWS.  It doesn't run on any other platform.  Under the hood we do everything we can to do things 'the AWS way', using AWS tools like EC2, ECS & Autoscaling for Compute, RDS for Databases, EFS for file sharing, ACM for SSL certificates, DynamoDB for PHP Sessions, Cloudwatch for logs, and many more to configure an ideal PHP hosting stack on AWS.  In a few places we've had to build our own software to plug gaps in the AWS offering, eg the Idealstack Agent, but even then we integrate them into AWS as much as possible. 

Easily manage databases

Idealstack deploys a database management system onto your hosting environment, which lets you create and manage databases and tables, run queries, and all the other things you'd expect in a hosting console but which in AWS can be quite tricky to implement.

Free SSL by default

This is the year 2017, and while we may not yet have nuclear fusion or flying cars, at least every website should have an SSL certificate.  Amazon ACM offers SSL certs for free, and we automate the process of registering and renewing them for you, all you need to do is check a box in Idealstack and click a link in the verification email.  

Manage DNS and register domain names in AWS Route53

Using AWS Route53 alongside idealstack, you can manage DNS and register domain names for affordable rates, with super-reliable, super-fast internationally distributed DNS servers.

 

Easily plug in CDN, Redis or Memcache, ElasticSearch or a Web application firewall

AWS has many useful services for web applications and websites.  You can use any combination of these on your Idealstack sites:

  • Cloudfront CDN let's you accelerate the performance of websites
  • ElasticCache provides fully-managed Redis or Memcache instances to provide caching for your sites
  • ElasticSearch provides a powerful search engine that can be integrated into many PHP-based CMS and Ecommerce systems
  • AWS WAF can protect your site against attacks

 

Use the full power of AWS

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.  

Here's just a few examples:

  1. Use your client's log data to create metrics, dashboards and alerts with the click of a few buttons using CloudWatch.  You can create metrics around 500 errors, 404 errors, bandwidth consumed per client and many more things we haven't thought of yet
  2. Test & deploy your code using AWS Codebuild
  3. Connect AWS Shield or AWS WAF to provide better security to websites
  4. Connect AWS Cloudfront to provide a CDN
  5. Use ElasticCache to provide Redis or Memcached for caching
  6. Use ElasticSearch to improve your sites search.
  7. Create Alexa skills that interact with your client's websites
  8. Use the AWS API's yourself to enhance the Idealstack system in ways we never imagined

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.

 

Get Started with Idealstack for free

Connect Idealstack to your AWS account and give it a go. Idealstack can run within the limitations of the AWS Free Tier so if you aren't on AWS yet, signup now and trial it for free.

 

 


Frequently Asked Questions

How much will my AWS costs be?

AWS charge based on usage, but it's possible to model what your pricing would be under different scenarios using the AWS simple cost calculator.  

It's possible to reduce AWS pricing by as much as 70% if you are willing to pay in advance for a dedicated instance

How many sites can I host on Idealstack?

All Idealstack plans support unlimited sites. By using enough stacks and large enough instances and enough of them you can host as many as you want, including a mix of large and small sites.  

There are some fundamental limitations on the AWS load balancer that limits how many sites can be run per stack:

  • A maximum of 25 SSL certificates per load balancer.  This limits you to 25 sites with SSL certificates.
    • One way around this however is to use Cloudfront in front of Idealstack and host the SSL certificates on that instead of Idealstack
  • A max of 100 'rules' for the ALB.  If you use SSL for a site each domain will consume 2 rules, if you don't it will consume 1.  This means a max of 100 domains per stack (100 sites if they each have one domain, but less if they have more)

 

As a general guide - we find that on a t2.micro instance (ie the AWS free tier) you'll get about 3 moderate traffic sites.  Using two t2.medium instances with autoscale (our 'recomended' stack, see above) you can reach the ALB limits for low traffic sites.  By adding more instances (automatically using autoscale or manually) you can handle higher traffic sites

The Professional plan  supports having more than one stack, possibly in different regions

 

Will I have to change my code to use Idealstack?

Generally no, Idealstack maps AWS concepts to standard PHP so you don't have to worry about a lot of the 'hard problems' like shared sessions, shared filesystems or mail delivery.  

Sometimes for more 'fancy' frameworks though you may need to work around the framework's own attempts to implement things sessions.  In these cases there are generally modules you can use to implement native sessions (which is generally the best option - Idealstack uses DynamoDB for sessions which is in our experience the fastest, cheap and most scalable choice), or you can use one of the frameworks session handlers based on Redis/DynamoDB/Memcached or database sessions.  We have documentation on the workarounds we recomend for different systems in the help section (if you use a framework that's not listed, get in touch and we'll figure it out for you)

 

 

What about Security?

It's worth delineating what level of access the Idealstack system has:

  • Idealstack is a piece of software that connects to your AWS account through API's, particularly AWS cloudformation, to deploy your code
  • Idealstack is providing the software images for the hosting containers, and also the configuration script for the server instancesnt

What we don't have:

  • Direct access, eg via SSH, to your systems.  
  • The ability to see or modify your code
  • The ability to see or modify your databases and other data storage
  • Idealstack deploys the AWS ECS-Optimised AMI without any modifications as it's base, so there's no opportunity for us to install 'root kits' or other low-level "hidden" compromises of the system

The main way you can have confidence in what our system does is that it does it transparently 

  • Firstly, because AWS operates through AWS Cloudformation, by viewing the cloudformation template you can see exactly what is being done 
  • You can also record and audit any of Idealstack's usage of AWS API's using https://aws.amazon.com/cloudtrail/ (to identifiy if, for example, someone took the AWS key and did something else with it 
  • You can audit the hosting containers and server instance configurations because they are all running on your servers and you have full root-level access to them. 

And of course we take security pretty seriously in our own development process:

  • Critical information like your AWS access keys are stored encrypted using AWS KMS 
  • We use secure development practices like code reviews, external vulnerability scans etc
  • One of the main features of Idealstack is that we're handling security like OS Updates, AWS security rules etc in a better 'best practice' way than might be feasible for your own team to manage