Jitterbit App Builder in AWS installieren (Windows)
Einführung
Dieses Handbuch behandelt mehrere empfohlene Methoden zur Installation von App Builder in AWS unter Verwendung von Windows und SQL Server. Es gibt viele Methoden zum Konfigurieren der zugrunde liegenden Architektur für Webhosting, Netzwerk- und Sicherheitsaspekte. Die folgenden Optionen können nach 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 so angepasst werden kann, dass es die Grundanforderungen erfüllt.
Zwei allgemeine Methoden zur Verwendung von AWS für das Hosting App Builder unter Windows sind:
- PaaS: ElasticBeanstalk - .NET als Plattform (mit und ohne Hochverfügbarkeit)
- IaaS: VMs Ec2-Instanzen - (Ähnlich wie vor Ort)
In diesem Dokument wird die Verwendung von ElasticBeanstalk (EB) behandelt, da dies die einfachste Methode in AWS für langfristiges Management und einfache Upgrades ist. Informationen zu ausschließlich Ec2 finden Sie in unserem VM/On-Premise-Dokument. Darüber hinaus wird in diesem Dokument auch die Verwendung von RDS (Relational Database Service) für die Datenbank behandelt.
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 entfällt die Notwendigkeit eines NAT-Gateways und Bastion Host. Beachten Sie jedoch, dass die Sicherheitsgruppen dann die einzige Barriere gegen den Zugriff von außen darstellen und Sie keine zuverlässige ausgehende IP von App Builder welche auf externen Systemen auf die Whitelist werden sollen. (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 verwenden zu können
- 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* - konfiguriert für App Builder Lese-/Schreibzugriff zum Erstellen und Teilen von Sicherheitsschlüsseln
- 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 als öffentlich, Konnektivität als öffentlich, eIP zuweisen.
Subnetze:
Öffentliche Routentabelle:
Private Routentabelle:
S3-Setup für Verschlüsselung
Erstellen Sie einen S3-Bucket in Ihrer gewünschten Region; dieser wird zum Speichern von Sitzungsstatusmetadaten verwendet und App Builder Verschlüsselung:
Beispielname: *companyname*-vinyl-encryption-keys-*dev*
*Öffentlichen Zugriff verweigern
ICH BIN
Richtlinien
S3-Zugriffsrichtlinie:
Neue Richtlinie erstellen mit diesem JSON, 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 jedem der folgenden Abschnitte und erstellen Sie Folgendes:
Sicherheitsgruppen:
Erstellen Sie mindestens zwei Gruppen, eine für EC2/EB (angewendet in EB) und eine für RDS. Die EB-Gruppe wird als Quelle in der RDS-Gruppe hinzugefügt, wie unten dargestellt. Diese erteilen RDP-Berechtigungen für die EC2-Instanz und für die EC2-Instanz, auf die RDS-Instanz zuzugreifen:
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 verwenden für App Builder Instanzen.
Erstellen einer Datenbank mit RDS
- Öffnen Sie den RDS-Dienst in der AWS-Konsole
- Wählen Sie Subnetzgruppen > DB-Subnetzgruppe erstellen > Bezeichnen Sie sie entweder als privat oder öffentlich, je nachdem, ob Sie die Möglichkeit für externen Zugriff wünschen (Sicherheitsgruppen erlauben dies) > Wählen Sie Ihr VPC und fügen Sie das Availability Zone-Paar hinzu, das Sie beim Einrichten der Subnetze für das 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; für Instanzgrößen > „groß“)
- SQL Standard Edition (Für Multi-AZ; Sehr teuer)
-
DB-Instanzkennung: IE: companyname-db-dev
- Master-Benutzername: App Builder
- Hauptkennwort: Generieren Sie ein starkes Zufallskennwort, das Symbole ausschließt (IE: zpZvLtLmRmrrE68T)
- Instanzgröße: T3.Mittel oder größer, abhängig von der Arbeitslast (M5.Groß oder > für dauerhaft hohe CPU-Auslastung.)
- Zugewiesener Speicher: 20 GB für den Start für die Entwicklung; aufgrund der größeren IOPS-Zuweisung werden 200 GB oder mehr für die Produktion empfohlen
-
Subnetzgruppe: Wählen Sie die aus, die Sie oben erstellt haben.
- Öffentlicher Zugriff: Ja, wenn die obige Gruppe öffentliche Subnetze verwendet, andernfalls nein.
- Vorhandene VPC-Sicherheitsgruppen: Wählen Sie die zuvor erstellte RDS-Gruppe.
Stellen Sie die restlichen Werte wie gewünscht ein (behalten Sie 1433 als DB- Port bei).
Hinweis
Wenn Sie hosten App Builder mit Jitterbit ist SQL Server Express keine unterstützte Datenbankoption.
Einrichtung von Elastic Beanstalk (EB)
- App-Name:
App Builder
- Umgebungsname:
*companyname*-app-*dev*
- Plattform: .NET unter Windows; IIS 10 Windows 2019, neueste Plattform
- Hochladen App Builder.zip-Paket mit der Dateinamenserweiterung „-eb“. 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 Punkte 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 Last);
AMI-ID: Standard-AMI-ID verwendenNetzwerk: Erstelltes VPC auswählen
Load Balancer-Subnetze: Wählen Sie 2 öffentliche Subnetze aus
Instanz-Subnetze: Wählen Sie 2 private Subnetze aus
Datenbank-Subnetze: UnbenutztInstanzen: 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 Sie diese Schritte ausgeführt und die Aktualisierungen abgeschlossen haben, gehen Sie zu App Builder Site URL in EB. Dadurch wird bei Bedarf eine Datenbankinstallation oder ein Upgrade ausgelöst.
HTTPS konfigurieren
Standardmäßig sind neue Elastic Beanstalk-Umgebungen nicht für HTTPS konfiguriert. Wie in der App Builder Dokumentation: HTTPS wird 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 Certificate Manager-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 Services Elastic Beanstalk
- Wählen Sie die Umfeld aus, die Sie aktualisieren möchten
- Wählen Sie Konfiguration im linken Menü
- Wählen Sie bei Load Balancer Bearbeiten
-
Falls nicht vorhanden, fügen Sie Listener Port 443, HTTPS hinzu:
-
Wählen Sie die SSL-Zertifikat-ID aus, die anwendbar ist *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 Folgendes konfigurieren. Die ElasticBeanstalk-URI ist der Zielwert, den Ihr DNS-Eintrag verwenden muss. Er muss auch mit dem von Ihnen verwendeten SSL-Zertifikat übereinstimmen.
Beispiel
- Host/Name:
demo1.companydomain.com
- Typ:
CNAME
- Ziel/Wert:
demo1.us-east-1.elasticbeanstalk.com
- Von App Builder, gehen Sie zu IDE > Sicherheitsanbieter
-
Klicken Sie im Fenster Konfiguration auf die Schaltfläche Mehr und wählen Sie Sites:
-
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 Umleitung
-
Geben Sie im Feld Umleitung, wenn Header vorhanden X-Forwarded-For ein:
-
Klicken Sie auf Speichern