Alfresco on cloud Amazon EC2

November 6th, 2009

Cloud computing

Cloud computing is a term given for anything that involves in delivering hosted services over the wide area network. There are three categories for cloud computing services: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS).

There are three distinct characteristics that differentiate cloud computing from traditional hosting. It is sold on demand, typically by the minute or the hour; it is elastic — a user can have as much or as little of a service as they want at any given time; and the service is fully managed by the provider (the consumer needs nothing but a personal computer and Internet access).

Platform-as-a-service in the cloud is a set of software and product development tools hosted on the provider’s infrastructure. Developers create applications on the provider’s platform over the Internet. PaaS provider’s uses APIs, website portals or gateway software installed on the customer’s computer. Force.com, (an outgrowth of Salesforce.com) and GoogleApps are examples of PaaS.

In the software-as-a-service cloud model, the vendor supplies the hardware infrastructure, the software product and interacts with the user through a front-end portal. SaaS is a very broad market. Services can be anything from Web-based email to inventory control and database processing.

Infrastructure-as-a-Service like Amazon Web Services provides virtual server instances with unique IP addresses and blocks of storage on demand. Customers use the provider’s application program interface (API) to start, stop, access and configure their virtual servers and storage. In the enterprise, cloud computing allows a company to pay for only as much capacity as is needed, and bring more online as soon as required.

About Alfresco
Alfresco is the leading open source alternative for enterprise content management. The open source model allows Alfresco to use best-of-breed open source technologies and contributions from the open source community to get higher quality software produced more quickly at much lower cost.

The Benefits of Using Alfresco

  • Ease-of-Use
  • Intelligent Virtual File System – As simple to use as a shared drive through CIFS, WebDAV or FTP
  • Google®-Like Search and Yahoo!®-Like Folder Browsing
  • Distributed Architecture

Alfresco is not just an application, but also a platform on top of which SaaS providers can build new apps and services.

Amazon EC2
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. Amazon EC2’s simple web service interface allows you to obtain and configure capacity with minimal friction. It provides you with complete control of your application resources and lets you run on it’s proven computing environment.

It enables customers to rent processing space by the hour on which to run their own applications. The Alfresco’s offering is an AMI (Amazon Machine Image), a pre-built software package for creating a virtual machine on EC2.

Benefit of Alfresco on Amazon EC2
Cloud allows you to provision preconfigured ECM on demand and scale it dynamically, thus reducing total ownership costs considerably.

How to Cluster Alfresco on Amazon EC2:

Run management instance for clustering Alfresco.

ElasticFox can be used as extension for configuring basic tasks on EC2. Run instance of Amazon Machine Image ami-68af4b01. After state of the instance changes from pending to running, obtain the Public DNS and open it into browser address bar. This will bring Web User Interface for Alfresco Cluster Management. Login the application with following credentials: username alfresco, password alfresco.

Following left navigation options will be available on the screen:

* Add New Alfresco Cluster

* Alfresco Cluster Home

* Cluster Provisioning Status

* General Settings

* List All Alfresco Clusters

* Provision Alfresco Cluster Nodes

EC2 credentials Configuration:

Using client like Putty or other ssh client, log in to Public DNS address and download your key files to dedicated path (e.g. /root).

Now Edit following file /var/www/sites/all/modules/alfresco_ec2/ws-amazon-ec2-client.php and add names of your key files.

Configure minimal cluster.

At this point alfresco application is ready to configure minimal 3-node Alfresco Cluster. Proceed to web interface and choose Add New Alfresco Cluster option. Fill the details and choose List All Alfresco Clusters option in the left navigation to see your new cluster. Now click on radio button for specific cluster and press submit button ‘Provision Nodes for Selected Cluster Now’. This will lock browser for some time (around 6-7 minutes). After configuration is finished, result screen will get displayed.

Test cluster functionality:

See ElasticFox extension and note new instances, that are respectively, DB Node, Master Node and Slave Node. Get its Public DNS addresses and open it in browser (it should like http://ec2-00-100-200-100.compute-1.amazonaws.com:8080/alfresco). Log in to one of the instances (or re-log in) as admin: admin and Add Content. Then log in to another instance and see if content of the space shows new file.

This setup allows one click configuration of Alfresco Cluster on EC2 and provides enterprise content management system that can be used for multiple purposes. Cloud computing is highly beneficial for the small and mid enterprises where cost is a constraint for the ECM.


One Response to “Alfresco on cloud Amazon EC2”

  1. PG says:

    I assume one can create multiple tenants in this EC2 Alfresco clustered environment. Is that correct?

Leave a Reply