4. Regions
US-WEST (Oregon)
EU-WEST (Ireland)
ASIA PAC (Tokyo)
US-WEST (N. California)
SOUTH AMERICA (Sao Paulo)
US-EAST (Virginia)
AWS GovCloud (US)
ASIA PAC
(Sydney)
ASIA PAC
(Singapore)
CHINA (Beijing)
5. Zones de disponibilités
US-WEST (Oregon)
EU-WEST (Ireland)
ASIA PAC (Tokyo)
US-WEST (N. California)
SOUTH AMERICA (Sao Paulo)
US-EAST (Virginia)
AWS GovCloud (US)
ASIA PAC
(Sydney)
ASIA PAC
(Singapore)
CHINA (Beijing)
10. Jour 1, 1 utilisateur:
• Une seule instance EC2
– Contient toute la stack
• Appli web
• Base de données
• Administration
• etc.
• Une Elastic IP
• Amazon Route 53 pour le
DNS
Instance
EC2
Adresse
Elastic IP
Amazon
Route 53
Utilisateur
11. “On a besoin d’une plus grosse instance”
• Approche la plus simple
• PIOPs
• Instances High I/O
• Instances High memory
• Instances High CPU
• Instances High storage
• Changement de taille d’instance
facile
12. “On a besoin d’une plus grosse instance”
• Approche la plus simple
• PIOPs
• Instances High I/O
• Instances High memory
• Instances High CPU
• Instances High storage
• Changement de taille d’instance
facile
• Possède une limite définie
13. Jour 1, 1 utilisateur:
• Pas de redondance
• Pas de fail-over
• Pas d’élasticité
• Trop ‘d’oeufs dans le même
panier’
EC2
instance
Elastic IP
address
Amazon
Route 53
User
14. Jour 2, >1 utilisateur:
Séparation selon les fonctions:
• Webservers
• Base de données
– Existe-t-il un service managé ?
Instance
Web
Instance
DB
Adresse
Elastic IP
Amazon
Route 53
Utilisateur
15. Amazon RDS
Amazon
Relational
Database
Service
Rentable et évolutif en terme de
capacité
Supporte plusieurs base de données SQL
connues.
Oracle / SQL Server / PostgreSQL / MySQL
Gère les tâches
d’administration de la base de
données
16. >100 utilisateurs:
Séparation selon les fonctions:
• Webservers
• Base de données
– Utilisation de RDS pour gagner du
temps
Instance
Web
Adresse
Elastic IP
Amazon
Route 53
Utilisateur
Instance
RDS Master
17. Pourquoi SQL au démarrage ?
• Technologies établies et matures
• Beaucoup de codes, documents, communautés, livres, outils existants
• Vous n’allez pas atteindre les limites des bases SQL pour le million
d’utilisateur. Vraiment, c’est sûr*.
• Pattern de scalabilité établis
* Sauf si vous manipulez des données à une échelle massive (To); même à ce
moment là votre application aura toujours besoin d’une base SQL
18. >1000 utilisateurs:
Adressons le fail-over et la
redondance:
• Passage en mode RDS multi-
AZ
• Une autre instance Web
– Dans une autre zone de
disponibilité
• Elastic Load Balancing
Instance
Web
Amazon RDS DB instance
Active (Multi-AZ)
Availability Zone Availability Zone
Instance
Web
Amazon RDS DB instance
Standby (Multi-AZ)
Elastic Load
Balancing
Amazon
Route 53
Utilisateur
19. Elastic Load Balancing
Elastic Load
BalancerMet automatiquement à l’échelle sa capacité
afin de répondre au pics de trafic
Supporte des “Health Check” applicatif pour
router le trafic vers les instances en bonne
santé
Route le trafic vers des instances EC2 au niveau
HTTP/HTTPS ou TCP
21. >10ks/100ks
RDS DB Instance
Active (Multi-AZ)
Availability Zone Availability Zone
RDS DB Instance
Standby (Multi-AZ)
Elastic Load
Balancing
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
Web
instance
Web
instance
Web
instance
Web
instance
Web
instance
Web
instance
Web
instance
Web
instance
Amazon
Route 53
User
22. Trafic du mois de Novembre Amazon.com
capacité provisionnée
novembre
23. Trafic du mois de Novembre Amazon.com
76%
24%
capacité provisionnée
novembre
25. Auto Scaling
Auto Scaling
Dimensionnement automatique de vos
instances Amazon EC2
Pas de coût supplémentaire
Remplacement des instances défaillantes afin
d'assurer la disponibilité continue de vos applications
26. >10ks/100ks
RDS DB Instance
Active (Multi-AZ)
Availability Zone Availability Zone
RDS DB Instance
Standby (Multi-AZ)
Elastic Load
Balancing
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
Web
instance
Web
instance
Web
instance
Web
instance
Web
instance
Web
instance
Web
instance
Web
instance
Amazon
Route 53
User
Auto Scaling
28. Optimisation:
• Utiliser du CDN pour cacher
• Mettre le contenu statique sur
Amazon S3
• Cacher des informations avec
Amazon ElastiCache
• Déplacer des tables sur
Amazon DynamoDB
Web
instance
RDS DB Instance
Active (Multi-AZ)
Availability Zone
Elastic Load
Balancing
Amazon S3
Amazon
CloudFront
Amazon
Route 53
User
ElastiCache
Amazon
DynamoDB
29. Amazon S3
Amazon
Simple
Storage
Service
Stockage pour Internet. En ligne nativement, accès HTTPS
Stocker et récupérer n’importe quel volume de
données, n’importe quand, depuis n’importe où
Hautement scalable, rapide, fiable et durable
30. Amazon CloudFront
Amazon
CloudFront
Cacher du contenu depuis Amazon S3
Ou depuis n’importe quel serveur web
Accélérer le contenu statique et dynamique
51 Edge locations
US / Europe /South America / Asia
31. Amazon DynamoDB
Pas de limitation sur la quantité de données
Facile à provisionner, changement de la
capacité d’une table avec une simple requête
Rapide,
Performances élevées et prévisibles
Amazon
DynamoDB
32. Pourquoi NoSQL?
• Besoin de latence très faible
• Données fortement non relationnelles
• Pas de schéma
• Volume de données important (Echelle du To)
• Nombre d’écritures massifs ( k requêtes/sec )
34. >500k+
Availability Zone
Amazon
Route 53
Utilisateur
Amazon S3
Amazon
CloudFront
Availability Zone
Elastic Load
Balancing
Amazon
DynamoDBRDS DB Instance
Read Replica
Web
instance
Web
instance
Web
instance
ElastiCache RDS DB Instance
Read Replica
Web
instance
Web
instance
Web
instance
ElastiCacheRDS DB Instance
Standby (Multi-AZ)
RDS DB Instance
Active (Multi-AZ)
Auto Scaling
35. >500k+
Vous allez rencontrer certaines limites de performances sur
vos composants logiciels:
• Monitoring/Métriques/Logging
– Solutions tierces (3rd party solutions)
• Ecoutez les retours d’expérience
• Maximiser la performance de chaque service/composant
logiciel
37. 1million+
• ”Loose coupling” & “SOA”
– Architecturer sous forme de service
• Utiliser des services AWS
– Accélérer le développement, peu d’administration, redondance et scalabilité
– Email, recherche, file de message, etc…
Amazon
CloudSearch
Amazon
SQS
Amazon
SNS
Amazon
Elastic
Transcoder
Amazon SWF
Amazon
SES
38. 1million+
RDS DB Instance
Active (Multi-AZ)
Availability Zone
Elastic Load
Balancing
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
Web
instance
Web
instance
Web
instance
Web
instance
Amazon
Route 53
User
Amazon S3
Amazon
CloudFront
Amazon
DynamoDB
Amazon SQS
ElastiCache
Worker
instance
Worker
instance
Amazon
CloudWatch
Internal app
instance
Internal app
instance
Amazon SES
Auto Scaling
40. Ce qu’il faut retenir
• Multi-AZ
• Aidez-vous des différents services
– Elastic Load Balancing, Amazon S3, Amazon SNS, Amazon SQS, Amazon
SWF, Amazon SES, etc.
• Redondance à chaque niveau, SOA
• Mettre en cache les données à l’intérieur et à l’extérieur
• Automatiser la gestion et le monitoring
42. Qui est A little Market ?
• Première place de marché française sur le fait-main
– 2 Millions de produits, 80 000 créateurs
– Equipe de 40 personnes
– 4 Millions de visiteurs par mois
– 5000 transactions par jour
• 3 verticaux, 2 zones (France, Italie)
– AlittleMarket.com: première place de marché française dédiée à l'artisanat et au fait main.
– AlittleMercerie.com: première place de marché française dédiée aux loisirs créatifs.
– AlittleEpicerie.com: place de marché dédiée aux produits du terroir.
43. Gestion du cache des images
• Image sur NetApp
– 6 To d’images
– 65 millions d’éléments
– 700 Go / jour (20 To / mois)
– Cache Varnish de 30 Go * 4 (assets) + Cache Nginx persistant /
SlowFS (2 frontaux dédiés)
44. Ce que vous ne voulez pas voir
• Sur une période de 6
mois
– 2 ralentissements (NetApp)
– Varnish vidé de multiples
fois, à chaque problème
sur le front-end
• Solution : CDN !
45. Avantages d’Amazon Cloudfront
• Mise en place rapide
– Création d’un alias au ndd:
galerie-cloudfront.alittlemarket.com => galerie.alittlemarket.com
• Configuration simple
– Création d’une règle simple
46. Avantages d’Amazon Cloudfront
Satisfaction utilisateur
Gain de temps de chargement
Moins de charge sur le Back-End
Gain sur le coût de la bande passante et des
ressources serveurs
47. • Plusieurs astuces à partager
– Versioning de noms (invalidation)
– Centralisation des fichiers (Amazon S3)
– Utiliser un partenaire pour les
statistiques avancées (CloudFront)
– Toujours un ndd à part pour les assets
Tips !