hosting Elgg on AWS

Hello Gurus,

Does anybody know about Elgg(s) in production hosted on AWS(Amazon Web Services)?

I’m planning this and would like to share if there’re any best practices or lessons learned.

For example, architecture(Fault Tolerrant/High availability), performance, security, disaster recovery(eg. user information), etc…

 

BTW, what do you think about the best practice to host Elgg, cloud or on-premise?

 

Many thanks in advance for your help!

Sat

  • @sat depending of the proposal of your net and the load of it you will need a different infraestructure.

    If you would try AWS you can start using the free tier with:

    1 x EC2 t2.micro

    1x RDS t2.micro multi AZ

    Elastic IP + Route 53 VPC is recommended

    In the other hand, if you need more performance and Fault Tolerancy/High availability, you can mount and manage a complex infrestructure (Auto scaling, Load Balancing) with Elasticbeanstalk by the simplest way.

     

  • Thanks for the information, Javier!

    Yes, you are right. It depends on the requirements.

    Look like there's nothing special in Elgg hosted in cloud(eg.AWS).

    I'll start with a small machine and investigate how it goes. :)

     

    Regards,

    Sat

  • @sat, just to warn you, the architecture of elgg doesn't allow you to take advantage of the biggest strength of AWS - horizontal scaling (with regards to Elasticbeanstalk that @Javier mentions).  Although elgg allows you to specify a remote database, it requires the data directory to be local to the web server.

    If scaling isn't a big deal and you just want a free little elgg server for a year with their introductory tier, then this might be great for you!

  • @blab as you say, with Elasticbeanstalk webservers can´t work with a centralized data directory, but you can mount an Elgg autoscaling/balanced infrastructure taking advantage of horizontal scaling for example with this configuration (please see "ALTA DISPONIBILIDADX7" example).

    Also you easily can add DB read replicas, DB fault tolerance synchronized replicas and Memcached servers, powerful options to increase Elgg performance/availability ;)   

  • So, @Javier, are you referring to a modified Elgg installation?

    The limitation I was referring to is that, with the stock Elgg, each of those EC2 instances in your specified horizontally scaled configuration will have its own data directory.  Then after scaling back down, any new data in those data directories within the removed instances would be lost.

  • @blab, the proposed configuration includes a NFS instance where all web servers store the uploads in a unique/centralized data directory. Stock Elgg will work like a charm ;)

    The future Elastic File System service will also cover this requirement.  

  • Although elgg allows you to specify a remote database, it requires the data directory to be local to the web server.

    I've trying to accomplish this for months. I'm having a hard time trying to figure this out.

  • Yeah it's easy to get a little cynical when you read recommendations on using AWS for Elgg. ;-)

    @Javier, thanks for your clarification.  Maybe this isn't a concern for your application, but the immediate downside I see of EFS is that they appear to have it priced >10X that of S3 per GB/mo.  For multimedia-centric Elgg implementations a concern would be that these storage costs might outweigh any cost savings from "optimized" horizontally scaled computing.

  • @Blab EFS use is optional on a load balanced infrastructure, in fact it isn´t used on the suggested option. @All here updated info: http://www.cloudaws.es/pages/elgg-aws-amazon-hosting