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 - so konfiguriert, dass dem App Builder Lese-/Schreibzugriff zum Erstellen und Freigeben von Sicherheitsschlüsseln gewährt wird.
-
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 Instanzen verwendet
-
Elastic Beanstalk - Verwaltet App Builder Instanzen und bietet einen Load Balancer zum Verteilen von Clientanforderungen.
Hinweis
Obwohl ein großer Teil dieses Dokuments die Elastic Beanstalk-Bereitstellung - Dies ist weder notwendig noch erforderlich. App Builder kann auf eigenständigen EC2-Instanzen installiert und entsprechend konfiguriert werden. Es ist weiterhin eine Synchronisierung des Verschlüsselung erforderlich.#data-encryption-keys
), Redis / elasticache und Anwendungsserverkonfiguration.
S3-Setup - Speichern von Verschlüsselung auf S3
Wie in Konfiguration der Verschlüsselung Der lokale Speicher der EC2-Instanz kann 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 vorangestellt.
Konfigurieren des Data Encryption Key (DEK)-Speichers in der Elastic Beanstalk-Umgebung
App Builder wird mit einem .ebextensions Script geliefert, das die Umfeld für den DEK-Speicher registriert. Zu diesen Eigenschaften gehören:
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-Umgebungsname} | zudyacceptance |
App Builder startet nicht mit den Umfeld von Elastic Beanstalk. 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-Setup
Verwenden Sie ElastiCache, um die Kommunikation zwischen App Builder Servern zu erleichtern. Ein kleiner Knoten ohne Replikate oder Shards ist ausreichend.
Die Konfigurationsinformationen werden beim Einrichten der Anwendungsserver in Beanstalk verwendet und Nicht-Bohnenranke Konfigurationen.
Datenbank-Setup
Die Datenbankeinrichtung ist nicht Gegenstand dieses Dokuments. Jitterbit stellt auf Wunsch Anweisungen zur RDS-Einrichtung bereit.
Elastic Beanstalk-Einrichtung
Amazon ändert seine Benutzeroberfläche regelmäßig. Diese Screenshots und der Ablauf entsprechen dem Stand vom 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 möchten. Wählen Sie „Plattformversion ändern“ und anschließend „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, über die diese Umfeld erreicht 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.
Zusammenfassung lesen:
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 zu dem Bucket, den Sie in Schritt 1 eingerichtet haben
-
DataEncryption:S3KeyPrefix zum Elastic Beanstalk Umfeld.
-
Datenverschlüsselung:S3KeyPrefix
-
SharedState:RedisConnectionString zur entsprechenden Verbindungszeichenfolge für Redis (z. B. 10.0.2.139:16016)
-
SharedState:Provider
-
Nach diesen Schritten gelangen Sie zur App Builder Seite. 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. Dank der Unterstützung von Reverse-Proxys kann App Builder dieses Szenario erkennen und verarbeiten. App Builder erkennt drei Umfeld, die beim Bereitstellen der Elastic Beanstalk-Instanz definiert werden. Diese Umfeld sind skriptbasiert und müssen nicht selbst konfiguriert werden.
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 aus.
-
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 Standard App Builder-Einrichtung vornehmen - diese Einstellungen sollten auf jede Instanz von App Builder angewendet werden:
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 über dieselbe Datei connection.xml verfügen.
Nachdem Sie Änderungen vorgenommen und App Builder neu gestartet haben, überprüfen Sie die Protokolle, um sicherzustellen, dass die Einstellungen richtig übernommen werden.