TTL (Time To Live) helps automatically delete old data from your database after a set time. This keeps your database clean and saves space.
You want to remove expired user sessions automatically.
You need to delete temporary files or logs after a few days.
You want to keep only recent data and remove old records without manual cleanup.
You want to save storage costs by deleting outdated items.
You want to manage data lifecycle without writing extra code.
Syntax
DynamoDB
1. Choose a table in DynamoDB.
2. Pick an attribute (column) to store the expiration time as a Unix timestamp (seconds since 1970-01-01T00:00:00Z).
3. Enable TTL on the table and specify the attribute name.
4. DynamoDB will delete items automatically after the timestamp passes.
The TTL attribute must be a number representing the expiration time in Unix epoch seconds.
DynamoDB deletes expired items within 48 hours after expiration, but not immediately.
Examples
This means the item will expire at the Unix time 1700000000 seconds.
DynamoDB
TTL attribute name: "expireAt"
Value example: 1700000000
This sets up TTL on the table using the chosen attribute.
DynamoDB
Enable TTL using AWS Console:
- Go to DynamoDB table
- Select "Time to Live"
- Enter attribute name "expireAt"
- Click Enable
Sample Program
Here we add an item with an expiration time. DynamoDB will remove it after that time.
DynamoDB
PUT item with TTL attribute:
{
"UserId": "123",
"Name": "Alice",
"expireAt": 1700000000
}
This item will be deleted after the Unix time 1700000000.
OutputSuccess
Important Notes
TTL only works on one attribute per table.
Expired items are deleted automatically but may still appear briefly after expiration.
You cannot recover items deleted by TTL.
Summary
TTL helps auto-delete old data using a timestamp attribute.
Set TTL attribute as Unix epoch seconds and enable TTL on the table.
DynamoDB cleans expired items automatically to save space and cost.
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.