# Run Open Edx as Serverless in AWS, adding more functionalities and a few more queries

**URL:** <https://discuss.openedx.org/t/run-open-edx-as-serverless-in-aws-adding-more-functionalities-and-a-few-more-queries/1219>\
**Category:** Architecture\
**Tags:** how-to\
**Created:** [January 14, 2020, 8:17pm UTC](https://discuss.openedx.org/t/run-open-edx-as-serverless-in-aws-adding-more-functionalities-and-a-few-more-queries/1219 "2020-01-14T20:17:30Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![alokkumar](https://avatars.discourse-cdn.com/v4/letter/a/f08c70/32.png) [@alokkumar](https://discuss.openedx.org/u/alokkumar)\
**Post date:** [January 14, 2020, 8:17pm UTC](https://discuss.openedx.org/t/run-open-edx-as-serverless-in-aws-adding-more-functionalities-and-a-few-more-queries/1219/1 "2020-01-14T20:17:30Z")

</div>

We have no financial support as we’ve not started our courses yet. So we plan to deploy a lms as serverless on aws. after spent a long in our code and considering existing solutions we have found ‘ **Open Edx** ’ is the best option so far. But currently as we googled we have found, it takes one or more running ec2 to run for deployment.  
But our initial plan was making a serverless LMS with django in aws(as we’ve an active account there and hopefully aws is better). We would like to use lambdas, microservices, api, s3 and other serverless options. We assume that would be cost consuming for us as it promise pay-as-you-go.  
So our questions are

1. Is Open Edx monolithic?
2. If yes, then how can we make it into several microservices? and if no, then where are the resource to use it as microservice?
3. Is it possible to apply aws lambda with Open Edx?
4. If yes, then any example? What will be the list of functions to be considered to convert to lambda in order to go serverless?
5. and if No, then what will be the alternative?
6. And Finally We have some other functionalities like student ranking/reputation, mini social network among students, critical analysis on student performance, mobile payment etc. How can we add a new features which we plan to write from scratch? Is there any documentation or tutorial to do that?
7. And How about customizing existing functionalities? Is there any reference?
8. Finally if we want to replace database engines in Open Edx like mongodb with dynamodb of aws and mysql with postgred, is that possible? If yes, then How?

I know it’s a lot of questions. Any opinion will be appreciated.  
Thanks.

---

<div class="post-metadata">

**Author:** ![regis](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/regis/32/2640_2.png) [@regis](https://discuss.openedx.org/u/regis)\
**Post date:** [January 15, 2020, 1:11pm UTC](https://discuss.openedx.org/t/run-open-edx-as-serverless-in-aws-adding-more-functionalities-and-a-few-more-queries/1219/2 "2020-01-15T13:11:08Z")

</div>

Hi @alokkumar! I’d like to suggest that you take a look at the [Tutor distribution](https://docs.tutor.overhang.io), which is mentioned on the Open edX [getting started page](https://open.edx.org/get-started/get-started-self-managed/), and which I happen to maintain. Tutor does not work on AWS Lambda out of the box, but it will generate a docker-compose.yml which you can study to port it to a serverless architecture. Note that this will require considerable expertise in both Open edX, Docker and AWS Lambda.

And to answer your questions:

> [@alokkumar](#):
>
> Is Open Edx monolithic?

No. Open edX is composed of many different services with many interactions.

> [@alokkumar](#):
>
> If yes, then how can we make it into several microservices? and if no, then where are the resource to use it as microservice?

As far as I know, there is no other resource outside of Tutor right now.

> [@alokkumar](#):
>
> Is it possible to apply aws lambda with Open Edx?

Yes. Anything is possible. You just have to work hard and long.

> [@alokkumar](#):
>
> If yes, then any example? What will be the list of functions to be considered to convert to lambda in order to go serverless?

On the top of my head: LMS, CMS (these are mandatory), forums, course discovery, ecommerce, notes, xqueue (these are optional).

> [@alokkumar](#):
>
> And Finally We have some other functionalities like student ranking/reputation, mini social network among students, critical analysis on student performance, mobile payment etc. How can we add a new features which we plan to write from scratch? Is there any documentation or tutorial to do that?

I’m afraid the best resource to do so right now is to read the documentation and study other people’s code. If you do not have any financial support, then this is the only option.

> [@alokkumar](#):
>
> And How about customizing existing functionalities? Is there any reference?

Same answer.

> [@alokkumar](#):
>
> Finally if we want to replace database engines in Open Edx like mongodb with dynamodb of aws and mysql with postgred, is that possible? If yes, then How?

Yes, it’s possible. Some tutor users are doing it. Check the docs: [Configuration and customisation — Tutor documentation](https://docs.tutor.overhang.io/configuration.html#mysql)  
Just make sure to use the same MySQL/MongoDb version as the one supported by Open edX.

---

<div class="post-metadata">

**Author:** ![alokkumar](https://avatars.discourse-cdn.com/v4/letter/a/f08c70/32.png) [@alokkumar](https://discuss.openedx.org/u/alokkumar)\
**Post date:** [January 16, 2020, 9:42am UTC](https://discuss.openedx.org/t/run-open-edx-as-serverless-in-aws-adding-more-functionalities-and-a-few-more-queries/1219/3 "2020-01-16T09:42:55Z")

</div>

This is the exact support for our requirement. Thanks a lot.  
Feeling happy to be in this community.

---

<div class="post-metadata">

**Author:** ![alokkumar](https://avatars.discourse-cdn.com/v4/letter/a/f08c70/32.png) [@alokkumar](https://discuss.openedx.org/u/alokkumar)\
**Post date:** [January 16, 2020, 7:53pm UTC](https://discuss.openedx.org/t/run-open-edx-as-serverless-in-aws-adding-more-functionalities-and-a-few-more-queries/1219/4 "2020-01-16T19:53:44Z")

</div>

@regis  
Can you provide me a guideline or a link that shows how to set up and configure the tutor distribution as serverless on aws? So far the links and videos I got shows how to setup tutor on a ec2 server.  
No problem if it in not so detailed.  
and another is is there any aws architecture diagram for serverless tutor distribution of Open Edx? That will be helpful also. Thanks again
