Wie stellt die AWS Proton 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 die AWS Proton Infrastruktur bereit

AWS Proton kann die Infrastruktur auf eine von mehreren Arten bereitstellen:

  • AWS-verwaltete Bereitstellung — 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.

  • CodeBuild Bereitstellung — dient AWS CodeBuild zur Ausführung AWS Proton von Shell-Befehlen, die Sie bereitstellen. Ihre Befehle können Eingaben lesen, die die Infrastruktur bereitstellen, und sind für die AWS Proton Bereitstellung oder Deprovisionierung der Infrastruktur und die Generierung von Ausgabewerten verantwortlich. Ein Vorlagenpaket für diese Methode enthält Ihre Befehle in einer Manifestdatei sowie 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 Cloud Development Kit (AWS CDK) zur Bereitstellung von AWS Ressourcen verwendet, und ein Manifest, das das CDK installiert und Ihren CDK-Code ausführt.

    Weitere Informationen finden Sie unter CodeBuild Vorlagenpaket für die Bereitstellung.

    Anmerkung

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

  • Selbstverwaltete Bereitstellung — AWS Proton sendet eine 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 Proton bestimmt 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 das von Ihnen bereitgestellte Vorlagenpaket und bestimmt die Bereitstellungsmethode, die im Vorlagenpaket angegeben ist. 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 Umgebungskontoverbindung oder ein Infrastruktur-Repository.

Entwickler, die einen Dienst bereitstellen AWS Proton , haben unabhängig von der Bereitstellungsmethode die gleiche Erfahrung. 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 Dienst bereitstellt, stellt die erforderlichen Parameter für die Bereitstellung von Dienstinstanzen bereit.

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

Bereitstellungsmethode Vorlagen Bereitgestellt von Status verfolgt von

AWS-verwaltet

Manifest, Schema, IAC-Datei () CloudFormation

AWS Proton (durch CloudFormation)

AWS Proton (durch CloudFormation)

CodeBuild

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

AWS Proton (durch CodeBuild)

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

selbstverwaltet

Manifest-, Schema-, IaC-Dateien (Terraform)

Dein Code (durch Git-Aktionen)

Dein Code (an den er AWS per API-Aufruf weitergegeben wurde)

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 Dienst). Der Kunde wählt eine Vorlage für die Ressource aus und gibt die erforderlichen Parameter an. Weitere Informationen finden Sie im folgenden Abschnitt,Überlegungen zur -verwalteten Bereitstellung AWS.

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

  3. AWS Proton ruft AWS CloudFormation auf, um die Bereitstellung mithilfe der gerenderten Vorlage zu starten.

  4. AWS Proton überwacht kontinuierlich die AWS CloudFormation Bereitstellung.

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

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

Diagramm zur Veranschaulichung der AWS verwalteten Bereitstellung in AWS Proton

Überlegungen zur -verwalteten Bereitstellung AWS

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

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

  • Servicebereitstellung — Wenn ein Entwickler eine Dienstinstanz, die AWS-managed Provisioning verwendet, in der Umgebung bereitstellt, AWS Proton verwendet er die dieser Umgebung zur Verfügung gestellte Rolle, um die Infrastruktur für die Dienstinstanz bereitzustellen. Entwickler sehen diese Rolle nicht und können sie auch nicht ändern.

  • Dienst mit Pipeline — Eine Dienstvorlage, die AWS-managed Provisioning verwendet, kann eine Pipeline-Definition enthalten, die im AWS CloudFormation YAML-Schema geschrieben ist. AWS Proton erstellt die Pipeline auch durch Aufrufen. AWS CloudFormation Die Rolle, die zum Erstellen einer Pipeline AWS Proton verwendet wird, unterscheidet sich von der Rolle für jede einzelne Umgebung. Diese Rolle wird AWS Proton separat, nur einmal auf AWS Kontoebene, bereitgestellt und dient zur 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.

    Die folgenden Verfahren zeigen, wie Sie die Pipeline-Rolle bereitstellen. AWS Proton

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

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

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

    2. Geben Sie den Amazon-Ressourcennamen (ARN) Ihrer Pipeline-Servicerolle in den pipelineServiceRoleArn Parameter ein.

    AWS CLI

    Um die Pipeline-Rolle bereitzustellen

    Führen Sie den folgenden Befehl aus:

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

Wie CodeBuild funktioniert die Bereitstellung

Wenn eine Umgebung oder ein Dienst 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 Dienst). Der Kunde wählt eine Vorlage für die Ressource aus und gibt die erforderlichen Parameter an. Weitere Informationen finden Sie im folgenden Abschnitt,Überlegungen zur Bereitstellung CodeBuild .

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

  3. AWS Proton ruft CodeBuild auf, um einen Job zu starten. Der CodeBuild Job führt die in der Vorlage angegebenen Shell-Befehle des Kunden aus. Diese Befehle stellen die gewünschte Infrastruktur bereit und lesen optional Eingabewerte.

  4. Wenn die Bereitstellung abgeschlossen ist, gibt der letzte Kundenbefehl den Bereitstellungsstatus auf zurück CodeBuild und ruft die NotifyResourceDeploymentStatusChange AWS Proton API-Aktion auf, um Ausgaben wie die Amazon VPC-ID bereitzustellen, falls vorhanden.

    Wichtig

    Stellen Sie sicher, dass Ihre Befehle den Bereitstellungsstatus korrekt zurückgeben CodeBuild und die Ausgaben bereitstellen. Wenn dies nicht der Fall ist, AWS Proton kann der Bereitstellungsstatus nicht ordnungsgemäß nachverfolgt werden und es können keine korrekten Ausgaben für Serviceinstanzen bereitgestellt werden.

Das folgende Diagramm zeigt 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 Bereitstellung CodeBuild

  • Rolle für die Infrastrukturbereitstellung — Wenn eine Umgebung oder eine der darin ausgeführten Dienstinstanzen die CodeBuild basierte Bereitstellung verwenden könnte, muss ein Administrator eine IAM-Rolle konfigurieren (entweder direkt oder als Teil einer AWS Proton Umgebungskontoverbindung). AWS Proton verwendet diese Rolle, um die Infrastruktur dieser CodeBuild Bereitstellungsressourcen bereitzustellen. Die Rolle sollte über die erforderlichen Berechtigungen verfügen CodeBuild , um alle Ressourcen zu erstellen, die Sie in den Vorlagen für diese Ressourcen bereitstellen.

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

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

  • Service mit Pipeline — Eine Dienstvorlage, die CodeBuild Provisioning verwendet, kann Befehle zur Bereitstellung einer Pipeline enthalten. AWS Proton erstellt die Pipeline auch durch Aufrufen CodeBuild. Die Rolle, die zum Erstellen einer Pipeline AWS Proton verwendet wird, unterscheidet sich von der Rolle für jede einzelne Umgebung. Diese Rolle wird AWS Proton separat, nur einmal auf AWS Kontoebene, bereitgestellt und dient zur 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.

    Die folgenden Verfahren zeigen, wie Sie die Pipeline-Rolle bereitstellen. AWS Proton

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

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

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

    2. Geben Sie den Amazon-Ressourcennamen (ARN) Ihrer Pipeline-Servicerolle in den pipelineCodebuildRoleArn Parameter ein.

    AWS CLI

    Um die Pipeline-Rolle bereitzustellen

    Führen Sie den folgenden Befehl aus:

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

Wie funktioniert die selbstverwaltete Bereitstellung

Wenn eine Umgebung für die Verwendung von selbstverwalteter Bereitstellung konfiguriert ist, 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 Dienst). Der Kunde wählt eine Vorlage für die Ressource aus und gibt die erforderlichen Parameter an. Für eine Umgebung stellt der Kunde auch ein verknüpftes Infrastruktur-Repository bereit. Weitere Informationen finden Sie im folgenden Abschnitt,Überlegungen zur selbstverwalteten Bereitstellung.

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

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

  4. Wenn der Kunde (Administrator oder Entwickler) den PR zusammenführt, veranlasst die Automatisierung des Kunden die Provisioning-Engine, die Bereitstellung der Infrastruktur mithilfe der zusammengeführten Vorlage zu starten.

    Anmerkung

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

  5. Wenn die Bereitstellung abgeschlossen ist, ruft die Automatisierung des Kunden die NotifyResourceDeploymentStatusChange AWS Proton API-Aktion auf, um den Abschluss anzuzeigen, den Status (erfolgreich oder fehlgeschlagen) anzugeben und Ausgaben wie die Amazon VPC-ID bereitzustellen, falls vorhanden.

    Wichtig

    Stellen Sie sicher, dass Ihr Automatisierungscode AWS Proton mit dem Bereitstellungsstatus und den Ergebnissen zurückruft. Wenn dies nicht der Fall ist, AWS Proton können Sie die Bereitstellung länger als geplant als ausstehend betrachten und weiterhin den Status In Bearbeitung anzeigen.

Das folgende Diagramm zeigt die Schritte, die dabei ausgeführt werden, und die Schritte, die Ihr eigenes Bereitstellungssystem AWS Proton ausführt.

Diagramm zur Veranschaulichung der selbstverwalteten Bereitstellung in AWS Proton

Überlegungen zur selbstverwalteten Bereitstellung

  • 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 darin bereitgestellten Dienstinstanzen bereitzustellen. Die kundeneigene Automatisierungsaktion im Repository sollte eine IAM-Rolle annehmen, die berechtigt ist, alle Ressourcen zu erstellen, die in Ihrer Umgebung und Ihren Dienstvorlagen enthalten sind, sowie über eine Identität, die das Zielkonto widerspiegelt. AWS Ein Beispiel für eine GitHub Aktion, die eine Rolle annimmt, finden Sie unter Eine Rolle annehmen in der Dokumentation zur GitHub Aktion „ AWS Anmeldeinformationen konfigurieren“.

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

  • Servicebereitstellung — Wenn ein Entwickler eine Dienstinstanz bereitstellt, die selbstverwaltete Bereitstellung in der Umgebung verwendet, AWS Proton sendet 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 der selbstverwalteten Bereitstellung reagieren Entwickler jedoch möglicherweise langsamer, da sie warten müssen, bis jemand (möglicherweise nicht sie selbst) 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 Pipeline-Definition (z. B. eine AWS CodePipeline Pipeline) enthalten, die in Terraform HCL geschrieben ist. Um die Bereitstellung dieser Pipelines AWS Proton zu ermöglichen, stellt ein Administrator ein verknüpftes Pipeline-Repository für bereit. AWS Proton Bei der Bereitstellung einer Pipeline sollte die kundeneigene Automatisierungsaktion im Repository eine IAM-Rolle mit Berechtigungen zur Bereitstellung der Pipeline und eine Identität annehmen, 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.

    Die folgenden Verfahren zeigen, wie Sie das Pipeline-Repository und die Rolle für die Pipeline bereitstellen. AWS Proton

    AWS Proton console
    Um die Pipeline-Rolle bereitzustellen
    1. Wählen Sie in der AWS Proton Konsole 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 im pipelineProvisioningRepository Parameter den Anbieter, den Namen und den Zweig Ihres Pipeline-Repositorys an.

    AWS CLI

    Um die Pipeline-Rolle bereitzustellen

    Führen Sie den folgenden 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 zusätzlich zu den Ressourcendefinitionen 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 Proton Markiert stattdessen die Dateien zum Löschen und aktualisiert eine Markierung in den PR-Metadaten. Ihre Automatisierung kann dieses Flag lesen und damit einen Terraform-Zerstörungsbefehl auslösen.