Bilanciamento del carico su Amazon (AWS) e rimanere aggiornato

Vorrei avere un bilanciatore di carico per il mio sito e avere il sito aggiornato. L'equilibratore di carico avrà l'AMI selezionato e spin-up più di quei casi quando l'elaborazione del potere raggiunge un certo livello. Il problema è che l'AMI potrebbe non essere aggiornato in modo da avere alcuni istanze aggiornati e altri no. Quando distribuo posso distribuire a tutte le istanze sotto il bilanciatore di carico senza emettere, ma dovrei sapere each volta che il bilanciatore di carico passa una nuova istanza al fine di triggersre questa distribuzione. Inoltre ci sarebbe un block di tempo quando gli aggiornamenti accadono notevolmente diminuire la sua reattività. Quindi ho trovato un piano.

Il mio piano:

Dopo la distribuzione:

identify one of the instances and get instance id identify volume of instance id ec2-create-snapshot vol-yyyyyyyy get snapshot volume id ec2reg -s snap-zzzzzzzz -a x86 -d Description -n imagename get image id as-delete-launch-config existinglaunchconfig as-create-launch-config mylaunchconfig --image-id IMAGEID --instance-type m1.small --key mykey --group mysecuritygroup as-update-auto-scaling-group --launch-configuration mylaunchconfig 

Prima di andare e spendere molte ore cercando di capirlo e di scripting tutto, di test e di tutto il resto, la mia domanda è: functionrà? C'è un modo migliore? C'è un tutorial o un post che qualcuno sa di che accelererebbe i miei sforzi su questo tema? Grazie.

  • Load Balancing delle connessioni TCP a lunga durata
  • Creare un equilibratore di carico multiplo di linux con due connessioni Internet e una connessione LAN
  • Accesso split Linux (connessioni multiple internet con bilanciamento del carico)
  • Sicurezza dei SSL su AWS ELBs / SSL offloading
  • Opzioni di bilanciamento del carico
  • Balancing del carico di livello DNS
  • Custom Apache ErrorDocument con proxy balancer & RewriteEngine
  • L'accesso ai file interrompe casualmente restituendo 500.19 errori su IIS
  • 2 Solutions collect form web for “Bilanciamento del carico su Amazon (AWS) e rimanere aggiornato”

    Un approccio diverso che può funzionare con AWS è quello di memorizzare il sito / dati / config aggiornato da qualche parte come S3. Configurare l'AMI (o specificare lo script di dati utente appropriato) in modo che quando una nuova istanza venga spuntata, si aggiorna. È ansible impedire l'aggiunta all'equilibratore di carico senza rispondere positivamente al controllo sanitario finché gli aggiornamenti non sono terminati.

    Altrimenti, se hai bisogno di avere le istanze più veloci, allora il tuo approccio sembra ragionevole. Assicurati di sospendere automaticamente la scalatura automatica prima di iniziare a aggiornare le istanze dal vivo e riprendere dopo la nuova configuration del lancio. Non si desidera che le istanze di avvio non siano aggiornate.

    Non sono anche sicuro se è ansible eliminare una configuration di avvio che è in uso da un ELB. Quel passo potrebbe essere necessario attendere dopo che è stato sostituito. Inserisci un aggiornamento qui quando scopri.

    Mi sono imbattuto nello stesso problema di te. Ho un gruppo di scala auto che scala in giù con il traffico e spingo gli aggiornamenti tutto il tempo anche sotto il carico di punta. La mia soluzione è piuttosto più coinvolta in quanto ho bisogno di una zona di stage per poter testare i miei aggiornamenti di codice prima di colpire server live. Al suo livello più semplice è come build / aggiornare i miei server.

    Build base AMI – Questo è l'AMI senza alcun codice sorgente, questo AMI può essere fornito in bundle con applicazioni di terze parti che ti serve o no. Ad esempio, uno dei miei server è necessario AppFabric, IIS, AWSSDK.NET e .NET 4.0. Installare tutti questi strumenti e salvare l'ami. I miei server linux lo faccio in fase di runtime dal momento che è molto più veloce.

    Consente di memorizzare il codice sorgente in S3 o SVN – Quando il server viene avviato, afferra il codice più recente da SVN o S3. Per aggiornare i server esistenti, terminarli una alla volta o in gruppi e il gruppo Auto Scaling inizierà un'altra con il codice più recente.

    A seconda del modo in cui il tuo servizio è tollerante, è ansible implementare anche un server di gestione temporanea come dovrei testare il nuovo codice prima che le richieste inizino a essere inviate. La mia configuration richiede due gruppi di scala automatica. Il primo gruppo è fondamentalmente il mio livello di sicurezza e di authentication che utilizza il codice php. Una volta che la richiesta è stata validationta, viene inoltrata ad un altro gruppo di scala automatica.

    Gli aggiornamenti al livello di authentication della protezione richiedono ancora i passaggi spiegati da me stesso e da Eric Hammond. Tuttavia, cerco di non aggiornare molto questo codice, non contiene alcuna logica aziendale e quasi non cambia mai. Le modifiche a questo livello dovrebbero sempre essere compatibili all'indietro in modo che, se fai gli aggiornamenti, puoi avere in contemporanea 2 versioni dei server online senza problemi.

    Gli aggiornamenti al livello aziendale sono where applicare tutte le modifiche al mio codice per aggiornare le funzionalità, correggere gli errori, ecc. Il trucco è quello di creare un altro gruppo di scalabilità automatica / loadbalancer quando effettui aggiornamenti con i propri server e codice (di nuovo da SVN o S3). Una volta che l'hai provato, aggiorna il server DNS locale (supponendo che tu abbia uno) e il livello di authentication di protezione inizia automaticamente utilizzando i nuovi server.

    Modifica: Hai dimenticato di aggiungere questo link http://www.slideshare.net/AmazonWebServices/aws-architectingjvariafinal . Ha alcune ottime informazioni su come risolvere questo tipo di problema e alcune altre cose che potresti o non sapere di aws.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.