Concepts DNS et Route 53
Qu'est-ce que le DNS ?
Le DNS (Domain Name System) est le système qui traduit les noms de domaine (ex: www.example.com) en adresses IP (ex: 192.0.2.1).
┌─────────────────────────────────────────────────────────────┐
│ DNS - LE CONCEPT │
├─────────────────────────────────────────────────────────────┤
│ │
│ Sans DNS : │
│ ────────── │
│ http://192.0.2.44 ← Difficile à retenir ! │
│ http://52.84.133.67 ← Peut changer ! │
│ │
│ Avec DNS : │
│ ───────── │
│ http://www.mon-site.com ← Facile à retenir ! │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Utilisateur Serveur DNS Serveur Web │ │
│ │ │ │ │ │ │
│ │ │ "www.mon-site.com?" │ │ │ │
│ │ ├────────────────────►│ │ │ │
│ │ │ │ │ │ │
│ │ │ "192.0.2.44" │ │ │ │
│ │ │◄────────────────────┤ │ │ │
│ │ │ │ │ │ │
│ │ │ Connexion à 192.0.2.44 │ │ │
│ │ ├────────────────────────────────────►│ │ │
│ │ │ │ │ │ │
│ │ │ Page web │ │ │
│ │ │◄────────────────────────────────────┤ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Hiérarchie DNS
┌─────────────────────────────────────────────────────────────┐
│ HIÉRARCHIE DNS │
├─────────────────────────────────────────────────────────────┤
│ │
│ . (racine) │
│ │ │
│ ┌──────────────┼──────────────┐ │
│ │ │ │ │
│ .com .org .ca │
│ │ │ │ │
│ ┌────┴────┐ │ │ │
│ │ │ │ │ │
│ amazon google wikipedia gc │
│ │ │ │ │ │
│ ┌──┴──┐ ┌──┴──┐ │ │ │
│ www s3 www mail www www │
│ │
│ Exemple complet : │
│ www.amazon.com. │
│ ─── ────── ─── ─ │
│ │ │ │ └── Racine (implicite) │
│ │ │ └────── TLD (Top Level Domain) │
│ │ └─────────── SLD (Second Level Domain) │
│ └──────────────── Sous-domaine │
│ │
└─────────────────────────────────────────────────────────────┘
Types d'Enregistrements DNS
Les Plus Importants
┌─────────────────────────────────────────────────────────────┐
│ TYPES D'ENREGISTREMENTS │
├─────────────────────────────────────────────────────────────┤
│ │
│ TYPE A (Address) │
│ ──────────────── │
│ Associe un nom à une adresse IPv4 │
│ www.example.com → 192.0.2.44 │
│ │
│ TYPE AAAA │
│ ───────── │
│ Associe un nom à une adresse IPv6 │
│ www.example.com → 2001:0db8:85a3::8a2e:0370:7334 │
│ │
│ TYPE CNAME (Canonical Name) │
│ ─────────────────────────── │
│ Crée un alias vers un autre nom │
│ blog.example.com → www.example.com │
│ ⚠️ Ne peut pas être à la racine (example.com) │
│ │
│ TYPE ALIAS (AWS spécifique) │
│ ─────────────────────────── │
│ Comme CNAME mais fonctionne à la racine │
│ example.com → d1234.cloudfront.net │
│ ✅ Peut être à la racine ! │
│ │
│ TYPE MX (Mail Exchange) │
│ ─────────────────────── │
│ Serveurs mail pour le domaine │
│ example.com → mail1.example.com (priorité 10) │
│ │
│ TYPE TXT │
│ ──────── │
│ Texte arbitraire (vérification, SPF, DKIM) │
│ example.com → "v=spf1 include:_spf.google.com ~all" │
│ │
│ TYPE NS (Name Server) │
│ ───────────────────── │
│ Serveurs DNS autoritaires pour la zone │
│ example.com → ns1.route53.aws.com │
│ │
└─────────────────────────────────────────────────────────────┘
Tableau Récapitulatif
| Type | Usage | Exemple |
|---|---|---|
| A | Nom → IPv4 | www → 192.0.2.44 |
| AAAA | Nom → IPv6 | www → 2001:db8::1 |
| CNAME | Alias (pas racine) | blog → www |
| ALIAS | Alias (racine OK) | @ → ALB |
| MX | Serveurs mail | @ → mail.example.com |
| TXT | Texte, vérification | SPF, DKIM |
| NS | Serveurs DNS | @ → ns1.aws.com |
TTL (Time To Live)
┌─────────────────────────────────────────────────────────────┐
│ TTL - TIME TO LIVE │
├─────────────────────────────────────────────────────────────┤
│ │
│ Le TTL indique combien de temps un enregistrement │
│ peut être mis en cache (en secondes) │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Requête DNS Cache local Route 53 │ │
│ │ │ │ │ │ │
│ │ │ Demande │ │ │ │
│ │ ├─────────────►│ │ │ │
│ │ │ │ │ │ │
│ │ │ "Pas en cache, je demande à Route 53" │ │
│ │ │ ├──────────────►│ │ │
│ │ │ │ │ │ │
│ │ │ │ 192.0.2.44 │ │ │
│ │ │ │ TTL: 300 │ │ │
│ │ │ │◄──────────────┤ │ │
│ │ │ │ │ │ │
│ │ │ Stocke 5 min │ │ │ │
│ │ │ │ │ │ │
│ │ │ 192.0.2.44 │ │ │ │
│ │ │◄─────────────┤ │ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ TTL Courts (60-300s) TTL Longs (3600-86400s) │
│ ──────────────────── ───────────────────────── │
│ ✅ Changements rapides ✅ Moins de requêtes DNS │
│ ❌ Plus de requêtes DNS ❌ Propagation lente │
│ Cas : Migration, failover Cas : Sites stables │
│ │
└─────────────────────────────────────────────────────────────┘
Route 53 - Service DNS AWS
Fonctionnalités
┌─────────────────────────────────────────────────────────────┐
│ ROUTE 53 - FONCTIONNALITÉS │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. DNS AUTORITAIRE │
│ ───────────────── │
│ Héberge les zones DNS de vos domaines │
│ 100% SLA de disponibilité │
│ │
│ 2. ENREGISTREMENT DE DOMAINES │
│ ─────────────────────────── │
│ Acheter des domaines (.com, .net, .io...) │
│ Renouvellement automatique │
│ │
│ 3. HEALTH CHECKS │
│ ───────────── │
│ Surveillance des endpoints │
│ Supprime automatiquement les cibles down │
│ │
│ 4. POLITIQUES DE ROUTAGE │
│ ───────────────────── │
│ Simple, Weighted, Latency, Failover, Geolocation... │
│ │
│ 5. ALIAS RECORDS │
│ ───────────── │
│ Pointer vers des ressources AWS sans IP │
│ (ALB, CloudFront, S3, API Gateway...) │
│ │
└─────────────────────────────────────────────────────────────┘
Hosted Zones
┌─────────────────────────────────────────────────────────────┐
│ HOSTED ZONES │
├─────────────────────────────────────────────────────────────┤
│ │
│ Une Hosted Zone = Conteneur pour les enregistrements │
│ d'un domaine │
│ │
│ PUBLIC HOSTED ZONE │
│ ────────────────── │
│ • Accessible depuis Internet │
│ • Pour les sites web publics │
│ • Coût : $0.50/mois par zone │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Hosted Zone : example.com │ │
│ │ │ │
│ │ NS example.com ns-123.awsdns-45.com │ │
│ │ SOA example.com ns-123.awsdns-45.com admin │ │
│ │ A example.com 52.84.133.67 │ │
│ │ A www 52.84.133.67 │ │
│ │ CNAME blog www.example.com │ │
│ │ MX example.com 10 mail.example.com │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ PRIVATE HOSTED ZONE │
│ ─────────────────── │
│ • Accessible uniquement depuis VPC │
│ • Pour les ressources internes │
│ • DNS privé (db.internal, api.internal) │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Hosted Zone : internal.company │ │
│ │ VPCs associés : vpc-prod, vpc-dev │ │
│ │ │ │
│ │ A db.internal.company 10.0.1.50 │ │
│ │ A api.internal.company 10.0.2.30 │ │
│ │ A cache.internal.company 10.0.3.20 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Configuration CLI
# Créer une Hosted Zone publique
aws route53 create-hosted-zone \
--name example.com \
--caller-reference unique-string-1234
# Créer une Hosted Zone privée
aws route53 create-hosted-zone \
--name internal.company \
--caller-reference unique-string-5678 \
--vpc VPCRegion=us-east-1,VPCId=vpc-xxx \
--hosted-zone-config PrivateZone=true
# Créer un enregistrement A
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890ABC \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "www.example.com",
"Type": "A",
"TTL": 300,
"ResourceRecords": [{"Value": "192.0.2.44"}]
}
}]
}'
# Créer un ALIAS vers un ALB
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890ABC \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "example.com",
"Type": "A",
"AliasTarget": {
"HostedZoneId": "Z35SXDOTRQ7X7K",
"DNSName": "my-alb-1234.us-east-1.elb.amazonaws.com",
"EvaluateTargetHealth": true
}
}
}]
}'
Résumé
| Concept | Description |
|---|---|
| DNS | Traduit noms en IPs |
| A Record | Nom → IPv4 |
| CNAME | Alias (pas racine) |
| ALIAS | Alias AWS (racine OK) |
| TTL | Durée de cache |
| Hosted Zone | Conteneur d'enregistrements |
Prochaine section : Politiques de Routage