Convert Elasticsearch 7.9+ Instances to Graviton

Opportunity Name:

Convert Elasticsearch 7.9+ Instances to Graviton

AWS Resource Type:

Amazon OpenSearch Service

Opportunity Description:

Amazon OpenSearch Service offers instances from the AWS Graviton2 instance family. These Graviton2 instances provide up to 38% improvement in indexing throughput, 50% reduction in indexing latency, and 30% improvement in query performance over x86-based instances. Graviton2 instances provide up to 44% price-performance improvement.

This makes Graviton2 a good choice for optimizing the cost of your OpenSearch service, without degrading the performance.

Graviton2 based instances are supported on OpenSearch domains v7.9 onwards. 

Finder Criteria:

  • CloudFix checks for OpenSearch domains that are version 7.9 and above (if your domain is on version 7.x, CloudFix offers a different Fixer to upgrade the domain to 7.9).
  • CloudFix ensures that there is a Graviton equivalent instance type and size. It excludes instances that do not have Graviton equivalent instances such as storage optimized instances, micro, small and medium instance types.
  • CloudFix checks for OpenSearch domains that are running On-Demand, have Cluster Status as green and Automated Snapshots have not failed for the past 24 hours.

Potential savings (range in % on annual basis):

The Graviton2 instances provide up to 44% price/performance improvement over previous generation instances. Migrating OpenSearch domains from Intel processor based instances to Graviton2 based instances provides costs reduction by 9% to 31%.

What happens when the Fixer is executed?

This Graviton upgrade takes in-place using the blue-green deployment model provided by Amazon which upgrades OpenSearch domains to Graviton without downtime. This Fixer replaces the current instance types with the equivalent Graviton2 instance types.

In blue/green deployment, Amazon OpenSearch creates a new environment for domain updates and routing users to the new environment after those updates are complete. The practice introduces no downtime and maintains the original environment in the event that deployment to the new environment is unsuccessful. During the first hour of configuration changes, we will be charged for previous instance types as well as newer instance types. After the first hour, pricing will be done for newer instance types only.

Risks

During the migration, the load on the master node will increase as it will have to manage more nodes (often double). To mitigate this risk, the changes should be performed when there’s less traffic on the OpenSearch domain.

 

Is it possible to roll back once CloudFix implements the fixer?

Manual rollback on your AWS account is possible. One-click rollback via CloudFix for this opportunity is currently not available.

  • AWS can provide support to investigate if the OpenSearch domain has been stuck in the processing state for more than 24 hours
  • If the OpenSearch domain cluster has entered into the "Red" state, the red indices need to be deleted and restored from an automated snapshot. 

Can CloudFix implement the fix automatically once I accept the recommendation?

Yes, for each OpenSearch domain on version 7.9 and later, CloudFix will get the required information and the domain configuration will be updated.

Does this fix require downtime?

No. Moving to Graviton2 for OpenSearch 7.9+ via CloudFix does not require any downtime. It is executed as a zero downtime fix.

Do it yourself (DIY) Instructions:

If you have a CloudFix subscription, CloudFix will execute these automatic cost savings for you. However, if you'd like to do it yourself - please follow these instructions:

Finding cost-saving recommendations with CloudFix is FREE! You'll need a paid subscription only if you'd like CloudFix to execute those recommendations.

 

AWS Console:

  1. Use CloudFix recommendations to identify which OpenSearch domains you want to change the instance type to Graviton2 based processor. Alternatively, you can go through all your OpenSearch domains in the AWS console.
  2. For each OpenSearch domain, click on Actions - Edit cluster configurationedit_cluster_configuration.png
  3. Change the Instance type to Graviton equivalent (see Appendix A)change_instance_type.png
  4. If dedicated master nodes are enabled, confirm that their type will also automatically change to gravitoncheck_master_node_instance_type.png
  5. Click on “Save changes” button
  6. Monitor the progress of changestatus-processing.png
  7. After completion, the Domain status will be Active and Cluster status will be greenstatus-complete.png

AWS CLI

  1. Use CloudFix recommendations to identify which OpenSearch domains you want to change to a Graviton based instance. Alternatively, you can go through all your OpenSearch domains in the AWS console, and identify all domains matching the eligibility criteria.
  2. For each OpenSearch domain, execute the following command,
    1. If dedicated master nodes are enabled:
      aws opensearch update-domain-config --domain-name <DOMAIN-NAME> \
      --cluster-config '{
        "InstanceType": <GRAVITON_INSTANCE_TYPE>,
        "DedicatedMasterType": "<GRAVITON_INSTANCE_TYPE>"
      }'
    2. If dedicated master nodes are not enabled:
      aws opensearch update-domain-config --domain-name <DOMAIN-NAME> \
      --cluster-config '{
        "InstanceType": <GRAVITON_INSTANCE_TYPE>
      }'
  3. To monitor the progress of change, use this command
    aws opensearch describe-domain-change-progress --domain-name <DOMAIN-NAME>

This should give the response as:

{
    "ChangeProgressStatus": {
        "ChangeId": "b5d11556-8bec-4076-9e64-1647393a28f2",
        "StartTime": "2022-06-27T07:42:30.201000+00:00",
        "Status": "PROCESSING",
        "PendingProperties": [
            "ClusterConfig.DedicatedMasterType",
            "ClusterConfig.InstanceType"
        ],
        "CompletedProperties": [],
        "TotalNumberOfStages": 4,
        "ChangeProgressStages": [
            {
                "Name": "Creating a new environment",
                "Status": "IN_PROGRESS",
                "Description": "Preparing resources.",
                "LastUpdated": "2022-06-27T07:43:33.622000+00:00"
            },
            {
                "Name": "Provisioning new nodes",
                "Status": "PENDING",
                "Description": "Provisioning new nodes."
            },
            {
                "Name": "Copying shards to new nodes",
                "Status": "PENDING",
                "Description": "Copying shards to new nodes."
            },
            {
                "Name": "Deleting older resources",
                "Status": "PENDING",
                "Description": "Deleting resources associated with the old environment."
            }
        ]
    }
}

Appendix A

Recommended Graviton instance types for OpenSearch domains:

 

#

ORIGINAL INSTANCE TYPE(S)

RECOMMENDED INSTANCE TYPE

1

m5.large.search | m4.large.search | m3.large.search

m6g.large.search

2

m5.xlarge.search | m4.xlarge.search | m3.xlarge.search

m6g.xlarge.search

3

m5.2xlarge.search | m4.2xlarge.search | m3.2xlarge.search

m6g.2xlarge.search

4

m5.4xlarge.search | m4.4xlarge.search

m6g.4xlarge.search

5

m5.12xlarge.search

m6g.12xlarge.search

6

c5.large.search | c4.large.search

c6g.large.search

7

c5.xlarge.search | c4.xlarge.search

c6g.xlarge.search

8

c5.2xlarge.search | c4.2xlarge.search

c6g.2xlarge.search

9

c5.4xlarge.search | c4.4xlarge.search

c6g.4xlarge.search

10

r5.large.search | r4.large.search | r3.large.search

r6g.large.search

11

r5.xlarge.search | r4.xlarge.search | r3.xlarge.search

r6g.xlarge.search

12

r5.2xlarge.search | r4.2xlarge.search | r3.2xlarge.search

r6g.2xlarge.search

13

r5.4xlarge.search | r4.4xlarge.search | r3.4xlarge.search

r6g.4xlarge.search

14

r4.8xlarge.search | r3.8xlarge.search

r6g.8xlarge.search

15

r5.12xlarge.search

r6g.12xlarge.search

 

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request