MongoDB RealmとGoogle Cloudで高機能モバイルアプリを開発 #MongoDB Realm#Mobile #海外事例
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本ブログは、MongoDB社のブログでMongoDB社のDana Groceさんが執筆し、2021年2月22日に公開された「Build Better Mobile Apps -- Running MongoDB Realm and Google Cloud」の日本語翻訳です。
Google Cloudとの連携を通じ、MongoDB Cloud stack with Google Cloudの一部としてMongoDB Realmを提供し、新たなモバイルアプリの開発や既存のモバイルアプリのモダイナイズをグローバルにサポートしています。
Realmの統合アプリケーション開発サービスを活用すれば、モバイルデバイスやWebで使用する業界トップクラスのアプリを開発できます。MongoDB AtlasはサービスとしてGoogle Cloudと連携するので、モバイルデータベースを簡単にGoogleのサービスと接続できます。
お客様はGoogle Cloudを選択して次のことを実現しています。
- マルチクラウドの環境とハイブリッドクラウドの環境を利用してベンダーロックインを回避する
- Google Cloudの機械学習と高度なアナリティクスの機能を活用する
- Google Cloud自身がデータ、アプリケーション、インフラストラクチャの保護に使用しているのと同じセキュリティ機能でセキュリティを確保する
MongoDB Realm for Mobileを選択する理由
Realmには主に次の3つの機能があります。
- プラットフォームを横断したモバイルデータベース
- プラットフォームを横断したモバイル同期ソリューション
- 時間を節約できるアプリケーション開発サービス
モバイルデータベース
Realmのモバイルデータベースは、CoreDataやSQLiteの代替となる、開発者が利用しやすいオープンソースの製品です。このオープンソースのデータベースを利用すれば、わずかな時間でオフラインファーストのモバイルアプリを開発できます。サポートしている言語には、Swift、C#、Xamarin、JavaScript、Java、ReactNative、Kotlin、Objective-Cなどがあります。
Realmのデータベースは柔軟性の高いオブジェクト指向のデータモデルで開発されているため、容易に利用方法を学ぶことができ、現在使用しているコーディングの手法を簡単に反映させられます。Realmはモバイル用に開発されているので、Realmを基に開発したアプリケーションは信頼性が高く、パフォーマンスに優れ、プラットフォームを横断して動作します。
同期ソリューション
Realm Syncは設定不要で利用できる同期サービスです。デバイス、エンドユーザー、バックエンドシステム間でデータを最新の状態に維持します。同期はすべてリアルタイムで実行されます。
RESTを使用しなくても機能するので、オフラインファーストのアプリのアーキテクチャが簡素化されます。Realm Syncでは、ユーザーデータをバックアップしたり、コラボレーション機能を開発したり、デバイスがオンラインのときにデータを最新の状態に維持したりできます。競合の解決やネットワーク機能のコーディングは不要です。
クライアント側ではRealm Mobile Databaseを、バックエンド側ではMongoDB Atlasをそれぞれベースにしており、オフラインでの利用に最適化されています。ユーザーのニーズに合わせたスケーリングも可能です。高性能のアプリをこれまでにないほど簡単に開発できます
アプリケーション開発
Realmのアプリ開発サービスを利用すると、Webアプリのためにバックエンドのデータを統合する作業に時間がかからなくなり、革新的な機能の開発に多くの時間を割いて、ビジネス上の取り組みを推進できます。サービスには次のようなものがあります。
- GraphQL
- Functions
- Triggers
- データアクセス制御
- ユーザー認証
以下のGoogle製品を使用すれば、バックエンドサービスの開発にかかる期間を短縮できます。
- Google Kubernetes Engine(GKE)
- Google Cloud Functions(FaaS)
- Google App Engine(PaaS)
RealmとMongoDB AtlasをGoogle CloudおよびAndroidと組み合わせて利用する
RealmはAtlasを通じて提供されるMongoDB製品であり、RealmではAtlasを使用してデータベースとクライアント間でデータを同期するため、Google CloudとAtlasの機能はRealmのユーザーエクスペリエンスにとって不可欠な要素になっています。
MongoDB AtlasとGoogle Cloud
MongoDB Atlasでは、グローバルな拡張性と信頼性を備えたGoogle Cloudのインフラストラクチャでフルマネージド型のサービスを提供します。Atlasを使用すれば、UIやAPIコールを通じてMongoDBデータベースを容易に管理できます。グローバルレベルで遅延の少ない読み出し/書き込みを実現するグローバルクラスターなどの高度な機能を容易に実現でき、移行も簡単です。
MongoDB AtlasとGoogle Cloudの組み合わせで実現する主な3つの機能
地理的プレゼンス
- Google Cloudのすべてのリージョンのうちで、3つ以上のゾーンを利用できるため、高い可用性とレジリエンスを実現しており、さまざまな地域でサービスを使用できます。他のパブリッククラウドでは、同様の信頼性は保証されません。
ネットワークサービス:コストを抑制し、顧客にメリットを提供
- グローバルVPC:グローバルレベルでリソースが提供されるので、ネットワークの実装が簡素化されます。
- パフォーマンス:プレミアムのレベルでは、Google Cloudネットワークのパフォーマンスを活用し、アプリケーションのパフォーマンスを高め、階層間での遅延の発生を抑えます。
- 価格:ネットワークのエングレスコストに照らして最適な価格設定を実現しています。
ネイティブの統合機能:
- セキュリティ:Atlasは、Realmを通じ、Google Authとネイティブで連携できます。Google Cloud KMSをサポートしているので、保存状態のデータにさらなる暗号化を施すことが可能であり、MongoDBのクライアント側でフィールドレベルの暗号化にも対応します。また、OAuth flowベースのコンソール統合も実現します。
- 料金:Google Cloud Marketplaceから従量制の料金で利用できます(同様に、Realmは、Atlasのクレジットを通じてMarketplaceで購入できます)
RealmとAndroid
Realmでは、Androidデバイス用のモバイルアプリを開発できます。レベル9(Android 2.3 Gingerbread)以降のAndroid APIの全バージョンに対応しています。以下のサンプルのリファレンスアーキテクチャには、Google CloudをOperational Data Layer(ODL)とOperational Data Store(ODS)にしてMongoDB Atlasを活用し、MongoDB MobileとRealm Syncでモバイルアプリケーションを開発する方法をご説明しています。
Realmのお客様事例:ニューヨークの大手医療保険事業者の事例
MongoDBはExafluenceと連携し、ニューヨークの大手医療保険事業者で新型コロナウイルス関連の業務に従事する従業員に、新型コロナウイルス感染症の発生以降、自己診断用のヘルスチェックアプリを提供しています。この感染症の感染拡大に伴い、同社では新たな業務運用の基準にすばやく適応する必要がありました。同社が現場での業務を継続するうえで、MongoDB Atlas、Realm、Google Cloud、Exafluenceはどれも、重要な役割を果たしています。
CDC(アメリカ疾病予防管理センター)とニューヨーク州は、オフィスでの業務を申告した従業員の行動を追跡するよう、各組織に求めています。この結果、ニューヨーク州のこの医療保険事業者では、加入者対応で現場の業務に当たるニューヨークオフィスの従業員を監視しなければならなくなったのです。従業員の健康状態の情報を収集すると共に、オフィスへの入室を従業員に許可するかどうか判断する一連の質問を従業員に発せられるアプリを同社では必要としていました。
MongoDBとグローバルレベルで連携する戦略パートナーのExafluenceは、同医療保険事業者の人事部門、営業部門の協力を得て、着手からわずか3週間で完全なソリューションを完成しました。これほど短期間で開発ができたのは、MongoDB Atlas、Realm、Google Cloudを利用したからです。完成したアプリには次のような機能や特長があります。
- モバイルデバイスのサポート
- 情報を集約するためのWebポータル
- オフィスへの入室時は、入口に設置されたiPadでQRコードをスキャン
- Active Directoryとの連携機能およびメールシステムへのアラート機能
MongoDB AtlasとRealmを活用した結果、このように短期間で開発が実現したわけですが、この医療保険事業者とExafluenceがRealm選んだ理由はそのアプリケーション開発サービスにありました。このサービスでは、Webのアプリケーションでもモバイルのアプリケーションでも簡単にデータを扱えるのです。RealmはReact jsと連携し、オフラインでの同期が可能で、Atlasのクラウドに対応しています。
また、MongoDB AtlasとRealmなら、感染の拡大が新たな状況を迎えアプリの要件に変更が生じた場合でも、すばやく簡単に新しい機能を開発することができます。MongoDBのFHIR APIを使えば、接種証明書の公開や共有を従業員ができるようにするなどの、ワクチンの接種に紐付けられたアプリ機能も、Exafluenceはすぐに追加できるでしょう。
新型コロナウイルス関連のアプリを開発する以前より、この医療保険事業者ではGoogle Cloud上でAtlasを利用する環境を選択しています。フルマネージド型のグローバルDBaaSなら、開発のスピードが増し、構造型のデータも非構造型のデータも扱えるからです。ジオコーディングや機械学習、ダッシュボード機能などのアナリティクスソリューションを必要としているという背景もありました。同社では、AtlasとGoogle Cloudの組み合わせによって、チームの俊敏性が高まり、拡張性の高いスケーリングやオンデマンドでのリソースのプロビジョニングも可能になっています。
この組織がGoogle Cloudを選択したその他の差別化要因には次のようなものがあります。
- Maps API
- Air flowによるスケジュール管理機能
- クラウドID
- Kubernetesの環境。MongoDBやRealmとのシームレスな連携によるモバイルでの開発
- 拡張性の高い仮想マシン環境
- CISOの要件を遵守できる機能
この医療保険事業者では、運用業務を自動化したり、業務負荷を軽減したりできるようになったほか、セキュリティに関する組み込みのベストプラクティスの利用も可能になり、その結果、法規制の遵守でリスクが軽減されました。また、AtlasとGoogle Cloudを組み合わせた結果、同社のチームでは、スケーリングの柔軟性が高まり、オンデマンドでリソースをプロビジョニングできるようになったため、アジャイルの開発要件に合わせてより多くのマイクロサービスを開発できるようになりました。