Jitsi Aws Cost

How 8x8 handled the cost of giving free video meetings to the world 8x8 moves to Oracle Cloud Infrastructure from AWS and saves 80%. The company had acquired Jitsi videoconferencing from Atlassian in 2018 and launched Jitsi Meet in November 2019. Then the pandemic hit. Deploying Jitsi on AWS ECS. Container instructions. If you prefer to deploy Jitsi onto container infrastructure, the open source maintainers have your back here, and there is a repository that has docker instructions here. I will use that as a starting point for deploying Jitsi on Amazon ECS. This has been tested on Linux and MacOS.

Infrastructure as Code: Deploy Jitsi Meet to AWS

The Jitsi instance is per default not accessible via ssh for security reasons. If you have to debug it perform the following steps: Get your public IP address, e.g. By visiting this site.

Hello world! Since the global COVID-19 pandemic started many businesses are now relying on video conference software like Zoom.In my humble opinion open-source alternatives like Jitsi Meet are not getting enough attention. So today we are going to set up a Jitsi Meet Server on AWS. If you’ve got no clue why to use Terraform, read my short introduction or the official documentation.

Prerequisites

Jitsi Aws Cost

Before we start with the setup we need to organize a few things.

  1. Install Terraform on your local machine. Documentation
  2. Set up a fully qualified domain name for your server instance. Without a domain, we can’t register a TLS certificate via Let’s encrypt. I registered my domain with name.com. If you are currently enrolled as a student, you can get a free domain for one year with the GitHub student developer pack.
  3. Create AWS access and secret keys for the Terraform provider to authenticate and authorize. Documentation
  4. Create and download SSH keys to connect to your instance. Documentation
  5. Allocate one Elastic IP for your Jitsi Meet instance. When you start a EC2 instance you get a dynamic IPv4 address, but since we need a domain for the SSL/TLS encryption, a static IPv4 is required. Documentation
  6. Change your DNS settings so that your domain name is pointing to your Elastic IP. Be aware that the propagation of DNS entries can take up to 48 Hours. Here you can verify that the entry is correct.

Please note the price model for elastic IPs. When the IP is associated with a running instance, you do not pay for it. If the IP is allocated and not connected to an instance, you have to pay 0.005 USD per hour. For more details see the EC2 pricing page.

Setup

  1. Clone the GitHub repository. AvasDream/terraform_aws_jitsi_meet
  2. Copy the template variables.tf file to the root of the repository.

  3. Fill in your data in the variables.tf file.
  4. Execute terraform init to initialize the project and download all providers.
  5. Execute terraform apply to apply the changes to AWS.

The setup can take some time depending on your EC2 instance type. You can now connect to your instance with SSH and check the /debug.txt file. Acronis 2020 vs 2021. When the setup is finished, there should be a success message from the Let’s encrypt init script. One thing to be aware of is the rate limit on certificates from Let’s encrypt (50 certificates per week for one domain).

Install

Terraform Configurations

Next I will try to explain what every configuration file is responsible for.

associate_eip.tf: The Elastic IP is associated with the created EC2 instance. Documentation

get_ami.tf: The Amazon machine image created by Canonical is searched from the AWS Marketplace and filtered by name.

get_eip.tf: The allocated Elastic IP is retrieved from the AWS account by IPv4 address.

Jitsi Aws Cost Comparison

get_external_ip.tf: The WAN IP of your local machine is retrieved from the icanhazip API. This is used in the security policy, so only your address has SSH access.

install_jitsi.tpl: This template file is used by cloud-init and executed while booting the instance. String interpolation evaluates all variables (${var.name}) and inserts the defined value. After the interpolation this file is a valid bash script. Most of the used commands are defined in the Jitsi Meet install guide.

create_instance.tf: Here the main instance is configured and the template file above is inserted as user_data. In the vars section of the template_file data source, the defined variables email_address and domain_name from variables.tf are inserted/interpolated in the bash script.

Jitsi Desktop

aws_provider.tf: The AWS provider version, region and authentication keys are defined here.

security_groups.tf: In this file the network access ingress and egress for the instance is defined. The following table shows all ports, their protocol and service.

Jitsi Meet Online

PortProtocolDirectionUsed by
53UDPegressDNS
443TCPegressHTTPS
80TCPegressHTTP
10000UDPingressJitsi Videobridge
443TCPingressHTTPS
80TCPingressHTTP
22TCPingressSSH

Jitsi Aws Cost Calculator

Jitsi aws cost comparison

How Much Does Jitsi Cost

If there are any open questions just ask me on Twitter or check the references.

Jitsi Web Client

Stay healthy!

References