DynamoDB
Base de données NoSQL entièrement gérée par AWS offrant des performances prévisibles avec scalabilité automatique pour les applications modernes.
Mis à jour le 14 janvier 2026
Amazon DynamoDB est une base de données NoSQL clé-valeur et orientée documents, entièrement gérée par AWS. Elle offre des performances en millisecondes à n'importe quelle échelle, avec une disponibilité élevée et une réplication multi-régions intégrée. DynamoDB élimine la complexité opérationnelle liée à la gestion d'une base de données distribuée tout en garantissant une latence constante.
Fondements
- Architecture serverless avec scalabilité automatique horizontale illimitée
- Modèle de données flexible basé sur des tables, items et attributs sans schéma fixe
- Deux modes de capacité : à la demande (pay-per-request) ou provisionné avec auto-scaling
- Cohérence éventuelle par défaut avec option de lecture fortement cohérente
Avantages
- Performance prévisible avec latence inférieure à 10ms même à des millions de requêtes par seconde
- Gestion zéro infrastructure : pas de serveurs à provisionner, patcher ou maintenir
- Haute disponibilité native avec réplication automatique sur trois zones de disponibilité
- Sauvegarde continue et restauration point-in-time sans impact sur les performances
- Sécurité intégrée avec chiffrement au repos, contrôle d'accès granulaire via IAM et VPC endpoints
Exemple concret
import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
import { DynamoDBDocumentClient, PutCommand, GetCommand, QueryCommand } from '@aws-sdk/lib-dynamodb';
const client = new DynamoDBClient({ region: 'eu-west-1' });
const docClient = DynamoDBDocumentClient.from(client);
// Création d'un item
async function createUser(userId: string, email: string) {
const command = new PutCommand({
TableName: 'Users',
Item: {
PK: `USER#${userId}`,
SK: `PROFILE`,
email,
createdAt: new Date().toISOString(),
status: 'active'
}
});
await docClient.send(command);
}
// Lecture d'un item
async function getUser(userId: string) {
const command = new GetCommand({
TableName: 'Users',
Key: { PK: `USER#${userId}`, SK: 'PROFILE' },
ConsistentRead: true
});
const response = await docClient.send(command);
return response.Item;
}
// Query avec index secondaire
async function getUsersByStatus(status: string) {
const command = new QueryCommand({
TableName: 'Users',
IndexName: 'StatusIndex',
KeyConditionExpression: '#status = :status',
ExpressionAttributeNames: { '#status': 'status' },
ExpressionAttributeValues: { ':status': status }
});
const response = await docClient.send(command);
return response.Items;
}Mise en œuvre
- Concevoir le modèle de données en identifiant les patterns d'accès (single-table design recommandé)
- Définir la clé de partition (PK) pour distribuer uniformément les données et la clé de tri (SK) optionnelle
- Créer la table via AWS Console, CLI ou Infrastructure as Code (CloudFormation, Terraform)
- Configurer les index secondaires globaux (GSI) ou locaux (LSI) pour les requêtes alternatives
- Implémenter la logique d'accès avec le SDK AWS approprié en respectant les best practices
- Activer les streams DynamoDB pour capturer les modifications et déclencher des workflows
- Configurer les métriques CloudWatch et alarmes pour monitorer la consommation et la performance
Conseil Pro
Adoptez le pattern Single-Table Design pour réduire les coûts et améliorer les performances. Utilisez des clés composites intelligentes (PK#SK) pour regrouper les données liées et minimiser le nombre de requêtes. Privilégiez le mode On-Demand pour les charges de travail imprévisibles et le mode Provisionné avec auto-scaling pour les workloads stables afin d'optimiser les coûts.
Outils associés
- AWS SDK (JavaScript, Python, Java, .NET) : clients officiels pour interagir avec DynamoDB
- NoSQL Workbench : outil de modélisation visuelle et de test pour DynamoDB
- DynamoDB Streams + Lambda : architecture événementielle pour réagir aux changements
- DAX (DynamoDB Accelerator) : cache en mémoire compatible avec API DynamoDB pour latence microseconde
- PartiQL : langage de requête SQL-like pour DynamoDB
- AWS Data Pipeline / Glue : outils ETL pour migration et transformation de données
DynamoDB représente un choix stratégique pour les entreprises recherchant une base de données hautement performante sans overhead opérationnel. Sa capacité à gérer des millions de requêtes par seconde avec une latence prévisible en fait la solution idéale pour les applications web, mobile, gaming, IoT et ad tech. L'investissement dans la maîtrise de son modèle de données spécifique se traduit par des économies substantielles en infrastructure et en temps de développement.
