Blog

Wie bindet man statische private IP-Adressen an Auto-Scaling-Gruppeninstanzen?

Mark van Holsteijn

Mark van Holsteijn

Aktualisiert Oktober 21, 2025
3 Minuten

Was tun, wenn Sie Instanzen in einer Auto-Scaling-Gruppe statische, private IP-Adressen zuweisen möchten und weder einen Load Balancer verwenden noch in einem Startskript die Berechtigung zum Anhängen von Netzwerkschnittstellen erteilen wollen? In diesem Blog stelle ich Ihnen das Dienstprogramm Netzwerkschnittstellen-Manager vor, mit dem Sie Instanzen in einer Auto-Scaling-Gruppe statische IP-Adressen zuweisen können Der Netzwerkschnittstellen-Manager verwaltet die Zuweisung eines Pools von Netzwerkschnittstellen an Instanzen. Wenn die Instanz gestoppt oder beendet wird, wird die Schnittstelle entfernt. Wenn eine neue Instanz gestartet wird, wird ihr eine Schnittstelle aus dem Pool zugewiesen.

Wie funktioniert das?

Der Manager hört auf alle Benachrichtigungen über Zustandsänderungen von EC2-Instanzen. Wenn eine Instanz mit dem Tag network-interface-manager-pool
Der Manager synchronisiert den Status außerdem alle 5 Minuten, um sicherzustellen, dass wir auch bei Fehlern konsistent sind.

Wie verwende ich es?

Sie können den Network Interface Manager in drei einfachen Schritten verwenden:

  1. den network-interface-manager einsetzen
  2. einen Pool von getaggten Netzwerkschnittstellen erstellen
  3. eine automatisch skalierende Gruppe von getaggten Instanzen erstellen

den network-interface-manager einsetzen

Um den Provider einzusetzen, geben Sie ein:

git clone https://github.com/binxio/ec2-network-interface-manager.git
cd ec2-network-interface-manager
aws cloudformation create-stack 
        --capabilities CAPABILITY_IAM 
        --stack-name network-interface-manager 
        --template-body file://./cloudformation/network-interface-manager.yaml

aws cloudformation wait stack-create-complete  --stack-name network-interface-manager

Erstellen Sie einen Pool von Netzwerkschnittstellen

Erstellen Sie einen Pool von Netzwerkschnittstellen und versehen Sie diese mit einem network-interface-manager-pool Wert:

InterfaceAZ1:
  Type: AWS::EC2::NetworkInterface
  Properties:
     Tags:
     - Key: network-interface-manager-pool
       Value: bastion

InterfaceAZ2:
  Type: AWS::EC2::NetworkInterface
  Properties:
     Tags:
     - Key: network-interface-manager-pool
       Value: bastion

Eine Gruppe mit automatischer Skalierung erstellen

Erstellen Sie eine Gruppe zur automatischen Skalierung und wenden Sie das Tag network-interface-manager-pool auf alle Instanzen an:

  AutoScalingGroup:
    Type: AWS::AutoScaling::AutoScalingGroup
    Properties:
      ...
      Tags:
        - Key: network-interface-manager-pool
          Value: bastion
          PropagateAtLaunch: true

Der Manager ordnet Netzwerkschnittstellen automatisch Instanzen zu, die mit network-interface-manager-pool gekennzeichnet sind.
Dies geschieht durch das Abonnieren von EC2-Statusänderungsereignissen. Auf Instanzen ohne das Tag
wird er nichts tun. Der Netzwerkschnittstellen-Manager synchronisiert den Status außerdem alle 5 Minuten, um sicherzustellen, dass wir
schließlich angesichts von Fehlern konsistent sind.Das ist alles. Wenn Sie das alles in Aktion sehen möchten, setzen Sie die Demo ein.

Bereitstellen der Demo

Um die Demo zu installieren, geben Sie ein:

read -p "vpc id: " VPC_ID
read -p "three subnet ids: " SUBNET_IDS
aws cloudformation create-stack 
        --capabilities CAPABILITY_NAMED_IAM 
        --stack-name network-interface-manager-demo 
        --template-body file://./cloudformation/demo-stack.yaml 
        --parameter Name=VPC,Value=$VPC_ID Name=Subnets,Value=$SUBNET_IDS

aws cloudformation wait stack-create-complete  --stack-name network-interface-manager-demo

Vorbehalte

Da Netzwerkschnittstellen an eine Verfügbarkeitszone gebunden sind, sollte auch die Auto-Scaling-Gruppe an
eine einzelne Verfügbarkeitszone gebunden sein. Andernfalls können Instanzen in einer anderen AZ neu geplant werden, wobei die Netzwerkschnittstellen
des Pools ungebunden bleiben.

Alternativen

Es gibt zwei alternative Lösungen, um die gleiche Funktionalität zu erreichen:

  1. einen Netzwerk-Load-Balancer verwenden
  2. eine Netzwerkschnittstelle beim Start der Instanz zuzuordnen. In meinem Anwendungsfall wollte ich weder Geld dafür ausgeben, eine NLB laufen zu lassen, noch der Instanz alle Berechtigungen zum Zuordnen von Netzwerkschnittstellen
    geben.

Fazit

Mit dem Netzwerkschnittstellen-Manager können Sie eine Reihe statischer, privater IP-Adressen dynamisch an Auto Scaling Group-Instanzen binden. Wenn
Sie Elastic IPs binden möchten, können Sie die
EC2 Elastic IP Manager.

Verfasst von

Mark van Holsteijn

Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.

Contact

Let’s discuss how we can support your journey.