Ett varaktigt moln (EC2 med EBS-boot)

En av de största skillnaderna mellan traditionella servrar och Amazons molnbaserade instanser (EC2) är det faktum att de sistnämnda inte är bestående, utan elastiska. De startas snabbt upp vid behov och det är väldigt enkelt att byta/flytta instanser (om man behöver mer/mindre resurser). Men det innebär även att all data försvinner om en instans stängs ner (termineras).

Det här har man, till viss del, kunnat lösa genom att t ex lägga användardata och konfiguration på bestående lagringslösningar (som S3 och EBS) i kombination med egna anpassade AMI:s (serverkonfigurationer). Men det är inte riktigt lika smidigt som med en traditionell server (som man bara startar upp om den har stängts ner).

Nu finns det dock en riktig lösning till det här: EBS-boot.

EBS-boot innebär att man lagrar en fullständig kopia av sitt operativsystem, med alla programvaror, på en EBS-volym. Utifrån denna volym kan man starta en (eller flera) EC2-instanser, som då omedelbart är rätt uppsatta.

Det går även att stoppa (och starta) EC2-instanser med EBS-boot – till skillnad från vanliga instanser som man bara kan starta om eller terminera – vilket innebär en rejäl besparing (om man inte behöver köra sin instans dygnet runt).

Jag har nyligen konverterat ett flertal vanliga EC2-instanser till EC2-instanser med EBS-boot. För att fler ska få nytta av detta så tänker jag berätta hur man gör. Instruktionerna gäller för Ubuntu i Amazons europeiska moln, men kan enkelt anpassas för de amerikanska molnen.

Du behöver först och främst ha den senaste versionen av EC2 API Tools. Installationen varierar beroende på operativsystem, förslagsvis att du googlar om du känner dig osäker.

1. Börja med att skapa en ny EBS-volym och anslut den till din EC2-instans.

ec2-create-volume --size 10 --region eu-west-1 --availability-zone eu-west-1b
ec2-attach-volume --region eu-west-1 vol-xxxxxxxx --instance i-xxxxxxxx --device /dev/sdh

Logga därefter in på din server.

2. Montera EBS-volymen med ett bestående inlägg i fstab

yes | mkfs -t ext3 /dev/sdh
mkdir /mnt/ebsimage
echo '/dev/sdh /mnt/ebsimage ext3 defaults,noatime 0 0' >> /etc/fstab
mount /mnt/ebsimage

3. Kopiera operativsystemet till EBS-volymen

nohup dd if=/dev/sda1 of=/dev/sdh &

Det här tar tid. Om du vill kontrollera status under tiden kan du göra det på följande sätt:

ps -aef | grep dd
kill -SIGUSR1 $PID

Du kommer att se ett meddelande när det är klart.

4. Avmontera sedan EBS-volymen och logga ut från din server.

umount /mnt/ebsimage

5. Koppla bort EBS-volymen och skapa en snapshot.

ec2-detach-volume --region eu-west-1 vol-xxxxxxxx --instance i-xxxxxxxx
ec2-create-snapshot --region eu-west-1 vol-xxxxxxxx

Notera namnet på din snapshot.

6. Kolla upp din AMI och registrera din EBS-boot.

ec2-describe-images --region eu-west-1 ami-xxxxxxxx

Med de uppgifter du får fram här är det enkelt att registrera din EBS-boot.

ec2-register --region eu-west-1 --snapshot snap-xxxxxxxx --kernel aki-xxxxxxxx --ramdisk ari-xxxxxxxx --description="En valfri beskrivning" --name="ett-bra-namn-med-datum-tex-20091227" --architecture x86_64 --root-device-name /dev/sda1

Så, nu är det bara att starta upp EC2-instanserna med EBS-boot! :)

Tyckte du det här inlägget var intressant? Jag arbetar mycket med Amazons molntjänster, men har inte skrivit något liknande inlägg tidigare. Om det finns ett intresse för liknande inlägg så får du gärna skriva en kort kommentar, så ska jag se till att nörda mig mer här framöver.

Share and Enjoy:
  • Twitter
  • Facebook
  • Google Bookmarks
  • del.icio.us
Det här inlägget postades i Arbete och har märkts med etiketterna , , , , , , , . Bokmärk permalänken.

21 svar till Ett varaktigt moln (EC2 med EBS-boot)

  1. David Svensson skriver:

    Bra Jonathan, sån't här gillar vi!

  2. David Svensson skriver:

    Bra Jonathan, sån't här gillar vi!

  3. Nikke Lindqvist skriver:

    Gillar absolut! Mer nörderier!

  4. Nikke Lindqvist skriver:

    Gillar absolut! Mer nörderier!

  5. Andreas Strömgren skriver:

    Keep it up! Riktigt intressant läsning.

  6. Andreas Strömgren skriver:

    Keep it up! Riktigt intressant läsning.

  7. Martin Levy skriver:

    Tack för en utmärkt guide!
    Fungerar perfekt förutom en liten sak om man skall starta en 32b instans. Architecture skall då sättas till i386 och inte –architecture x86_32 som man kan tro.

    ec2-register –region eu-west-1 –snapshot snap-xxxxxxxx –kernel aki-xxxxxxxx –ramdisk ari-xxxxxxxx –description=”En valfri beskrivning” –name=”ett-bra-namn-med-datum-tex-20091227″ –architecture i386 –root-device-name /dev/sda1

    ps1. Gärna fler aws inlägg.
    ps2. Någon som känner till alternativ till Amazon FPS (som endast kan användas för US registrerade företag)
    mvh
    Martin

  8. Martin Levy skriver:

    Tack för en utmärkt guide!
    Fungerar perfekt förutom en liten sak om man skall starta en 32b instans. Architecture skall då sättas till i386 och inte –architecture x86_32 som man kan tro.

    ec2-register –region eu-west-1 –snapshot snap-xxxxxxxx –kernel aki-xxxxxxxx –ramdisk ari-xxxxxxxx –description=”En valfri beskrivning” –name=”ett-bra-namn-med-datum-tex-20091227″ –architecture i386 –root-device-name /dev/sda1

    ps1. Gärna fler aws inlägg.
    ps2. Någon som känner till alternativ till Amazon FPS (som endast kan användas för US registrerade företag)
    mvh
    Martin

  9. nicclas skriver:

    Vad är den stora skillnaden att spara på EBS stället för traditionelltt på S3? Går det mycket fortare att kopiera till EBS jämfört med till S3? Till S3 kan det ta c:a 30-40 minuter med c:a 10GB, vad tar det till EBS? Går det snabbare att starta upp från EBS än från S3? Är det billigare med EBS än att lagra på S3? Vad är vinsten?

  10. nicclas skriver:

    Vad är den stora skillnaden att spara på EBS stället för traditionelltt på S3? Går det mycket fortare att kopiera till EBS jämfört med till S3? Till S3 kan det ta c:a 30-40 minuter med c:a 10GB, vad tar det till EBS? Går det snabbare att starta upp från EBS än från S3? Är det billigare med EBS än att lagra på S3? Vad är vinsten?

  11. sulo skriver:

    Hastigheten är den främsta fördelen med EBS-boot. Det går faktiskt snabbare att boota från en EBS-volym än att boota från en EC2-instans. EBS är likaså snabbare än S3 (som dock har andra fördelar, som du känner till).

    Kostnadsmässigt sett så är det lite dyrare med EBS. Att lagra en EBS-boot på 10 GB en månad kostar hela $1,5. :)

  12. nicclas skriver:

    Vad är den stora skillnaden att spara på EBS stället för traditionelltt på S3? Går det mycket fortare att kopiera till EBS jämfört med till S3? Till S3 kan det ta c:a 30-40 minuter med c:a 10GB, vad tar det till EBS? Går det snabbare att starta upp från EBS än från S3? Är det billigare med EBS än att lagra på S3? Vad är vinsten?

  13. Emil Isberg skriver:

    Det var klart intressant. :-) Jag undrar varför man behöver montera och avmontera /dev/sdh då det verkar lite överflödigt. Men jag lärde mig absolut om hur man på ett enkelt (men långsamt) sätt för över en ec2-instans till ebs-boot-enhanced-ec2.
    Tackar för inlägget.

  14. Emil Isberg skriver:

    Det var klart intressant. :-) Jag undrar varför man behöver montera och avmontera /dev/sdh då det verkar lite överflödigt. Men jag lärde mig absolut om hur man på ett enkelt (men långsamt) sätt för över en ec2-instans till ebs-boot-enhanced-ec2.
    Tackar för inlägget.

  15. Emil Isberg skriver:

    Det var klart intressant. :-) Jag undrar varför man behöver montera och avmontera /dev/sdh då det verkar lite överflödigt. Men jag lärde mig absolut om hur man på ett enkelt (men långsamt) sätt för över en ec2-instans till ebs-boot-enhanced-ec2.
    Tackar för inlägget.

  16. sulo skriver:

    Roligt att du gillade inlägget! :) Jag monterar EBS-volymen för att skapa ett filsystem, eftersom det saknas från början. Sen kan man givetvis skripta detta om man vill att det ska gå snabbare.

  17. sulo skriver:

    Roligt att du gillade inlägget! :) Jag monterar EBS-volymen för att skapa ett filsystem, eftersom det saknas från början. Sen kan man givetvis skripta detta om man vill att det ska gå snabbare.

  18. sulo skriver:

    Roligt att du gillade inlägget! :) Jag monterar EBS-volymen för att skapa ett filsystem, eftersom det saknas från början. Sen kan man givetvis skripta detta om man vill att det ska gå snabbare.

  19. Sent svar men… Tror faktiskt att Amazon inte bara är annorlunda jämfört med vanliga servrar. Många andra molnleverantörer har sina system som bestående och därmed behöver man inte dessa extratjänster eller jobbet som kommer med det. Dvs virtuella maskiner fungerar i likhet med en vanlig server där du stänger ner – och startar upp på liknande sätt och blir inte av med data.

  20. johan1234 skriver:

    Sent svar men… Tror faktiskt att Amazon inte bara är annorlunda jämfört med vanliga servrar. Många andra molnleverantörer har sina system som bestående och därmed behöver man inte dessa extratjänster eller jobbet som kommer med det. Dvs virtuella maskiner fungerar i likhet med en vanlig server där du stänger ner – och startar upp på liknande sätt och blir inte av med data.

  21. Pingback: Bestående eller inte bestående – det är frågan. « My CityCloud

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *

*

Följande HTML-taggar och attribut är tillåtna: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>