> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/cloud-cost-management/cost-optimization/commitment-orchestrator/get-started/elasticache-get-started.md).

# Elasticache

Get started with Commitment Orchestrator for Elasticache to automate Reserved Instance purchases and reduce AWS cache infrastructure costs

{% @harness-package-selector/package-selector platforms="%5B%7B%22label%22%3A%22RDS%22%2C%22slug%22%3A%22rds%22%2C%22path%22%3A%22cloud-cost-management%2Fcost-optimization%2Fcommitment-orchestrator%2Fget-started%2Frds-get-started%22%2C%22logo%22%3A%22aws-logo.svg%22%7D%2C%7B%22label%22%3A%22EC2%22%2C%22slug%22%3A%22ec2%22%2C%22path%22%3A%22cloud-cost-management%2Fcost-optimization%2Fcommitment-orchestrator%2Fget-started%2Fec2-get-started%22%2C%22logo%22%3A%22aws-logo.svg%22%7D%2C%7B%22label%22%3A%22Elasticache%22%2C%22slug%22%3A%22elasticache%22%2C%22path%22%3A%22cloud-cost-management%2Fcost-optimization%2Fcommitment-orchestrator%2Fget-started%2Felasticache-get-started%22%2C%22logo%22%3A%22aws-logo.svg%22%7D%5D" selectedPlatform="elasticache" iconLibrary="<https://developer.harness.io/provider-logos>" %}

## Before you begin

To setup Commitment Orchestrator in Harness CACM, you need:

* **Active CACM Connectors**: You must have at least one active cloud connector set up for the cloud providers you want to categorize costs for: Set Up [CCM Connectors](/cloud-cost-management/integrations/cloud-providers/aws.md).
* A master account with the right permissions to be added via AWS connector on which you want to enable orchestration. Select the services for which you want to enable orchestration (permissions can be limited to specific service).

Below is the Elasticache permissions required:

```yaml
HarnessCommitmentElastiCachePolicy:
    Type: 'AWS::IAM::ManagedPolicy'
    Condition: CreateHarnessCommitmentElastiCachePolicy
    Properties:
      Description: Policy granting Harness Access to ElastiCache Reserved Instances
      PolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Action:
              - 'ce:GetSavingsPlansCoverage'
              - 'ce:GetReservationCoverage'
              - 'ce:GetSavingsPlansUtilization'
              - 'ce:GetDimensionValues'
              - 'ce:GetReservationUtilization'
              - 'ce:GetSavingsPlansUtilizationDetails'
              - 'ce:GetCostAndUsage'
              - 'organizations:ListAccounts'
              - 'elasticache:DescribeReservedCacheNodes'
              - 'elasticache:DescribeReservedCacheNodesOfferings'
              - 'elasticache:PurchaseReservedCacheNodesOffering'
            Resource: '*'

```

***

### Steps to configure:

* Go to Commitment Orchestrator > Setup Orchestrator.

{% tabs %}
{% tab title="Account and Service details" %}

* Specify the **cloud account and service (Elasticache)** for which you want to enable orchestration. Currently, Commitment Orchestrator supports **AWS Elastic Compute Cloud (EC2)**, **AWS Relational Database Service (RDS)**, and **AWS Elasticache**. Support for other cloud providers is in the works.
* Specify the **Master Account Connector**. You need to select the master account with the right permissions to be added via connector on which you want to enable orchestration. You can either select an existing connector for your master account or create one.

  Note: even if **"Commitment Orchestrator"** is enabled in Connector Set Up for any other Account except for **Master**, it will not be visible in the connector list in Commitment Orchestrator Setup since Commitment Orchestrator requires **Master Account connector**.

<figure><img src="https://1217180450-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FO2HVWkYMptNUG08jo8hr%2Fuploads%2Fgit-blob-07b053c10d1d8b649d538d3bafcc71281e54ee6d%2Fec-step-one.png?alt=media" alt=""><figcaption><p>Click to view full size image</p></figcaption></figure>
{% endtab %}

{% tab title="Orchestrator Exclusions (Optional)" %}
Commitment Orchestrator provides you with an option to exclude Accounts, Regions and Instances from the orchestration.

* **Account Exclusions**: You can include or exclude specific accounts from the orchestration. The accounts marked as included will be considered for RI Orchestration.
* **Region Exclusions**: You can include or exclude specific regions from the orchestration. All the regions are shown with their coverage and compute spend for making an informed decision

<figure><img src="https://1217180450-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FO2HVWkYMptNUG08jo8hr%2Fuploads%2Fgit-blob-c094170e1037dcad7888f3e597f2f83e95802a40%2Fec-step-two.png?alt=media" alt=""><figcaption><p>Click to view full size image</p></figcaption></figure>

{% hint style="info" %}
**NOTE**

The purchases will happen only at master account level and thus will be in turn applicable for child accounts as well. The exclusion list will only be considered for the compute spend calculations and actual RI/SP may be used against the instances if they are part of child accounts.
{% endhint %}
{% endtab %}

{% tab title="Orchestration Preferences" %}

### Target Coverage

The maximum percentage of your compute spend that you want covered by Savings Plans or Reserved Instances. Any remaining spend will continue to run on On-Demand. The Commitment Orchestrator automatically adjusts coverage levels based on evolving usage patterns.

### Preferred commitment type

Select whether the orchestrator prioritizes Reserved Instances or Savings Plans when both can cover the same usage.

* **Reserved Instances** (default): The orchestrator prioritizes reserved instances. Savings plans are used only when reserved instances are not a good fit for the usage pattern.
* **Savings Plans**: The orchestrator prioritizes savings plans. Reserved instances are used only when savings plans are not a good fit for the usage pattern.

{% hint style="success" %}
The **Preferred commitment type** setting controls which commitment type spends the shared coverage budget first. Both types may still be purchased; selecting one does not disable the other.
{% endhint %}

### Maximum commitment per savings plan

Set an upper limit (in USD per hour) on the size of any single Savings Plan recommendation. The orchestrator will not recommend or purchase a Savings Plan with an hourly commitment above this amount.

| Setting        | Behavior                                                                               |
| -------------- | -------------------------------------------------------------------------------------- |
| Unset          | No limit applied; the orchestrator sizes recommendations based on your eligible spend. |
| Greater than 0 | Each net-new SP recommendation is capped at this hourly value.                         |

{% hint style="info" %}
The maximum commitment per savings plan cap applies to net-new Savings Plan recommendations only. Renewals of existing Savings Plans are not governed by this limit in the same way.
{% endhint %}

### Harness SP Staggering

When Harness SP Staggering is enabled, the Commitment Orchestrator builds your Savings Plan coverage gradually through a series of smaller purchases instead of one large commitment.

**Why this reduces risk**

A single large Savings Plan locks you into a fixed hourly commitment for one or three years. If your usage drops after purchase, the unused portion is wasted spend. Use Harness SP Staggering to reduce this risk:

* Buying only a fraction of your remaining uncovered demand at each step, so early purchases are modest and later ones shrink naturally as coverage grows
* Spreading purchases over time, creating decision points where the orchestrator can adjust if usage changes
* Ensuring no single purchase can be oversized when combined with the maximum commitment per savings plan setting

**How it works**

Each orchestrator run calculates how much of your on-demand spend remains uncovered by active and pending Savings Plans. The orchestrator then purchases a fraction of that remaining amount rather than the full total. By default, Harness SP Staggering uses a balanced pace that covers approximately 50% of your coverable usage within the first month, with several purchases spaced throughout.

{% hint style="info" %}
Harness SP Staggering applies to net-new Savings Plan purchases only. It does not affect Reserved Instance purchases or renewals of existing Savings Plans.
{% endhint %}

<figure><img src="https://1217180450-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FO2HVWkYMptNUG08jo8hr%2Fuploads%2Fgit-blob-8a7789717ad23b6c429b222c92d7c41e0c3c29b8%2Fco-elasticache-preferences.png?alt=media" alt=""><figcaption><p>Click to view full size image</p></figcaption></figure>

### Orchestration Mode

Select how the orchestrator executes recommended commitment purchases:

* **Fully Automated**: Commitment purchases are executed automatically without requiring manual approval.
* **Manual**: All commitment purchases require explicit manual approval before execution, giving you complete control over the process. All the recommendations are visible in the **Actions** tab on the dashboard.

<figure><img src="https://1217180450-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FO2HVWkYMptNUG08jo8hr%2Fuploads%2Fgit-blob-2f22400686c4112069bc2f394d30e9f7886bdad3%2Fec-step-three.png?alt=media" alt=""><figcaption><p>Click to view full size image</p></figcaption></figure>

* **Notifications**: Configure alerts to stay informed about commitment activities:
  * **Purchase Notifications**: Get notified about successful RI/SP purchases made by Harness.
  * **Pending Approval Notifications**: Get notified when manual approval is required for RI/SP recommendations.
  * **Savings Plans Expiry Notifications**: Receive notifications for existing Savings Plans that will expire within a specified timeframe.
  * **Daily Summary Delivery**: Set your preferred timezone and email recipients for daily summary reports.

<figure><img src="https://1217180450-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FO2HVWkYMptNUG08jo8hr%2Fuploads%2Fgit-blob-11dee0991111d1112293db9434d0f949837630c0%2Fec-step-four.png?alt=media" alt=""><figcaption><p>Click to view full size image</p></figcaption></figure>
{% endtab %}

{% tab title="Review & Complete" %}
After all the set-up steps, you can review and finalise your inputs.

<figure><img src="https://1217180450-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FO2HVWkYMptNUG08jo8hr%2Fuploads%2Fgit-blob-06334ea415f5f470123c472054d6e335b1c42618%2Fec-step-five.png?alt=media" alt=""><figcaption><p>Click to view full size image</p></figcaption></figure>
{% endtab %}
{% endtabs %}

***

### Overview screen

The Orchestration Setup page displays a comprehensive list of all Master Accounts with Commitment Orchestrator connector permissions. From this page, users can enable new orchestration setups and view key metrics including Last 30 Days Coverage, Savings, and the current status of each Orchestrator configuration.

<figure><img src="https://1217180450-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FO2HVWkYMptNUG08jo8hr%2Fuploads%2Fgit-blob-3314246201cd0c0ce7523796a41adb230449d731%2Fco-overview.png?alt=media" alt=""><figcaption><p>Click to view full size image</p></figcaption></figure>

***

### Disable Commitment Orchestrator

To disable a Commitment Orchestrator, navigate to **Cloud & AI Cost Management** > **Commitment** > **Orchestration Setup**. Click on the three ellipses for the orchestrator you want to disable > **Manage Orchestration Setup** > **Disable**.

Disabling the Commitment Orchestrator will:

* Stop all automated commitment management for the selected orchestrator
* Remove existing orchestration configurations

  <figure><img src="https://1217180450-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FO2HVWkYMptNUG08jo8hr%2Fuploads%2Fgit-blob-32b90a5a9938820112e2477cd74c368eba03b7c6%2Fdisable.png?alt=media" alt=""><figcaption><p>Click to view full size image</p></figcaption></figure>

  <figure><img src="https://1217180450-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FO2HVWkYMptNUG08jo8hr%2Fuploads%2Fgit-blob-5124e86bb18aeb0553eb557dcfa5bff6640b9036%2Fdisable-two.png?alt=media" alt=""><figcaption><p>Click to view full size image</p></figcaption></figure>

***

{% @harness-feedback/feedback %}
