Non-Dockerized
Single Node
This is the simplest recommended deployment on AWS infrastructure. It consists of:
- An optional instance for a HTTP Proxy / SSL terminator
- A single dedicated instance running a single dotCMS instance. This embeds elasticsearch and file storage on the dotCMS instance.
- A database or RDS instance.
Single Node Recipe
single-node:
data:
subnets:
- db-A
rds:
- single AZ
- t2.medium
- postgresql 10 (latest)
- db-A subnet
storage:
- 100+ GB (General Purpose SSD)
application:
subnets:
- cms-A
ec2 (cms):
- qty 1+
- m5.large
- AWS Linux 2 AMI
- cms-A subnet
storage:
- '/opt/dotcms': 20 GB (General Purpose SSD)
- '/opt/dotcms/data': 250+ GB (General Purpose SSD)
- '/opt/dotcms/logs': 20+ GB (General Purpose SSD)
http:
subnets:
- http-A
ec2 (http proxy):
- qty 1
- t3.medium
- AWS Linux 2 AMI
- http-A subnet
storage:
- '/opt/dotcms/logs': 20+ GB (General Purpose SSD)
Single Zone High Availability
This deployment runs dotCMS in a clustered configuration, which requires a proxy or load balancer that support sticky sessions. This configuration is horizontally scalable as additional dotCMS nodes can be added and removed from the cluster as needed.
- An optional instance for a HTTP Proxy / SSL terminator
- A load balancer if the proxy does not already do load balancing
- Two more more dedicated instances running a dotCMS.
- This embeds elasticsearch on the dotCMS instance.
- An NFS file share that is mounted on both dotCMS instances for shared file storage
- A database or RDS instance.
Single Availability Zone High Availability Recipe
single-az-ha:
data:
subnets:
- db-A
rds:
- single AZ
- m4.large
- postgresql 10 (latest)
- db-A subnet
storage:
- 100+ GB (General Purpose SSD)
ec2 (nfs):
- qty 1
- m5.large
- AWS Linux 2 AMI
- nfs-A subnet
storage:
- '/opt/dotcms/data': 500+ GB (General Purpose SSD)
application:
subnets:
- cms-A
ec2 (cms):
- qty 1+
- m5.xlarge
- AWS Linux 2 AMI
- cms-A subnet
storage:
- '/opt/dotcms': 20 GB (General Purpose SSD)
- '/opt/dotcms/data': 100+ GB (General Purpose SSD)
- '/opt/dotcms/logs': 20+ GB (General Purpose SSD)
http:
subnets:
- http-A
ec2 (http proxy):
- qty 1
- t3.medium
- AWS Linux 2 AMI
- http-A subnet
storage:
- '/opt/dotcms/logs': 20+ GB (General Purpose SSD)
Multi-Zone High Availability
This deployment runs the components that underlie dotCMS in clustered configurations across availability zones.
- Two instances of a HTTP Proxy / SSL terminator
- A load balancer if the proxy does not already do load balancing
- Two more more dedicated instances running a dotCMS.
- This embeds elasticsearch, hazelcast on the dotCMS instance.
- Each dotCMS instance can be run in separate availability zones.
- An NFS file share that is mounted on both dotCMS instances for shared file storage
- A database or RDS instance.
- A cold slave database for failover
- An NFS file share that is mounted on both dotCMS instances for shared file storage - can be mirrored for fault tolerance.
Multi-Zone High Availability Recipe
multi-az:
data:
subnets:
- db-A
- db-B
- nfs-A
rds:
- multi AZ
- m4.large
- postgresql 10 (latest)
- db-A, db-B subnets
storage:
- 100+ GB (General Purpose SSD)
ec2 (nfs):
- qty 1
- m5.large
- AWS Linux 2 AMI
- nfs-A subnet
storage:
- '/opt/dotcms/data': 500+ GB (General Purpose SSD)
application:
subnets:
- cms-A
- cms-B
ec2 (cms):
- qty 2+ (>=1 per AZ)
- m5.xlarge
- AWS Linux 2 AMI
- cms-A,cms-B subnets
storage:
- '/opt/dotcms': 20 GB (General Purpose SSD)
- '/opt/dotcms/data': 100+ GB (General Purpose SSD)
- '/opt/dotcms/logs': 20+ GB (General Purpose SSD)
http:
subnets:
- http-A
- http-B
ec2 (proxy):
- qty 2 (>=1 per AZ)
- c5.large
- AWS Linux 2 AMI
- http-A,http-B subnets
storage:
- '/opt/dotcms/logs' :20+ GB (General Purpose SSD)
Enterprise dotCMS Environment
When designing a large scale dotCMS installation, the above configurations can be considered building blocks which can be rolled out to perform various functions in your deployment strategy. The diagram below shows 3 environments, DEV, AUTH and DELIVERY each with different degrees of fault tolerance.