Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorporate new OR1 Instance Types into Capacity Plan #137

Closed
chelma opened this issue Dec 7, 2023 · 3 comments
Closed

Incorporate new OR1 Instance Types into Capacity Plan #137

chelma opened this issue Dec 7, 2023 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@chelma
Copy link
Collaborator

chelma commented Dec 7, 2023

Description

AWS OpenSearch recently announced [1] a new instance type (OR1) [2][3] which is cost-optimized for "ingestion-heavy workloads". Given our project ingest lots of data with relatively few queries, updates, etc, the new instance type could offer substantial savings for our users.

We should add the new OR1 types into our capacity plan.

[1] https://aws.amazon.com/about-aws/whats-new/2023/11/or1-amazon-opensearch-service/
[2] https://docs.aws.amazon.com/opensearch-service/latest/developerguide/supported-instance-types.html
[3] https://aws.amazon.com/opensearch-service/pricing/

Acceptance Criteria

  • Incorporate OR1 types into the AIO capacity planning code OR provide an explanation of why they are not optimal
@chelma chelma added the enhancement New feature or request label Dec 7, 2023
@chelma chelma self-assigned this Dec 7, 2023
@chelma
Copy link
Collaborator Author

chelma commented Dec 7, 2023

I took a look at the pricing for the new instances. In our use-case, we want as much EBS storage as possible for as cheaply as possible. The maximum EBS volume size is tied to the instance type/size. So really we want to get the instance type that maximizes EBS volume size while minimizing instance cost, and obeying the OpenSearch constraints on number of instances in the cluster, etc. Taking a look at our existing pricing plan compared to the new instance types:

EXISTING PLAN

instance_type       max_ebs_size_gb  max_nodes   $_per_gb_hr
------------------------------------------------------------
t3.small.search     100              2           $0.00036
t3.medium.search    200              6           $0.00037
r6g.large.search    1024             80          $0.00016
r6g.4xlarge.search  6*1024           80          $0.00022
r6g.12xlarge.search 12*1024          80          $0.00033

NEW INSTANCE TYPES BELOW

instance_type       max_ebs_size_gb  max_nodes   $_per_gb_hr
------------------------------------------------------------
or1.medium.search   400              80          $0.00026
or1.large.search    800              80          $0.00026
or1.xlarge.search   1.5*1024         80          $0.00027
or1.2xlarge.search  3*1024           80          $0.00027
or1.4xlarge.search  6*1024           80          $0.00027
or1.8xlarge.search  12*1024          80          $0.00027
or1.12xlarge.search 18*1024          80          $0.00027
or1.16xlarge.search 24*1024          80          $0.00027

It appears the new instance types only become cost-competitive for large OpenSearch clusters needing more than 480 TB of storage. Switching out the r6g.12xlarge.search type for or1.8xlarge.search does provide some modest cost savings (~18% on that line item).

@chelma
Copy link
Collaborator Author

chelma commented Dec 7, 2023

The OR1 class of instances is graviton-based, which means we need the master nodes for such a cluster to be graviton as well, but our existing capacity planning code already does that for large clusters.

@chelma
Copy link
Collaborator Author

chelma commented Dec 8, 2023

Code merged; acceptance criteria met. Resolving.

@chelma chelma closed this as completed Dec 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant