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
Grundlegende Vernetzung
VPC-Beispiel:
Standard-VPC: 172.31.0.0/16
NAT-Gateway (optional): Subnetz öffentlich, Konnektivität öffentlich, eIP zuweisen.
Subnetze:
Öffentliche Routentabelle:
Private Routentabelle:
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
- Öffnen Sie den RDS-Dienst in der AWS-Konsole
- 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
-
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)
-
DB-Instanzkennung: IE: Firmenname-DB-Entwickler
- Master-Benutzername: App Builder
- Master-Passwort: Generieren Sie ein sicheres Zufallspasswort, das Symbole ausschließt (IE: zpZvLtLmRmrrE68T)
- Instanzgröße: T3.Mittel oder größer, abhängig von der Arbeitslast (M5.Groß oder > für anhaltend hohe CPU-Auslastung.)
- 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
-
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 verwendenNetzwerk: Erstellte VPC auswählen
Load Balancer-Subnetze: 2 öffentliche Subnetze auswählen
Instanz-Subnetze: 2 private Subnetze auswählen
Datenbank-Subnetze: Nicht verwendetInstanzen: 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-06Sicherheit: <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:
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
|
ConnectionInfo
: Bearbeiten Sie die Zeichenfolgenteile so, dass sie mit Ihrem Datenbank-Hostnamen, Benutzernamen und Passwort übereinstimmen.DataEncryptionKeyS3BucketEndpoint
: Auf den zuvor erstellten Bucket-Namen setzen.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
- Melden Sie sich bei der Amazon Web Services-Konsole an
- Wählen Sie unter Dienste die Option Elastic Beanstalk
- Wählen Sie die Umfeld aus, die Sie aktualisieren
- Wählen Sie im linken Menü Konfiguration
- Wählen Sie bei Load Balancer Bearbeiten
-
Falls nicht vorhanden, fügen Sie Listener Port 443, HTTPS hinzu:
-
Wählen Sie die zutreffende SSL-Zertifikat-ID aus. Für die „SSL-Richtlinie“; Für Windows 2019 muss TLS 1.2 verwendet werden.
-
Klicken Sie auf die Schaltfläche Speichern und dann auf der Seite „Load Balancer“ auf „Übernehmen“:
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
- Gehen Sie im App Builder zu IDE > Sicherheitsanbieter
-
Klicken Sie im Bereich Konfiguration auf die Schaltfläche Mehr und wählen Sie Sites aus:
-
Doppelklicken Sie auf den Standardeintrag
- Klicken Sie auf die Schaltfläche Bearbeiten
- Geben Sie Ihre FQDN-URL mit https in das Feld URL ein
- Aktivieren Sie die Weiterleitung
-
Geben Sie im Feld Umleiten, wenn Header vorhanden X-Forwarded-For ein:
-
Klicken Sie auf Speichern