Hochverfügbare Bereitstellung in AWS für Jitterbit App Builder
Einführung
App Builder kann viele AWS-Dienste nutzen, um die Bereitstellung einer Umfeld(HA) zu unterstützen.
AWS-Elemente
-
S3 Bucket - konfiguriert, um Folgendes zu ermöglichen: App Builder Lese-/Schreibzugriff zum Erstellen und Teilen von Sicherheitsschlüsseln.
-
App Builder Datenbank - Kann mit RDS ausgeführt oder auf EC2-Instanzen installiert werden.
-
ElastiCache - Wird als Nachrichtenbus für den Informationsaustausch zwischen App Builder Instanz
-
Elastic Beanstalk - Verwaltet App Builder Instanzen und stellt einen Load Balancer zur Verteilung von Client-Anfragen bereit.
Hinweis
Obwohl ein beträchtlicher Teil dieses Dokuments die Bereitstellung von Elastic Beanstalk behandelt - dies ist nicht notwendig oder erforderlich. App Builder kann auf eigenständigen EC2-Instanzen installiert und entsprechend konfiguriert werden. Es ist weiterhin eine Synchronisierung des Verschlüsselung erforderlich, Redis / elasticache und Anwendungsserverkonfiguration.
S3-Setup - Verschlüsselung auf S3 speichern
Wie in Verschlüsselung, kann der lokale Speicher von EC2-Instanzen nicht für die Langzeitspeicherung verwendet werden. Daher müssen Datenverschlüsselungsschlüssel (DEKs) in S3-Buckets gespeichert werden.
S3-Buckets zur Speicherung von Verschlüsselung (DEK)
Bucket | Adresse | Zugriff | Notizen |
---|---|---|---|
vinyl-data-encryption-keys | https://s3.amazonaws.com/vinyl-data-encryption-keys | aws-elasticbeanstalk- ec2- Rolle | Standard-S3-Bucket, der von Elastic Beanstalk-Umgebungen verwendet wird. |
Innerhalb des Buckets werden DEKs mit dem Umfeld von Elastic Beanstalk als Präfix versehen.
Konfigurieren des Data Encryption Key (DEK)-Speichers in der Elastic Beanstalk-Umfeld
App Builder wird mit einem .ebextensions Script geliefert, das die Umfeld für den DEK-Speicher registriert. Diese Eigenschaften umfassen:
Eigenschaft | Standard | Beispiel |
---|---|---|
DataEncryptionKeyStorage | S3 | S3 |
DataEncryptionKeyS3BucketEndpoint | https://{bucket}.s3{-aws-region}.amazonaws.com | https://s3.amazonaws.com/vinyl-data-encryption-keys |
DataEncryptionKeyS3KeyPrefix | {elastic-beanstalk-environment-name} | zudyacceptance |
App Builder wird nicht mit den standardmäßigen Umfeld von Elastic Beanstalk gestartet. Sie müssen die Werte DataEncryptionKeyS3BucketEndpoint und DataEncryptionKeyS3KeyPrefix ändern.
Elastic Beanstalk-Umgebungen Zugriff auf S3-Buckets gewähren
EC2-Instanzen in einer Elastic Beanstalk Umfeld werden einer Rolle zugewiesen. Die folgende Beispielrichtlinie gewährt Zugriff auf einen S3-Bucket.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::{bucket-name}/*"
},
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": "*"
}
]
}
ElastiCache-Einrichtung
Verwenden Sie ElastiCache, um die Kommunikation zwischen App Builder Server. Ein kleiner Knoten ohne Replikate oder Shards ist alles, was benötigt wird.
Die Konfigurationsinformationen werden beim Einrichten der Anwendungsserver in Beanstalk verwendet und Nicht-Bohnenranke Konfigurationen.
Datenbank-Setup
Die Einrichtung der Datenbank liegt außerhalb des Umfangs dieses Dokuments. Jitterbit kann auf Wunsch Anweisungen zur RDS-Einrichtung bereitstellen.
Einrichtung von Elastic Beanstalk
Amazon ändert seine Benutzeroberfläche häufig. Diese Screenshots und der Ablauf sind auf dem Stand von November 2016.
Erstellen Sie die Umfeld:
Wählen Sie "Webserver erstellen"
Wählen Sie IIS aus.
Die Konfiguration wird standardmäßig auf einen Wert gesetzt, den wir nicht wollen. Wählen Sie „Plattformversion ändern“ und wählen Sie „8.5 auf 64-Bit Windows Server 2012 R2“.
Wählen Sie die entsprechende Anwendungsversion aus.
Geben Sie den Umfeld ein. Dieser wird Teil einer URL, die zum Erreichen dieser Umfeld verwendet werden kann. Beachten Sie, dass der Namespace für alle Elastic Beanstalk-Instanzen aller AWS-Kunden gilt.
Aktivieren Sie „Diese Umfeld innerhalb einer VPC erstellen“.
Jitterbit verwendet T2.small- und T2.medium-Instanzen für Entwicklungs- und Qualitätssicherungszwecke und größere Instanzen für Produktionsumgebungen.
Wenn Sie über Umfeld benachrichtigt werden möchten, geben Sie unten Ihre Email-Adresse ein.
Konfigurieren Sie die VPC-Einstellungen entsprechend. Die ELB-Sichtbarkeit sollte Extern sein
Überprüfen Sie die Zusammenfassung:
Berechtigungen
Nachdem die Umfeld
Das Hochfahren der Umfeld dauert etwa 15 Minuten.
Nachdem es auf dem Dashboard grün angezeigt wird, konfigurieren wir einige zusätzliche Parameter:
-
Konfiguration... Softwarekonfiguration... Set
-
ConnectionInfo durch eine Zeichenfolge, die Ihren Datenbankverbindungsinformationen entspricht
-
DataEncryption:S3BucketEndpoint zum Bucket, den Sie in Schritt 1 eingerichtet haben
-
DataEncryption:S3KeyPrefix für den Elastic Beanstalk-Umfeld.
-
Datenverschlüsselung:S3KeyPrefix
-
SharedState:RedisConnectionString zur entsprechenden Verbindungszeichenfolge für Redis (Beispiel: 10.0.2.139:16016)
-
SharedState:Provider
-
Nach diesen Schritten gelangen Sie zum App Builder Site. 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. HTTPS wird für alle neuen Elastic Beanstalk-Umgebungen dringend empfohlen.
Elastic Beanstalk-Umgebungen beenden die HTTPS-Verbindung beim Elastic Load Balancer. App Builder Dank der Unterstützung von Reverse-Proxys kann dieses Szenario erkannt und verarbeitet werden. App Builder erkennt drei Umfeld, die beim Bereitstellen der Elastic Beanstalk-Instanz definiert werden. Diese Umfeld sind geskriptet: Sie müssen sie nicht selbst konfigurieren.
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.
-
Wählen Sie im linken Menü Konfiguration.
-
Wählen Sie das Zahnrad neben Lastausgleich.
-
Setzen Sie den Secure Listener Port auf 443.
-
Wählen Sie die zutreffende SSL-Zertifikat-ID aus (App Builder verwendet wildcard.zudy.com - andere Websites verwenden etwas anderes)
Notiz
Dies setzt voraus, dass Ihre neue Elastic Beanstalk-Umfeld über *.zudy.com. zugänglich ist
-
Klicken Sie auf die Schaltfläche Speichern.
Nicht-Beanstalk-Anwendungsserverkonfiguration
Wenn Sie AWS Elastic Beanstalk nicht verwenden, konfigurieren Sie Anwendungsserver manuell.
Sie müssen die folgenden Änderungen an einer Standardeinstellung vornehmen App Builder setup - diese Einstellungen sollten auf jede Instanz von App Builder:
Folgendes sollte eingerichtet werden in c:\inetpub\wwwroot\Vinyl\Config\AppSettings.config
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="SharedStateProvider" value="Redis"/>
<add key="RedisConnectionString" value="YOUR_SERVER_HERE:6379"/>
<add key="DataEncryptionKeyStorage" value="S3"/>
<add key="DataEncryptionKeyS3BucketEndpoint" value="https://s3.amazonaws.com/YOUR_BUCKET_HERE"/>
<add key="DataEncryptionKeyS3KeyPrefix" value="YOUR_ENVIRONMENT_NAME"/>
</appSettings>
Jede Instanz von App Builder sollte dieselbe Datei connection.xml haben.
Nachdem Sie Änderungen vorgenommen und neu gestartet haben App Builder, überprüfen Sie die Protokolle, um sicherzustellen, dass die Einstellungen korrekt übernommen werden.