AWS Pro deployment, Let's Encrypt, and CORS Policies

Hi.

Brand new developper here. I want to switch from Twilio to openVidu.
Trying to deploy openVidu PRO, I probably need to use Let’s Encrypt certificate and not ‘selfsigned’, because I want to use this instance for production mode.

But the process with the ‘Elastic IP’ thing and the name domain pointing to the Elastic IP is not very clear for me as a young developper, despite I spent time reading on AWS documentation for Elastic IPs. Is it possible to have a more description and instructions for thoses steps ? I think thoses are obvious for experienced developper but It might help new ones as me to get into openVidu easily.

Also, using your sample with openVidu instance deployed with ‘selfsigned’ certificate, makes me get a CORS error. Where do I set the CORS Policies on the openVidu AWS Instance ?

Thanks, sorry if thoses are irrelevent question but despite looking for two days I could not manage to make it work.

Keep up the good work.

An ElasticIP in AWS allows you to have an IP and assign it to an EC2 instance. If the machine is stopped an started some time later, you can still use the same IP. If you create a brand new instance, you can assign your ElasticIP to it. If you do not use ElasticIP, then your instances get a new IP every time are started.

A domain is “the name of the web page”. You have to purchase some domain and configure it to point to the ElasticIP you have created.

Can you share with us where you get these error? OpenVidu server has CORS enabled by default.

Hey. Thanks for taking time to answer me and to explain those basics, which are way more understandable than AWS Documentation.

Alright then, after I created the OpenVidu instance with CloudStack, it is now running (CREATION_COMPLETED status, and EC2 instance is running.). I have also associated the Elastic IP, choosed the Let’s Encrypt SSL, and associated my domain name (which I have on OVH, a french provider.). From OVH, I’ve made a DNS A Record redirection directly into my Elastic IP. (After some research on openvidu’s forum, I’ve found someone explaining this.). The DNS Update take from 5h to 24h to be effective so I’m waiting.

So, I went into output, and try to access $OpenViduServerURL/dashboard. (for example, my actual address is: https://ec2-15-236-181-250.eu-west-3.compute.amazonaws.com) but I get a Connexion Refused. I would like to know why I can’t access this, maybe I did something wrong ? Or maybe by setting SSL I’m only allowed to acces OpenVidu instance through my domain name ? I don’t know.

For the CORS issue, I had it some weeks ago when I tried OpenVidu on selfsigned with your React app sample. It happened right after npm start and going to localhost:3000. Actually I can’t even test since I have ERR_CONNECTION_REFUSED on Chrome, so I assume it will be the same from your code samples.

Thanks for helping.

It seems your deployment can process plain http requests:

http://ec2-15-236-181-250.eu-west-3.compute.amazonaws.com/

But there are problems with https. Your domain pointing to your IP have to be working BEFORE deploying OpenVidu because Let’s Encrypt needs it to create the certificate. It is very likely your problem is related to this.

Please execute the command ping <domain> to see if your IP appear. In that case, your domain is correctly configured and you can deploy OpenVidu.

Regards.

Ok, with ping mydomain.io the AWS Elastic IP appear. So I will deploy another instance of OpenVidu , i didn’t knew it has to be done before, probably a newbie mistake. I will keep you informed here if it’s working.

EDIT: My instance is now running and accessible through https://mydomain.io/, so this is the answer. If you accept PR on the documentation I could help you with more detailed information about installation that could help people who are not familiare with AWS and new to dev in general.

Thanks for your help & time.