MongoDB Atlasクラスタの作成とMongoDB Realmアプリのデプロイ
はじめに
前回は第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アプリが作成されます。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Realmアプリの機能を利用して認証機能を作ろう
- Realmアプリの機能を利用して認証機能を作ろう(後編)
- サンプルプログラムで MongoDB Realm のデータ同期を確認する
- MongoDB Realmのパーティションへの理解を深めよう
- モバイルアプリケーション開発の基礎と「MongoDB Realm」の概要
- Visual StudioでXamarin+Realmアプリの開発環境をセットアップ
- 「Flexible Sync」でデータを同期してみよう
- MongoDB Realmを利用したCRUD機能を実装しよう
- Custom User Dataを利用してユーザーに管理者属性を追加しよう
- サーバーレスな事例が次々登場―ServerlessConf Tokyo 2016レポート