Which solution will meet these requirements while providing the FASTEST storage performance?
Create an Amazon Elastic File System (Amazon EFS) file system and a mount target for each subnet that contains nodes in the EKS cluster. Configure the ReplicaSet to mount the file system. Direct the application to store files in the file system. Configure AWS Backup to back up and retain copies of the data for 1 year.
Create an Amazon Elastic Block Store (Amazon EBS) volume. Enable the EBS Multi-Attach feature. Configure the ReplicaSet to mount the EBS volume. Direct the application to store files in the EBS volume. Configure AWS Backup to back up and retain copies of the data for 1 year.
Create an Amazon S3 bucket. Configure the ReplicaSet to mount the S3 bucket. Direct the application to store files in the S3 bucket. Configure S3 Versioning to retain copies of the data. Configure an S3 Lifecycle policy to delete objects after 1 year.
Configure the ReplicaSet to use the storage available on each of the running application pods to store the files locally. Use a third-party tool to back up the EKS cluster for 1 year.
Explanations:
Amazon EFS provides a managed, scalable file storage solution that can be accessed concurrently by multiple pods across different Availability Zones, making it ideal for sharing files among instances. It also supports integration with AWS Backup for long-term retention, meeting the requirement of backing up files for 1 year while providing good performance for small files.
While Amazon EBS can provide high performance, it does not support multi-Attach for read-write access from multiple pods simultaneously unless using specific configurations that may complicate access. EBS is generally better suited for single-instance use, and using it in this way could lead to potential data corruption issues when accessed by multiple pods concurrently. Additionally, backups would require more manual configuration.
Amazon S3 is not a file system and cannot be mounted like EFS or EBS. Although it provides excellent durability and a lifecycle management policy, accessing small files may incur higher latency compared to EFS. Furthermore, using S3 for file storage in this manner can introduce complexities in handling file operations, which are not suited for applications requiring high-speed access to many small files.
Using local storage on each pod limits accessibility to the files, as they cannot be shared among instances effectively. This approach also complicates backup management, as it requires additional tools and processes for backup and restoration. Without a centralized storage solution, there is a risk of data loss if pods are terminated or fail.