Amazon EC2, EBS und S3 - Skalierbare Infrastruktur auf Knopfdruck 0

Posted by fwoeck
on Friday, November 28

Amazon hat seine AWS-Produktpalette kürzlich um das EBS (Elastic Block Storage) erweitert und bietet jetzt persistenten hochverfügbaren Speicher im Netz an.

Also Anmelden und ausprobieren: man erhält u.a. ein Schlüsselpaar, ein paar Passphrases und andere Nummern – in etwa 10 Minuten ist man durch.

Es folgt die Konfiguration der ec2-Tools. Das Schlüssel/Cert-Paar, mit dem u.a. später selbst erzeugte Maschinenimages verschlüsselt werden, sollte in ~/.ec2/ landen:

export EC2_PRIVATE_KEY=~/.ec2/pk-O3QHC...Z33KGTK.pem
export EC2_CERT=~/.ec2/cert-O3QHC...Z33KGTK.pem
export EC2_HOME=~/
export EC2_URL="https://eu-west-1.ec2.amazonaws.com" 
export PATH=$PATH:$EC2_HOME/bin
export JAVA_HOME=/usr

Ach ja und ein aktuelles Sun-Java ist nötig. Hier ein paar Beispiele, wie man eine Instanz zum Laufen bringt, sich seine Instanzen ansieht, die Firewall konfiguriert, etc:

ec2-describe-instances

ec2-run-instances ami-89d733e0 -k gsg-keypair

ec2-get-console-output i-0d388b64

ec2-authorize default -p 22

ssh -i id_rsa-gsg-keypair root@ec2-75-101-203-146.compute-1.amazonaws.com

Die Templates für die Instanzen können aus dem öffentlichen Repo oder dem eigenen S3-Bucket kommen.

Beispiel für eine aktive Instanz:

RESERVATION    r-0664c56f    219423224891    default
INSTANCE    i-e105b688    ami-316a8e58    ec2-75-101-240-80.compute-1.amazonaws.com    domU-12-31-39-00-4D-A6.compute-1.internal    running    gsg-keypair    0        m1.small    2008-11-27T07:32:52+0000    us-east-1a    aki-a71cf9ce    ari-a51cf9cc

Da das laufende Image nach dem Shutdown sämtlich gelöscht wird, kann man seine eigene Konfiguration in ein individuelles Image überführen (bundlen). Die Kommandos können alle in der laufenden Maschine erfolgen, falls man die Tools mit Keypair auch dort hinterlegt hat:

ec2-bundle-vol -d /mnt -k ~/.ec2/pk-O3QHC...RZ33KGTK.pem -c ~/.ec2/cert-O3QHC...Z33KGTK.pem -u 21...891 -r i386 -p sat_081127

ec2-upload-bundle -b mine02 -m /mnt/sat_081127.manifest.xml -a 0Z8E...DKR2 -s <aws-secret-access-key>

Das neue Image kann registriert werden und erhält damit eine ID, über die ich es an eine Instanz binden kann:

me@dev71:~$ ec2-register mine02/sat_081127.manifest.xml
IMAGE    ami-3e749057

ec2-deregister ami-3e749057

ec2-delete-bundle -b mine02 -p sat_081127 -a 0Z8E...DKR2 -s <aws-secret-access-key>

Nach der Benutzung, Deregistrieren nicht vergessen!

Neue Instanzen haben immer eine dynamische IP, ich kann aber eine feste IP-Adresse anfordern und einer beliebigen Instanz zuweisen:

ec2-allocate-address
ADDRESS    174.129.251.99

ec2-associate-address -i i-e105b688 174.129.251.99
ADDRESS    174.129.251.99    i-e105b688

Fehlt noch das EBS:

> ec2-create-volume -s 20 -z us-east-1a

> ec2-attach-volume vol-05be5a6c -i i-e105b688 -d /dev/sdh

> yes | mkfs -t ext3 /dev/sdh

> mount /dev/sdh /var -o acl

WICHTIG! Ein EBS-Platz kann (noch?) nicht über die /etc/fstab beim Boot aktiviert werden und auch nicht als geniuner Platz für ein ganzes Image dienen. Zuwiderhandlungen führen zum Absturz beim Boot…

Hier gibt’s die ganze Story:

GettingStartedGuide

Comments

Leave a response

Comment