Deploying an Alfresco cluster in Amazon AWS in just minutes

I have been playing with Amazon Web Services since few months ago. AWS is for a SysAdmin like Disneyland is for a 8 years old child, I enjoy so much doing this kind of stuff.
If you are not familiar with AWS products/services, let me describe with Amazon words and in my own words what are the most important services and concepts we have been using for deploying an Alfresco on-premise installation in AWS:

  • EC2: virtual servers in the cloud.
  • VPC: isolated cloud resources. Yes, a real isolated cloud architecture and resources.
  • S3: Scalable storage, like a CAS (Content Addressable Storage) for your local or cloud servers.
  • RDS: Managed Relational Database Service (MySQL, Oracle or MS SQL Server).
  • ELB: Elastic Load Balancer, as part of EC2 allows you to create load balancers easily.
  • CloudFormation: Templated AWS resource creation. *This is why I’m writing this article. A CloudFormation template is a json file which creates a wizard and options based in our needs.
  • AWS Region: a location with multiples AZ .
  • AZ: Availability Zone (data centers connected through low-latency links in the same region).

Once said so, my colleague Luis Sala has been working together with the Amazon AWS crew and they have made a CloudFormation template to deploy an Alfresco cluster in just minutes. This template is available here: https://github.com/AlfrescoLabs/alfresco-cloudformation.

This CloudFormation template will create a 2 nodes Alfresco cluster inside a virtual private cloud (VPC), a Load Balancer (ELB) with sticky sessions bases on the Tomcat JSESSIONID, a shared ContentStore based on S3, a shared MySQL DB based on a RDS instance. Each Alfresco node will be in a separate Availability Zone and finally the template includes auto-scaling roles for add extra Alfresco nodes when some thresholds are reached.

We will have something like the diagram below, I say “like this” because we will have only 2 Alfresco nodes in the cluster and the auto-scaling will add more nodes in case of thresholds are reached (clic to see it bigger).

aws-cf-alfresco

Finally in the video below you can see step by step a real CloudFormation deployment, I think the video screencast is self-explanatory, it does not have audio. As you can see, the video is 6 minutes length after cropping some dead times but it was around 15 minutes total.

I thought it is a very interesting approach about Alfresco clustering and it worth it to share with you all. Any question or feedback is welcome, even in spanish or english ;)

7 thoughts on “Deploying an Alfresco cluster in Amazon AWS in just minutes

  1. This is a great article and architecture. I hope to implement very soon. Does the shared storage include the entire alf_data? I am wondering about the indexes across multiple nodes. Also, is there a way to point both instances to a remote OpenOffice Transformation server?

    Thanks for the article.

  2. Thanks Paul. The shared storage here and in any other Alfresco HA implementation must be only for the contentstore, never for indexes which must be in the local discs of the alfresco server or in a dedicated server.
    For the remote Transformation Server, Alfresco has a dedicated transformation server for remote or scalable transformations. If you are Enterprise client you can but a remote Transformation Server subscription and take advantage of that. If you are a community user you may take a look to this article: http://blyx.com/2011/08/19/como-configurar-alfresco-para-usar-open-office-remotamente-como-servidor/ use google translator or the blog translation utilities if required ;)

    Regards.

  3. Hola Tony, soy un seguidor de tu blog desde que me tope con el y trabajo con Alfresco. Mis felicitaciones.

    Trabajo para una startup española como administrador de sistemas y hemos estado montando alfresco community como gestor documental de nuestras aplicaciones durante el periodo de desarrollo, pero ahora empieza la fase de producción y acabamos de cambiar a AWS.

    He usado tu maravillosa plantilla para levantar esta configuración en AWS, una vez levantado todo he observado que las AIMs que usa son de la versión enterprise de Alfresco.

    Tengo entendido que las licencias enterprise son por CPU, imagino que en esta config estarian contando 2 CPU (1/nodo). En el market de AWS pone que esa version es Bring your license.

    Ahora viene la pregunta, cual sería el coste de esta configuración?
    Hablando de una aproximación, he visto que no lo mencionas y como las licencias enterprise a veces son prohibitivas para las pymes y mas aún en la situación que estamos. Querría saber si es posible modificar el template para usar alguna version community.

    Imagino que para esta 2º pregunta la respuesta va a ser negativa, porque no hay modo cluster en Community.

  4. Hola David,

    Gracias por tu comentario.

    Para saber el coste de esta infraestructura con Enterprise envíame un correo electrónico (mira la sección http://blyx.com/contacto/) y te digo aproximadamente.

    Si, la respuesta a la segunda pregunta es esa, no hay cluster en la Community así que aplicar exactamente esa plantilla no es viable. Igual puedes crear una AMI con Community y usarla en la plantilla pero no sería un cluster con Alfresco ya que no está esa parte de cluster en Community y fallarían algunas cosas al arrancar.

    Cualquier otra duda me dices.

    Saludos.

Comment