Which solution will meet these requirements with the LEAST operational overhead?
Create Amazon Elastic Block Store (Amazon EBS) volumes in the same Availability Zones where EKS worker nodes are placed. Register the volumes in a StorageClass object on an EKS cluster. Use EBS Multi-Attach to share the data between containers.
Create an Amazon Elastic File System (Amazon EFS) file system. Register the file system in a StorageClass object on an EKS cluster. Use the same file system for all containers.
Create an Amazon Elastic Block Store (Amazon EBS) volume. Register the volume in a StorageClass object on an EKS cluster. Use the same volume for all containers.
Create Amazon Elastic File System (Amazon EFS) file systems in the same Availability Zones where EKS worker nodes are placed. Register the file systems in a StorageClass object on an EKS cluster. Create an AWS Lambda function to synchronize the data between file systems.
Explanations:
Amazon EBS volumes cannot be shared among multiple containers simultaneously, even with EBS Multi-Attach, as this feature only supports specific use cases and configurations. EBS is not designed for concurrent access from multiple pods in the same manner required for this scenario.
Amazon EFS provides a managed, highly available, and scalable file storage solution that can be easily shared among multiple containers. It is designed for concurrent access, making it suitable for applications running in an EKS cluster that require data persistence with minimal operational overhead.
Amazon EBS volumes are not designed for shared access among multiple containers simultaneously. While they can provide persistent storage, using the same volume across multiple pods can lead to data corruption and other issues. EBS is better suited for single-instance use cases.
While Amazon EFS is appropriate for shared storage, the requirement to create multiple EFS file systems and manage synchronization between them increases operational overhead. Additionally, using AWS Lambda for synchronization is unnecessary and complicates the architecture, making it less ideal for the requirements stated.