AWS Certified Developer – Associate / Question #580 of 557

Question #580

A company operates a multi-node legacy application on premises that relies on a network-attached storage (NAS) system as a centralized configuration repository for .json files. The company is migrating the application to Amazon EC2 instances and requires a highly available, cost-effective solution for the configuration repository. Which solution BEST meets these requirements?

A

Attach an Amazon EBS volume to one EC2 instance. Configure a file system on the volume and share it via the host OS. Update the application to read/write configuration files from the shared volume.

B

Provision a micro EC2 instance with an instance store volume. Share the volume via the host OS and modify the application to access the shared files.

C

Create an Amazon S3 bucket to host the configuration files. Migrate the .json files to S3 and update the application to use the AWS SDK for reading/writing configurations.

D

Create an Amazon S3 bucket for the repository. Mount the bucket as a local volume on the EC2 instances using a third-party tool. Update the application to read/write files directly from the mounted volume.

Explanation

Option C is correct because:
1. High Availability & Durability: Amazon S3 offers 99.999999999% (11 9s) durability and 99.99% availability, meeting HA requirements.
2. Cost-Effectiveness: S3 charges based on storage used and requests, avoiding over-provisioning costs.
3. Direct Integration: Using the AWS SDK allows the application to read/write configurations natively without relying on OS-level file sharing or third-party tools.

Other options fail because:
- A: EBS volumes are AZ-bound and require manual sharing, creating a single point of failure.
- B: Instance store volumes are ephemeral and unsuitable for persistent storage.
- D: Mounting S3 as a volume introduces eventual consistency issues and third-party dependencies.

Key Points: S3 is ideal for static, frequently accessed files; avoid single-AZ solutions for HA; prefer native SDK integration over filesystem mounts.

Answer

The correct answer is: C