Skip to content
Jitsi.help

How to run Jitsi Meet on AWS

Updated Tested on Jitsi Meet stable-11031By the Jitsi Help engineering team

Short answer

Launch an Ubuntu EC2 instance (t3.medium for most teams), attach an Elastic IP, point your domain at it, allow 80/tcp, 443/tcp and 10000/udp in the security group, then install the Docker stack. For recording, install the generic Linux kernel first, because AWS's default kernel lacks the snd-aloop module Jibri needs. Or deploy the same setup into your own AWS account in one click.

AWS is a good home for Jitsi: you choose the region closest to your users, you pay only for the instance and traffic, and the data never leaves your own account. The catch is the amount of AWS plumbing between “launch an instance” and “a working meeting”.

This guide covers the manual path. Our platform automates exactly these steps with Terraform and Ansible in your own AWS account, in 10 to 20 minutes.

1. Choose a region and instance

Pick the region nearest to most participants. Latency matters more for conversation than for streaming.

Instance Use Approx. monthly (ap-south-1)
t3.small Testing, very small groups $18
t3.medium Most teams, up to about 50 concurrent $33
t3.large About 100 concurrent, or recording on the same server $63
c5.xlarge Dedicated recorder, 2 to 3 concurrent recordings $136
t3.xlarge Vosk transcription $125

Rounded on-demand compute as of August 2026. Storage, data transfer and S3 are extra.

Two AWS details worth knowing:

  • T3 unlimited mode. T3 instances launch in unlimited mode, so sustained high CPU is billed as surplus credits instead of throttled. Fine for bursts, costly for a server that records all day.
  • Data transfer out. Video leaving AWS is billed per GB. For busy servers it can exceed the instance cost.

2. Launch the instance

  • AMI: Ubuntu Server 24.04 LTS (64-bit x86).
  • Storage: 20 GB gp3 at least, more if recordings stay on disk before upload.
  • Key pair: create or reuse one for SSH.

3. Security group rules

Type Port Source Why
SSH 22/tcp Your IP only Administration
HTTP 80/tcp 0.0.0.0/0 Let’s Encrypt challenge, redirect to HTTPS
HTTPS 443/tcp 0.0.0.0/0 Web app and signalling
Custom UDP 10000/udp 0.0.0.0/0 All audio and video

If you later add a separate recording server, allow 5222/tcp on the Jitsi server only from the recorder’s security group, never from the internet. Referencing the security group rather than an IP keeps it correct when the recorder is replaced.

4. Attach an Elastic IP

An instance’s default public IP changes when it stops and starts. Allocate an Elastic IP and associate it with the instance, so DNS and the videobridge’s advertised address stay valid.

5. Point DNS at it

Create an A record, for example meet.example.com, pointing at the Elastic IP. Wait until dig +short meet.example.com returns it before the first start, or Let’s Encrypt will fail and you will hit its rate limit on retries.

6. Install Jitsi

SSH in and follow the Docker install guide. On EC2 the videobridge usually discovers its public IP through STUN. If three-person calls fail, set JVB_ADVERTISE_IPS to the Elastic IP in .env and restart the stack.

7. Recording on AWS: the kernel trap

Jibri captures meeting audio through the ALSA loopback module, snd-aloop. Ubuntu’s AWS-optimized kernel (linux-aws) does not include it, and Jibri fails in confusing ways until it is fixed.

Check first:

sudo modprobe -n snd-aloop && echo "available" || echo "missing"

If it is missing, install the generic kernel, make it the default in GRUB, and reboot once:

sudo apt-get install -y linux-generic
# Set GRUB_DEFAULT to the generic kernel entry, then:
sudo update-grub
sudo reboot

After the reboot, load the module and persist it:

echo "options snd-aloop enable=1,1,1 index=0,1,2 pcm_substreams=8" | sudo tee /etc/modprobe.d/jibri-aloop.conf
sudo modprobe snd-aloop
echo snd-aloop | sudo tee /etc/modules-load.d/snd-aloop.conf

The full recording setup, including S3 upload with an IAM role, is in Jitsi recording with Jibri.

8. Store recordings in S3

Do not put AWS access keys on the server. Create an IAM role that allows s3:PutObject on one bucket, attach it to the instance as an instance profile, and let the AWS CLI on the server pick up temporary credentials automatically.

9. Keep it running

  • Enable automatic security updates (unattended-upgrades).
  • Snapshot the root volume before upgrades.
  • Set a CloudWatch alarm on CPU and on NetworkOut.

The one-click alternative

Everything above, including the instance, security groups, Elastic IP, SSL, your domain, the snd-aloop kernel fix and S3 recording with an IAM role, is what our platform sets up in your own AWS account. You keep full ownership of the server and pay AWS directly.

Frequently asked questions

How much does it cost to run Jitsi on AWS?

A t3.medium in ap-south-1 is about $33 a month on demand, plus a few dollars for storage and whatever video traffic leaves AWS. Recording adds roughly $63 a month for a dedicated recorder, and transcription needs a 16 GB instance at around $125. Prices vary by region.

Which EC2 instance is best for Jitsi?

t3.medium (2 vCPU, 4 GB) for teams up to about 50 concurrent participants, t3.large for about 100 or for recording on the same server, and c5 instances for dedicated Jibri recorders. Use a t3.xlarge or larger if you run Vosk transcription.

Is AWS data transfer expensive for Jitsi?

It can be the largest line on the bill for busy servers, because video leaving AWS is charged per GB after the free allowance. Estimate your monthly egress from meeting hours and participants before choosing a region, and remember that two-person calls go peer to peer and cost nothing.

Can I use AWS Lightsail for Jitsi?

Yes, for small setups. Lightsail bundles a data transfer allowance, which helps with cost predictability. You lose the flexibility of EC2 instance types, IAM roles for S3 recording upload and security group references between servers.

Stuck, or would rather not do this by hand?

Deploy it in one click

A private Jitsi server in your own AWS account with SSL, your domain and optional recording, transcription and JWT. Free 15 minute trial.

Start free trial

Talk to a Jitsi engineer

Setup, fixes, branding, recording, scaling. Tell us what is happening and we reply with a plan and a quote.

Get expert help

Related