Skip to content

Automation of creating and configuring AWS instances

License

Notifications You must be signed in to change notification settings

cesaraustralia/CesarCloud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cesar Australia Cloud Infrastructure

Automation of creating and provisioning AWS instances as Cesar infrastructure (documentation is in progress)

Setup

The Public IPv4 is created manually and attached to the instance by terraform data. The main S3 bucket and its API Gateway are also created manually to protect our data from being lost through system failure/upgrade.

System setup is by Terraform open source infrastructure as code (IaC) software tool. All the servises are containerised by docker containers.

Installation

Software used for creating and provisioning the cloud system:

Infrastructure

  • EC2: elastic cloud computing - a linux server
  • ECR: elastic container registery - stores Cesar docker images
  • S3 buckets: Cesar cloud data centre

Docker containers

Cesar server on AWS runs docker containers to build desired apps and deliver services.

  • Shiny server: a container with configured shiny-server and all geospatial packages for Linux and R
  • Rstudio server: accessing RStudio via Cesar server at AWS
  • PostGIS: a container running PostgreSQL relational database with PostGIS extension for spatial data support

The containers are created by docker-compose. The images id/URL on the AWS Container Registery are inserted by Ansible variables.

PostgreSQL database

The database is a PostgreSQL running inside a docker container. The database and all data inside are backup every week and stored in the main S3 bucket.

GitHub actions

For maintaining the CI/CD pipeline, GitHub actions are used to automate updating the web application as soon as the code in their corresponding repositories is updated. Push or pull requests to the main/master branch trigger the GH actions and the code inside the repo will be pushed to the server.

Releases

No releases published

Packages

No packages published