AWS
The environments are hosted on AWS where they are built using Cloudformation templates. Each environment consists of two Cloudformation stacks, templates for these are available in https://github.com/6aika/sixodp-infra.
Database stack
The database stack contains components with irreplaceable data. If the stack is destroyed, the data is lost. The stack contains the following resources:
MySQL database (RDS instance)
PostgreSQL database (RDS instance)
Security group for databases
Subnet for databases
Dataset bucket (S3)
Policies of dataset bucket
NFS network drive for images and its mount targets (EFS)
Security group for EFS
The stack takes the following parameters:
Environment name (pre-defined list)
Database subnets (pre-defined list)
User name and password for superuser in CKAN (postgreSQL) database
User name and password for superuser in WordPress (MySQL) database
The stack outputs following parameters:
Database security group
Dataset bucket
Application stack
The application stack contains the components which can be replaced without data loss. The stack contains following resources:
Ubuntu 20.04 Virtual machine (EC2)
Security group for EC2
Ingress rules for database and EFS security groups in database stack.
Domain name for the portal and pgadmin if the environment manages its own domain.
Policies for EC2 instance to access S3 buckets
Elastic IP address if the environment does not manage its own domain, the IP address changes if the stack is destroyed.
The stack takes the following parameters:
Environment name (pre-defined list, should match database stack environment name)
Instance type (pre-defined list)
Database security group (select correct one from the list)
EFS security group (select correct one from the list)
Name of the EFS file system (copy from database stack. At the time of implementation AWS did not have api for this.)
Hosted zone id (select from route53 domains if the environment manages its own domain)
White listed ip address in cidr form for allowed ssh access (default value is Gofore office address)
2 client ip addresses for pgadmin access (pgadmin UI is available only to these addresses)
Git branch (which branch is used to install application stack)
The stacks are also depicted on the following figure:
Additionally to the stacks, each application stack requires access to secrets S3 bucket which is configured within the stack template.
Last updated