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.

Busungar i Göteborg

Bortsett från gårdagens inlägg, som var skapligt förberett, så bloggade jag inte så mycket förra veckan. Det beror på att jag åkte på en förkylning – ni vet, den manliga och dödliga varianten – som däckade mig nästan hela veckan.

Nu är jag åter på benen. Och dessutom i Göteborg.

Göteborg är en stad som jag har lite svårt att få koll på. Även om det är en rätt så fin stad så är den inte på långa vägar lika vacker som Stockholm. Sen blåser det galet mycket här och jag hittar ingenstans med deras berg-å-dalbana (eller spårvagn, som de kallar den).

Men jag hittar nya saker som jag uppskattar varje gång jag är i Göteborg.

Nu är vi dock inte riktigt i Göteborg, utan på Tjörn. Huset vi bor i ligger nästan en timmes bilfärd bort, i Viks Ödegärde, vid kusten mot det öppna havet. Här ska vi fira jul med min fästmös familj, vilket säkert blir skoj.

Roligast av allt är ändå att se Edith med sin 6-åriga kusin Love. Även om de inte kan leka ihop riktigt än så är släktskapet tydligt. Om Edith brås på Love så kommer vår dotter bli världens busigaste och finaste lilla tjej.

Edith och kusin Love leker

Angående betan för Kaizr

Först och främst, tack så mycket för alla vänliga kommentarer om Kaizr.

Utöver responsen här i min blogg så har jag blivit kontaktad både via e-post och Twitter. Nog för att Kaizr har känts rätt i tiden och kan vara till nytta och glädje för många, men gensvaret har ändå varit fullständigt överväldigande.

Tack som fan för det.

Och nu till det lite mindre roliga.

Kaizr är idag en stängd beta. Innan Nikke golade så var det bara en handfull människor som kände till Kaizr, utöver de som är med i betan. Det beror helt enkelt på att det är ett tag kvar innan vi lanserar det här skarpt.

Även om det vore kul att låta alla som vill få testa Kaizr idag så är det inte möjligt. Med ett fåtal undantag så lägger vi inte upp fler betatestare just nu.

När kommer vi köra igång då?

Tidsuppskattningar hör inte hemma i sådana här sammanhang. Vi har dock en målsättning om att kunna ta emot fler betatestare till januari-februari nästa år. En tid senare, när allt fungerar som det är tänkt, så ska vi lansera skarpt.

Om du vill vara med och testa Kaizr här framöver, vänta och se. Det kommer att märkas när vi kör igång vår öppna beta.