Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / database / MongoDB

Using ApsaraDB to Build Scalable MongoDB Instances

5.00/5 (1 vote)
9 Jan 2018CPOL5 min read 4.5K  
In this article, we’ll explore using Alibaba Cloud’s ApsaraDB for MongoDB service, which allows us to set up NoSQL databases in a simple but scalable way.

Alibaba Cloud provides a comprehensive suite of global cloud computing services to help power and grow your business. Create an account today and get $300 in new user free credit.


MongoDB is a star in the non-SQL (NoSQL) database world. It is a proven solution with some interesting use cases (which usually need to be prepared to scale due to the amount of data that has to be processed in short periods of time).

In this article, we’ll explore using Alibaba Cloud’s ApsaraDB for MongoDB service, which allows us to set up NoSQL databases in a simple but scalable way.

MongoDB background

MongoDB was initially released in 2009 and quickly gained momentum thanks to its approach to data organization. Instead of using the common relational paradigm, MongoDB organizes the data in documents using notation based on JSON (JavaScript Object Notation), which gives new capabilities to the developer, and advantages in terms of development speed. The way that users query the data inside a NoSQL database differs from Structured Query Language (SQL). And the way that aggregation, replication and high availability is achieved differs slightly from the usual relational mode.

MongoDB is suitable for a variety of use cases, such as location-based mobile apps, and the asynchronous data writing function provided by Alibaba Cloud’s ApsaraDB for MongoDB makes it a great tool for Internet of Things (IoT) applications because it performs like an in-memory database, which fits perfectly in intensive writing cases. MongoDB indexes and map-reduce aggregation are useful for multidimensional data analysis.

For write-intensive applications, a single instance of MongoDB is usually not enough. Therefore, increasing the availability of your service by running a cluster of databases is a good idea. It enables all of the instances of MongoDB to share a single common interface, but shares the load of client services.

A database ready for the cloud

Running a database cluster is a complicated task. Usually there is a specific role (better, a specific team) in the company that handles this. There are innumerable important details, and a huge amount of subtasks that you need to manage to offer a service that is reliable, scalable and blazing fast. Fortunately, companies like Alibaba Cloud offer this kind of service, and the jump from zero to a decent cluster configuration is achievable without requiring a specialist.

ApsaraDB for MongoDB lets you configure groups of three MongoDB instances called replicas (primary, secondary, and a secondary hidden instance). You can create as many replicas as you want, but some complementary systems are available to improve the management tasks of clusters:

  • Backup System: Backups of MongoDB instances can be configured with several options, and by default, the files are retained for seven (7) days.
  • HA Control System: Detects problems with primary instances of replicas and switches to the secondary instances.
  • Log Collection: Collects slow queries and instances’ RAM conditions to allow you to tune the performance of your apps.
  • Monitoring System: Collects metrics (instant measurements of the conditions of your replicas) that are useful to understand the specific running conditions of your cluster in a period of time.
  • Online Migration System: Migrates data from the available backups to new instances when a physical failure occurs. This way, you achieve high availability levels.
  • Task Control: Allows you to change the configuration parameters of your instances, backups, etc.
  • ConfigServer: A cluster configuration server (an optional 1-core 2 GB CPU and 20 GB storage space machine) that allows cluster managers to add Mongo or shard nodes to your cluster.

When you configure a replica, you select the type of instance, which includes the number of cores, RAM size, the maximum number of simultaneous connections, and the maximum number of input/output operations per second. Alibaba Cloud’s ApsaraDB for MongoDB offers over 20 metrics to monitor performance and keeps the data for a year.

Hands-on

To start using ApsaraDB for MongoDB, you have to create an account on Alibaba Cloud. You can take advantage of the USD $300 credit that they currently offer for new users. The registration process is really simple, so we are not going to explain it here in detail. We are going to create a single replica with the primary, secondary and secondary hidden nodes. (ApsaraDB for MongoDB also includes a guide to properly set up a cluster.)

Now, go to the console and click on "ApsaraDB for MongoDB":

Image 1

Click on the "Create Instance" button:

Image 2

Select the region, zone, database number of cores, RAM size, and storage options. (Please assign a strong initial password.) Then click on the "Buy Now" button:

Image 3

Confirm the instance, and after a few seconds, you will have it in the console:

Image 4

When you click on the "Manage" link of the instance, you will be at the management console for the replica:

Image 5

We can configure access to the instance through any Elastic Compute Service (ECS) server because this is just a sample. (This setup is highly risky, and you should avoid it in your other projects’ setups. Please read the security guides and collaborate with your IT security team before configuring an instance.)

Now, click on the link “Security Controls” which is on the left panel, and then click the “Manual Modify” button on the bottom and add a comma “,” after “127.0.0.1” and “0.0.0.0/0” (which means any IP address). Don’t leave any spaces between values:

Image 6

Click the “OK” button, and then your replica will be available to be accessed from any ECS instance. (Again, this is highly risky and should be avoided in all possible ways.) You can check the connection using the MongoDB client with the parameters that are shown at the bottom of the management console.

Image 7

Alternatives

MongoDB is spread in various clouds. As an alternative to RDBMS, Alibaba Cloud’s ApsaraDB also supports another kind of NoSQL database, Redis, which is appropriate for another kind of use case, but usually also requires high availability and elastic scalability. If you are interested in further exploring the NoSQL world, there are also graph databases (Neo4j, ArangoDB), columnar-oriented (Apache Kudu, Apache Parquet, InfiniDB), and even mixed.

Final words

After reading some documentation, and a couple of hours of work, it is pretty simple to set up a basic MongoDB replica using Alibaba Cloud’s ApsaraDB for MongoDB. The console and management services are simple and intuitive. The ability to set up a real cluster solution with a few clicks, keeping compatibility with one of the most-used NoSQL engines is appealing, but there are some points that should be polished, like the localization of management tools and the written documentation.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)