2013-03-31 6 views
7

Attualmente sto utilizzando il motore di app di Google come back-end per le mie applicazioni mobili. Ho alcuni compiti che non possono essere eseguiti nell'ambiente gae (principalmente il riconoscimento dell'immagine usando opencv). La mia intenzione è di conservare gae e usare AWS per svolgere questi compiti specifici.Utilizzo di servizi Web Amazon come back-end del motore di app di Google

C'è un modo semplice per passare compiti specifici da Gae a AWS? Per esempio. Una coda di attività?

risposta

1

Hai pensato di usare Amazon Simple Queue Service? http://aws.amazon.com/sqs/

Si dovrebbe essere in grado di aggiungere elementi alla coda da Gae utilizzando un clint HTTP standard.

1

Sicuro. AppEngine ha un , dove puoi inserire le tue attività semplicemente implementando DeferredTask. In tale attività è possibile make requests in AWS.

2

Si potrebbe o spingere compiti da GAE verso AWS, o hanno le istanze AWS tirare compiti da GAE.

Se si trasferiscono attività da GAE verso AWS, è possibile utilizzare URLFetch per inviare i dati alle istanze AWS.

Se si preferisce avere le istanze AWS tirare compiti da GAE, si potrebbe avere le istanze GAE mettere i loro compiti nella GAE Pull Queue, e quindi avere le istanze AWS utilizzano il Task Queue REST API di affittare le attività dalla coda.

In entrambi i casi, l'istanza AWS può riportare il risultato dell'elaborazione tramite una semplice richiesta POST ai servlet GAE o mediante l'inserimento di attività tramite il summenzionato REST API che verrà successivamente affittato dalle istanze GAE. Quest'ultimo potrebbe essere utile se si desidera controllare la velocità con cui l'app GAE elabora i risultati.

1

Disclaimer: io sono uno sviluppatore responsabile del progetto AppScale.

Un modo per andare avanti è con AppScale - è un'implementazione open source delle API di App Engine su Amazon EC2 (così come altri cloud). Poiché è open source, è possibile modificare l'AppServer che viene fornito con esso per consentire l'utilizzo di OpenCV. Ciò richiederebbe l'esecuzione dell'app di App Engine in AWS, ma potresti diventare creativo e avere una copia della tua app in esecuzione su Google e inviarlo richieste di accodamento alla versione della tua app in esecuzione in AWS solo quando è necessario usa le librerie OpenCV.

0

La vostra intenzione di mantenere l'applicazione in GAE e utilizzare AWS per eseguire alcuni compiti, che non possono essere eseguite nella GAE, sembra per me uno scenario destra.

mi piacerebbe condividere alcune idee insieme ad alcune risorse per rispondere alla parte principale della tua domanda:

C'è un modo semplice per passare compiti specifici da Gae a AWS? Per esempio. Una coda di attività?

Se è necessario GAE e AWS per eseguire l'attività tutto il tempo (24/7), l'applicazione dipenderà sicuramente dalla pianificazione batch o dalla coda di attività. Sono disponibili da GAE.

Tuttavia, se è possibile organizzare l'attività in GAE ed eseguire su base AWG (ad esempio due volte al giorno meno di un'ora ciascuna), potrebbe non essere necessario usarli finché è possibile gestire il GAE per put the data on Google Cloud Storage (GCS) as public.

Per questo scenario, è necessario impostare AWS EC2 grado per On/Off Schedule e lasciare che l'istanza to run a boot script using cloud-init per raccogliere i dati attraverso il vostro dominio che indicò GCS (c.storage.googleapis.com) in questo modo:

wget -q --read-timeout=0.0 --waitretry=5 --tries=400 \\ 
--background http://your.domain.com/yourfile?q=XXX... 

Con i dati di GCS, AWS può eseguire queste attività specifiche. Lascia che accenda GAE per pulire i dati e riporta i risultati a GCS per essere pronto per essere utilizzato come back-end per le applicazioni mobili.

seguito sono alcune opzioni da considerare:

  • Si dovrebbe notare che non tutti i tipi di EC2 sono adatti a/lo spegnimento programmato. Vi consiglio di usare EC2-VPC/EBS se si desidera impostare AWS EC2 grado per Schedule On/Off
  • Potrebbe essere alcuna necessità di installazione di EC2 se è possibile impostare AWS Lambda per eseguire l'operazione, senza EC2. Il costo è più economico, con un'attività che viene eseguita due volte al giorno in genere meno di 3 secondi con un consumo di memoria fino a 128 MB costa in genere meno di $ 0,0004 USD/mese
  • Come risultato di riorganizzare l'applicazione in GAE e impostare AWG per eseguire alcuni dei seguenti le attività, potrebbe finalmente aumentare i tassi di fatturazione, provare a to optimize the instance class in GAE.