9
votes

Serveur FTP utilisant S3 comme stockage

J'essaie de créer un serveur FTP (à l'aide de Windows / Linux / Mac - aucune préoccupation) qui aurait son stockage en tant que stockage Amazon S3. Notez maintenant que S3 ne prend pas en charge FTP Nativement, cela aurait besoin d'une sorte de piratage en tant que solution.

J'ai étudié sur le sujet et j'ai trouvé diverses solutions mais je ne suis pas vraiment convaincu que celles-ci. Comme étant:

  1. Amazon EC2 + TNTDRive
  2. en utilisant la PME
  3. Création d'une instance EC2 et d'installer FTP Server et de montage S3 en tant que système de fichiers local.

    J'essaie de trouver la meilleure solution en termes de sécurité et de flexibilité / de douceur. Quelle solution pensez-vous est le meilleur et comment atteindre ce qui précède?

    Edit 1:

    Je suis très intéressé par la solution suivante. Voici ce que je rassemble: vous pouvez joindre le volume EBS à une instance EC2 et exécuter un serveur FTP sur cette instance. Pointez le serveur FTP sur le volume EBS ci-joint, puis ftpez votre fichier - il sera écrit directement au volume EBS. Vous voudriez utiliser un serveur FTP et un client capable de prendre en charge la reprise des transferts interrompus - par exemple, FileZilla. Suis-je correct quand je suppose tout ce qui précède?

    peut également que quiconque donne la procédure étape par étape sur la manière de réaliser cela?


0 commentaires

3 Réponses :


9
votes

La réponse dépend vraiment.

Tout d'abord, laissez-moi dire que FTP est un protocole terrible et non sécurisé. Assurez-vous d'avoir une bonne raison avant de descendre cet itinéraire. Il y a beaucoup d'outils S3 conviviaux.

Deuxièmement, veuillez noter que aucun de ces solutions sera à l'échelle de S3. Chaque solution a des limites arbitraires sur le nombre de fichiers qu'il peut prendre en charge, quelle que soit la taille des fichiers, et que se passe-t-il si un fichier est mis à jour fréquemment (c'est-à-dire de sauvegarder la mauvaise version). S3 Les systèmes de fichiers semblent soignés au début, mais lorsqu'ils ont des problèmes, ils sont difficiles à résoudre (ils ne peuvent renverser que des messages d'erreur de système de fichiers génériques) et un dur à corriger.

quelques idées:

  • Si vous voulez vraiment que la sauvegarde des nuages, envisagez d'utiliser EBS au lieu de S3. Soit attacher un lecteur EBS à une boîte EC2 ou exécuter passerelle de stockage sur votre boîte locale.

  • Selon les modèles de lecture / écriture et les délais, et la taille des fichiers, etc., vous pouvez utiliser quelque chose comme S3Sync . Dis-il télécharger tous vos fichiers, puis faire une nouvelle synchronisation bidirectionnelle sur S3 périodiquement pour ramasser tous les nouveaux fichiers ou supprimer tous les fichiers supprimés dans S3.

  • Si vous n'avez besoin que de prendre en charge les téléchargements, il suffit d'avoir un travail cron qui télécharge de nouveaux fichiers vers S3 périodiquement, puis les supprime.


5 commentaires

Hey! Merci pour vos solutions. Je suis très intéressé par votre première solution. Voici ce que je rassemble: vous pouvez joindre le volume EBS à une instance EC2 et exécuter un serveur FTP sur cette instance. Pointez le serveur FTP sur le volume EBS ci-joint, puis ftpez votre fichier - il sera écrit directement au volume EBS. Vous voudriez utiliser un serveur FTP et un client capable de prendre en charge la reprise des transferts interrompus - par exemple, FileZilla. Suis-je correct quand je suppose tout ce qui précède?


Oui, avec un lecteur EBS, c'est beaucoup comme un ordinateur "régulier". Pour commencer, utilisez un volume de racine EBS. Les utilisateurs avancés utiliseront un outil de configuration (chef, pupe de marionnette, etc.) pour configurer FTP sur une instance racine éphémère et stocker uniquement les données FTP sur un lecteur EBS. De cette façon, vous n'avez pas besoin de sauvegarder le système d'exploitation.


Si vous avez un accès SSH au serveur, essayez SFTP avec FileZilla, vous n'avez pas d'événement à configurer autre chose et il est en fait plus sûr que FTP.


Oh et je ne sais pas si vous arrêtez l'instance EC2 (mise à niveau pour E.g), les données dans EBS sont parties ou non.


Arrêt et démarrage Ne supprimez pas les données, mais cela changera l'adresse IP. Vous pouvez utiliser EIP pour conserver la constante d'adresse IP ou simplement enregistrer la case dans DNS (I.E. ROIT53) pour conserver le nom de résolution de vos données.



5
votes

Qu'est-ce que vous pourriez essayer. Utilisation d'un peu de: sudo s3fs -o allemande_other, uid = 12345, gid = 12345 mon-godet mon-ftp-répertoire /

puis configurez VSFTPD ou tout autre programme FTP, créez un utilisateur et assignez leur répertoire de base à être celui de My-FTP-répertoire . Chroot cet utilisateur à ce répertoire, puis essayer et ftp à l'aide des informations d'identification des utilisateurs et de l'adresse IP de l'instance EC2 .. Je ne l'ai pas encore essayé, mais après avoir monté un seau en utilisant cette technique dans mon répertoire de fichiers publics à Drupal, c'est Travaillé bien!


1 commentaires

Voir la poste associée avec des détails sur cette approche: Stackoverflow.com/Questtions/23939179/...



2
votes

Vous pouvez également utiliser: FTP 2 Cloud

tandis que FTP 2 Cloud est en version bêta: p>

it's free.
there are no copy limits.
each account has 100MB storage space.
supports FTP to Amazon S3 copy.
supports FTP to Rackspace copy.
you use at your own risk.
it needs your love to get the word out.


1 commentaires

Wow, toujours en version bêta presque deux ans plus tard!