# How to run Jitsi Meet on AWS

> 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.

Source: https://jitsi.help/guides/jitsi-on-aws/
Updated: September 26, 2026
Publisher: Jitsi Help (https://jitsi.help/)

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](/guides/install-jitsi-docker/). 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:

```bash
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:

```bash
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:

```bash
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](/guides/jitsi-recording-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](/jitsi-hosting/) 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.


---

Jitsi Help is an independent service. It is not affiliated with, endorsed by or sponsored by 8x8, Inc. or the Jitsi project. Jitsi and Jitsi Meet are trademarks of 8x8, Inc., used here only to describe the software we host and support.
