Skip to content

How to install Ant Media Server on AWS EKS

Asharam Seervi edited this page Apr 10, 2023 · 11 revisions

Attention: We have migrated our documentation to our new platform, Ant Media Resources. Please follow this link for the latest and up-to-date documentation.

In this post, I'm going to guide you on how to run Ant Media Server on AWS EKS.

1. After you logged in to AWS, search the EKS keyword, find the Elastic Kubernetes Service and click the Add Cluster > Create button.

Image

2. After setting a name for your cluster, the Kubernetes version and Cluster Service Role should be selected. You can follow this link to create a Cluster Service Role.

Image

3. In this section, subnets under VPC and VPC should be selected and a security group should be created.

Image

Endpoint access should be selected as Public and the Next button is clicked.

Image

4. You can activate the following options for logging.

Image

5. Let’s check the configurations you set and create the cluster by clicking the Create button.

Image

6. When your cluster’s status is changed from pending to active, click on the Configuration > Compute tab and click on the Add Node Group button.

Image

7. Type your node name and create the Node IAM Role.

Image

8. Click on the Next button after you configure the scaling of the AMI type, Capacity type, Instance type, Disk and Node Group.

Image

9. Select your subnets and click on the Next button.

Image

  1. Finally, after checking the configurations, create the Node Pool by clicking on the Create button.

Image

11. Update your Kubernetes kubeconfig settings as below, then list your nodes with the kubectl get nodes command.

aws eks --region your_region update-kubeconfig --name clustername

Image

12. Now, it’s time to deploy the Ant Media Server. Create the yaml files in order as follows.

First, you should organize your image field since you are going to change images. Here are the steps to organize your image field:

wget https://raw.githubusercontent.com/ant-media/Scripts/master/kubernetes/ams-k8s-deployment.yaml 
kubectl create -f ams-k8s-deployment.yaml
kubectl create -f https://raw.githubusercontent.com/ant-media/Scripts/master/kubernetes/ams-k8s-hpa.yaml
kubectl create -f https://raw.githubusercontent.com/ant-media/Scripts/master/kubernetes/ams-k8s-rtmp.yaml 
wget https://raw.githubusercontent.com/ant-media/Scripts/master/kubernetes/ams-k8s-ingress.yaml

Deploy the ingress.

Once the changes on the ams-k8s-ingress.yaml file are done, let’s create our ingress.

kubectl create -f ams-k8s-ingress.yaml

If everything works well, you will see the public IP address/domain name in the kubectl get ingress command’s output. After you make your DNS registration, you will be able to access over the domain you have determined.

Image

Run kubectl get services command to get the RTMP address. You can send broadcasts over 1935 to the domain name that appears as EXTERNAL-IP.

Image

When we check the AMS dashboard, we can see that 2 nodes have joined the cluster.

Image

User Guide

Reference

Troubleshooting

Draft

Proposals

Clone this wiki locally