> ## Documentation Index
> Fetch the complete documentation index at: https://cloudanix.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Elasticsearch Reserved Instance Lease Expiration In The Next 7 Days

### 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

<Tabs>
  <Tab title="Remediation">
    ### Remediation

    <AccordionGroup>
      <Accordion title="Using Console" defaultOpen="true">
        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.

        #
      </Accordion>

      <Accordion title="Using CLI">
        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.
      </Accordion>

      <Accordion title="Using Python">
        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.

        ```python theme={null}
        import boto3
        from datetime import datetime, timedelta
        ```

        2. Create a Boto3 client for Elasticsearch.

        ```python theme={null}
        es_client = boto3.client('es')
        ```

        3. Get the list of Elasticsearch reserved instances.

        ```python theme={null}
        reserved_instances = es_client.describe_reserved_elasticsearch_instances()['ReservedElasticsearchInstances']
        ```

        4. Iterate through the reserved instances and check if any of them are expiring in the next 7 days.

        ```python theme={null}
        for instance in reserved_instances:
            expiration_date = instance['EndTime']
            days_left = (expiration_date - datetime.now()).days
            if days_left <= 7:
                # Remediation steps go here.
        ```

        5. 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.

        ```python theme={null}
        es_client.purchase_reserved_elasticsearch_instance_offering(
            ReservedElasticsearchInstanceOfferingId='string',
            ReservationName='string',
            InstanceCount=123
        )
        ```

        6. Once the remediation steps are completed, you can update your ticketing system or log the remediation in a file.

        ```python theme={null}
        # 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.
      </Accordion>
    </AccordionGroup>
  </Tab>
</Tabs>

### Additional Reading:

* [https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/aes-ri.html](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/aes-ri.html)
