Should I separate environments on project or database level?

As the title states, when creating a new project should I have a setup like Project-Dev, Project-Prod or should I have a single project with Clusters for Dev-Users, Prod-Users etc?

No Dev-User but rather Dev-Cluster, sigh, can’t edit my post. So something like

Project
|- Dev-Cluster
|- Prod-Cluster

Or

DevProject
|-Cluster

ProdProject
|-Cluster

Hi @Nikola_Milovic - you’re welcome to do either.

Network security is configured at the project level. Thus, if you need to ensure only certain IP Addresses/VPC/Private Endpoints [1] have access to production cluster(s) vs. a wider net of developers having access to development environments, leveraging network isolation at the project level is one way you can do so.

You can now also configure Database Users with access to specific clusters if you decide to keep all your environments in one project. [2]

Hope this helps!

Jesse

[1] https://docs.atlas.mongodb.com/security/ip-access-list/
[2] https://docs.atlas.mongodb.com/security-add-mongodb-users/#optional-specify-the-resources-in-the-project-that-the-user-can-access

1 Like