AWS EBS Volume Modification Limit: How to Fix Observability Storage

AWS EBS Volume Modification Limit: How to Fix Observability Storage

Table of Contents

Introduction

Observability tools rely heavily on persistent storage to retain logs, metrics, and traces over time as we at Kloudfuse call it MELT data. A large part of observability is the storage of this data, which needs to be reliably accessible for analytics, alerting, and troubleshooting.

Companies on average store terabytes of MELT data daily, according to industry benchmarks. Some large organizations ingest and store over 10TB of data per day.

MELT can be archived to several backends such as Amazon S3, Glacier, or AWS EBS. While S3 is ideal for long-term low-cost storage, our architecture with Apache Pinot recommends that our customers use AWS EBS for following reasons:

To properly configure such setups and to avoid hitting AWS limitations during volume adjustments, we've created this quick guide.

What is Amazon Elastic Block Store?

Amazon Elastic Block Store (EBS) is a critical component for storing persistent data in the AWS ecosystem. As applications grow and evolve, the need to resize EBS volumes becomes a common operational task. However, AWS places some constraints around how often and how much you can resize a volume. In this blog, we'll dive into the hard limits you need to be aware of when modifying EBS volumes.

Why Resize an EBS Volume?

Before we jump into the limits, let’s quickly recap why you might resize an EBS volume:

Hard Limit #1: Maximum Volume Size

As referenced in the Amazon EBS Volume Types, different EBS volume types have different maximum sizes:

You can increase the volume size in 1 GiB increments, but you cannot reduce the size of an existing volume. If you need to shrink a volume, you must create a new one and migrate your data.

Hard Limit #2: Resize Frequency

Here’s where things get interesting when you start modifying the EBS volumes. AWS allows a maximum of 8 modification requests per volume within a 6-hour window.

This includes all modification types:

Once you hit this limit, AWS will block additional requests with an error like:

“Volume modification limit exceeded. You can modify this volume up to 8 times in a 6-hour period.”

This is a hard limit and cannot be increased via AWS Support.

Best Practices

To avoid hitting these limits, keep these tips in mind:

What to Do If You Hit the Limit

If you exceed the limit, your only option is to wait until 6 hours have passed since the first of the 8 modifications. In the meantime, here are some steps and strategies you can use:

Step 1: Monitor the volume's performance:

Step 2: Use Snapshots to Create a New Volume:

For EC2 Instances

For EKS (Elastic Kubernetes Service):

kubectl get pvc -n -o jsonpath='{.spec.volumeName}'

apiVersion: v1
kind: PersistentVolume
metadata:
  name: new-ebs-pv
spec:
  capacity:
    storage: 200Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: gp3
  awsElasticBlockStore:
    volumeID: <new-volume-id>
    fsType: ext4

This method helps bypass the modification limit and provides greater control over how the new volume is integrated into your workloads.

Step 3: Plan and batch future modifications:

Step 4: Use EBS Elastic Volumes (if applicable):

Step 5: Consider temporary scaling alternatives:

Step 6: Document your changes:

These steps can help you stay operational and plan effectively even under AWS's strict modification limits.

Final Thoughts

AWS EBS is a powerful and flexible storage option, but understanding its limitations is key to maintaining performance and availability. The 8-request-per-6-hour rule might seem strict, but it encourages thoughtful planning and resource management.

With Kloudfuse, you keep observability fully inside your VPC, no data leaves your environment. We don’t just show you what’s happening; we help you spot architectural weaknesses early, like service bottlenecks or scaling gaps, so you can stay ahead of production incidents.