
In the architecture diagram, the instances in Availability Domain 1 are active and the instances in Availability Domain 2 are on standby. In addition, to ensure availability in case the primary availability domain is not available, redundant instances are created in another availability domain.

By using different fault domains, application instances are protected against unexpected hardware failures and planned outages due to hardware maintenance. All application servers within an availability domain are deployed across different fault domains. Multiple application servers are deployed in each availability domain to ensure high availability within an availability domain. However, setting up each component individually is a time-consuming process and it isn’t easy to manage the entire topology as a single entity - to replicate it from one region to another, for example, or even across Oracle Cloud Infrastructure tenancies. You can set up each of these components individually using the Oracle Cloud Infrastructure Console or any of the other interfaces. You might also want to configure a load balancer to forward requests, a bastion host to permit incoming traffic, a NAT gateway to enable outgoing traffic, and a service gateway to provide access to object storage. Then you need to ensure that appropriate security lists are set up to various instances. For example, your topology will require some instances to be created in public subnets to perrmit access over the Internet, while most instances should be in private subnets to restrict access.

However, such an environment requires multiple, interdependent infrastructure components to be carefully set up to work together to create an environment that is efficient, secure, and reliable.
