EBS-Snapshots als Backup und High-Availability-Option Einführung in AWS-CLI, Teil 5

Ein automatisiertes und hochfrequentes Erstellen regelmäßiger EBS-Snapshots kan eine einfache und effiziente Backup-Strategie sein, sofern man ältere Snapshots ebenso automatisiert löscht.

Die AWS-CLI für „EC2“ bietet umfassende Funktionen, um Snapshots von EBS Volumes erstellen, verwalten und konvertieren zu können. Neben Backups aus der EC2-Instanz trägt dies auch zu Erhöhung der Ausfallsicherheit bei.

Der AWS-Dienst Amazon Elastic Block Store (EBS) stellt virtuellen Maschinen Volumes für die persistente Blockspeicherung zur Verfügung. Der Clou dabei: jedes Amazon EBS-Volume wird in seiner Availability Zone (AZ) automatisch repliziert und bietet damit von sich aus bereits einen hohen Schutz bei Ausfall von Komponenten der AWS-Infrastruktur.

EBS-Volumes und Snapshots

EBS-Volumes sind zwar ähnlich wie iSCSI- oder FC-LUNs bei einem SAN im Rechenzentrum über das Netzwerk an die AWS-Cloud (VPC) angebunden, bieten aber eine einheitliche Leistung und trotzdem niedrige Latenz. Zudem lassen sich EBS-Volumes binnen Minuten erweitern oder verkleinern.

Legt der Admin in AWS EC2 eine neue virtuelle Maschine (EC2-Instanz) an, deren Boot-Laufwerk ein EBS-Volume ist, wird das Volume innerhalb der AZ automatisch repliziert. Darüber hinaus kann der Admin selbst einen Snapshot jedes Volumes anlegen. Während EBS-Volumes immer an ihre Availability Zone und damit stets an eine spezifische Instanz explizit gebunden sein können, ist der „Scope“ von Snapshots die Region des Nutzers.

Aus dem Snapshot lassen sich dann jederzeit neue Volumes erstellen und an eine Instanz anhängen. Snapshots lassen sich zudem verschlüsseln, sodass ein aus einem verschlüsselten Snapshot erstelltes Volume ebenfalls verschlüsselt ist. Snapshots sind zwar regional gebunden, lassen sich aber per CLI-Kommando bei Bedarf in eine andere Region kopieren.

Snapshots in der CLI

Sämtliche Snapshots eines EBS-Volumes findet der Admin in der AWS Management Console stets im EC2-Dashboard im Abschnitt „Elastic Block Store“ unter „Snapshots“. Per AWS CLI lässt sich das Erstellen von Snapshots sehr komfortabel automatisieren. Legt man z. B. auf diese Weise periodisch neue Snapshots an und löscht ebenfalls automatisiert alte Snapshots (um die Kosten im Griff zu halten), verfügt man über eine einfache und effiziente zusätzliche Sicherheitsstrategie im Hinblick auf die Ausfallsicherheit.

Um einem Snapshot anlegen zu können, benötigt man die Volume-ID des betreffenden Volumes der gewünschten Instanz (Intance-ID). Diese lässt sich wie folgt ermitteln. So liefert z. B. …

aws ec2 describe-instances –query 

 sich wie folgt ermitteln. So liefert z. B. …

aws ec2 describe-instances –query ‚Reservations[*].Instances[*].BlockDeviceMappings[0].Ebs.{VolumeId:VolumeId}‘

… die Volume-IDs des jeweils ersten EBS-Volumes aller Instanzen aller Reservierungen (Reservations[*].Instances[*].BlockDeviceMappings[0]). Alternativ kann man die Volume ID für die gewünschte Instanz und das gewünschte Volume auch in der Management Console nachschauen. Um einen Snapshot anlegen zu können, muss die Instanz gestoppt sein. Dazu benötigen wir die Instanz-ID:

aws ec2 describe-instances –filters ‚Name=tag:Name,Values=Processor‘ –query ‚Reservations[*].Instances[*].InstanceId‘

Das Stoppen der Instanz erfolgt dann mit …

aws ec2 stop-instances –instance-ids <instance-id>

… wobei wir uns in der Abbildung für die zweite der gefundenen Instanzen [1] entscheiden.

Ob das Stoppen erfolgreich war, liefert:

aws ec2 describe-instance-status –instance-id <instance-id>

Nun können wir wie folgt einen Snapshot anlegen:

aws ec2 create-snapshot –volume-id <volume-id>

Ob auch das erfolgreich war, verrät …

aws ec2 describe-snapshots –snapshot-id <snapshot-id>

Danach kann die Instanz neu gestartet werden:

aws ec2 start-instances –instance-ids <instance-id>

Ob das erfolgreich war, verrät wieder …

aws ec2 describe-instance-status –instance-id <instance-id>

Hier weiterlesen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.