Which storage solution should a solutions architect recommend to meet these requirements?
Store the data in Amazon S3 Glacier. Update the S3 Glacier vault policy to allow access to the application instances.
Store the data in an Amazon Elastic Block Store (Amazon EBS) volume. Mount the EBS volume on the application instances.
Store the data in an Amazon Elastic File System (Amazon EFS) file system. Mount the file system on the application instances.
Store the data in an Amazon Elastic Block Store (Amazon EBS) Provisioned IOPS volume shared between the application instances.
Explanations:
Amazon S3 Glacier is designed for archival storage with retrieval times ranging from minutes to hours, making it unsuitable for data that needs to be analyzed and modified hourly. Additionally, S3 Glacier does not support frequent read/write operations required by the application instances.
Amazon Elastic Block Store (EBS) volumes can only be attached to a single EC2 instance at a time (with the exception of EBS Multi-Attach for specific volume types), which makes it challenging to share data across multiple instances deployed in different Availability Zones. This would hinder simultaneous data modification and analysis across instances.
Amazon Elastic File System (EFS) is a fully managed file storage service that can be mounted on multiple EC2 instances simultaneously, allowing for concurrent access and modifications across different Availability Zones. It also scales automatically as data is added, making it suitable for the expected growth in storage requirements over the next 6 months.
While Amazon EBS Provisioned IOPS volumes offer high performance and are ideal for I/O-intensive applications, they cannot be shared across multiple EC2 instances at the same time. This would limit access to the volume to only one instance, which is not ideal for a scenario where multiple instances need to read and modify the data concurrently.