Background:
A team working on an important internal company application urgently needs help.
Next week, they’ll be showing off the application prototype to key stakeholders, but there’s a small issue. Their main database just went missing.
One of the developers executed a clean up script with the wrong input parameters and the main DynamoDB table was accidentally deleted.
The loss of data from the table is not an issue at this stage. All data can be easily loaded from a static file, for which a helper script exists.
The real issue is the missing table configuration.
There are no deployment scripts or CloudFormation Templates for the table as far as the team is aware of. The person who manually set up the table and who is generally supporting the developers around AWS is on vacation and can’t be reached.
The following were investigated by the team:
- Helper script to load data into the table
- Application code that interacts with the DynamoDB table
- Technical project documentation
Based on the above, a list of requirements for the table set-up was put together.
They need someone to create the table and save the day.
Bounty:
- Points: 10
- Path: Cloud Engineer
Difficulty:
- Level: 1
- Estimated time: 1-3 hours
Deliverables:
- A DynamoDB table configured based on requirements
Prototype description:
A DynamoDB table needs to be created based on the requirements collected by the team.
Once the table is set up, the team will load the sample data and test the application to make sure everything is back to normal.
One of the tests will attempt to write an item into the new DynamoDB table.
Requirements:
General
-
The DynamoDB table name shall start with:
ooggi-r-events-table-
- The DynamoDB table shall be deployed in the Ireland (eu-west-1) region
Table properties
- The table shall be configured with the On-demand, pay per request option
- The table shall be configured with the Standard Infrequent Access (DynamoDB Standard-IA)
- The table shall use the “AWS managed key” encryption option (The key is stored in your account and is managed by AWS Key Management Service (AWS KMS)
Table Structure / Indexes
- Main Table Schema Partition Key – client_id (Data Type: String)
- Main Table Schema Sort Key – timestamp (Data Type: String)
- Local secondary Index #1 – amount (Data Type: String), LSI Name: amount-index
- Local secondary Index #2 – category (Data Type: String), LSI Name: category-index
Testing set-up
- The Test Helper IAM Role stack should be deployed to allow the testing platform to interact with your DynamoDB table.
Artifacts/Resources:
-
To provide the test environment with permissions to interact with your DynamoDB table, the following stack needs to be deployed:
CloudFormation Template Link
*The IAM Role ARN (Amazon Resource Name) should later be provided on the solution submission page.
*The IAM Role ARN can be found in the Outputs section of the deployed CloudFormation stack.
Your mission, if you choose to accept it,
is to deploy a DynamoDB table based on the requirements.