Wie stellt AWS Proton die Infrastruktur bereit - AWS Proton

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.

Wie stellt AWS Proton die Infrastruktur bereit

AWS Protonkann die Infrastruktur auf eine von mehreren Arten bereitstellen:

  • AWS-managed Provisioning — AWS Proton ruft die Provisioning Engine in Ihrem Namen auf. Diese Methode unterstützt nur AWS CloudFormation Vorlagenpakete. Weitere Informationen finden Sie unter AWS CloudFormation IaC-Dateien.

  • CodeBuildBereitstellung — AWS Proton wird verwendetAWS CodeBuild, um Shell-Befehle auszuführen, die Sie bereitstellen. Ihre Befehle können Eingaben lesen, die die Infrastruktur AWS Proton bereitstellen, und sind dafür verantwortlich, die Infrastruktur bereitzustellen oder sie aufzuheben und Ausgabewerte zu generieren. Ein Vorlagenpaket für diese Methode enthält Ihre Befehle in einer Manifestdatei und alle Programme, Skripts oder anderen Dateien, die diese Befehle möglicherweise benötigen.

    Als Beispiel für die Verwendung von CodeBuild Provisioning können Sie Code hinzufügen, der die AWS Ressourcen AWS Cloud Development Kit (AWS CDK) zur Bereitstellung verwendet, und ein Manifest, das das CDK installiert und Ihren CDK-Code ausführt.

    Weitere Informationen finden Sie unter CodeBuild Bereitstellungsvorlagen-Bundle.

    Anmerkung

    Sie können die CodeBuild Bereitstellung mit Umgebungen und Diensten verwenden. Derzeit können Sie auf diese Weise keine Komponenten bereitstellen.

  • Selbstverwaltete Bereitstellung — sendet eine AWS Proton Pull-Anfrage (PR) an ein von Ihnen bereitgestelltes Repository, in dem Ihr eigenes Infrastrukturbereitstellungssystem den Bereitstellungsprozess durchführt. Diese Methode unterstützt nur Terraform-Vorlagenpakete. Weitere Informationen finden Sie unter Terraform-IaC-Dateien.

AWS Protonbestimmt und legt die Bereitstellungsmethode für jede Umgebung und jeden Dienst separat fest. Wenn Sie eine Umgebung oder einen Dienst erstellen oder aktualisieren, AWS Proton untersucht er das von Ihnen bereitgestellte Vorlagenpaket und bestimmt die im Vorlagenpaket angegebene Bereitstellungsmethode. Auf Umgebungsebene geben Sie die Parameter an, die die Umgebung und ihre potenziellen Dienste möglicherweise für ihre Bereitstellungsmethoden benötigen — AWS Identity and Access Management (IAM) -Rollen, eine Verbindung mit einem Umgebungskonto oder ein Infrastruktur-Repository.

Entwickler, die einen Dienst bereitstellen, haben unabhängig von der Bereitstellungsmethode die gleiche Erfahrung. AWS Proton Entwickler müssen sich der Bereitstellungsmethode nicht bewusst sein und müssen nichts am Servicebereitstellungsprozess ändern. Die Dienstvorlage legt die Bereitstellungsmethode fest, und jede Umgebung, in der ein Entwickler den Service bereitstellt, stellt die erforderlichen Parameter für die Bereitstellung von Serviceinstanzen bereit.

Das folgende Diagramm fasst einige Hauptmerkmale der verschiedenen Bereitstellungsmethoden zusammen. Die Abschnitte, die der Tabelle folgen, enthalten Einzelheiten zu den einzelnen Methoden.

Provisioned Vorlagen Provisioned von Status verfolgt von

AWS-verwaltet

Manifest, Schema, IaC-Datei () CloudFormation

AWS Proton(durchCloudFormation)

AWS Proton(durchCloudFormation)

CodeBuild

Manifest (mit Befehlen), Schema, Befehlsabhängigkeiten (z. B. AWS CDK Code)

AWS Proton(durchCodeBuild)

AWS Proton(Ihre Befehle geben den Status zurück durchCodeBuild)

selbstverwaltet

Manifest, Schema, IaC-Dateien (Terraform)

Dein Code (durch Git-Aktionen)

Ihr Code (AWSper API-Aufruf übergeben)

So funktioniert AWS Managed Provisioning

Wenn eine Umgebung oder ein Dienst AWS verwaltetes Provisioning verwendet, wird die Infrastruktur wie folgt bereitgestellt:

  1. Ein AWS Proton Kunde (ein Administrator oder ein Entwickler) erstellt die AWS Proton Ressource (eine Umgebung oder einen Service). Der Kunde wählt eine Vorlage für die Ressource aus und stellt die erforderlichen Parameter bereit. Weitere Informationen finden Sie im folgenden AbschnittÜberlegungen zur AWS verwalteten Bereitstellung.

  2. AWS Protonrendert eine vollständige AWS CloudFormation Vorlage für die Bereitstellung der Ressource.

  3. AWS Protonruft AWS CloudFormation auf, um mit der Bereitstellung mithilfe der gerenderten Vorlage zu beginnen.

  4. AWS Protonüberwacht kontinuierlich den AWS CloudFormation Einsatz.

  5. Wenn die Bereitstellung abgeschlossen ist, werden im Falle eines Fehlers Fehler AWS Proton gemeldet und im Erfolgsfall werden die Bereitstellungsausgaben wie die Amazon VPC-ID erfasst.

Das folgende Diagramm zeigt, dass die AWS Proton meisten dieser Schritte direkt erledigt werden.

Diagramm zur Veranschaulichung der AWS verwalteten Bereitstellung in AWS Proton

Überlegungen zur AWS verwalteten Bereitstellung

  • Rolle zur Infrastrukturbereitstellung — Wenn eine Umgebung oder eine der darin ausgeführten Dienstinstanzen möglicherweise AWS verwaltetes Provisioning verwendet, muss ein Administrator eine IAM-Rolle konfigurieren (entweder direkt oder als Teil einer AWS Proton Umgebungskontoverbindung). AWS Protonverwendet diese Rolle, um die Infrastruktur dieser AWS verwalteten Bereitstellungsressourcen bereitzustellen. Die Rolle sollte über Berechtigungen verfügen, mit AWS CloudFormation denen sie alle Ressourcen erstellen kann, die in den Vorlagen dieser Ressourcen enthalten sind.

    Weitere Informationen erhalten Sie unter IAM-Rollen und AWS Proton IAMBeispiele für Richtlinien für Servicerollen.

  • Servicebereitstellung — Wenn ein Entwickler eine Dienstinstanz bereitstellt, die AWS verwaltete Bereitstellung für die Umgebung verwendet, AWS Proton verwendet er die dieser Umgebung bereitgestellte Rolle, um die Infrastruktur für die Dienstinstanz bereitzustellen. Entwickler sehen diese Rolle nicht und können sie nicht ändern.

  • Service mit Pipeline — Eine Dienstvorlage, die AWS verwaltete Bereitstellung verwendet, kann eine im AWS CloudFormation YAML-Schema geschriebene Pipeline-Definition enthalten. AWS Protonerstellt die Pipeline auch durch einen AufrufAWS CloudFormation. Die Rolle, die zum Erstellen einer Pipeline AWS Proton verwendet wird, ist von der Rolle für jede einzelne Umgebung getrennt. Diese Rolle wird AWS Proton separat, nur einmal auf AWS Kontoebene, bereitgestellt und dient der Bereitstellung und Verwaltung aller AWS verwalteten Pipelines. Diese Rolle sollte über Berechtigungen zum Erstellen von Pipelines und anderen Ressourcen verfügen, die Ihre Pipelines benötigen.

    Im folgenden Verfahren wird beschrieben, wie Sie die Pipeline anAWS Proton.

    AWS Proton console
    Um die Pipeline-Rolle bereitzustellen
    1. Wählen Sie in der AWS ProtonKonsole im Navigationsbereich Einstellungen > Kontoeinstellungen und dann Konfigurieren aus.

    2. Verwenden Sie den Abschnitt „Mit AWSPipeline verwaltete Rolle“, um eine neue oder bestehende Pipelinerolle für die AWS verwaltete Bereitstellung zu konfigurieren.

    AWS Proton API
    Um die Pipeline-Rolle bereitzustellen
    1. Verwenden Sie die UpdateAccountSettingsAPI-Aktion.

    2. Sie müssen für den Amazon-Ressourcennamen (ARN) Ihrer Pipeline pipelineServiceRoleArn an.

    AWS CLI

    Um die Pipeline-Rolle bereitzustellen

    Führen Sie den Befehl aus:

    $ aws proton update-account-settings \ --pipeline-service-role-arn \ "arn:aws:iam::123456789012:role/my-pipeline-role"

So CodeBuild funktioniert die Bereitstellung

Wenn eine Umgebung oder ein Service CodeBuild Provisioning verwendet, wird die Infrastruktur wie folgt bereitgestellt:

  1. Ein AWS Proton Kunde (ein Administrator oder ein Entwickler) erstellt die AWS Proton Ressource (eine Umgebung oder einen Service). Der Kunde wählt eine Vorlage für die Ressource aus und stellt die erforderlichen Parameter bereit. Weitere Informationen finden Sie im folgenden AbschnittÜberlegungen zur CodeBuild Bereitstellung.

  2. AWS Protonrendert eine Eingabedatei mit Eingabeparameterwerten für die Bereitstellung der Ressource.

  3. AWS Protonruft CodeBuild an, um einen Job zu beginnen. Der CodeBuild Job führt die in der Vorlage angegebenen Customer-Shell-Befehle aus. Diese Befehle stellen die gewünschte Infrastruktur bereit und lesen optional Eingabewerte.

  4. Wenn die Bereitstellung abgeschlossen ist, gibt der Befehl final customer den Bereitstellungsstatus an zurück CodeBuild und ruft die NotifyResourceDeploymentStatusChangeAWS ProtonAPI-Aktion auf, um Ausgaben wie die Amazon VPC-ID bereitzustellen, falls vorhanden.

    Wichtig

    Stellen Sie sicher, dass Ihre Befehle den Bereitstellungsstatus korrekt an zurückgeben CodeBuild und die Ausgaben bereitstellen. Wenn sie dies nicht tun, AWS Proton können sie den Bereitstellungsstatus nicht richtig verfolgen und den Service-Instances keine korrekten Ausgaben bereitstellen.

Das folgende Diagramm veranschaulicht die Schritte, die AWS Proton ausgeführt werden, und die Schritte, die Ihre Befehle innerhalb eines CodeBuild Jobs ausführen.

Diagramm zur Veranschaulichung der CodeBuild basierten Bereitstellung in AWS Proton

Überlegungen zur CodeBuild Bereitstellung

  • Rolle zur Infrastrukturbereitstellung — Wenn eine Umgebung oder eine der darin ausgeführten Dienstinstanzen möglicherweise CodeBuild basiertes Provisioning verwendet, muss ein Administrator eine IAM-Rolle konfigurieren (entweder direkt oder als Teil einer AWS Proton Umgebungskontoverbindung). AWS Protonverwendet diese Rolle, um die Infrastruktur dieser CodeBuild Bereitstellungsressourcen bereitzustellen. Die Rolle sollte über Berechtigungen verfügen, mit denen CodeBuild Sie alle Ressourcen erstellen können, die Ihre Befehle in den Vorlagen dieser Ressourcen bereitstellen.

    Weitere Informationen erhalten Sie unter IAM-Rollen und AWS Proton IAMBeispiele für Richtlinien für Servicerollen.

  • Servicebereitstellung — Wenn ein Entwickler eine Dienstinstanz bereitstellt, die CodeBuild Provisioning für die Umgebung verwendet, AWS Proton verwendet er die dieser Umgebung bereitgestellte Rolle, um die Infrastruktur für die Dienstinstanz bereitzustellen. Entwickler sehen diese Rolle nicht und können sie nicht ändern.

  • Service mit Pipeline — Eine Dienstvorlage, die CodeBuild Provisioning verwendet, kann Befehle zur Bereitstellung einer Pipeline enthalten. AWS Protonerstellt die Pipeline auch durch einen AufrufCodeBuild. Die Rolle, die zum Erstellen einer Pipeline AWS Proton verwendet wird, ist von der Rolle für jede einzelne Umgebung getrennt. Diese Rolle wird AWS Proton separat, nur einmal auf AWS Kontoebene, bereitgestellt und dient der Bereitstellung und Verwaltung aller CodeBuild basierten Pipelines. Diese Rolle sollte über Berechtigungen zum Erstellen von Pipelines und anderen Ressourcen verfügen, die Ihre Pipelines benötigen.

    Im folgenden Verfahren wird beschrieben, wie Sie die Pipeline anAWS Proton.

    AWS Proton console
    Um die Pipeline-Rolle bereitzustellen
    1. Wählen Sie in der AWS ProtonKonsole im Navigationsbereich Einstellungen > Kontoeinstellungen und dann Konfigurieren aus.

    2. Verwenden Sie den Abschnitt Codebuild-Pipeline-Bereitstellungsrolle, um eine neue oder bestehende Pipelinerolle für CodeBuild die Bereitstellung zu konfigurieren.

    AWS Proton API
    Um die Pipeline-Rolle bereitzustellen
    1. Verwenden Sie die UpdateAccountSettingsAPI-Aktion.

    2. Sie müssen für den Amazon-Ressourcennamen (ARN) Ihrer Pipeline pipelineCodebuildRoleArn an.

    AWS CLI

    Um die Pipeline-Rolle bereitzustellen

    Führen Sie den Befehl aus:

    $ aws proton update-account-settings \ --pipeline-codebuild-role-arn \ "arn:aws:iam::123456789012:role/my-pipeline-role"

So funktioniert Selbstverwaltetes Provisioning

Wenn eine Umgebung so konfiguriert ist, dass sie selbstverwaltete Bereitstellung verwendet, wird die Infrastruktur wie folgt bereitgestellt:

  1. Ein AWS Proton Kunde (ein Administrator oder ein Entwickler) erstellt die AWS Proton Ressource (eine Umgebung oder einen Service). Der Kunde wählt eine Vorlage für die Ressource aus und stellt die erforderlichen Parameter bereit. Für eine Umgebung stellt der Kunde auch ein verknüpftes Infrastruktur-Repository bereit. Weitere Informationen finden Sie im folgenden AbschnittÜberlegungen zur Selbstverwalteten Provisioned.

  2. AWS Protonrendert eine vollständige Terraform-Vorlage. Es besteht aus einer oder mehreren Terraform-Dateien, möglicherweise in mehreren Ordnern, und einer .tfvars Variablendatei. AWS Protonschreibt die beim Aufruf zur Ressourcenerstellung bereitgestellten Parameterwerte in diese Variablendatei.

  3. AWS Protonübermittelt eine PR mit der gerenderten Terraform-Vorlage an das Infrastruktur-Repository.

  4. Wenn der Kunde (Administrator oder Entwickler) die PR zusammenführt, veranlasst die Automatisierung des Kunden die Provisioning Engine, mit der Bereitstellung der Infrastruktur unter Verwendung der zusammengeführten Vorlage zu beginnen.

    Anmerkung

    Wenn der Kunde (Administrator oder Entwickler) die PR schließt, AWS Proton erkennt er die PR als abgeschlossen an und markiert die Bereitstellung als storniert.

  5. Wenn die Bereitstellung abgeschlossen ist, ruft die Automatisierung des Kunden die NotifyResourceDeploymentStatusChangeAWS ProtonAPI-Aktion auf, um den Abschluss anzuzeigen, den Status (Erfolg oder Misserfolg) bereitzustellen und gegebenenfalls Ausgaben wie die Amazon VPC-ID bereitzustellen.

    Wichtig

    Stellen Sie sicher, dass Ihr Automatisierungscode AWS Proton mit dem Bereitstellungsstatus und den Ausgaben zurückruft. Ist dies nicht der Fall, wird die Bereitstellung AWS Proton möglicherweise länger als ausstehend angesehen, als sie sollte, und zeigt weiterhin den Status In Bearbeitung an.

Das folgende Diagramm veranschaulicht die Schritte, die AWS Proton ausgeführt werden, und die Schritte, die Ihr eigenes Provisioningsystem ausführt.

Diagramm zur Veranschaulichung der selbstverwalteten Bereitstellung in AWS Proton

Überlegungen zur Selbstverwalteten Provisioned

  • Infrastruktur-Repository — Wenn ein Administrator eine Umgebung für die selbstverwaltete Bereitstellung konfiguriert, muss er ein verknüpftes Infrastruktur-Repository bereitstellen. AWS Protonübermittelt PRs an dieses Repository, um die Infrastruktur der Umgebung und alle dort bereitgestellten Serviceinstanzen bereitzustellen. Die kundeneigene Automatisierungsaktion im Repository sollte eine IAM-Rolle übernehmen und über Berechtigungen zum Erstellen aller Ressourcen verfügen, die Ihre Umgebung und Servicevorlagen enthalten, sowie eine Identität, die das AWS Zielkonto widerspiegelt. Ein Beispiel für eine GitHub Aktion, die eine Rolle annimmt, finden Sie unter Eine Rolle annehmen in der Dokumentation zur Aktion „AWSAnmeldeinformationen konfigurieren“ für GitHub Aktionen.

  • Berechtigungen — Ihr Bereitstellungscode muss sich bei Bedarf mit einem Konto authentifizieren (z. B. bei einem AWS Konto authentifizieren) und eine Autorisierung für die Ressourcenbereitstellung bereitstellen (z. B. eine Rolle angeben).

  • Servicebereitstellung — Wenn ein Entwickler eine Serviceinstanz bereitstellt, die selbstverwaltete Bereitstellung für die Umgebung verwendet, AWS Proton übermittelt er eine PR an das Repository, das der Umgebung zugeordnet ist, um die Infrastruktur für die Dienstinstanz bereitzustellen. Entwickler sehen das Repository nicht und können es nicht ändern.

    Anmerkung

    Entwickler, die Dienste erstellen, verwenden unabhängig von der Bereitstellungsmethode denselben Prozess, und der Unterschied wird von ihnen abstrahiert. Bei selbstverwalteter Bereitstellung reagieren Entwickler jedoch möglicherweise langsamer, da sie warten müssen, bis jemand (der möglicherweise nicht sie selbst ist) die PR im Infrastruktur-Repository zusammenführt, bevor die Bereitstellung beginnen kann.

  • Service mit Pipeline — Eine Dienstvorlage für eine Umgebung mit selbstverwalteter Bereitstellung kann eine in Terraform HCL geschriebene Pipeline-Definition (z. B. eine AWS CodePipeline Pipeline) enthalten. Um die Bereitstellung dieser Pipelines AWS Proton zu ermöglichen, stellt ein Administrator ein verknüpftes Pipeline-Repository bereitAWS Proton. Bei der Bereitstellung einer Pipeline sollte die kundeneigene Automatisierungsaktion im Repository eine IAM-Rolle mit Berechtigungen zur Bereitstellung der Pipeline und einer Identität übernehmen, die das Zielkonto widerspiegelt. AWS Das Pipeline-Repository und die Rolle unterscheiden sich von denen, die für jede einzelne Umgebung verwendet werden. Das verknüpfte Repository wird AWS Proton separat bereitgestellt, nur einmal auf AWS Kontoebene, und es wird zur Bereitstellung und Verwaltung aller Pipelines verwendet. Die Rolle sollte über Berechtigungen zum Erstellen von Pipelines und anderen Ressourcen verfügen, die Ihre Pipelines benötigen.

    Im folgenden Verfahren wird beschrieben, wie Sie das Pipeline-Repository und die Rolle anAWS Proton.

    AWS Proton console
    Um die Pipeline-Rolle bereitzustellen
    1. Wählen Sie in der AWS ProtonKonsole im Navigationsbereich Einstellungen > Kontoeinstellungen und dann Konfigurieren aus.

    2. Verwenden Sie den Abschnitt CI/CD-Pipeline-Repository, um einen neuen oder vorhandenen Repository-Link zu konfigurieren.

    AWS Proton API
    Um die Pipeline-Rolle bereitzustellen
    1. Verwenden Sie die UpdateAccountSettingsAPI-Aktion.

    2. Geben Sie den Anbieter, den Namen und den Zweig Ihres Pipeline-Repositorys im pipelineProvisioningRepository Parameter an.

    AWS CLI

    Um die Pipeline-Rolle bereitzustellen

    Führen Sie den Befehl aus:

    $ aws proton update-account-settings \ --pipeline-provisioning-repository \ "provider=GITHUB,name=my-pipeline-repo-name,branch=my-branch"
  • Löschen von selbst verwalteten bereitgestellten Ressourcen — Terraform-Module können neben Ressourcendefinitionen auch Konfigurationselemente enthalten, die für den Terraform-Betrieb erforderlich sind. Daher AWS Proton können nicht alle Terraform-Dateien für eine Umgebung oder Dienstinstanz gelöscht werden. AWS ProtonMarkiert stattdessen die Dateien zum Löschen und aktualisiert eine Markierung in den PR-Metadaten. Ihre Automatisierung kann diese Flagge lesen und sie verwenden, um einen Terraform-Zerstörungsbefehl auszulösen.