Getting Started

1. Configuration

To start with, you need to create an AEM OpenCloud configuration repository, e.g. name it <your_org>-aem-opencloud-config . This repository should contain the YAML configuration files required by various AEM OpenCloud libraries.

You can have a look at AEM Hello World Configuration as an example repository and copy the code as a starting point.

You can modify the configuration values as you progress through the next steps below.

2. Machine images

Use Packer AEM to create machine images such as AWS AMIs, which comprises of the components required to run an AEM environment.

When executing the build targets, use your own AEM OpenCloud configuration as the build configuration path, e.g. by adding this parameter config_path=<your_org>-aem-opencloud-config/packer-aem/<profile>/ .

To adhere to your standards and practices, Packer AEM provides a number of customisation points which allows you to create the machine images on top of your SOE machine image and also to execute any custom image provisioning step.

If you do have some custom image provisioning steps, you need to create an AEM OpenCloud custom image provisioner repository, e.g. name it <your_org>-aem-opencloud-custom-image-provisioner . This repository should contain the provisioning code, you can use any provisioning tool you want (e.g. Puppet, Ansible, etc).

You can have a look at AEM Hello World Custom Image Provisioner as an example repository and copy the code as a starting point.

3. Network

Use AEM AWS Stack Builder to create networking resources required to run an AEM environment on AWS.

This step depends on whether you have the permission to manage the networking resources on AWS as some organisations often restrict delivery team from controlling the network.

If you do have the permissions to manage VPC, you can create the VPC stack and network resources stack using AEM AWS Stack Builder. This will stand up the networking resources using AEM OpenCloud.

But if you don’t have the permissions, you can create network-exports stack which defines which pre-existing subnets should be used by which component within AEM environment.

When executing the build targets, use your own AEM OpenCloud configuration as the build configuration path, e.g. by adding this parameter config_path=<your_org>-aem-opencloud-config/aem-aws-stack-builder/network-<profile>/ .

4. Environment manager

Use AEM AWS Stack Builder to create AEM Stack Manager.

AEM Stack Manager is the single entry point for all operational task executions, it will then relay the task to the corresponding AEM environment which will then execute the task from within the AEM environment itself. AEM Stack Manager also performs some utility tasks such as cleaning up older snapshots created by AEM OpenCloud backup and recovery activities.

When executing the build targets, use your own AEM OpenCloud configuration as the build configuration path, e.g. by adding this parameter config_path=<your_org>-aem-opencloud-config/aem-aws-stack-builder/aem-stack-manager-<profile>/ .

5. AEM application environments

Use AEM AWS Stack Builder to create AEM Full-Set and Consolidated environments.

AEM Full-Set environment provides high availability, auto-recovery, auto-scaling, and continuous recovery testing features suitable for production and staging environments. AEM Consolidated environment provides a simpler architecture with a much lower cost footprint (~90% cost saving) suitable for dev and test environments.

When executing the build targets, use your own AEM OpenCloud configuration as the build configuration path, e.g. by adding this parameter config_path=<your_org>-aem-opencloud-config/aem-aws-stack-builder/[aem-full-set|aem-consolidated]-<profile>/ .

To adhere to your standards and practices, AEM AWS Stack Builder provides a number of customisation points which allows you to execute any custom stack provisioning step.

You can have a look at AEM Hello World Custom Stack Provisioner as an example repository and copy the code as a starting point.

6. Operational tasks

Use AEM Stack Manager Messenger to trigger operational tasks (taking backups, flushing cache, deploying packages, etc) against AEM application environments.

Ideally you should run AEM Stack Manager Messenger as part of your CI/CD pipeline with secured (strict permission control) communication to the SNS topic entry point running on AEM Stack Manager.

When executing the build targets, use your own AEM OpenCloud configuration as the build configuration path, e.g. by adding this parameter config_path=<your_org>-aem-opencloud-config/aem-stack-manager-messenger/<profile>/ .

7. Testing

Use AEM Test Suite to run various readiness, acceptance, security, and recovery testing against AEM application environments.

When executing the build targets, use your own AEM OpenCloud configuration as the build configuration path, e.g. by adding this parameter config_path=<your_org>-aem-opencloud-config/aem-test-suite/<profile>/ .