Overview

AerosolCMS runs in Amazon AWS. It is serverless, running on CloudFront, API Gateway, Lambda and S3. AerosolCMS is Open Source and runs in your own AWS account, giving you full control over your system.

How a request is processed

A client request is first processed by CloudFront. CloudFront delivers static and/or binary content directly from an S3 bucket. Requests for dynamic content are directed to API Gateway, which invokes a Lambda. The Lambda function uses content elements that are stored in S3 to assemble the final response and adds headers to control the caching behaviour of CloudFront.

Philosophy

Serverless

The philosophy behind AerosolCMS is to make website publishing completely serverless, without the constraint of serving only static content.

Cost effective

Running and maintaining servers is expensive, complex and resource-intensive. AerosolCMS removes that by utilizing the serverless offerings by AWS. The benefits are near-zero fixed-costs for the infrastructure and near-zero costs for infrastructure maintenance. At the same time, AerosolCMS scales easily to millions of page views without any changes to the infrastructure.

Dynamic

On the modern web, the definition of "dynamic web page" does no longer mean "individually created for every user". Assembling a page again and again, with minimal or no changes, for thousands or millions of users is expensive and a waste of resources. Current state of the art is to deliver web pages in two phases: First deliver a page that contains content that is suitable for a general audience, search engines and sharing on social networks. Then add more elements and personalization via Progressive Enhancement (actually, delivering ads has worked like this for a very long time).

On the other hand, a content creator does not want to create complete web pages with full HTML markup every time a new page is created. Most of the time new content is published into a new page reusing headers, footers, layout elements and more from one or more templates. Also, creating special content elements like structured data markup, Facebooks Open Graph markup, Twitter card markup, tags for analytics and more is a technical task that should be separate from creating and editing content.

In addition to that, publishing the same content in different formats is a constant requirement. With the rise of standardized formats like AMP pages or RESTful interfaces, the presentation of content must adapt to the environment where it is shown.

To meet these requirements AerosolCMS separates creating content, assembling web pages and delivering these pages.

Content is stored in various source formats together with relevant metadata. Web pages are assembled just-in-time when they are requested for the first time. Delivery of the assembled pages is then taken care of by the content delivery network, offering minimal latency and scalability to thousands or millions of requests.

Infrastructure Configuration

This guide explains configuration that is specific to AerosolCMS. AerosolCMS strives to be a good citizen in AWS, allowing you to add your own configuration to the various services. If you have used the CloudFormation template to set up AerosolCMS, you do not need configure any of this manually.