ODAS is a Kubernetes application that can be installed and run in AWS. This document describes the overall architecture of ODAS when it runs in AWS, as well as links to prerequisites and installation guides.
AWS Architecture Overview¶
The most basic setup of ODAS within AWS is shown in this diagram:
The basic setup has the following properties:
- ODAS is deployed as a set of services on a Kubernetes cluster. This cluster is running inside your VPC, and can be provisioned using the ODAS installer, or provided by you (e.g. leveraging EKS).
- ODAS instances are assigned their own subnet(s) and security group(s).
- A shared RDBMS is provided by AWS RDS, where MySQL (or compatible, such as Aurora) is used, with the ability to replicate data to a slave in another availability zone (AZ). This is for resilience against AZ failures, so that a copy of the state data is accessible.
- The shared RDBMS runs in the same subnet as ODAS.
- The instances ODAS is running are assigned a special AWS IAM role, providing ODAS access to S3 and (if required) KMS.
- Other AWS services such as EMR can be configured to use ODAS as a data access service.
- Third-party vendor services may also be configured to access ODAS, through some means of network connectivity, such as VPC Peering.
- DNS, by means of AWS Route53, may be used to assign host names to your ODAS services.
For more complex setups, there are advanced installation features:
- When using Amazon Aurora, data should be replicated across multiple AWS regions to keep the Okera state related data safe and available.
- For fail-over safety, it is also recommended to have S3 buckets replicated across the multiple regions.
- Multiple subnets may be used to divide external facing services from internal ones. This also applies to security groups, which should be split between administrative and service-level access.
Okera does not need any AWS keys or secrets to work and recommends using IAM.
Before proceeding with the installation of ODAS, you should ensure the Prerequisites are all created.
In AWS, there are several installation options:
- Installation using CloudFormation - this will guide you through leveraging CloudFormation to create the necessary resources (such as EC2 instances and Auto-Scaling Groups) and run the ODAS installer on them automatically.
- Installation on EC2 - this will guide you through setting up an EC2 instance and installing ODAS on it, as well as adding additional nodes to your cluster.
- Installation on EKS - this will guide you through installing ODAS on top of an existing EKS cluster.