aws paris summit 2014 - t3 - architecturer avec aws pour des millions d'utilisateurs

Post on 05-Dec-2014

1.070 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Track 3 - Session 1 - Architecturer avec AWS pour des millions d'utilisateurs

TRANSCRIPT

© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. © 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.

Architecturer avec AWS

pour des millions d’utilisateurs Michaël Garcia, Solutions Architect AWS

@aws_actus #AWSSummit 13 Mai 2014

Agenda

• Notions de base

• D’un utilisateur à des millions

• Témoignage: “A Little Market” – Loic Duvernay

#1 Notions de base

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)

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)

Amazon CloudFront – 51 Point de présence

Compute Storage

AWS Global Infrastructure

Database

App Services

Deployment & Administration

Networking

Compute Storage

AWS Global Infrastructure

Database

App Services

Deployment & Administration

Networking

Amazon

CloudWatch AWS IAM AWS

CloudFormation

Amazon Elastic

Beanstalk AWS

Data

Pipeline

AWS

OpsWorks AWS

CloudTrail

Amazon

EC2

Amazon

EMR Amazon

VPC

Amazon

Route 53 AWS

Direct

Connect

Amazon

Kinesis

AWS Storage

Gateway

Amazon S3

Amazon

Glacier

Amazon

CloudFront

Amazon

DynamoDB

Amazon

RDS

Amazon

ElastiCache

Amazon

RedShift

Amazon

CloudSearch Amazon

SQS

Amazon

SNS

Amazon

Elastic

Transcoder

Amazon SWF Amazon

SES

#2 D’un utilisateur à des millions

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

“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

“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

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

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

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

>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

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

>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

Elastic Load Balancing

Elastic Load

Balancer Met 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

Le scaling horizontal

permettra d’atteindre

10k/100k utilisateurs

>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

Trafic du mois de Novembre Amazon.com

capacité provisionnée

novembre

Trafic du mois de Novembre Amazon.com 76%

24%

capacité provisionnée

novembre

Trafic du mois de Novembre Amazon.com

novembre

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

>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

Comment optimiser cette

infrastructure ?

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

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

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

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

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 )

Amazon ElastiCache

Amazon

ElastiCache

Elastique, découverte

automatique de nœuds

Manage les corrections, détecte et

remplace automatiquement les

nœuds défaillants

Supporte les solutions

Memcached et Redis

>500k+

Availability Zone

Amazon

Route 53 Utilisateur

Amazon S3

Amazon

CloudFront

Availability Zone

Elastic Load

Balancing

Amazon

DynamoDB RDS DB Instance

Read Replica

Web

instance

Web

instance

Web

instance

ElastiCache RDS DB Instance

Read Replica

Web

instance Web

instance

Web

instance

ElastiCache RDS DB Instance

Standby (Multi-AZ) RDS DB Instance

Active (Multi-AZ)

Auto Scaling

>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

Métriques instances Agrégation de métriques

Analyse de logs Performances externes

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

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

+10 Millions ???

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

#3 Témoignage: Loic Duvernay

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.

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)

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 !

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

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

• 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 !

Et plus si affinité

© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. © 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.

Questions ?

© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. © 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.

Architecturer avec AWS

pour des millions d’utilisateurs Michaël Garcia, Solutions Architect AWS

@aws_actus #AWSSummit 13 Mai 2014

Merci !

top related