📖 Scenario: You are managing a DynamoDB table that stores user session data. To keep the table clean and efficient, you want to automatically delete expired sessions using DynamoDB's Time To Live (TTL) feature.
🎯 Goal: Set up the TTL attribute on the DynamoDB table to automatically remove expired session items.
📋 What You'll Learn
Create a DynamoDB table named UserSessions with a primary key SessionId (string).
Add an attribute called ExpirationTime to store the TTL timestamp.
Enable TTL on the UserSessions table using the ExpirationTime attribute.
💡 Why This Matters
🌍 Real World
Many applications store temporary data like user sessions or cache entries that should be automatically removed after some time to save storage and improve performance.
💼 Career
Understanding TTL setup in DynamoDB is important for backend developers and cloud engineers to manage data lifecycle and optimize database costs.
Progress0 / 4 steps
1
Create the DynamoDB table with primary key
Create a DynamoDB table named UserSessions with a primary key called SessionId of type string.
DynamoDB
Hint
Use the AWS CLI create-table command with --table-name UserSessions and define SessionId as the HASH key of type string.
2
Add the TTL attribute to the table items
Add an attribute called ExpirationTime to your session items. This attribute will store the expiration timestamp as a number (Unix epoch time).
DynamoDB
Hint
Use put-item to add a session with ExpirationTime as a number representing the Unix timestamp.
3
Enable TTL on the table using the ExpirationTime attribute
Enable TTL on the UserSessions table by specifying the TTL attribute name as ExpirationTime using the AWS CLI.
DynamoDB
Hint
Use the AWS CLI update-time-to-live command with Enabled=true and AttributeName=ExpirationTime.
4
Verify TTL configuration on the table
Verify that TTL is enabled on the UserSessions table and the TTL attribute is set to ExpirationTime using the AWS CLI.
DynamoDB
Hint
Use the AWS CLI describe-time-to-live command to check the TTL status on the table.
Practice
(1/5)
1. What is the main purpose of setting a TTL attribute in a DynamoDB table?
easy
A. To increase the read capacity of the table
B. To encrypt data stored in the table
C. To create backups of the table data
D. To automatically delete expired items based on a timestamp
Solution
Step 1: Understand TTL functionality
TTL (Time To Live) is used to automatically remove items after a certain time.
Step 2: Identify the purpose in DynamoDB context
In DynamoDB, TTL deletes expired items to save storage and cost.
Final Answer:
To automatically delete expired items based on a timestamp -> Option D
Quick Check:
TTL = auto-delete expired items [OK]
Hint: TTL means auto-delete expired data by timestamp [OK]
Common Mistakes:
Confusing TTL with encryption
Thinking TTL increases capacity
Assuming TTL creates backups
2. Which of the following is the correct way to specify the TTL attribute in DynamoDB?
easy
A. Set a numeric attribute with Unix epoch time in seconds
B. Set a list attribute with expiration dates
C. Set a boolean attribute to true when item expires
D. Set a string attribute with date format 'YYYY-MM-DD'
Solution
Step 1: Recall TTL attribute data type
DynamoDB TTL requires a numeric attribute representing Unix epoch time in seconds.
Step 2: Evaluate options
Only Set a numeric attribute with Unix epoch time in seconds correctly uses numeric Unix epoch seconds for TTL.
Final Answer:
Set a numeric attribute with Unix epoch time in seconds -> Option A
Quick Check:
TTL attribute = numeric Unix epoch seconds [OK]
Hint: TTL attribute must be numeric Unix epoch seconds [OK]
Common Mistakes:
Using string date formats instead of numeric
Using boolean or list types for TTL
Not enabling TTL on the table after setting attribute
3. Given a DynamoDB item with attribute expireAt set to 1700000000 (Unix epoch seconds), and TTL enabled on expireAt, what happens when the current time is 1700000001?
medium
A. The item remains until manually deleted
B. The item is automatically deleted by DynamoDB
C. The item is archived automatically
D. The item is updated with a new TTL value
Solution
Step 1: Understand TTL expiration behavior
When current time exceeds the TTL timestamp, DynamoDB marks the item for deletion.
Step 2: Apply to given timestamp
Since current time 1700000001 > expireAt 1700000000, item is deleted automatically.
Final Answer:
The item is automatically deleted by DynamoDB -> Option B
Quick Check:
Current time > TTL timestamp = item deleted [OK]
Hint: Item deletes when current time passes TTL timestamp [OK]
Common Mistakes:
Thinking item stays until manual deletion
Assuming item is archived instead of deleted
Believing TTL updates item automatically
4. You set the TTL attribute to a string value like "2024-12-31" and enabled TTL on that attribute. What issue will you face?
medium
A. TTL will not delete expired items because attribute is not numeric
B. DynamoDB will throw a syntax error on enabling TTL
C. Items will be deleted immediately regardless of date
D. TTL will convert string to numeric automatically
Solution
Step 1: Check TTL attribute type requirement
TTL attribute must be numeric Unix epoch seconds, not string.
Step 2: Analyze effect of string value
DynamoDB ignores TTL deletion if attribute is not numeric, so items won't expire.
Final Answer:
TTL will not delete expired items because attribute is not numeric -> Option A
Quick Check:
Non-numeric TTL attribute = no deletion [OK]
Hint: TTL attribute must be numeric; strings cause no deletion [OK]
Common Mistakes:
Expecting DynamoDB to error on TTL enable
Assuming immediate deletion with wrong type
Believing automatic type conversion happens
5. You want to set up TTL on a DynamoDB table to delete items 7 days after creation. Which approach correctly sets the TTL attribute expireAt when inserting an item?
hard
A. Set expireAt to a boolean true after 7 days
B. Set expireAt to current date string plus 7 days in 'YYYY-MM-DD' format
C. Set expireAt to current Unix epoch seconds plus 604800 (7 days in seconds)
D. Set expireAt to the current Unix epoch seconds without adding days
Solution
Step 1: Calculate TTL timestamp for 7 days later
7 days = 7 * 24 * 60 * 60 = 604800 seconds; add to current Unix epoch seconds.
Step 2: Set TTL attribute correctly
Assign expireAt the numeric value of current time + 604800 seconds for proper TTL.
Final Answer:
Set expireAt to current Unix epoch seconds plus 604800 (7 days in seconds) -> Option C
Quick Check:
TTL timestamp = now + 7 days in seconds [OK]
Hint: Add 604800 seconds to now for 7-day TTL [OK]
Common Mistakes:
Using date strings instead of numeric timestamps
Setting TTL to current time without delay
Using boolean or other types for TTL
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.