Bonjour,
Je crée actuellement une web application (classique LAMP).
Mes plus grands impératifs pour cette application sont la sécurité (Authenticité, infalsifiable, inaltérabilité, irrévocabilité) et une haute disponibilité (99.999%).
Tous le contenu de ma/mes bases (cf plus bas) sera donc chiffré. les données applicatif avec un mot de passe que je détient et les données utilisateurs par un mélange entre ce mots de passe et leur mot de passe (cela implique donc de ne pouvoir retrouver ni changer leur mot de passe dans le cas d'une perte). Si j'ai bien fais mes recherches MySQL propose un chiffrement AES 128 bits et une possibilité d'AES 256bits en recompilant le serveur. (ce que je compte faire).
Mon premier soucis concerne l'architecture de mes tables/bases.
Je dispose d'environs 500 clients qui taperont un millier de fois en écriture chaque jour dans la base (et plusieurs milliers de fois en lecture) et les données doivent rester accessible dans le temps (jusqu'à 7 ans, après je peux réaliser des backups). Mon application nécessite environs une 20aine de table.
- Est il préférable de mélanger tous les clients dans une seule base ou de faire une base par client? (en terme de performance).
- Comment dimensionner correctement le serveur physique et configurer correcteur le serveur MySQL afin d'obtenir de bonne performance? (j'ai bien sur lu la doc à ce sujet sur la configuration de MySQL mais beaucoup d'option me semble toujours fort obscure, surtout avec les moteurs de stockage et les variables de caches en tout genre).
Ma deuxième question vient sur la réplication.
Je dispose de 3 serveurs distinct (qui ne communique entre eux que via le WAN). le serveur A et B doivent rester identique en temps réel (avec un ipfailover automatique en cas de défaillance). le serveur C est un serveur de dev et de backup. Je souhaite mettre une réplication actif/actif entre le serveur A et B et une réplication master/slave entre B et C.
- Est-ce une bonne idée ou existe-t-il d'autre alternative?
- Est-il possible de chiffrer directement via MySQL les réplications ou dois-je faire passer ces connexions par un VPN? (il n'est pas question de laisser les données passée en claire sur le WAN).
merci d'avoir pris le temps de me lire.
Partager