Git Product home page Git Product logo

oci-arch-ords-ha's Introduction

ORDS Logo

Deploy Oracle REST Data Services with High Availability in OCI (oci-arch-ords-ha)

The Deploy Oracle REST Data Services with High Availability in OCI reference architecture will create a sample deployment in OCI showcasing how easy it is to get HA with ORDS. The Resource Manager template will automatically deploy a load balancer that will front end N ORDS compute nodes. What N equal is up to you. These ORDS mid-tiers are all connecting back to an Autonomous Database. We use an Autonomous Database in this sample deployment but in a real production deployment, the database could be an Autonomous Database, a VM Database or an ExaCS Database. Lastly, this sample is using HTTP and not HTTPs. For Production deployment it is strongly encouraged to use HTTPS from at least the client to the load balancer.

When creating this Resource Manager Stack, you will have a few options to choose as part of the Required Configuration step.

Required Configuration Step

  • ATP Database Password for ADMIN user Provide a password for the ATP ADMIN user. The rules are: Password must be 12 to 30 characters and contain at least one uppercase letter, one lowercase letter, and one number. The password cannot contain the double quote (") character or the username "admin".

  • ATP Database Private Endpoint Check this checkbox if you want your Autonomous Database to be in a private subnet and not have a public IP.

  • Number of compute instances for ORDS Set the number of compute instances you want created for ORDS HA with this option.

  • Compartment What compartment do you want these resources/services created in. Defaults to your current compartment.

  • Availability Domain to be chosen Use the dropdown select list to choose an Availability Domain to create the resources/services in.

For details of the architecture, see Deploy Oracle REST Data Services with High Availability in OCI

Prerequisites

Quickstart Prerequisites

  • Permission to manage the following types of resources in your Oracle Cloud Infrastructure tenancy: vcns, internet-gateways, route-tables, network-security-groups, subnets, autonomous-database-family, and instances.

  • Quota to create the following resources: 1 VCN, 2 subnets, 1 Internet Gateway, 1 NAT Gateway, 2 route rules, 1 ATP database instance, and 2 compute instances.

If you don't have the required permissions and quota, contact your tenancy administrator. See Policy Reference, Service Limits, Compartment Quotas.

Deploy Using Oracle Resource Manager

  1. Click Deploy to Oracle Cloud

    If you aren't already signed in, when prompted, enter the tenancy and user credentials.

  2. Review and accept the terms and conditions.

  3. Select the region where you want to deploy the stack.

  4. Follow the on-screen prompts and instructions to create the stack.

  5. After creating the stack, click Terraform Actions, and select Plan.

  6. Wait for the job to be completed, and review the plan.

    To make any changes, return to the Stack Details page, click Edit Stack, and make the required changes. Then, run the Plan action again.

  7. If no further changes are necessary, return to the Stack Details page, click Terraform Actions, and select Apply.

  8. When the job is finished, you will see the Load Balancer IP/URL for accessing Database Actions for your Autonomous Database. Login with the ADMIN user and the password you supplied when creating the job.

Deploy Using the Terraform CLI

Clone the Repository

Now, you'll want a local copy of this repo. You can make that with the commands:

git clone https://github.com/oracle-quickstart/oci-arch-ords-ha.git
cd oci-arch-ords-ha
ls
  1. Create a terraform.tfvars file, and specify the following variables:
# Authentication
tenancy_ocid         = "<tenancy_ocid>"
user_ocid            = "<user_ocid>"
fingerprint          = "<finger_print>"
private_key_path     = "<pem_private_key_path>"

# Region
region = "<oci_region>"

# Availability Domain 
availability_domain = "<availability_domain_number>"
### USE ONE ^ OR THE OTHER v
availability_domain_name = "<availability_domain_name>"

# Compartment
compartment_ocid = "<compartment_ocid>"

# database
ATP_password           = "<ATP_user_password>"

Create the Resources

Run the following commands:

terraform init
terraform plan
terraform apply

Destroy the Deployment

When you no longer need the deployment, you can run this command to destroy the resources:

terraform destroy

Topology

The following diagram shows the topology created by this stack.

OCI ORDS HA Arch diagram

Known Issues

When using an Autonomous Database with a Private Endpoint, you will recieve the following error:

Error Message: Failed to create a private endpoint for the Autonomous Database because OBO tokens are not supported for use with a private endpoint.

Workaround: Use an Autonomous Database with a public endpoint

oci-arch-ords-ha's People

Contributors

jettermctedder avatar lfeldman avatar flavio-santino avatar

Watchers

James Cloos avatar Tom McGinn avatar Gabriel Grigorie avatar Orlando Gentil avatar  avatar J Collin Poczatek avatar  avatar Sanjay Narvekar avatar

Forkers

lfeldman

oci-arch-ords-ha's Issues

ORDS is outdated

The current version of ORDS is 22.1.0 and it also the java -jar ords.war command is deprecated from this version

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.