Verwalten Sie lokale Containeranwendungen, indem Sie Amazon ECS Anywhere mit dem AWS CDK einrichten - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwalten Sie lokale Containeranwendungen, indem Sie Amazon ECS Anywhere mit dem AWS CDK einrichten

Erstellt von Dr. Rahul Sharad Gaikwad (AWS)

amazon-ecs-anywhere-cdkQuellcode-Repository: -samples

Umgebung: PoC oder Pilot

Technologien: Modernisierung; Container und Mikroservices; Hybrid Cloud DevOps; Infrastruktur

Arbeitslast: Alle anderen Workloads

AWS-Services: AWS CDK; Amazon ECS; AWS Identity and Access Management

Übersicht

Amazon ECS Anywhere ist eine Erweiterung des Amazon Elastic Container Service (Amazon ECS). Sie können ECS Anywhere verwenden, um native Amazon ECS-Aufgaben in einer lokalen oder vom Kunden verwalteten Umgebung bereitzustellen. Diese Funktion trägt dazu bei, Kosten zu senken und komplexe lokale Container-Orchestrierung und Betriebsabläufe zu vereinfachen. Sie können ECS Anywhere verwenden, um Containeranwendungen sowohl in lokalen als auch in Cloud-Umgebungen bereitzustellen und auszuführen. Dadurch entfällt für Ihr Team die Notwendigkeit, mehrere Bereiche und Fähigkeiten zu erlernen oder komplexe Software eigenständig zu verwalten.

Dieses Muster veranschaulicht die Schritte zur Einrichtung von ECS Anywhere mithilfe von AWS Cloud Development Kit (AWS CDK) -Stacks.

Voraussetzungen und Einschränkungen

Voraussetzungen

Einschränkungen

Produktversionen

  • AWS CDK Toolkit, Version 2

  • npm Version 7.20.3 oder höher

  • Node.js Version 16.6.1 oder höher

Architektur

Zieltechnologie-Stack

  • AWS CloudFormation

  • AWS-CDK

  • Amazon ECS Anywhere

  • AWS Identity and Access Management (IAM)

Zielarchitektur

Das folgende Diagramm zeigt eine allgemeine Systemarchitektur des ECS Anywhere-Setups unter Verwendung des AWS CDK mit TypeScript, wie in diesem Muster implementiert.

  1. Wenn Sie den AWS-CDK-Stack bereitstellen, erstellt er einen CloudFormation Stack auf AWS.

  2. Der CloudFormation Stack stellt einen Amazon ECS-Cluster und zugehörige AWS-Ressourcen bereit.

  3. Um eine externe Instance bei einem Amazon ECS-Cluster zu registrieren, müssen Sie den AWS Systems Manager Agent (SSM Agent) auf Ihrer virtuellen Maschine (VM) installieren und die VM als von AWS Systems Manager verwaltete Instanz registrieren. 

  4. Sie müssen auch den Amazon ECS-Container-Agenten und Docker auf Ihrer VM installieren, um sie als externe Instance beim Amazon ECS-Cluster zu registrieren.

  5. Wenn die externe Instance registriert und mit dem Amazon ECS-Cluster konfiguriert ist, kann sie mehrere Container auf Ihrer VM ausführen, die als externe Instance registriert ist.

ECS Anywhere-Einrichtung mit dem AWS-CDK mit TypeScript.

Automatisierung und Skalierung

Das mit diesem Muster bereitgestellte GitHub Repository verwendet das AWS-CDK als IaC-Tool (Infrastructure as Code), um die Konfiguration für diese Architektur zu erstellen. AWS CDK hilft Ihnen bei der Orchestrierung von Ressourcen und der Einrichtung von ECS Anywhere.

Tools

Code

Der Quellcode für dieses Muster ist im Amazon ECS Anywhere CDK Samples-Repository verfügbar. GitHub Folgen Sie den Anweisungen im nächsten Abschnitt, um das Repository zu klonen und zu verwenden.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Überprüfen Sie die AWS-CDK-Version.

Überprüfen Sie die Version des AWS CDK Toolkit, indem Sie den folgenden Befehl ausführen:

cdk --version

Für dieses Muster ist AWS CDK Version 2 erforderlich. Wenn Sie eine frühere Version von AWS CDK haben, folgen Sie den Anweisungen in der AWS CDK-Dokumentation, um sie zu aktualisieren.

DevOps Ingenieur

Richten Sie AWS-Anmeldeinformationen ein.

Um Anmeldeinformationen einzurichten, führen Sie den aws configure Befehl aus und folgen Sie den Anweisungen:

$aws configure AWS Access Key ID [None]: <your-access-key-ID> AWS Secret Access Key [None]: <your-secret-access-key> Default region name [None]: <your-Region-name> Default output format [None]:
DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Klonen Sie das AWS-CDK-Code-Repository.

Klonen Sie das GitHub Code-Repository für dieses Muster mit dem folgenden Befehl:

git clone https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples.git
DevOps Ingenieur

Bootstrapping für die Umwelt.

Führen Sie den folgenden Befehl aus, um die CloudFormation AWS-Vorlage für das Konto und die AWS-Region bereitzustellen, die Sie verwenden möchten:

cdk bootstrap <account-number>/<Region>

Weitere Informationen finden Sie unter Bootstrapping in der AWS CDK-Dokumentation.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Installieren Sie Paketabhängigkeiten und kompilieren Sie TypeScript Dateien.

Installieren Sie die Paketabhängigkeiten und kompilieren Sie die TypeScript Dateien, indem Sie die folgenden Befehle ausführen:

$cd amazon-ecs-anywhere-cdk-samples $npm install $npm fund

Mit diesen Befehlen werden alle Pakete aus dem Beispiel-Repository installiert. 

Wichtig: Wenn Sie eine Fehlermeldung über fehlende Pakete erhalten, verwenden Sie einen der folgenden Befehle:

$npm ci

–oder–

$npm install -g @aws-cdk/<package_name>

Weitere Informationen finden Sie unter npm ci und npm install in der npm-Dokumentation.

DevOps Ingenieur

Erstellen Sie das Projekt.

Führen Sie den folgenden Befehl aus, um den Projektcode zu erstellen:

npm run build

Weitere Informationen zum Erstellen und Bereitstellen des Projekts finden Sie unter Ihre erste AWS-CDK-App in der AWS-CDK-Dokumentation.

DevOps Ingenieur

Stellen Sie das Projekt bereit.

Führen Sie den folgenden Befehl aus, um den Projektcode bereitzustellen:

cdk deploy
DevOps Ingenieur

Überprüfen Sie die Erstellung und Ausgabe des Stacks.

Öffnen Sie die CloudFormation AWS-Konsole unter https://console.aws.amazon.com/cloudformation und wählen Sie den EcsAnywhereStack Stack aus. Auf der Registerkarte Ausgaben werden die Befehle angezeigt, die auf Ihrer externen VM ausgeführt werden sollen.

DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Richten Sie Ihre VM mithilfe von Vagrant ein.

Zu Demonstrationszwecken können Sie HashiCorp Vagrant verwenden, um eine VM zu erstellen. Vagrant ist ein Open-Source-Hilfsprogramm für den Aufbau und die Wartung portabler virtueller Softwareentwicklungsumgebungen. Erstellen Sie eine Vagrant-VM, indem Sie den vagrant up Befehl im Stammverzeichnis ausführen, in dem Vagrantfile gespeichert ist. Weitere Informationen finden Sie in der Vagrant-Dokumentation.

DevOps Ingenieur

Registrieren Sie Ihre VM als externe Instanz.

1. Melden Sie sich mit dem vagrant ssh Befehl bei der Vagrant-VM an. Weitere Informationen finden Sie in der Vagrant-Dokumentation.

2. Erstellen Sie einen Aktivierungscode und eine ID, mit denen Sie Ihre VM bei AWS Systems Manager registrieren und Ihre externe Instanz aktivieren können. Die Ausgabe dieses Befehls umfasst ActivationId und ActivationCode Werte: 

aws ssm create-activation --iam-role EcsAnywhereInstanceRole | tee ssm-activation.json

3. Exportieren Sie die Aktivierungs-ID und die Codewerte:

export ACTIVATION_ID=<activation-ID> export ACTIVATION_CODE=<activation-code>

4. Laden Sie das Installationsskript auf Ihren lokalen Server oder Ihre VM herunter:

curl -o "ecs-anywhere-install.sh" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh" && sudo chmod +x ecs-anywhere-install.sh

5. Führen Sie das Installationsskript auf Ihrem lokalen Server oder Ihrer VM aus:

sudo ./ecs-anywhere-install.sh \ --cluster test-ecs-anywhere \ --activation-id $ACTIVATION_ID \ --activation-code $ACTIVATION_CODE \ --region <Region>

Weitere Informationen zum Einrichten und Registrieren Ihrer VM finden Sie unter Registrierung einer externen Instance in einem Cluster in der Amazon ECS-Dokumentation.

DevOps Ingenieur

Überprüfen Sie den Status von ECS Anywhere und der externen VM.

Verwenden Sie die folgenden Befehle, um zu überprüfen, ob Ihre virtuelle Box mit der Amazon ECS-Steuerebene verbunden ist und läuft:

aws ssm describe-instance-information aws ecs list-container-instances --cluster $CLUSTER_NAME
DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Ressourcen bereinigen und löschen.

Nachdem Sie dieses Muster durchgegangen sind, sollten Sie die Ressourcen, die Sie erstellt haben, entfernen, um weitere Kosten zu vermeiden. Führen Sie zum Aufräumen den folgenden Befehl aus:

cdk destroy
DevOps Ingenieur

Zugehörige Ressourcen