<p>You should think about the needs of your applications.</p>
<p>Every storageClass have differents purposes, like the type of storage, the max size, ACLs, CSI, replications...</p>
<p>If you know that your storage can be &quot;cold&quot;, you don't need to take a premium storage.</p>
<p>Every providers has it's own level of classes, check the doc of AWS to find the best option for your needs :)</p>

CC BY-SA 4.0
2021-09-29T07:09:34.033Z
2021-09-29T07:09:34.033Z
benCat
<p>I am using <a href="https://aws.amazon.com/premiumsupport/knowledge-center/eks-persistent-storage/" rel="nofollow noreferrer">aws-ebs-csi-driver</a> on k8s for persistent volumes. I came across a scenario where I can create ebs storage class once and then use it across all the statefulsets deployments to create PersistentVolumeClaims.</p>
<p>I am trying to weigh in advantages and disadvantages of this approach.</p>
<p>Is using one storage class for all statefulsets fine or Should I create storage class for each individual statefulset ?</p>

CC BY-SA 4.0
2021-09-24T14:56:06.537Z
I would say it depends on the needs. Adding this as a comment as I can share my own experience and not give a "right way" answer. We have multiple storages classes(3). We use aws-ebs-csi-driver for specific pods, but our structure requires shared storage for some parts, so we have `fsx.csi.aws.com` as a storage class that has 1.2 TB of shared space. Also in some environments like Test, which are lower, we have used the standard gp2, since the k8s is much smaller and other reasons. So to answer the question, if one class works for you use it, only change/add if you need to.
Kristian Kanchev
<kubernetes><amazon-web-services><eks><persistent-volumes>
Should we deploy Storage Class Per Application OR one Storage Class for All applications?
SRJ
# Should we deploy Storage Class Per Application OR one Storage Class for All applications?

(Asked by: username_0 on 2021-09-24)

I am using [aws-ebs-csi-driver](https://aws.amazon.com/premiumsupport/knowledge-center/eks-persistent-storage/) on k8s for persistent volumes. I came across a scenario where I can create ebs storage class once and then use it across all the statefulsets deployments to create PersistentVolumeClaims.

I am trying to weigh in advantages and disadvantages of this approach.

Is using one storage class for all statefulsets fine or Should I create storage class for each individual statefulset ?

**Tags:** kubernetes, amazon-web-services, eks, persistent-volumes

> **Comments:**
> **username_1**: I would say it depends on the needs. Adding this as a comment as I can share my own experience and not give a "right way" answer. We have multiple storages classes(3). We use aws-ebs-csi-driver for specific pods, but our structure requires shared storage for some parts, so we have `fsx.csi.aws.com` as a storage class that has 1.2 TB of shared space. Also in some environments like Test, which are lower, we have used the standard gp2, since the k8s is much smaller and other reasons. So to answer the question, if one class works for you use it, only change/add if you need to.  

---

## 1 answers

### Answer by username_2 on 2021-09-29. Score: 0

You should think about the needs of your applications.

Every storageClass have differents purposes, like the type of storage, the max size, ACLs, CSI, replications...

If you know that your storage can be "cold", you don't need to take a premium storage.

Every providers has it's own level of classes, check the doc of AWS to find the best option for your needs :)


---

