EBS volumes live in one Availability Zone and attach to one node; EFS spans every AZ and many pods. Take the database's node down and watch it get stuck behind its volume, snapshot it and restore it into another AZ, compare binding modes, grow a volume, or press ▶ Guided tour.
On EKS, the EBS CSI driver turns PersistentVolumeClaims into EBS volumes. An EBS volume exists in a single Availability Zone and attaches to one node at a time (ReadWriteOnce), so its PersistentVolume carries node affinity for that zone: a pod using it can only run there, and if that zone's nodes are gone it stays Pending with a volume node affinity conflict. WaitForFirstConsumer delays creating the volume until the pod is scheduled, so the volume lands where the pod is; Immediate creates it in an arbitrary zone first. Snapshots are regional and can be restored into any zone, which is how EBS data moves between zones. EFS, through its CSI driver, is a regional NFS file system with a mount target in each zone, so many pods in all zones can share it (ReadWriteMany). Volumes on a StorageClass with allowVolumeExpansion can grow online.