CMS AWS Plugins (version 1.1)

AWS CMS Plugins is a library (.jar library) that contains a set of plugins to customize the CMS deployment by integrating it with Amazon Web Services (AWS)

The following plugins are part of this library:

Installation

To install this library, a dependency needs to be added to the web application. The plugin is published in Maven Central repository.

<dependency>
    <groupId>com.webpagebytes.awsplugins</groupId>
    <artifactId>wpb-aws-plugins</artifactId>
    <version>1.1</version>
</dependency>

Details about how each plugin from the library is installed and configured are provided below.

Files storage plugin based on AWS S3

Webpagebytes CMS engine uses a files storage (instance of WPBFileStorage interface) to store and retrieve files used in the content delivery. The plugin based on AWS S3 stores the files content on an S3 bucket.

The S3 bucket can be configured to provide the files public and so clients accessing the content generated by Webpagebytes CMS will download the files directly from S3 bucket, freeing up compute capacity of servers running the CMS.

This plugin is a good choice when running the CMS in a cluster, where other traditional CMS applications have difficulties synchronizing the static files across the CMS servers.

To install the plugin the following configuration needs to be added to the Webpagebytes CMS configuration xml.

<wpbconfiguration>
...
<wpbfilestorage>
    <factoryclass>com.webpagebytes.awsplugins.WPBAwsS3FileStorage</factoryclass>
    <params>
        <param name="accessKey" value="YOUR_ACCESS_KEY" />
        <param name="secretKey" value="YOUR_SECRET_KEY" />
        <param name="protocol" value="HTTP" />
        <param name="bucket" value="your-bucket-name" />
        <param name="publicBasePath" value="http://s3-us-west-2.amazonaws.com/your-bucket-name" />
    </params>    
</wpbfilestorage>
...
</wpbconfiguration>

The plugin configuration requires some parameters. accessKey, secretKey, protocol, bucket are parametes specific to S3, please read the AWS S3 documentation.
publicBasePath is a parameter used to configure the public path that can be used to access the files directly from S3 bucket.

Data storage plugin based on AWS SimpleDB

Webpagebytes CMS engine uses a data storage (instance of WPBAdminDataStorage interface) to store/retrieve content and metadata used to produce the content to be delivered. As the name suggests this plugin uses AWS SimpleDB for content storage and retrieval.

To install the plugin the following configuration needs to be added to the Webpagebytes CMS configuration xml.

<wpbconfiguration>
...
<wpbadmindatastorage>
    <factoryclass>com.webpagebytes.awsplugins.WPBAwsSdbAdminDataStorage</factoryclass>
    <params>
        <param name="accessKey" value="YOUR_ACCESS_KEY" />
        <param name="secretKey" value="YOUR_SECRET_KEY" />
        <param name="protocol" value="HTTP" />
        <param name="endpoint" value="sdb.amazonaws.com" />
        <param name="domain" value="YOUR_DOMAIN" />			
    </params> 
</wpbadmindatastorage>
...
</wpbconfiguration>

The plugin requires some configuration parameters to be set, accessKey, secretKey, protocol, endpoint, domain are specific to SimpleDB configuration, for more information please read the AWS SimpleDB documentation.