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, hazelcast 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, hazelcast 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.