Skip to content

Commit

Permalink
Merge pull request #131 from aws-samples/6.0.0
Browse files Browse the repository at this point in the history
6.0.0
  • Loading branch information
couchgott authored Dec 5, 2024
2 parents 65f0fe1 + b50a54a commit 6027ff4
Show file tree
Hide file tree
Showing 23 changed files with 2,390 additions and 1,924 deletions.
30 changes: 30 additions & 0 deletions CHANGELOG.MD
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,41 @@
# Change Log

All notable changes to this project will be documented in this file.
## [6.0.0] - 2024-11-29

### Fixed
- Bootstraping EC2 IP evaluation
- route53-handler script does its work again
- fixed install script step
- fixed links for scalelite downloads when bootstrapping
- Greenlight user creation and bootup fixed

### Changed
- pin platform for docker push/pull to linux/amd64 to ensure scripts are functional for arm based deployment systems
- upgrade of the Aurora PostgrSQL Engine Version to 16.4
- upgrade of the (default) BBB version to 2.7.X
- removed the validation step of the Amazon Cloudformation templates to speed up setup.
- switch to valkey 7.2
- reorganization and optimizing the templates for better maintainability and readability
- setup.sh and destroy.sh are now shell agnostic and improved
- stripped down new to create vpc to the minimum needed to remove complexity for the sample code
- rewriten handler scripts for better logging, debugging, maintainability
- removal of single instance install for cleaner repo
- removal of EnvironmentType Switch/Variables.
- removal of dev/stage/prod switch, we assume this a test/tinker environment. It ensures cleaner, simple templates
- make the version settings for bbb-scalable more dynamic and depend on the set application version.
- added scalelite managament script to delete instances from the LB and debug if needed directly from the console


### Upgrade Notes:
- Upgrading the Amazon Aurora Postgres Engine version and/or the switch to Aurora Serverless v2 via Amazon Cloudformation is not supported. Please refer to the official [upgrade documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.PostgreSQL.html) and [migrate to Aurora Serverless v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.upgrade.html) if you have a already running environment using an older engine version and/or Aurora Serverless v1 to proceed with the upgrade before using the Cloudformation deployment.
- This is an overall rewrite/remake of a lot of things, please do a new deployment rather than than an inplace upgrade. If you desperately want to update inplace: Do proper backups first!

## [5.0.1] - 2023-08-02

### Fixed:
- typo at setup.sh

## [5.0.0] - 2023-06-15
### Upgrade Notes:
- Upgrading the Amazon Aurora Postgres Engine version and/or the switch to Aurora Serverless v2 via Amazon Cloudformation is not supported. Please refer to the official [upgrade documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.PostgreSQL.html) and [migrate to Aurora Serverless v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.upgrade.html) if you have a already running environment using an older engine version and/or Aurora Serverless v1 to proceed with the upgrade before using the Cloudformation deployment.
Expand Down
39 changes: 18 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,45 +76,42 @@ These parameters you have to pass to the [setup script](./setup.sh)
| -h | the hosted zone ID the DNS records to be added |
| -s | the Cloudformation stack name you want to use |
| -d | the FQDN for (aligned to the hosted zone ) |

| -l | the log level choose DEBUG, INFO, WARN, ERROR |

**Deployment parameters:**

The deployment parameters are placed into the bbb-on-aws-param.json or to be set via cli/console ( if you choose the step-by-step setup. )

| Parameter Name | Default Value | Description | Comment |
| ---- | ---- | ---- | ---- |
| BBBApplicationVersion | focal-260 | Big Blue Button Version to be deployed | Refer to the Big Blue Button [documentation](https://docs.bigbluebutton.org/) to check for supported versions. |
| BBBApplicationVersion | focal-270 | Big Blue Button Version to be deployed | Refer to the Big Blue Button [documentation](https://docs.bigbluebutton.org/) to check for supported versions. |
| BBBApplicationInstanceAMIParameter | /aws/service/canonical/ubuntu/server/20.04/stable/current/amd64/hvm/ebs-gp2/ami-id | Big Blue Button Application Instance AMI Parameter to be resolved | Refer to the Big Blue Button [documentation](https://docs.bigbluebutton.org/) to check for supported versions of Ubuntu for the application version you set using "BBBApplicationVersion" parameter. |
| BBBECSInstanceType| t3a.large| Instance size of the ECS Cluster worker nodes or "fargate" for serverless deployment | EC2 instance sizes should be aligned with the size VCPU and Memory limits of the to be deployed tasks. setting this parameter to fargate will cause a Serverless Setup using AWS Fargate |
| BBBECSInstanceType| fargate | Instance size of the ECS Cluster worker nodes or "fargate" for serverless deployment | EC2 instance sizes should be aligned with the size VCPU and Memory limits of the to be deployed tasks. setting this parameter to fargate will cause a Serverless Setup using AWS Fargate |
| BBBApplicationInstanceType| t3a.xlarge| Instance size of the Big Blue Button Application node(s) | please refer to the Big Blue Button [Documentation](https://docs.bigbluebutton.org/2.2/install.html#minimum-server-requirements) for rightsizing |
| BBBApplicationDataVolumeSize | 20 | the size of the application data volume used for recording buffer |
| BBBApplicationRootVolumeSize | 20 | the size of the application root volume |
| BBBDBInstanceType| db.t3.medium| Instance size of the Aurora Database Instance or "serverless" for serverless deployment | Heavily related to usage, collect metrics and test.
| BBBCACHEDBInstanceType| cache.t3.micro| Instance size of the Redis security token and call ID handling | Depends on usage.
| BBBDBInstanceType | db.t3.medium| Instance size of the Aurora Database Instance or "serverless" for serverless deployment | Heavily related to usage, collect metrics and test.
| BBBCACHEDBInstanceType | cache.t3.micro| Instance size of the Amazon ElastiCache for security token and call ID handling | Depends on usage.
| BBBVPC| 10.1.0.0/16 | The Cidr block or ID for the VPC created during the deployment | we deploy an own VPC for the deployment containing public and private subnets as well nas internet and nat gateways. If an ID is passed over (vpc-*) the deployment will use the existing custom VPC and it's subnets. be sure to add the subnet ids into the parameters as well!
| BBBPrivateApplicationSubnets| 10.1.5.0/24,10.1.6.0/24,10.1.7.0/24 | The cidr blocks or IDs of subnets within the VPC for the non-public components of the application deployment | count have to be = BBBNumberOfAZs
| BBBPrivateDBSubnets| 10.1.9.0/24,10.1.10.0/24,10.1.11.0/24| The cidr blocks or IDs of subnets within the VPC for the database backend. | count have to be = BBBNumberOfAZs
| BBBPublicApplicationSubnets| 10.1.15.0/24,10.1.16.0/24,10.1.17.0/24| The cidr blocks or IDs of subnets within the VPC for the direct public accessible application components | count have to be = BBBNumberOfAZs
| BBBApplicationSubnets | 10.1.5.0/24,10.1.6.0/24,10.1.7.0/24 | The cidr blocks or IDs of subnets within the VPC for the components of the application deployment | count have to be = BBBNumberOfAZs only to set for existing VPCs
| BBBDatastoreSubnets | 10.1.9.0/24,10.1.10.0/24,10.1.11.0/24| The cidr blocks or IDs of subnets within the VPC for the database backend. | count have to be = BBBNumberOfAZs only set for existing VPCS
| BBBNumberOfAZs | 3 | Number of AZs to be utilized by the deployment | valid value 1,2 or 3
| BBBECSMaxInstances| 10| The maximum amount of instances the ECS cluster should scale out to | set a reasonable maximum to prevent cost explosion on unexpected usage
| BBBECSMinInstances| 1| The minimum amount of worker instances at the ECS cluster|
| BBBECSDesiredInstances| 3| The desired amount of instances of worker instances at the ECS cluster |
| BBBApplicationMaxInstances| 1| The maximum amount of Big Blue Button Application servers | Set depending on the awaited load and planned instance size. |
| BBBApplicationMinInstances| 1| The minimum amount of Big Blue Button Application servers | As EC2 Autoscaling is currently not aware of ongoing video conferences, i recommend set min=max=desired and not use dynamic here (planned scale out/in) |
| BBBApplicationDesiredInstances| 1| The desired amount of Big Blue Button Application servers | As EC2 Autoscaling is currently not aware of ongoing video conferences, i recommend set min=max=desired and not use dynamic here (planned scale out/in) |
| BBBDBEngineVersion| 10.7| Set the Postgres version to be used at the Amazon Aurora setup | please refer to the Amazon Aurora [documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) for supported versions
| BBBEnvironmentStage| dev | can be set to "dev","stage" or "prod" | currently stage or prod does change the Amazon Aurora Setup to a Multi-AZ Setup and adds a 2nd Nat-Gateway to the deployment.
| BBBDBEngineVersion| 16.4| Set the Postgres version to be used at the Amazon Aurora setup | please refer to the Amazon Aurora [documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) for supported versions
| BBBServerlessAuroraMinCapacity | The minimum capacity for the Amazon Aurora Serverless Cluster. | Value has to be >= 2
| BBBServerlessAuroraMaxCapacity | The maximum capacity for the Amazon Aurora Serverless Cluster.
| BBBEnvironmentName| bbbonaws| the name of the environment
| BBBEnvironmentType| scalable| can be either "scalable" or "single" | scalable for full scalable deployments. Single does leave out the ECS cluster, scalelite inner-application load balancer and Databases and installs Big Blue Button and Greenlight on a single EC2 instance and a turn server instance.
| BBBgreenlightImage| bigbluebutton/greenlight:v2| greenlight container image to be used
| BBBScaleliteApiImage| blindsidenetwks/scalelite:v1-api| scalelite api container image to be used
| BBBScaleliteNginxImage| blindsidenetwks/scalelite:v1-nginx| scalelite nginx container image to be used
| BBBScalelitePollerImage| blindsidenetwks/scalelite:v1-poller| scalelite poller container image to be used
| BBBScaleliteImporterImage| blindsidenetwks/scalelite:v1-recording-importer| scalelite recording importer container image to be used
| BBBCacheAZMode| cross-az| Deploy the Redis cluster cross-az or single-az | only cross-az supported atm
| BBBEnvironmentName | bbbonaws| the name of the environment
| BBBgreenlightImage | bigbluebutton/greenlight:v3.4.1| greenlight container image to be used
| BBBScaleliteApiImage | blindsidenetwks/scalelite:v1.6-api| scalelite api container image to be used
| BBBScaleliteNginxImage | blindsidenetwks/scalelite:v1.6-nginx| scalelite nginx container image to be used
| BBBScalelitePollerImage | blindsidenetwks/scalelite:v1.6-poller| scalelite poller container image to be used
| BBBScaleliteImporterImage | blindsidenetwks/scalelite:v1.6-recording-importer| scalelite recording importer container image to be used
| BBBCacheAZMode| cross-az | Deploy the Amazon Elasticcache cluster cross-az or single-az | only cross-az supported atm
| BBBGreenlightMemory| 1024 | memory limit of the Greenlight task
| BBBGreenlightCPU| 512| vCPU limit of the Greenlight task
| BBBScaleliteMemory | 2048 | Memory limit for the Scalelite tasks | setting per task for all inheritated containers
Expand All @@ -123,7 +120,7 @@ The deployment parameters are placed into the bbb-on-aws-param.json or to be set
| BBBSESValidated| false | controls if a pre validated SES domain is used | set to true if you setup the SES domain outside of this deployment
| BBBACMCertArn | - | existing SSL/TLS Certificate ARN for HTTPS | add your Certificate ARN here. e.g. if you imported your own Cert into ACM.
| BBBFrontendType | Greenlight | choose "Greenlight" for deploying a scalable Greenlight Frontend and "External" to only get the Scalelite API endpoint to be able to connect an externally managed LMS"

| BBBUsePublicApplicationIP | ENABLED | Automatic Public IPs for ECS Tasks ENABLED/DISABLED - enabled for default deployment incl VPC creation
# Deployment

## Automatic
Expand Down Expand Up @@ -223,9 +220,9 @@ The Deployment consists of 2 main templates and 13 nested templates.

*The deployment of Amazon Aurora is needed to provide a database for Greenlight and Scalelite where the video conference schedules, user data and recording information are persistent*
---
- Deploy Amazon Elasticache (Redis): [bbb-on-aws-cachedb.template.yaml](./templates/bbb-on-aws-cachedb.template.yaml)
- Deploy Amazon Elasticache: [bbb-on-aws-cachedb.template.yaml](./templates/bbb-on-aws-cachedb.template.yaml)

*This template deploys an Amazon Elasticache (redis) cluster where security token and conference IDs are located for the call handling via Scalelite*
*This template deploys an Amazon Elasticache cluster where security token and conference IDs are located for the call handling via Scalelite*
---
- Fire up the ECS Cluster: [bbb-on-aws-ecs.template.yaml](./templates/bbb-on-aws-ecs.template.yaml)

Expand Down
29 changes: 13 additions & 16 deletions bbb-on-aws-param.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"Parameters" : {
"BBBApplicationVersion": "focal-260",
"BBBApplicationVersion": "focal-270",
"BBBApplicationInstanceAMIParameter": "/aws/service/canonical/ubuntu/server/20.04/stable/current/amd64/hvm/ebs-gp2/ami-id",
"BBBECSInstanceType": "fargate",
"BBBApplicationInstanceType": "t3a.medium",
Expand All @@ -9,32 +9,29 @@
"BBBDBInstanceType": "db.serverless",
"BBBServerlessAuroraMinCapacity": 0.5,
"BBBServerlessAuroraMaxCapacity": 2,
"BBBCACHEDBInstanceType": "cache.t3.micro",
"BBBVPCs": "10.1.0.0/16",
"BBBPrivateApplicationSubnets": "10.1.5.0/24,10.1.6.0/24,10.1.7.0/24",
"BBBPrivateDBSubnets": "10.1.9.0/24,10.1.10.0/24,10.1.11.0/24",
"BBBPublicApplicationSubnets": "10.1.15.0/24,10.1.16.0/24,10.1.17.0/24",
"BBBNumberOfAZs": 3,
"BBBCACHEDBInstanceType": "cache.t4g.micro",
"BBBVPCDEF": "10.1.0.0/16",
"BBBDatastoreSubnets": "10.1.5.0/24,10.1.6.0/24,10.1.7.0/24",
"BBBApplicationSubnets": "10.1.8.0/24,10.1.9.0/24,10.1.10.0/24",
"BBBECSMaxInstances": 3,
"BBBECSMinInstances": 1,
"BBBECSDesiredInstances": 1,
"BBBApplicationMaxInstances": 1,
"BBBApplicationMinInstances": 1,
"BBBApplicationDesiredInstances": 1,
"BBBDBEngineVersion": "14.3",
"BBBEnvironmentStage": "dev",
"BBBDBEngineVersion": "16.4",
"BBBEnvironmentName": "bbbonaws",
"BBBEnvironmentType": "scalable",
"BBBgreenlightImageTag": "v3",
"BBBScaleliteApiImageTag": "v1.4-api",
"BBBScaleliteNginxImageTag": "v1.4-nginx",
"BBBScalelitePollerImageTag": "v1.4-poller",
"BBBScaleliteImporterImageTag": "v1.4-recording-importer",
"BBBgreenlightImageTag": "v3.4.1",
"BBBScaleliteApiImageTag": "v1.6-api",
"BBBScaleliteNginxImageTag": "v1.6-nginx",
"BBBScalelitePollerImageTag": "v1.6-poller",
"BBBScaleliteImporterImageTag": "v1.6-recording-importer",
"BBBCacheAZMode": "cross-az",
"BBBGreenlightMemory": 1024,
"BBBGreenlightCPU": 512,
"BBBScaleliteMemory": 2048,
"BBBScaleliteCPU": 1024,
"BBBFrontendType": "Greenlight"
"BBBFrontendType": "Greenlight",
"BBBUsePublicApplicationIP": "ENABLED"
}
}
Loading

0 comments on commit 6027ff4

Please sign in to comment.