Zum Inhalt springen

Verwandeln Sie Ihre Kontakte in Urlaubsgeld mit unserem neuen Kundenempfehlungsprogramm! Erfahren Sie mehr

Diese Dokumentation gilt für Version 4 und höher von App Builder, dem neuen Namen für Vinyl. Hier gelangen Sie zur Vinyl-Dokumentation.

Installieren von Jitterbit App Builder in AWS (Windows)

Einführung

Dieses Handbuch behandelt verschiedene Installationsmethoden für App Builder in AWS unter Windows und SQL Server. Es gibt zahlreiche Möglichkeiten, die zugrunde liegende Architektur für Webhosting, Netzwerk- und Sicherheitsaspekte zu konfigurieren. Die folgenden Optionen können bei Bedarf angepasst werden.

Diese Anleitung ist in erster Linie als Hilfestellung für ein neues leeres AWS-Konto gedacht oder für ein bestehendes Konto, das an die Grundanforderungen angepasst werden kann.

Zwei allgemeine Methoden zur Verwendung von AWS zum Hosten von App Builder unter Windows sind:

  • PaaS: ElasticBeanstalk - .NET als Plattform (mit und ohne Hochverfügbarkeit)
  • IaaS: VMs Ec2-Instanzen - (Ähnlich wie vor Ort)

Dieses Dokument konzentriert sich auf die Verwendung von ElasticBeanstalk (EB), da dies die einfachste Methode in AWS für langfristige Verwaltung und einfache Upgrades ist. Informationen zu Ec2 finden Sie in unserer Dokumentation zu VM/On-Premise. Darüber hinaus befasst sich dieses Dokument auch mit der Verwendung von RDS (Relational Database Service) für die Datenbank.

Notiz

Sie können Kosten sparen und die Einfachheit erhöhen, indem Sie alle Objekte in öffentlichen Subnetzen platzieren (Subnetze, die sich in einer Routentabelle befinden, in der das Standard-Gateway ((0.0.0.0/0)) ein Internet-Gateway ist.); Dadurch werden ein NAT-Gateway und ein Bastion-Host überflüssig. Beachten Sie jedoch, dass die Sicherheitsgruppen dann die einzige Barriere gegen externen Zugriff darstellen und Sie keine zuverlässige ausgehende IP vom App Builder haben, die Sie auf externe Systeme auf die Whitelist setzen können. (NAT-Gateways haben eine statische eIP, die als ausgehende IP dient.)

AWS-Elemente

  • VPC mit 4 oder mehr Subnetzen; Zwei oder mehr sind mit einer Route verknüpft, die ein Internet-Gateway als Route enthält (öffentlich) - Zwei oder mehr sind mit einer Route verknüpft, die ein NAT-Gateway als Route verwendet (privat). Verfügbarkeitszonen müssen über Routentabellen hinweg gespiegelt werden (IE: mit Öffentlich: 1a,1b - Privat: 1a,1b)
  • Zertifikat - Sie müssen ein Zertifikat erstellen oder importieren, um SSL zu verwenden
  • IAM: Benutzer, Rollen*, Richtlinien* - Dienstberechtigungen erteilen
  • Sicherheitsgruppen* - Gewähren eingehender und serverübergreifender Berechtigungen
  • Ec2, Bastion Host - Jump-Server für App-Server und DB-Administratorzugriff
  • S3 Bucket* - so konfiguriert, dass dem App Builder Lese-/Schreibzugriff zum Erstellen und Freigeben von Sicherheitsschlüsseln gewährt wird
  • Datenbank* - Kann mit RDS ausgeführt oder auf EC2-Instanzen installiert werden
  • Elastic Beanstalk* - Verwaltet App Builder Ec2-Instanzen

*Eine pro Instanz

figure.png

Grundlegende Vernetzung

VPC-Beispiel:

Standard-VPC: 172.31.0.0/16

NAT-Gateway (optional): Subnetz öffentlich, Konnektivität öffentlich, eIP zuweisen.

Subnetze:

subnets.jpg

Öffentliche Routentabelle:

publicroutetable.jpg

Private Routentabelle:

privateroutetable.jpg

figure.png

S3-Setup für Verschlüsselung

Erstellen Sie einen S3-Bucket in der gewünschten Region; dieser wird zum Speichern von Sitzungsstatusmetadaten und der App Builder Verschlüsselung verwendet:

Beispielname: *companyname*-vinyl-encryption-keys-*dev*

*Öffentlichen Zugriff verweigern

ICH BIN

Richtlinien

S3-Zugriffsrichtlinie:

Neue Richtlinie erstellen mit diesem JSON-Code, Ressource mit obigem Namen bearbeiten:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource":
        "arn:aws:s3:::companyname-vinyl-encryption-keys-dev/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:GetBucketLocation",
        "s3:ListBucket"
    ],
    "Resource": "*"
    }
    ]
}

Beispielname: *companyname*-vinyl-encryption-keys-s3-*dev*Beispielbeschreibung: Gewährt EC2-Zugriff auf S3-Bucket

Rollen

Neue Rolle erstellen:

Typ=EC2 -> Richtlinien hinzufügen:

  • <S3 Policy Above>
  • AWSElasticBeanstalkMulticontainerDocker
  • AWSElasticBeanstalkWebTier
  • AWSElasticBeanstalkWorkerTier

Name: *companyname*-eb-*dev*

EC2

Gehen Sie im EC2-Dienst zu den folgenden Abschnitten und erstellen Sie Folgendes:

Sicherheitsgruppen:

Erstellen Sie mindestens zwei Gruppen: eine für EC2/EB (in EB angewendet) und eine für RDS. Die EB-Gruppe wird als Quelle in der RDS-Gruppe hinzugefügt (siehe unten). Diese erteilen der EC2-Instanz RDP-Berechtigungen und der EC2-Instanz Zugriff auf die RDS-Instanz:

Sicherheitsgruppenkonfiguration
Name: EB-DEV (Ermöglicht Ports zu EC2)
RDP TCP 3389 <VPN Endpoint> Firmen-VPN
RDP TCP 3389 <Yourself> EPLR
RDP TCP 3389 sgr-091a912ec59ae4184 Bastion
Name: RDS-DEV (Erlaubt Ports zu RDS)
MSSQL TCP 1433 <VPN Endpoint> Firmen-VPN
MSSQL TCP 1433 sgr-082d6e34327ee6b9c8 (EB-DEV)
MSSQL TCP 1433 <Yourself> RDS
MSSQL TCP 1433 sgr-091a912ec59ae4184 Bastion
Name: Bastion (Optional) (Wird oben hinzugefügt, um Zugriff auf Instanzen in privaten Subnetzen zu ermöglichen)
MSSQL TCP 1433 <VPN Endpoint> Firmen-VPN

Schlüsselpaare: Schlüsselpaar erstellen -> <companyname-%dev%> -> PEM -> Erstellen

Instanzen: Erstellen Sie einen Bastion Host (Optional)
Starten Sie eine Windows 2019-Basisinstanz zur Verwendung als RDP-Jump-Host, wenn Sie private Subnetze für App Builder-Instanzen verwenden.

Erstellen einer Datenbank mit RDS

  1. Öffnen Sie den RDS-Dienst in der AWS-Konsole
  2. Wählen Sie Subnetzgruppen > DB-Subnetzgruppe erstellen > Beschriften Sie sie entweder als privat oder öffentlich, je nachdem, ob Sie externen Zugriff ermöglichen möchten (sofern die Sicherheitsgruppen dies zulassen) > Wählen Sie Ihre VPC und fügen Sie das Availability Zone-Paar hinzu, das Sie beim Einrichten der Subnetze für die VPC oben verwendet haben > Wählen Sie nun die richtigen zwei Subnetze aus, die beide entweder privat oder öffentlich sind. > Erstellen
  3. Wählen Sie Datenbank erstellen > Microsoft SQL Server > Lizenz auswählen:

    • SQL Server Express Edition *(Akzeptabel für kleine Datenbanken unter 10 GB und Instanzen der Größe „groß“ oder kleiner.)
    • SQL Web Edition (Für Datenbanken > 10 GB; z. B. Instanzgrößen > „groß“)
    • SQL Standard Edition (Für Multi-AZ; Sehr teuer)
  4. DB-Instanzkennung: IE: Firmenname-DB-Entwickler

  5. Master-Benutzername: App Builder
  6. Master-Passwort: Generieren Sie ein sicheres Zufallspasswort, das Symbole ausschließt (IE: zpZvLtLmRmrrE68T)
  7. Instanzgröße: T3.Mittel oder größer, abhängig von der Arbeitslast (M5.Groß oder > für anhaltend hohe CPU-Auslastung.)
  8. Zugewiesener Speicher: 20 GB für den Start in der Entwicklung; aufgrund der größeren IOPS-Zuweisung werden 200 GB oder mehr für die Produktion empfohlen
  9. Subnetzgruppe: Wählen Sie die oben erstellte Gruppe aus.

    • Öffentlicher Zugriff: Ja, wenn die obige Gruppe öffentliche Subnetze verwendet, andernfalls nein.
    • Vorhandene VPC-Sicherheitsgruppen: Wählen Sie die zuvor erstellte RDS-Gruppe aus.

Stellen Sie die restlichen Werte wie gewünscht ein (behalten Sie 1433 als DB- Port).

Notiz

Wenn Sie App Builder mit Jitterbit hosten, ist SQL Server Express keine unterstützte Datenbankoption.

Elastic Beanstalk-Setup (EB)

  • App-Name: App Builder
  • Umgebungsname: *companyname*-app-*dev*
  • Plattform: .NET unter Windows; IIS 10 Windows 2019, neueste Plattform
  • Laden Sie das App Builder-ZIP-Paket mit der Dateinamenerweiterung „-eb“ hoch. Beispiel: vinyl-3.3.12345-win-eb.zip- Wählen Sie „Weitere Optionen konfigurieren“ - Scrollen Sie zum Seitenanfang. Wählen Sie „Benutzerdefinierte Konfiguration“. Klicken Sie für die folgenden Optionen in jedem Abschnitt auf „Bearbeiten“ und speichern Sie in der folgenden Reihenfolge:

    Elastic Beanstalk-Setup
    Kapazität: Lastausgleich; min. 1/max. 1 (höhere Werte finden Sie im Handbuch zur Hochverfügbarkeit);
    Instanztyp: T3.medium oder höher (je nach Auslastung);
    AMI-ID: Standard-AMI-ID verwenden
    Netzwerk: Erstellte VPC auswählen
    Load Balancer-Subnetze: 2 öffentliche Subnetze auswählen
    Instanz-Subnetze: 2 private Subnetze auswählen
    Datenbank-Subnetze: Nicht verwendet
    Instanzen: Größe: 150 GB; Gruppen: EB-Gruppe im EC2-Abschnitt erstellt.
    Load Balancer: Typ: Anwendung -> Prozesse; Standard bearbeiten;
    HTTP-Code: 200; Pfad /ping
    Für SSL: (Siehe HTTPS konfigurieren) Listener hinzufügen - 443/HTTPS - Ihr Zertifikat - TLS-1-2-Ext-2018-06
    Sicherheit: <EC2 Key pair from above>; IAM-Instanzprofil wie oben erstellt. Servicerolle unverändert lassen (automatisch generiert)
  • Erstellen!

EB-Pfostenkonfiguration

Das Hochfahren der Umfeld dauert etwa 15 bis 20 Minuten.

Sobald EB die Einrichtung der Komponenten abgeschlossen hat, ist es normal, dass der Status in dieser Phase rot ist, da die Standardeigenschaften der EB- Umfeld aktualisiert werden müssen.

In der ElasticBeanstalk-Umgebung: Gehen Sie zu: Konfiguration -> Software -> Bearbeiten:

postconfig1.jpg

postconfig2.jpg

Scrollen Sie nach unten zu den Umgebungseigenschaften:

| Eigenschaftsname | Standard | Beispiel | |------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Verbindungsinfo | DatabaseType=SQLServer;HostName=;DatabaseName=App Builder;UserName=vinyl;Password=password| DatabaseType=SQLServer;HostName=example-db-dev.cmpgei1x4tzz.us-east-1.rds.amazonaws.com;DatabaseName=App Builder;UserName=vinyl;Password=P@SSW**RD~!!| | Datenverschlüsselung:S3BucketEndpoint | https://{bucket}s3{-aws-region}.amazonaws.com | https://companyname-vinyl-encryption-keys-dev | | Datenverschlüsselung:S3KeyPrefix | {elastic-beanstalk-environment-name} | Companyname-app-Dev |

  1. ConnectionInfo: Bearbeiten Sie die Zeichenfolgenteile so, dass sie mit Ihrem Datenbank-Hostnamen, Benutzernamen und Passwort übereinstimmen.
  2. DataEncryptionKeyS3BucketEndpoint: Auf den zuvor erstellten Bucket-Namen setzen.
  3. DataEncryptionKeyS3KeyPrefix: Auf den Umfeld von Elastic Beanstalk einstellen.

Nachdem diese Schritte ausgeführt und die Aktualisierungen abgeschlossen sind, rufen Sie die URL der App Builder Site in EB auf. Dadurch wird bei Bedarf eine Datenbankinstallation oder ein Upgrade ausgelöst.

HTTPS konfigurieren

Neue Elastic Beanstalk-Umgebungen sind standardmäßig nicht für HTTPS konfiguriert. Wie in der App Builder Dokumentation erwähnt, wird HTTPS für alle neuen Elastic Beanstalk-Umgebungen dringend empfohlen.

Elastic Beanstalk-Umgebungen beenden die HTTPS-Verbindung beim Elastic Load Balancer.

Hinweis

Für den folgenden Vorgang müssen Sie bereits ein Zertifikat im Zertifikatsmanager-Dienst erstellt oder importiert haben.

Konfigurieren von Elastic Beanstalk zum Akzeptieren von HTTPS-Anfragen

  1. Melden Sie sich bei der Amazon Web Services-Konsole an
  2. Wählen Sie unter Dienste die Option Elastic Beanstalk
  3. Wählen Sie die Umfeld aus, die Sie aktualisieren
  4. Wählen Sie im linken Menü Konfiguration
  5. Wählen Sie bei Load Balancer Bearbeiten
  6. Falls nicht vorhanden, fügen Sie Listener Port 443, HTTPS hinzu:

    HTTPS1.jpg

  7. Wählen Sie die zutreffende SSL-Zertifikat-ID aus. Für die „SSL-Richtlinie“; Für Windows 2019 muss TLS 1.2 verwendet werden.

  8. Klicken Sie auf die Schaltfläche Speichern und dann auf der Seite „Load Balancer“ auf „Übernehmen“:

    HTTPS2.jpg

Erzwingen Sie die HTTPS- und FQDN-Umleitung

Stellen Sie sicher, dass Sie einen DNS-CNAME-Eintrag für Ihre Domain bei Ihrem Registrar oder Ihren aktuellen Nameservern erstellt und getestet haben, bevor Sie die folgenden Konfigurationen vornehmen. Die ElasticBeanstalk-URI ist der Zielwert Ihres DNS-Eintrags. Sie muss außerdem mit dem von Ihnen verwendeten SSL-Zertifikat übereinstimmen.

Beispiel

  • Host/Name: demo1.companydomain.com
  • Typ: CNAME
  • Ziel/Wert: demo1.us-east-1.elasticbeanstalk.com
  1. Gehen Sie im App Builder zu IDE > Sicherheitsanbieter
  2. Klicken Sie im Bereich Konfiguration auf die Schaltfläche Mehr und wählen Sie Sites aus:

    moresites.png

  3. Doppelklicken Sie auf den Standardeintrag

  4. Klicken Sie auf die Schaltfläche Bearbeiten
  5. Geben Sie Ihre FQDN-URL mit https in das Feld URL ein
  6. Aktivieren Sie die Weiterleitung
  7. Geben Sie im Feld Umleiten, wenn Header vorhanden X-Forwarded-For ein:

    siteredirect.png

  8. Klicken Sie auf Speichern