AWS Germany – Amazon Web Services in Deutschland

Wie man eine skalierbare BigBlueButton Videokonferenzlösung auf AWS baut

von David Surey, Senior Solutions Architect

BigBlueButton ist eine virtuelle Klassenzimmeranwendung welche verschiedene Audio- und Videoformate unterstützt und die Nutzung integrierter Video-, Bildschirm- und Dokumentenfreigabefunktionen ermöglicht. BigBlueButton bietet Funktionen für Multi-User-Whiteboards, Breakout-Räume, öffentliche und private Chats, Abstimmungen, Moderation, Emojis und Handheben.

In diesem Beitrag erklären wir, wie AWS-Kunden, die nach einer selbstverwalteten und Open-Source-Software-basierten Videokonferenzlösung suchen, AWS nutzen können, um eine skalierbare BigBlueButton-Installation aufzubauen und bereitzustellen. Wir werden die AWS-Dienste, Funktionen und Open-Source-Komponenten in die Architektur integrieren und erklären, wie die erforderlichen Skripte und Stacks verwendet werden.

BigBlueButton integriert sich mit einer Vielzahl von Drittanbieter-Tools wie Moodle, Sakai, Drupal, Joomla oder WordPress. In diesem Beitrag werden wir uns jedoch auf die native Integration von BigBlueButton mit Greenlight beschränken.

Die demonstrierte Einrichtung ist ein Ausgangspunkt, von dem aus Kunden eine eigene Lern- und Videokonferenzplattform auf Basis von BigBlueButton implementieren können. Skalierbarkeit und Elastizität werden gemäß bewährten Methoden aber mit Abstrichen entsprechend den Fähigkeiten von BigBlueButton eingerichtet. Die Open-Source-Komponenten werden so weit wie möglich in ihren Standardkonfigurationen belassen, um sicherzustellen, dass die Einrichtung leicht verständlich sowie mit der offiziellen Dokumentation abgleichbar bleibt.

Die Installation verwendet Infrastructure as Code (IaC), welches so modular wie möglich aufgebaut ist, um Teile problemlos austauschen oder nach Bedarf erweitern zu können. IaC ist der Prozess zur Verwaltung und Installation von Infrastruktur mithilfe von maschinenlesbaren Definitionsdateien. Es handelt sich um einen konzeptionellen Ansatz, der eng mit DevOps und der Cloud verbunden ist.

Haftungsausschluss

Wir bitten zu beachten, dass die Ausführung dieses Codes dazu führt, dass Scalelite, lizenziert unter AGPL-3.0, in Ihrem Benutzerkonto bereitgestellt wird.

Darüber hinaus ist wichtig zu verstehen, dass der AWS Free Tier diese Installation nicht abdeckt. Verwenden Sie den AWS-Preiskalkulator, um eine vorherige Kostenschätzung durchzuführen.

1. Architektur- und Dienstübersicht

Bild 1: Architekturdiagram skalierbares Big Blue Button Deployment auf AWSBild 1: Architekturdiagram skalierbares Big Blue Button Deployment auf AWS

Die Infrastruktur dieses Beispiel-Projektes basiert auf den Dienstangeboten von AWS. Im nun folgenden Abschnitt erfahren Sie zunächst die Details dieser Dienste und warum diese als Teil der Infrastruktur wichtig sind und bereitgestellt werden.

Die Grundlage der gesamten Installation ist AWS CloudFormation, ein AWS-Dienst, der eine gemeinsame Sprache zum Schreiben und Bereitstellen von AWS- und Drittanbieteranwendungsressourcen bereitstellt. AWS CloudFormation ist ein nativer IaC-Dienst von AWS, der Kunden bei der Installation von Infrastruktur hilft. Er stellt außerdem sicher, dass die betriebliche und verwaltungstechnische Belastung in Zukunft begrenzt wird, indem er einen zentralen Punkt für das Aktualisieren der bereitgestellten Komponenten und deren Konfiguration bietet.

Die BigBlueButton Videokonferenz-Plattform wird in einer Region und in mehreren Verfügbarkeitszonen bereitgestellt. Mit der globalen Infrastruktur von AWS und dem Konzept von Regionen und Verfügbarkeitszonen können Kunden hochverfügbare und global skalierbare Infrastrukturen aufbauen, je nach Ihren technischen Anforderungen.

Die Infrastruktur wird in einer dedizierten Amazon Virtual Private Cloud (VPC) bereitgestellt. Amazon VPC wird als isolierter Bereich der AWS-Cloud für die Videokonferenzplattform verwendet. Amazon VPC bietet Funktionen wie Firewalls (Sicherheitsgruppen), Subnetze, Routing und NAT-Gateways. Dadurch können Kunden eine sichere, skalierbare und zuverlässige Netzwerkinfrastruktur entwerfen und aufbauen.

Für die Installation werden private und öffentliche Subnetze für jede Ebene der Anwendungsschicht sowie Sicherheitsgruppen verwendet, um den Zugriff auf den Dienst auf die nötigen Wege einzuschränken. Darüber hinaus werden NAT-Gateways verwendet, um privaten Subnetzen den ausgehenden Internetzugang für Wartungsdatenverkehr zu ermöglichen.

Amazon Elastic Compute Cloud (Amazon EC2) ist ein Kerndienst von AWS für die Installation von Computing-Ressourcen. Es handelt sich um einen Webdienst, der sichere und elastische Rechenkapazität für die Installation zur Verfügung stellt. Amazon EC2 wird verwendet, um die BigBlueButton-Anwendungsserver bereitzustellen.

Um die Container der Greenlight Web-Benutzeroberfläche und des Scalelite Anwendungs-Load-Balancers auszuführen, wird Amazon Elastic Container Service (Amazon ECS) genutzt. Amazon ECS ist ein vollständig verwalteter Container-Orchestrierungsdienst, der sicherstellt, dass die Front-End/Web-Benutzeroberfläche und die Verteilung der Meetings skalierbar und hochverfügbar sind.

Greenlight ist die native Web-Benutzeroberfläche von BigBlueButton für die Benutzer-, Aufzeichnungs- und Meeting-Verwaltung. Es wird der Einstiegspunkt in die Videokonferenz-Plattform sein.

Scalelite ist ein Open-Source-Load-Balancer, der speziell für die Verwendung mit BigBlueButton entwickelt wurde. Er verwaltet einen Pool von BigBlueButton-Anwendungsservern und verteilt Meetings auf die am wenigsten ausgelastete Instanz im Pool.

Amazon EC2 Auto Scaling und AWS Auto Scaling sind Dienste, die von Kunden verwendet werden können, um die Workloads von Anwendungen und Containern gemäß den Zuverlässigkeits- und Leistungsanforderungen zu skalieren.

Amazon EC2 Auto Scaling sorgt dafür, dass Amazon EC2-Instanzen basierend auf ihrer Nutzung hinzugefügt oder entfernt werden. Es überwacht außerdem die Gesundheit und Verfügbarkeit der Instanzen. Dadurch wird sichergestellt, dass zum Beispiel die BigBlueButton-Anwendungsserver einsatzbereit sind und die Skalierung den Leistungsanforderungen entspricht. Obwohl Amazon EC2 Auto Scaling eine automatische Skalierung unterstützt, erfolgt diese bei den BigBlueButton-Anwendungsservern für die BigBlueButton Videokonferenz-Plattform geplant und durch Unterstützung operativer Aufgaben.

AWS Auto Scaling überwacht und passt automatisch die Kapazität von Anwendungen anhand definierter Ziele an. Die Verwendung von AWS Auto Scaling stellt sicher, dass Anwendungen zur richtigen Zeit über die richtigen Ressourcen verfügen. In der BigBlueButton Videokonferenz-Plattform Installation überwacht AWS Auto Scaling die containerbasierte Web-Benutzeroberfläche und den Scalelite-Anwendungs-Load-Balancer und skaliert diese Komponenten automatisch.

Amazon Elastic File System (Amazon EFS) wird für die gemeinsame Speicherung aller Aufzeichnungen von Videokonferenzen genutzt. Amazon EFS bietet Kunden ein einfaches, skalierbares und vollständig verwaltetes NFS-Dateisystem, dass Anwendungsinstanzen und Web-Benutzeroberflächen-Container einbinden werden. Dadurch können Meeting-Aufzeichnungen unabhängig von der BigBlueButton-Anwendungsinstanz, auf der das Meeting tatsächlich aufgezeichnet wurde auf der Benutzeroberfläche verteilt werden. Amazon EFS unterstützt standardmäßig Verschlüsselung sowohl „at Rest“ als auch während der Übertragung. Beides wird aktiviert, um Aufzeichnungen nach höchsten Sicherheitsstandards zu schützen.

Um Meeting-Zeitpläne und Anmeldeinformationen in einer skalierbaren Umgebung zu verwalten, werden Amazon Aurora und Amazon ElastiCache als zentrale und gemeinsam genutzte Datenspeicher für Greenlight und Scalelite verwendet.

Amazon Aurora ist ein Datenbankdienst, der mit MySQL und PostgreSQL kompatibel ist und speziell für die Cloud entwickelt wurde. Es kombiniert die Leistung und Verfügbarkeit von Unternehmensdatenbanken mit den Kosten einer Open-Source-Datenbank.

Amazon ElastiCache  als vollständig verwalteter Redis-KeyValue Datenspeicher beinhaltet unter anderem interne Meeting-IDs sowie Sessiondaten und dient als Endpunkt, von dem aus Scalelite Informationen darüber erhält, wohin Benutzer weitergeleitet werden sollen, wenn sie an einer bestimmten Videokonferenz teilnehmen möchten.

Um den Datenverkehr zu verteilen und zu steuern, werden Amazon Route53, den AWS Certificate Manager (ACM) und Elastic Load Balancing (ELB) verwendet.

Route53 ist ein hochverfügbarer und skalierbarer DNS-Dienst. Route53 wird für die Registrierung und Löschung der DNS-Einträge der BigBlueButton-Anwendungsserver mithilfe von AWS API-Aufrufen automatisiert. Dies ist eine einfache und bequeme Möglichkeit, die Elastizität von AWS zu nutzen.

Der AWS Certificate Manager wird verwendet, um SSL/TLS-Zertifikate für die Web-Benutzeroberfläche und den Scalelite-Anwendungs-Load-Balancer bereitzustellen. ACM ist ein Dienst, der es Kunden ermöglicht, öffentliche und private SSL/TLS-Zertifikate einfach bereitzustellen und zu verwalten. Der Dienst kümmert sich auch um die automatische Verlängerung der ausgestellten TLS-Zertifikate.

Der Amazon Elastic Load Balancer (ELB) ist ein vollständig verwalteter Dienst, welcher es Kunden ermöglicht, eingehenden Anwendungsdatenverkehr auf mehrere Ziele, wie zum Beispiel Amazon EC2-Instanzen, Container oder IP-Adressen, zu verteilen. Er skaliert automatisch mit der Nachfrage und stellt standardmäßig hohe Verfügbarkeit bereit. Für die BigBlueButton Videokonferenz-Plattform wird der ELB verwendet, um den eingehenden Datenverkehr zur Web-Benutzeroberfläche und den Scalelite-Anwendungs-Load-Balancern zu verteilen. Dadurch wird die hohe Verfügbarkeit dieser Komponenten gewährleistet.

Der ACM oder Elastic Load Balancing wird in diesem Beispiel-Projekt allerdings nicht für die Anwendungs-Serverinstanzen verwendet. Dies liegt an technischen Überlegungen: BigBlueButton verteilt Meetings über Scalelite im 1:1-Verhältnis. Der Datenverkehr, Audio- und Videosignal eines Meetings können nicht über mehrere Instanzen verteilt werden. Zusätzlich verwendet der integrierte TURN-Server eine Mischung aus TCP- und UDP-Protokollverkehr sowie zufällige High-Ports.

Amazon Simple Email Service (Amazon SES) ist ein vollständig verwalteter E-Mail-Dienst, der es Kunden ermöglicht, E-Mails aus der Videokonferenzlösung heraus zu versenden. Für die BigBlueButton Videokonferenz-Plattform wird Amazon SES verwendet, um Systembenachrichtigungen und Meeting-Einladungen zu versenden.

Mit AWS Identity and Access Management (IAM) verwalten Kunden den Zugriff auf alle bereitgestellten AWS-Dienste und -Ressourcen. Mit IAM werden Richtlinien und Rollen definiert, die dem Prinzip des geringsten Privilegs für die Instanzen und Container folgen. Dadurch wird sichergestellt, dass diese Installationen und Anwendungen nur auf die Teile der AWS-Ressourcen zugreifen können, die sie zum Betrieb benötigen. Dies ist ein wichtiger Designgrundsatz, um eine sichere Konfiguration zu gewährleisten und den möglichen Schaden zu begrenzen, falls eine Schwachstelle im Code der Anwendungskomponenten vorhanden ist.

AWS Secrets Manager hilft Kunden dabei, die für die Anwendungen, Dienste oder IT-Ressourcen erforderlichen Secrets zu schützen. Der AWS Secrets Manager wird in der Konfiguration genutzt, um Datenbank-Anmeldeinformationen an der Container-Workloads und vorab freigegebene Sicherheitsschlüssel an die Anwendungsinstanzen sicher weiterzugeben. Auch die administrativen Anmeldeinformationen werden in diesem Dienst gespeichert.

Um die BigBlueButton Videokonferenz-Plattform zu betreiben und zu überwachen, wird Amazon CloudWatch zur Erfassung von Metriken, Überwachung von Systemereignissen und Alarmierung verwendet. Darüber hinaus stellt das Beispiel-Projekt alle wichtigen Systemprotokolle in Amazon CloudWatch Logs und Amazon ECS CloudWatch Container Insights bereit. Dies bietet eine zentrale Verwaltungskonsole zur Untersuchung der Gesundheit der bereitgestellten Infrastruktur.

Im nächsten Abschnitt zeigen wir nun auf, wie die Installation tatsächlich funktioniert.

2. Einstieg

2.1 Voraussetzungen

Um die Installation durchzuführen, müssen Softwarekomponenten auf dem Gerät installiert werden. Es spielt keine Rolle, ob Sie die Skripte auf macOS, Linux oder dem Windows Subsystem for Linux (WSL) ausführen. Die schrittweise Anleitung im Projekt-Repository funktioniert aber auch mit Windows PowerShell.

Für dieses Tutorial werden wir uns an die vollständig automatisierte, skriptbasierte Installation halten.

Installieren und konfigurieren Sie zunächst die folgenden Komponenten:

In Ihrem AWS-Konto richten Sie eine öffentliche Hosted-Zone in Route53 ein. Diese Hosted-Zone wird später bei der Automatisierung verwendet, um die Front-End- und Anwendungsinstanzen zu registrieren, sodass diese mit gültigen SSL-Zertifikaten erreichbar sind. Die Hosted-Zone kann entweder eine registrierte Domain oder eine extern registrierte Domain sein. Sie können auch Subdomains für die Einrichtung verwenden und in Route53 einbinden.

Sie benötigen eine gültige E-Mail-Adresse. Während der Installation und im Betrieb sendet die bereitgestellte Lösung Benachrichtigungen und Alarme an die angegebene E-Mail-Adresse. Ihre anfängliche Administrator-Anmeldung wird ebenfalls die E-Mail-Adresse(n) verwenden.

Das Ziel-AWS-Konto sollte sich nicht mehr im Amazon SES-Modus „Sandbox“ befinden oder alternativ sollten Sie jede E-Mail-Adresse, die Sie für Tests und Einladungen verwenden möchten, als Ziel-E-Mail-Adresse validieren.

2.2 Parameter

Sie können dem Installationsskript und den Automatisierungskomponenten Parameter übergeben die die resultierende Videokonferenzumgebung an Ihre Bedürfnisse anpasst. Eine vollständige Liste der Parameter finden Sie in unserem GitHub-Repository. Dieses Tutorial beschränkt sich auf die Parameter, die an das setup.sh-Skript übergeben werden, um wesentliche Aspekte der Installation anzupassen.

Übergeben Sie die folgenden CLI-Parameter an das Skript:

  • -p: Das AWS CLI-Profil, das verwendet werden soll
  • -e: Die E-Mail-Adresse an welche zum Beispiel Systemmitteilungen gesendet werden sollen
  • -h: Die Hosted-ZoneID, zu der die DNS-Einträge hinzugefügt werden sollen
  • -s: Der Name des CloudFormation-Stacks, den Sie verwenden möchten
  • -d: Der vollqualifizierte Domainname (FQDN) der gehosteten Zone

Wenn Sie zusätzliche Parameter ändern oder anpassen möchten, finden Sie weitere Informationen in der README.md-Datei des GitHub-Repositories und in der Datei bbb-on-aws-param.json im Stammverzeichnis des Beispiel-Projekts. Hier können Sie zentral, wichtige Anpassungen vornehmen.

3. Installation

3.1. Klonen Sie das Projekt

git clone https://github.com/aws-samples/aws-scalable-big-blue-button-example.git
cd ./aws-scalable-big-blue-button-example/

3.2. Starten Sie die Installation und übergeben Sie die oben genannten Parameter an das Skript setup.sh

./setup.sh -p MYPROFILE -e johndoe@example.com -h XSgu71231 -s bbb-stack -d bbb.example.com

Info: Die Installation wird etwa 30 bis 45 Minuten dauern.

3.3. Sie können den Status der Installation jederzeit über die AWS Management-Konsole oder über folgenden CLI-Befehl überprüfen:

aws cloudformation describe-stack-events --profile MYPROFILE --stack-name bbb-stack

Info: Denken Sie daran den Parameter „—profile“ an Ihr Setup anzupassen

Die Ausgabe gibt Ihnen die nötigen Informationen über den Erfolg der Installation

{
"StackEvents": [
{
"StackId": "arn:aws:cloudformation:eu-west-1: 00000000000:stack/bbbdev/9aa1de70-0ed0-11ee-ae5c-02bd6ca7bc0f",
"EventId": "fedf47a0-0ed6-11ee-b1e8-06038723fe29",
"StackName": " bbb-stack ",
"LogicalResourceId": " bbb-stack ",
"PhysicalResourceId": "arn:aws:cloudformation:eu-west-1: 00000000000:stack/ bbb-stack /9aa1de70-0ed0-11ee-ae5c-02bd6ca7bc0f",
"ResourceType": "AWS::CloudFormation::Stack",
"Timestamp": "2023-06-19T19:25:05.664000+00:00",
"ResourceStatus": "CREATE_COMPLETE"
},
{
"StackId": "arn:aws:cloudformation:eu-west-1: 00000000000:stack/bbb-stack /9aa1de70-0ed0-11ee-ae5c-02bd6ca7bc0f",
"EventId": "BBBAppStack-CREATE_COMPLETE-2023-06-19T19:25:03.094Z",
"StackName": "bbb-stack ",
"LogicalResourceId": "BBBAppStack",
"PhysicalResourceId": "arn:aws:cloudformation:eu-west-1:00000000000:stack/ bbb-stack -BBBAppStack-1IDWEP8QOEYRQ/e1f98ae0-0ed3-11ee-ad20-026a8a19c047",
"ResourceType": "AWS::CloudFormation::Stack",
"Timestamp": "2023-06-19T19:25:03.094000+00:00",
"ResourceStatus": "CREATE_COMPLETE",
"ResourceProperties": "{\"TemplateURL\":\"https://s3.amazonaws.com/bbb-stack -sources-bbbstackbucket-q6e0j1jqxomu/bbb-on-aws-bbbappscalable.template.yaml\",\"Parameters\":{\"BBBECSInstanceType\":\"fargate\",\"BBBApplicationDesiredInstances\":\"1\",\"BBBApplicationInstanceType\":\"t3a.medium\",\"BBBApplicationMinInstances\":\"1\",\"BBBSharedStorageFS\":\"fs-0a59c2010f7d80998\",\"BBBApplicati……

Wie Sie sehen wird die Installation in Haupt- und zugehörige verschachtelte Stacks aufgeteilt. Jedes verschachtelte Stack liefert Ausgaben, die wichtige Informationen zu den einzelnen Ressourcen enthalten.

Im Installationsprozess wurden CNAME-Einträge für das Front-End sowie alle öffentlich verfügbaren Dienste zur Route53-Hosted Zone in Ihrem AWS-Konto hinzugefügt.

3.4. Um auf die bereitgestellte Video-Konferenzplattform zuzugreifen, navigieren Sie nun zu conference.example.com.

Dies bringt Sie zur Startseite, die von Greenlight bereitgestellt wird.

Bild 2: Startseite von Greenlight / Big Blue ButtonBild 2: Startseite von Greenlight / Big Blue Button

Rufen Sie Ihre Anmeldedaten unter dem Secret BBBAdministratorLogin-XXXXX aus dem AWS Secrets Manager ab

3.5. Nutzen Sie die AWS CLI, um die Logindetails abzurufen:

aws secretsmanager list-secrets --profile MYPROFILE --output text --query 'SecretList[?contains(Name, `BBBAdministratorlogin`)].Name' | \
xargs -I {} aws secretsmanager get-secret-value --profile MYPROFILE --secret-id {} --output text --query 'SecretString'

Das Kommando gibt Ihnen die nötigen Logindaten als Ausgabe zurück

{"password":"PASSWORD","username":"johndoe@example.com"}

Info: Denken Sie daran den „—profile“ an Ihr Setup anzupassen

3.6. Sie können sich nun mit den Administrator-Anmeldeinformationen anmelden:

  • E-Mail/Benutzername: johndoe@example.com (die E-Mail-Adresse, die Sie als Betreiber-E-Mail-Adresse mit dem Parameter für setup.sh festgelegt haben)
  • Passwort: Ein generiertes Passwort, welches Sie im AWS Secrets Manager finden

Bild 3: Anmeldebutton der BigBlueButton Videokonferenz-PlattformBild 3: Anmeldebutton der BigBlueButton Videokonferenz-Plattform

Nach der Anmeldung gelangen Sie zu Ihrer persönlichen Startseite.

Bild 4: Landing Page nach dem Login auf der BigBlueButton Video-Konferenzplattform

Von hier aus können Sie die Einrichtung verwalten oder Ihre erste Besprechung starten.

4. Besprechung beginnen

  • 4.1. Erstellen Sie über die Weboberfläche einen neuen Raum für Ihre Meetings.

Bild 5: Erstellung eines neuen Videokonferenzraumes

Bild 5: Erstellung eines neuen Videokonferenzraumes

  • 4.2. Indem Sie auf die Schaltfläche „Start“ auf der Raumübersicht klicken starten Sie die eigentliche Videokonferenz.

Bild 6: Starten der Videokonferenz

Bild 6: Starten der Videokonferenz

  • 4.3. Führen Sie zunächst den Test durch, um sicherzustellen, dass Ihr Headset oder Ihre Mikrofon-/Lautsprecher-Konfiguration ordnungsgemäß funktioniert.

Bild 7: Echo Test

Bild 7: Echo Test

Info: Denken Sie daran BigBlueButton den Zugriff auf Ihr Mikrophon sowie Ihre Kamera zu erlauben.

Willkommen zu Ihrer skalierbaren BigBlueButton-Installation. Weitere Informationen zur Nutzung von BigBlueButton finden sie in der entsprechenden Dokumentation.

Bild 8: Die Videokonferenz

Bild 8: Startseite einer Videokonferenz mit BigBlueButton

5. Scale-out und Scale-In

AWS-Dienste und ihre Funktionen machen es zu einer einfachen Betriebsaufgabe, die BigBlueButton Videokonzerenz-Plattform zu skalieren.

Sie verwenden Amazon EC2 Auto Scaling, um Ihre BigBlueButton-Anwendungsserverinstanzen zu skalieren.

5.1 Für die Skalierung der Instanzen verwenden sie folgenden Befehl und passen die Parameter für –min-site, –max-size sowie –desired-capacity an die benötigte Anzahl der Instanzen an:

aws autoscaling describe-auto-scaling-groups --profile MYPROFILE --query "AutoScalingGroups[?contains(AutoScalingGroupName, 'BBBApplicationAutoScaling')].AutoScalingGroupName" --output text | \
 xargs -I {} aws autoscaling update-auto-scaling-group --profile MYPROFILE --auto-scaling-group-name {} --min-size 2 --max-size 2 --desired-capacity 2

Info: Denken Sie daran den „–profile“ an Ihr Setup anzupassen

Eine weitere BigBlueButton-Anwendungsinstanz wird nach wenigen Minuten bereit sein, um Videokonferenzen zu beherbergen.

Wir empfehlen Ihnen nicht die Funktion der dynamischen Skalierung von Amazon EC2 Auto Scaling basierend auf Metriken da Sie auf reiner Basis einfacher Metriken wie der CPU Auslastung nicht sicher feststellen können ob eine BigBlueButton-Anwendungsinstanz nicht doch kleine Meetings beherbergt. Daher sollten Sie sicherstellen, dass die Skalierung auf eine feste Anzahl von Instanzen eingestellt ist, indem Sie die gleiche Anzahl von Instanzen für Minimum, Maximum und Desired verwenden.

Für eine konsistentere Skalierung sollten Sie ebenfalls den Parameter in der Datei „bbb-on-aws-param.json“ im Repository-Ordner ändern und das Deployment via ./setup.sh auf Stand bringen.

6. Aufräumen

Um die Installation zu entfernen, können Sie zur AWS CloudFormation-Konsole navigieren und den Haupt-Stack löschen. Nachdem Sie den Haupt-Stack und die verschachtelten Stacks gelöscht haben, können Sie den S3-Bucket leeren, der für die Quelldateien generiert wurde, und den SourceBucket-Stack löschen.

Alternativ können Sie das Skript ./destroy.sh im Stammverzeichnis des Repositorys verwenden.

Das Script ./destroy.sh erfordert zwei Parameter:

  •  „-p“: das AWS CLI-Profil, das verwendet werden soll
  • „-s“: der Name des CloudFormation-Stacks, den Sie verwendet haben
./destroy.sh -p MYPROFILE -s bbb-stack

Info: Denken Sie daran den „–profile“ an Ihr Setup anzupassen

Bitte beachten Sie, dass das Entfernen der Installation dauerhaft ist und alle damit verbundenen Ressourcen gelöscht werden. Stellen Sie sicher, dass Sie alle benötigten Daten und Informationen gesichert haben, bevor Sie den Entfernungsprozess starten.

Seien Sie vorsichtig beim Verwenden von Skripten und stellen Sie sicher, dass Sie die richtigen Parameter verwenden, um unerwünschte Löschungen zu vermeiden.

7. Optional: Single-Instanz Installation

Wenn Sie die bbb-on-aws-param.json-Datei im Stammverzeichnis des Projekts öffnen, können Sie den Wert von BBBEnvironmentType von scalable in single ändern. Anschließend können Sie die Installation mithilfe von setup.sh durchführen.
Amazon CloudFormation richtet dann keine Amazon ECS-, Amazon RDS- oder Amazon Elasticache-Ressourcen ein und reduziert im Wesentlichen die Installation auf das absolute Minimum, um Big Blue Button zu demonstrieren oder zu testen.

Bitte beachten Sie, dass die Umstellung auf den „single“-Modus die Funktionalität und Skalierbarkeit Ihrer BigBlueButton-Installation erheblich einschränkt. Stellen Sie sicher, dass dies Ihren Anforderungen entspricht, bevor Sie die Änderungen vornehmen.

8. Optional: EC2-basierte Installation für Greenlight und Scalelite

Wenn Sie Greenlight und Scalelite mit Hilfe von Amazon EC2-Virtual Instanzen anstelle des Standardserverlosen Ansatzes mittels AWS Fargate bereitstellen möchten, passen Sie einen Parameter in unserer „bbb-on-aws-param.json“ an, um die Art und Weise zu ändern.

Dazu ändern Sie:

"BBBECSInstanceType": "fargate"

zu

"BBBECSInstanceType": "t3a.medium"

und führen Sie die Installation anschließend mit setup.sh aus.

9. Wie geht es weiter?

Das aktuelle Code-Beispiel und die Lösungsmethodik bieten weitere Möglichkeiten zur Verbesserung durch zusätzliche Automatisierung und Skalierbarkeit. Zum Beispiel kann die automatische Skalierung der Anwendungsinstanzen weiter überprüft werden. Darüber hinaus könnte die Verteilung der einzelnen BigBlueButton Komponenten auf mehrere Instanzen die Elastizität und Zuverlässigkeit des Systems verbessern.

Diese Ideen erfordern jedoch weitere Anpassungen der Scalelite- sowie tiefgreifendere Änderungen an der BigBlueButton-Konfiguration.

10. Abschluss

Dieser Beitrag zeigt, wie man mit Hilfe von AWS-Diensten und Open-Source-Softwarekomponenten eine skalierbare Video-Konferenzlösung aufbauen kann. Sie haben erkundet, wie Sie IaC mit AWS CloudFormation und Bash-Scripten nutzen, um Infrastruktur-Setups und Anwendungsinstallationen vollständig zu automatisieren.

Alle Komponenten des Projekts sind Open Source. Sie können gerne beitragen, Feedback geben oder sich bei Problemen an uns wenden.

Sie sind herzlich eingeladen, Pull Requests zu erstellen, und zögern Sie nicht, den GitHub-Issue-Tracker zu nutzen, falls Sie Fragen oder Probleme haben.

AWS Scalable BigBlueButton example auf GitHub

Third-party/Open Source Komponenten:

Über den Autor

David Surey ist ein Solutions Architect mit Sitz in Berlin, Deutschland. Er verfügt über etwa 20 Jahre Erfahrung in der IT-Branche und hat in Desktop- und Server-Support-Rollen sowie als Systemingenieur und Cloud Solution Architect gearbeitet. Seit einigen Jahren konzentriert er sich auf die Automatisierung und Innovation von Rechenzentren sowie auf die Entwicklung von Cloud-Infrastrukturen. Er ist ein leidenschaftlicher Spieler und tüftelt gerne mit Open-Source-Software herum.