Odin
  • Introduction
  • Why Odin?
  • Key Concepts
    • Environment
      • Environment Type
    • Provisioning
      • Provisioning Config for Component Types
    • Component
      • Available Component Types
      • Component Type reference
        • Optimus Components
          • Aerospike [6.3.0.7-1.0.0]
    • Service
      • Know Your Service Definition
    • Versioning
      • Clearing the Confusion: A Simplified Guide to Artifact, Component, and Service Versions
    • Service Sets
    • Labels
  • Reference
    • CLI reference
  • Onboard Your Service
    • Installation
    • Configure
    • Odin -h
    • Getting Started
    • Create Environment
      • Operations on Environment
    • Service Definition
    • Provisioning Config
    • Deploy Service
    • Release Service
    • Optimus Datastore Operations
      • How to use Optimus Datastore in my service?
      • RDS Operations
      • Aerospike Operations
      • Kafka Operations
    • Operating Service & Components
      • Redeploy
        • In Place Deployment
        • Blue Green Deployment
      • Rolling Restart
      • Adding & removing components
      • Revert a deployment for application component
      • Downscaling a Passive Stack
      • Updating the no. of stacks of application component
    • Dev <> QA iteration
    • Frequently Asked Questions
    • Deploy Concrete Service
    • Undeploy Service
    • Delete Environment
    • Appendix
  • How To
    • Define error threshold for canary deployment
    • Add or Remove a component in an already deployed service
    • Integrate mono-repo(cronjobs) with Odin
    • Deploy crontab with Odin
    • Integrate Data pipeline with Odin
    • Push logs to log central
    • Build artifacts for multi module applications
    • Load test with Odin
    • Track Deployments against Commit Ids
    • Deploy Service on Production - Dream11
    • How and when images are created
    • Check logs for deployed infrastructure - Dream11
    • Onboard Stepfunction as a component
    • Onboard Serverless as a component
    • Login to Kubernetes clusters
  • Release Notes
    • 1.2.0-beta.2 - 11 August, 2022
    • Odin October Release
    • Odin 1.2.0 - Nov 9th 2022
    • Odin February Release
Powered by GitBook
On this page
  • Available Operations
  • Scale Cluster
  • Reboot
  • Failover
  • Add Reader
  • Remove Reader
Export as PDF
  1. Onboard Your Service
  2. Optimus Datastore Operations

RDS Operations

PreviousHow to use Optimus Datastore in my service?NextAerospike Operations

Last updated 1 day ago

Available Operations

Scale Cluster

What is it?

It enables user to modify the capacity of the cluster by changing the count of instances and/or the type of the instance that are already part of the cluster.

When to use?

This operation can be run only when the cluster is in running state or when an existing operation is success. User need to wait if any existing operation is already running on the same cluster and can check its status via odin provided Jenkins.

Options

Option
Type
Description
Example

writer

json

The instance type required for the writer to be passed as a parameter to the json.

"writer": { "instance_type": "db.t4g.medium" }

reader

json

The instance type required along with instance count for the reader to be passed as a parameter to the json. Multiple instance types and their counts can be passed as comma separated values.

"readers": [{ "instance_type": "db.t4g.medium", "instance_count":2, }, { "instance_type": "db.t4g.small", "instance_count":1, }

Please note:

  1. The count of writer is fixed as 1 and is not required to be passed.

  2. The total number of readers across various instance types can be maximum 15. E.g: If you are adding 3 instance types in readers, the total number of instance count across those 3 cannot exceed 15.

Command

odin operate component --name [YOUR_COMPONENT_NAME] --service [YOUR_SERVICE_NAME] --operation scale 
--options '{
    "writer": {
      "instance_type": "[YOUR_INSTANCE_TYPE]"
    },
    "readers": [{
      "instance_type": "[YOUR_INSTANCE_TYPE]",
      "instance_count":[DESIRED_COUNT]
    }, {
      "instance_type": "[YOUR_INSTANCE_TYPE]",
      "instance_count":[DESIRED_COUNT]
    }]
}' --env [YOUR_ENV_NAME]

Reboot

What is it?

Reboot operation can be used by the user in case of changes in parameter, pushing new changes or even in case of observed higher latency.

When to use?

This operation can be run only when the cluster is in running state or when an existing operation is success. User need to wait if any existing operation is already running on the same cluster and can check its status via odin provided Jenkins.

Options

Option
Type
Description
Example

instance_name

text

This is a reader identifier and value can be found as instance identifier in AWS RDS console. The same value will be used as input.

--options '{"instance_name": "INSTANCE_NAME_TO_REBOOT"}'

Command

odin operate component --name [YOUR_COMPONENT_NAME] --service [YOUR_SERVICE_NAME] --operation reboot 
--options '{"instance_name": "<INSTANCE_NAME_TO_REBOOT>"}' --env [YOUR_ENV_NAME]

Failover

What is it?

Failover operation can be used by the users to failover the writer to any available reader. This is done in case writer is observing high latency or similar situation.

In this operation, Writer is failed over to a reader instance.

When to use? This operation can be run only when the cluster is in running state or when an existing operation is success. User need to wait if any existing operation is already running on the same cluster and can check its status via odin provided Jenkins.

Options

Option
Type
Description
Example

failover_instance

text

This is a reader identifier and value can be found as instance identifier in AWS RDS console. The same value will be used as input.

--options '{"failover_instance": "INSTANCE_ID_TO_FAILOVER_TO"}'

Please note, writer name is not needed as an input parameter, because there is only one writer.

Command

odin operate component --name [YOUR_COMPONENT_NAME] --service [YOUR_SERVICE_NAME] 
--operation failover 
--options '{"failover_instance": "INSTANCE_ID_TO_FAILOVER_TO"}'  
--env [YOUR_ENV_NAME]

Add Reader

What is it?

Adding a reader is a subset of the operation "Scale". Using this operation a user can scale up the cluster.

When to use?

This operation can be run only when the cluster is in running state or when an existing operation is success. User need to wait if any existing operation is already running on the same cluster and can check its status via odin provided Jenkins.

How to use ?

Insert the instance count to be added for the cluster in number_of_reader . E.g: If you have 5 instances and you want to add 5 more, the value of number_of_reader will be 5.

Options

Option
Type
Description
Example

instance_type

text

Instance type that you want to add

--options '{"instance_type": "db.t4g.medium", "number_of_reader": 12}

number_of_reader

integer

Number of readers that you want to add for the said instance type

--options '{"instance_type": "db.t4g.medium", "number_of_reader": 12}

Command

odin operate component --name [YOUR_COMPONENT_NAME] --service [YOUR_SERVICE_NAME] 
--operation add_reader 
--options '{"instance_type": "INSTANCE_TYPE_TO_ADD", "number_of_reader": "NO_OF_READERS_TO_ADD"}'  
--env [YOUR_ENV_NAME]

Example:

odin operate component --name deadpool-kafka --service deadpool-service --operation add_reader 
--options '{"instance_type": "db.t4g.medium", "number_of_reader": 12} --env sr001

Remove Reader

What is it?

Removing a reader is a subset of the operation "Scale". Using this operation a user can scale down the cluster.

When to use?

This operation can be run only when the cluster is in running state or when an existing operation is success. User need to wait if any existing operation is already running on the same cluster and can check its status via odin provided Jenkins.

How to use ?

The user can provide either the number of readers to be removed or the instance id that the user wants to remove as a parameter for remove reader operation.

Options

Option
Type
Description
Example

reader_instance_name

Text

This is a reader identifier and value can be found as instance identifier in AWS RDS console. The same value will be used as input.

--options '{"reader_instance_name": "INSTANCE_ID_TO_FAILOVER_TO"}'

number_of_readers

Integer

Number of readers that you want to remove

--options '{"number_of_readers": 12}'

Command

// Using Instance Identifier

odin operate component --name [YOUR_COMPONENT_NAME] --service [YOUR_SERVICE_NAME] 
--operation remove_reader 
--options '{"reader_instance_name": "INSTANCE_ID_TO_BE_REMOVED"}'
--env [YOUR_ENV_NAME]

//Using Reader Count

odin operate component --name [YOUR_COMPONENT_NAME] --service [YOUR_SERVICE_NAME] 
--operation remove_reader 
--options '{"number_of_readers": "NO_OF_READERS_TO_REMOVE"}'
--env [YOUR_ENV_NAME]

Example:

//Using Instance Identifier

odin operate component --name deadpool-kafka --service deadpool-service --operation remove_reader 
--options '{"reader_instance_name": "Your_Instance_name"} --env sr001

//Using Reader Count

odin operate component --name deadpool-kafka --service deadpool-service --operation remove_reader 
--options '{"number_of_reader": 12} --env sr001
Scale Cluster
Reboot
Failover
Add Reader
Remove Reader