Which solution will meet these requirements with the LEAST operational overhead?
Store the data in an Amazon DynamoDB table. Create a proxy application layer to intercept and process the data that each application requests.
Store the data in an Amazon S3 bucket. Process and transform the data by using S3 Object Lambda before returning the data to the requesting application.
Process the data and store the transformed data in three separate Amazon S3 buckets so that each application has its own custom dataset. Point each application to its respective S3 bucket.
Process the data and store the transformed data in three separate Amazon DynamoDB tables so that each application has its own custom dataset. Point each application to its respective DynamoDB table.
Explanations:
Creating a proxy application layer adds complexity and operational overhead. It requires additional development and maintenance to intercept and process data for each application, which is not ideal when the requirement is to minimize operational overhead.
Using Amazon S3 with S3 Object Lambda allows for on-the-fly data transformation, enabling the removal of PII before the data is returned to the applications that do not require it. This approach minimizes operational overhead by leveraging AWS-managed services without the need for custom applications or separate data storage.
Processing the data and storing it in three separate S3 buckets may meet the requirement, but it involves more operational overhead to manage multiple datasets. Each application would need to handle its own dataset, which can lead to increased complexity and data redundancy.
Similar to option C, using three separate DynamoDB tables introduces unnecessary complexity and operational overhead. Each application managing its own dataset means additional maintenance and possible synchronization issues. Additionally, this option is more costly than using a single storage solution like S3.