2013-06-15 23 views
9

Sto provando a creare un server ftp (usando windows/linux/mac - nessuna preoccupazione) che avrebbe la sua memoria come deposito Amazon S3. Ora nota che S3 non supporta l'FTP in modo nativo, quindi questo avrebbe bisogno di un qualche tipo di hack come soluzione.Server FTP che utilizza S3 come memoria

Ho fatto delle ricerche sull'argomento e ho trovato varie soluzioni, ma non sono davvero convinto di esserlo. Loro che sono:

  1. Amazon EC2 + TntDrive
  2. Utilizzando PMI
  3. Creazione di un'istanza EC2 e l'installazione di server FTP e il montaggio S3 come filesystem locale.

Sto cercando di trovare la migliore soluzione in termini di sicurezza e flessibilità/scorrevolezza. Quale soluzione pensi sia la migliore e come ottenere quanto sopra?

Edit 1:

Sono molto interessato al seguente soluzione. ecco cosa raccolgo: è possibile collegare il volume EBS a un'istanza EC2 ed eseguire un server FTP su tale istanza. Puntare il server FTP sul volume EBS allegato, quindi caricare il file su FTP - verrà scritto direttamente sul volume EBS. Vorresti utilizzare un server FTP e un client in grado di supportare la ripresa di trasferimenti interrotti, ad esempio FileZilla. Sono corretto quando presumo tutto quanto sopra?

Inoltre, qualcuno può dare la procedura passo passo su come ottenere ciò?

risposta

9

La risposta dipende davvero.

Prima di tutto, lasciami dire che FTP è un protocollo terribile e insicuro. Assicurati di avere una buona ragione prima di scendere questa rotta. Ci sono molti strumenti S3 user-friendly.

In secondo luogo, si noti che nessuno di queste soluzioni si ridimensionerà come fa S3. Ogni soluzione ha limiti arbitrari sul numero di file che può supportare, sulla dimensione dei file e su cosa accade se un file viene aggiornato di frequente (ad esempio, potrebbe salvare la versione errata). All'inizio, i filesystem S3 sembrano in ordine, ma quando hanno problemi, sono difficili da risolvere (possono solo restituire i messaggi di errore del filesystem generico) e più difficile da risolvere.

Alcune idee:

  • Se davvero si vuole solo cloud backup, è possibile utilizzare EBS invece di S3. Collega un'unità EBS a una scatola EC2 oppure esegui Storage Gateway nella casella locale.

  • a seconda dei modelli di lettura/scrittura e dei ritardi e della dimensione dei file, ecc., È possibile utilizzare invece qualcosa come s3sync. È necessario scaricare tutti i file, quindi eseguire periodicamente una risincronizzazione bidirezionale su S3 per prelevare nuovi file o eliminare tutti i file eliminati in S3.

  • Se è necessario solo supportare i caricamenti, è sufficiente disporre di un cron job che carichi periodicamente nuovi file su S3, quindi li elimina.

+0

Hey! Grazie per le tue soluzioni. Sono molto interessato alla tua prima soluzione. ecco cosa raccolgo: È possibile collegare il volume EBS a un'istanza EC2 ed eseguire un server FTP su tale istanza. Puntare il server FTP sul volume EBS allegato, quindi caricare il file su FTP - verrà scritto direttamente sul volume EBS. Vorresti utilizzare un server FTP e un client in grado di supportare la ripresa di trasferimenti interrotti, ad esempio FileZilla. Sono corretto quando presumo tutto quanto sopra? – Scooby

+0

Sì, con un'unità EBS, è molto simile a un computer "normale". Per iniziare, utilizza un volume di root EBS. Gli utenti esperti utilizzeranno uno strumento di configurazione (Chef, fantoccio, ecc.) Per configurare l'FTP su un'istanza radice effimera e archiviare solo i dati FTP su un'unità EBS. In questo modo non è necessario eseguire il backup del sistema operativo. – BraveNewCurrency

+0

Se si dispone di accesso ssh al server, provare SFTP con FileZilla, non è necessario configurare altro ed è effettivamente più sicuro dell'FTP. – boh

5

Cosa si può provare ..Utilizzando s3fs, montare il secchio S3 in una directory all'interno del tuo esempio Amazon EC2 - con un po 'di: sudo s3fs -o allow_other,uid=12345,gid=12345 my-bucket my-ftp-directory/

Quindi impostare vsftpd o qualsiasi altro programma FTP, creare un utente e assegnare loro home directory ad essere quella di my-ftp-directory. Chroot questo utente in questa directory, quindi prova e FTP usando le credenziali dell'utente e l'ip dell'istanza EC2. Non l'ho ancora provato, ma dopo aver montato un bucket usando questa tecnica nella mia directory di file pubblici in Drupal, è ha funzionato bene!

+0

Vedi il post correlato con i dettagli su questo approccio: http://stackoverflow.com/questions/23939179/ftp-sftp-access-to-an-amazon-s3-server – jwadsack

2

È anche possibile utilizzare: FTP 2 Cloud

Mentre FTP 2 Cloud è in beta:

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

Wow, ancora in beta quasi due anni dopo! – jotr

Problemi correlati