Working With Azure Cosmos DB

Lab Steps

Logging in to the Microsoft Azure Portal
Creating an Azure Cosmos DB Database in the Azure Portal
Starting an Azure Cloud Shell
Creating a Cosmos DB Collection With the Azure CLI
Working with the Cosmos DB MongoDB API
Replicating the Cosmos DB Database Globally

Ready for the real environment experience?

Time Limit2h


Lab Overview

Azure Cosmos DB is a fully-managed, globally-distributed, multi-model database. Databases in Cosmos DB are enterprise-ready and highly-available offering up to 99.999% availability SLA. In this Lab, you will learn how to manage Cosmos DB using the Azure Portal and Azure CLI. This Lab uses the MongoDB API in Cosmos DB to work with a document database model.

Lab Objectives

Upon completion of this Lab, you will be able to:

  • Understand the multi-model capabilities of Cosmos DB
  • Perform geo-replication and failovers in Cosmos DB
  • Understand the tradeoffs involved in deciding on a concurrency model and throughput level in Cosmos DB
  • Connect to MongoDB API Cosmos DB databases using MongoDB clients

Lab Prerequisites

You should be familiar with:

  • The concept of NoSQL and document databases
  • MongoDB commands are beneficial, but not required


January 19th, 2021 - Updated mongo client to fix an incompatibility issue and updated screenshots and commands to match the latest Azure experience

April 13th, 2020 - Update the security policy to allow for more Azure regions.

March 24th, 2020 - Updated instructions to avoid using the free tier discount which causes deployment of the database to fail.

November 8th, 2019 - Updated Lab diagrams due to Azure changes

October 30th, 2019 - Updated Lab structure due to Azure changes

September 24th, 2019 - Updated instructions due to Azure changes

October 1st, 2018 - Updated instructions and screenshots to match the latest Azure interface and resolved an issue that prevented the Cosmos DB account from being created in certain cases.

Environment before
Environment after
About the Author
Learning paths30

Logan has been involved in software development and research since 2007 and has been in the cloud since 2012. He is an AWS Certified DevOps Engineer - Professional, AWS Certified Solutions Architect - Professional, Microsoft Certified Azure Solutions Architect Expert, MCSE: Cloud Platform and Infrastructure, Google Cloud Certified Associate Cloud Engineer, Certified Kubernetes Security Specialist (CKS), Certified Kubernetes Administrator (CKA), Certified Kubernetes Application Developer (CKAD), and Certified OpenStack Administrator (COA). He earned his Ph.D. studying design automation and enjoys all things tech.