Skip to main content

More Info:

Your AWS Elasticsearch Reserved Instances (RIs) should be renewed before expiration in order to get a significant discount on the hourly charges.

Risk Level

Low

Address

Cost Optimisation

Compliance Standards

CBP

Triage and Remediation

  • Remediation

Remediation

Using Console

To remediate the Elasticsearch Reserved Instance Lease Expiration in the next 7 Days issue in AWS, follow these steps:
  1. Log in to the AWS Management Console.
  2. Go to the Elasticsearch service.
  3. Click on the “Reserved Instances” tab.
  4. Look for the instance that has an expiration date in the next 7 days.
  5. Click on the “Modify Reserved Instances” button.
  6. Select the “Extend the reservation” option.
  7. Choose the number of months to extend the reservation for.
  8. Click on the “Purchase” button.
  9. Review the details of the reservation extension and confirm the purchase.
  10. Once the purchase is complete, the Elasticsearch Reserved Instance will be renewed and the expiration date will be extended.
  11. Repeat the steps for any other Elasticsearch Reserved Instances that have an expiration date in the next 7 days.
By following these steps, you will be able to remediate the Elasticsearch Reserved Instance Lease Expiration in the next 7 Days issue in AWS.

To remediate the Elasticsearch Reserved Instance Lease Expiration in the next 7 days in AWS, follow these steps:
  1. Open the AWS CLI on your local machine.
  2. Check the Elasticsearch Reserved Instance Lease Expiration status by running the following command:
    aws es describe-reserved-elasticsearch-instance-offerings --query 'ReservedElasticsearchInstanceOfferings[?Duration == `31536000` && FixedPrice == `0.0` && State == `ACTIVE` && UsagePrice == `0.0` && PaymentOption == `AllUpfront` && OfferingType == `HeavyUtilization` && DurationUnits == `Seconds` && ElasticsearchInstanceType == `m4.large.elasticsearch` && ReservedElasticsearchInstanceOfferingId != `null` && Start == `null` && End != `null` && End < `'"$(date -v+7d +%Y-%m-%dT%H:%M:%SZ)"'`]' --output table
    
    This command will list all Elasticsearch Reserved Instances with lease expiration in the next 7 days.
  3. To remediate this issue, you need to renew the lease of the Elasticsearch Reserved Instances. To do this, run the following command:
    aws es purchase-reserved-elasticsearch-instances-offering --reserved-elasticsearch-instance-offering-id <RESERVED_INSTANCE_ID> --instance-count <INSTANCE_COUNT> --payment-option AllUpfront
    
    Replace <RESERVED_INSTANCE_ID> with the ID of the Elasticsearch Reserved Instance that you want to renew, and <INSTANCE_COUNT> with the number of instances you want to reserve. This command will renew the lease of the Elasticsearch Reserved Instance for another year.
  4. Verify that the Elasticsearch Reserved Instance Lease Expiration status is updated by running the command in step 2 again.
  5. Repeat steps 3-4 for any other Elasticsearch Reserved Instances that have lease expiration in the next 7 days.
By following these steps, you can remediate the Elasticsearch Reserved Instance Lease Expiration issue in AWS using AWS CLI.
To remediate the Elasticsearch Reserved Instance Lease Expiration issue in AWS using Python, you can follow the below steps:
  1. Import the required AWS SDK libraries - Boto3 and Datetime.
import boto3
from datetime import datetime, timedelta
  1. Create a Boto3 client for Elasticsearch.
es_client = boto3.client('es')
  1. Get the list of Elasticsearch reserved instances.
reserved_instances = es_client.describe_reserved_elasticsearch_instances()['ReservedElasticsearchInstances']
  1. Iterate through the reserved instances and check if any of them are expiring in the next 7 days.
for instance in reserved_instances:
    expiration_date = instance['EndTime']
    days_left = (expiration_date - datetime.now()).days
    if days_left <= 7:
        # Remediation steps go here.
  1. If a reserved instance is expiring in the next 7 days, you can take remediation steps such as renewing the reservation or purchasing a new one. For example, to renew the reservation, you can use the purchase_reserved_elasticsearch_instance_offering method.
es_client.purchase_reserved_elasticsearch_instance_offering(
    ReservedElasticsearchInstanceOfferingId='string',
    ReservationName='string',
    InstanceCount=123
)
  1. Once the remediation steps are completed, you can update your ticketing system or log the remediation in a file.
# Update ticketing system or log the remediation.
By following these steps, you can remediate the Elasticsearch Reserved Instance Lease Expiration issue in AWS using Python.

Additional Reading: