2012-06-14 34 views
6

EC2 fornisce un meccanismo scalabile on-demand molto conveniente per eseguire processi distribuibili (parallelizzabili) e S3 fornisce un servizio di archiviazione affidabile.Come stabilire una connessione S3-EC2 veloce e affidabile

Stavo cercando di utilizzare i nodi EC2 per un processo di analisi ETL &, questo processo richiede una grande quantità di dati (100 GB - 1 TB) ingeriti molto rapidamente (e più volte in un giorno) e risorse di calcolo adeguate da rendere disponibili per una breve durata.

il disegno qui sopra ha la necessità

  1. Una elevata larghezza di banda/collegamento veloce tra S3 ed EC2.
  2. S3 -> La connessione EC2 dovrebbe anche essere affidabile poiché la pianificazione dell'avvio, dei dati di pompaggio, dei processi in esecuzione e dei nodi di terminazione deve essere eseguita il prima possibile non solo per risparmiare sui costi, ma anche perché gli SLA sono coinvolti.

Ma ancora

  1. L'unico mezzo di tirare fuori i dati S3 sembra essere via http e, quindi, è limitata dalla larghezza di banda di download dei nodi EC2.
  2. Anche l'ingestione di dati va su Internet e quindi può essere abbastanza inaffidabile per rigidi scopi di programmazione che richiedono un buffer adeguato tra i lavori.

In una configurazione di data center privata è possibile impostare una linea dedicata più veloce (ad esempio 10Gbps) tra storage e nodi fisici.

Esistono possibili opzioni alternative/servizi in caso di aws in grado di soddisfare i requisiti di cui sopra.

risposta

5

Dipende, enormemente, da tutti i tipi di cose: quanta attività di rete stanno facendo le altre istanze EC2 sullo stesso server fisico, il particolare nodo S3 che stai colpendo in qualsiasi momento, sia che tu sia nella stessa regione come endpoint S3, ecc.

È possibile eseguire il benchmarking, ma anche in questo caso sarà molto diverso. Ho ottenuto più megabyte al secondo a volte e un paio di centinaia di kilobyte in altre occasioni.

+0

amazon havent pubblicato nulla su questo sul suo sito web, c'è qualche altra fonte per ottenere questa informazione? Esiste un diverso modello di determinazione dei prezzi che consente flessibilità nella scelta delle velocità di trasferimento. – sandeepkunkunuru

+1

Non ci sono tali informazioni, perché ** varia **.L'unico modo per aumentare la velocità della rete AWS consiste nell'utilizzare le istanze del cluster, che ottengono 10 connessioni Gigabit tra i server, o utilizzando le costose istanze dedicate di AWS (http://aws.amazon.com/dedicated-instances/) per controllare gli effetti di altre persone sui tuoi server. – ceejayoz

2

Almeno ho trovato questo recentemente (anche se forse disponibile per qualche volta). Cloudberry offre un modo davvero veloce per trasferire i dati da S3 a EC2. La velocità varia da 40 Mbps a 50 Mbps. Ecco il processo. scarica cb s/w da http://www.cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx. Connetti a S3. una volta che i file sono stati visti, fare clic con il pulsante destro del mouse sul file per copiare e selezionare il weburl. Questo mostrerà il weburl per il file. Copiare l'intero URL e su AWS VM uso wget per ottenere il contenuto url (wget [url copiati]

Sto ancora cercando gli strumenti per copiare dati da VM a S3. S3cmd è lenta e si rompe troppo spesso.

+0

Non sono sicuro che risponda alla domanda, ma che possa essere di aiuto a qualcuno, credo. – rainkinz

+0

questo è interessante ... quello che stai dicendo è che l'accesso diretto ai file S3 attraverso i loro url è molto più veloce (e affidabile) di quello dell'uso di S3cmd. Questo potrebbe avere molto poco a che fare con il cloudberry in sé, ma solo la natura dell'accesso nativo/API vs REST/htttp e il fatto che la velocità di download e upload dei nodi EC2 e S3 non è male la maggior parte del tempo. – sandeepkunkunuru

+0

in realtà s3cmd non ha alcuna interfaccia nativa (è uno strumento open source indipendente separato). In effetti, l'unico protocollo sembra essere http, nel qual caso è difficile capire le differenze tra gli strumenti, ad es. wget, curl, aws sdk, s3cmd ecc. eccetto per la possibilità che uno strumento non sia performante o bug. – sandeepkunkunuru

3

Penso che ci sia una risposta migliore ora.

c'è un servizio separato Data pipeline, che fornisce il trasferimento di dati affidabile tra S3 ed EC2

Problemi correlati