MongoDB Atlasクラスタの作成とMongoDB Realmアプリのデプロイ

2021年12月7日(火)
平 昇治

はじめに

前回は第1回ということで、「MongoDB Realm」の概要を解説しました。

今回は、MongoDB Realmを使ったモバイルアプリケーションの環境構築を通して、MongoDB Realmの機能を解説していきます。なお、下図の丸で囲った部分が今回構築していく部分となります。

事前に用意するもの

MongoDB Realmのアカウントを作成するにあたり、GoogleアカウントもしくはEメールアドレスが必要になります。今回はGoogleアカウントを利用してサインアップを行いますので、本記事に沿って環境を作成する場合はGoogleアカウントをご準備いただくとスムーズです。

なお、MongoDB RealmにはFree版(無料版)が用意されており、本記事でもFree版を用いて行います。有料版の場合はクレジットカード情報が必要です。

MongoDB Realmの環境を作成する

MongoDB Realmアカウントの作成(サインアップ)

MongoDB Realmのポータルページにアクセスし、「Try Free」もしくは「無料ではじめましょう」を押下すると以下の画面が表示されます。

今回はGoogleアカウントを利用してサインアップを行うため「Googleでサインアップする」を押下クリックします。今回利用するGoogleアカウントを選択し、認証を行うとプライバシーポリシーと利用規約に関する同意を求められますので、両方とも目を通したあとに、チェックボックスにチェックを付けて「Submit」を押下します。

これでMongoDB Realmのアカウントが作成され、MongoDB Atlasのクラスタ作成画面へ遷移します。

MongoDB Atlasクラスタを作成する

ここでは、いくつかの質問があるので回答していきます。各質問の説明は以下のとおりです。

・今日のゴールは?
今回は学習メインなので「Learn MongoDB(MongoDBを理解する)」を選択します。

・ビルドするアプリケーションのタイプは?
モバイルアプリケーションなので、「Mobile」を選択します。

・優先する言語は?
本連載ではC#でモバイルアプリケーションを作っていく予定なので、優先する言語は「C# / .NET」を選択します。

回答が完了したら、「Finish」を押下します。

続けて、MongoDB Atlasをデプロイするためのオプションを選びます。現時点では、以下のデプロイオプションが用意されています。

・Serverless(Preview)
利用量に応じて課金額が変動するモデル。常時動作しないサービス/アプリケーションなどの場合に適しています。

・Dedicated:専有
時間に応じて課金されるモデル。常時動作するようなサービス/アプリケーションの場合に適しています。

・Shared:共有
学習用に用意されているモデルという位置づけ。無料なのでクレジットカード情報なしで開始できます。

プロダクションで運用する場合は「Dedicated」か「Serverless」を選びます。「Shared」を選択した状態で右下の「Advanced Configuration Options」を押下すると、設定確認/変更を行う画面が表示されます。

ここでは、MongoDB AtlasクラスタのTierを確認、選択が可能です。今回は無料版で行うため「M0 Sandbox」を利用します。少しスクロールするとクラウドプロバイダとリージョンを確認できます。

クラウドプロバイダとしてAWS、GCP、Azureが指定可能で、リージョンもいくつかの選択肢から指定可能です。

Cluster Nameのアコーディオンを開くと、クラスタ名を指定できます。本連載では「CreationlineCluster」と設定して進めます。「Create Cluster」を押下するとAtlasクラスタの作成がはじまります。しばらく待つとAtlasクラスタが完成します。完成後には、次のような画面が表示されます。

左上の「Line’s Org - 2021-11-xxxx」はオーガナイゼーション、「Project 0」はプロジェクトです。1つのオーガナイゼーションの下に複数のプロジェクトが存在し、プロジェクトの中にAtlasクラスタとRealmアプリが存在するという構成になります。

名称変更を含んだ設定変更は、それぞれの項目の右側にあるボタンから行えます。

MongoDB Realmのアプリを作成する

データベースの作成が終わったので、引き続きMongoDB Realmアプリ(以下、Realmアプリ)を作成します。

Realmアプリについて

Realmアプリはモバイルアプリケーション側からのリクエストを処理するなど、アプリケーションのバックエンドの役割を果たします。

Realmアプリの中身は、MongoDB Realmが提供している機能の設定情報が書かれたjsonファイルとFunction機能を動かすためのjavascriptファイルで構成されます。Function機能については後述します。

RealmアプリはRealmUIのほか、CLIやAPIを利用して作成できますが、今回はRealmUIを利用し、テンプレートアプリで作成します。

なお、CLIを使用する際の手順ではテンプレートアプリをpullするため、中身を確認することもできます。

Realmアプリの作成

前述のAtlasクラスタ完成画面でRealmタブを押下すると、以下の画面が表示されます。

今回はC#のStarterテンプレートを使用するので「Xamarin + Realm Sync Starter」を選択すると、Realmアプリの設定画面が表示されます。

・Link your Data Source
接続先のAtlasクラスタを設定します。先ほど作成したAtlasクラスタを指定します。

・Name your Application
Realmアプリの名前です。好きな名前を入力しましょう。ここでは「SampleApp」としましたが、本連載では今回以降もこのRealmアプリを利用するため、名称を合わせておくと理解しやすいかと思います。

・App Deployment Model
Realmアプリのデプロイモデルです。今回はLocalを指定します。Regionは先に作成したAtlasクラスタのリージョンに一番近い場所を指定します。

グローバルデプロイとローカルデプロイの違いは以下のとおりです。

グローバルデプロイ
・Realmアプリはサポートするすべてのクラウドリージョンにホストされる。
・ユーザ情報の読み取りやFunctionの呼び出しなどのアプリケーションリクエストは、リクエストを発行したユーザに最も近いクラウドリージョンで行われる。
・Atlasクラスタへの操作はRealmアプリで指定した単一のリージョン内で処理される。

ローカルデプロイ
・Realmアプリは指定した単一のリージョンにのみホストされる。
・アプリケーションリクエストおよびAtlasクラスタへの操作ともにRealmアプリで指定した単一のリージョン内で処理される。

「Create Realm Application」を押下すると、テンプレートを元にRealmアプリが作成されます。

クリエーションライン株式会社 EDIT所属
通信キャリア会社のクラウドポータル開発や自動車関連会社のIoTシステム開発などを経験。最近は社内向けのシステム開発に従事。北陸を愛し、北陸を盛り上げたいエンジニア。富山事業所のツイッターで何人かでいろいろと呟いてます。
Twitter: https://twitter.com/cl_toyama

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています