2010-11-11 15 views
1

J'ai 2 instances EC2, chacune avec leur propre EBS attaché. Assis en face des EC2s est un équilibreur de charge.Synchronisation entre périphériques Amazon EBS

Ces instances exécutent des sites gérés par CMS, où les utilisateurs peuvent télécharger des fichiers.

Quelle serait la meilleure solution au problème d'un fichier téléchargé sur un EBS et l'équilibreur de charge envoyant un visiteur à l'instance EC2 dont l'EBS ne possède pas le fichier? Une sorte de cron qui exécute un rsync?

Suggestions très bienvenu!

Merci

S

Répondre

1

je crois que la meilleure solution serait d'utiliser le stockage partagé unique comme Amazon S3. Il est préférable d'utiliser un plugin pour votre CMS pour stocker les fichiers des utilisateurs sur S3. Mais s'il n'y a pas de plugin, vous pouvez utiliser l'adaptateur Fuse s3fs pour monter le système de fichiers sur les deux instances et configurer votre CMS pour stocker ces fichiers dans le répertoire spécifié.

0

Ou éventuellement, créez une instance EC2 en tant que NFS et partagez ses répertoires avec vos autres instances.

1

il y a plusieurs solutions à ce problème de haut de ma tête, je pense que

  • nfs/samba partagé dir entre les instances
  • svn deploy
  • systèmes de fichiers de cluster - OCFS/GFS
  • nuage gestion comme Capistrano et Trriger un déploiement lorsque vous avez besoin
  • et bien sûr des tâches cron lorsque vous pouvez faire ftp, scp, rsync, s3sync/copie etc
0

Il existe plusieurs solutions pour synchroniser les données EC2 avec ou sans utiliser les volumes EBS. Peut utiliser le service AWS EFS au lieu d'utiliser des volumes EBS.

  1. Le volume EFS peut être partagé entre des instances EC2 dans un VPC et les deux instances auront des données synchronisées sur le chemin de montage sur lequel EFS est monté sur les instances.
  2. Une autre solution utilise le stockage de fichiers Gluster. Cela peut également fonctionner entre des volumes EBS dans différentes régions AWS. Reportez-vous à ce lien: http://sanketdangi.com/post/5601762671/gluster-config-aws-multi-az
  3. Vous pouvez monter le compartiment S3 sur vos instances EC2 à l'aide du fusible S3. Reportez-vous à ce lien: https://github.com/s3fs-fuse/s3fs-fuse/wiki/Fuse-Over-Amazon
  4. Vous pouvez également utiliser "s3 sync" sur les deux volumes ebs. De cette façon, les deux ebs seront synchronisés via S3. Reportez-vous à ce lien: https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html