Wie setze ich den Hostnamen in einer AWS ec2-Instanz auf einen eindeutigen Wert in einer Autoscale-Gruppe?

7

Ich wollte herausfinden, wie der Hostname einer Ec2-Instanz in einer Autoscale-Gruppe am besten festgelegt wird.

Ich suche eine Methode, die ist

  • In der Sysadmin / Devops-Welt allgemein akzeptabel.
  • Bringt keine überraschenden Gesichter, wenn ein neuer Ops es übernimmt.
  • Ermöglicht es mir, einen eindeutigen Hostnamen / Computernamen festzulegen, damit ich bei der Überwachung ein eindeutiges Asset überwachen kann

Der aktuelle Ansatz bestand darin, den gewünschten Hostnamen als Teil der Benutzerdaten in einem Cloud-Init-Format in AWS zu übergeben und Cloud-Init zu verwenden, um den Hostnamen mit der aktuellen Instanz-ID über das Boot-Cmd zu versehen

bootcmd:
    - "HOSTNAME_PREFIX='{{ app_id }}'"
    - "REGION_NAME=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id`"
    - "INSTANCE_ID=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id`"
    - "echo $HOSTNAME_PREFIX'-'$INSTANCE_ID > /etc/hostname; hostname -F /etc/hostname"

Dies ist besonders wichtig, wenn in Gruppen mit automatischer Skalierung Instanzen im laufenden Betrieb erstellt werden können. Obwohl wir die Server als Vieh behandeln sollten, denke ich, dass ein eindeutiger Hostname zumindest dazu beiträgt, die Server besser zu identifizieren. Gibt es einen besseren Ansatz dafür?

MechaStorm
quelle

Antworten:

3

Dies ist mehr oder weniger der Ansatz, den ich verfolge. Es ist sehr sinnvoll, die Instanz-ID in den Hostnamen aufzunehmen, da dies die Identifizierung und Zuordnung laufender Server zu Instanzen in der Webkonsole oder anderen API-Befehlen sehr einfach macht.

Gibt es einen besseren Ansatz dafür?

Was ist Ihre Definition von "besser"?

Wenn es für Sie funktioniert, machen Sie einfach mit. Instanz-IDs sind garantiert innerhalb eines Kontos eindeutig, und Sie haben bereits eine Lösung, die diese IDs verwendet. Es scheint also, als wären Sie fertig.

EEAA
quelle