Realm Object Serverをクラウドにデプロイする

Realm Object Serverは簡単に任意のクラウドサービスで使用できます。ほんの数分でアプリからリアルタイム機能を使い始められます。

Amazon EC2にデプロイする

RealmではUbuntu 16.04環境のAmazon EC2のパブリックAMIを公開しています。仮想化方式(HVMとParavirtual)の違いについてはこちらのマニュアルをご覧ください。

  Paravirtual HVM
ap-northeast-1 (Tokyo) |  
eu-west-1 (Ireland) |  
us-east-1 (N. Virginia) |  

任意のAmazon EC2 AMIを使って上記のAMIを起動できます。Realmが必要とする22/TCP(SSH)と9080/TCP(ダッシュボード、クライアントアクセス)のポートが開放されている必要があります。初期設定のSSHユーザーはubuntuです。

Realm Object Serverのインストールが完了したら、次はRealmTasksをビルドするセクションをご覧ください。

Digital Oceanにデプロイする

ちょっと試しに使ってみようという場合は、Digital OceanはRealm Object Serverをプロダクション環境としてセットアップして実行するためにもっとも速い方法です。すでにDigital OceanのWebサイトでアカウント作成済みであるという前提で説明します。必要な手順は次のようになります。

右上にあるCreate dropletをクリックしてドロップレットを作成します。

ディストリビューションはUbuntuを選択してください。

Digital Ocean select your image distribution section

自分のプロジェクトに合ったスペックを選んでください。もっとも安いスペックのドロップレットでも数多くの同時接続ユーザーをさばけます。また開発・テスト用途にはそれでも十分です。

Digital Ocean choose a droplet size section

お近くのデータセンターの場所を選択してください。

Digital Ocean choose a datacenter section

SSH公開鍵を登録します。すでにDigital Oceanに登録済みの場合は不要です。登録の仕方はこちらのマニュアルをご覧ください。

Digital Ocean add your SSH keys section

ドロップレットに分かりやすい名前を入力して、”Create”をクリックしてください。

Digital Ocean finalize and create section

ドロップレットの作成には少し時間がかかります。完了すると一覧に表示されます。これで使える準備が整いました。

Digital Ocean droplets screen

IPアドレスをコピーしてどこかにメモしておきます。IPアドレスはRealm Object Serverにアプリから接続する際に必要になります。サーバーにSSH経由でアクセスする際にも必要です。

SSH経由でサーバーにアクセスするには、ターミナルを起動してssh [email protected]<droplet-ip-address-here>と入力します。確認のプロンプトにyesと入力するとドロップレットにログインできます。

ここまでの手順で、ドロップレットにrootとしてログインしています。下記のコマンドを実行して、Realm Object Serverをセットアップしてください。

# Realm Object ServerリポジトリをPackageCloudからダウンロード
curl -s https://packagecloud.io/install/repositories/realm/realm/script.deb.sh | sudo bash

# リポジトリをアップデート
sudo apt-get update

# Realm Object Serverをインストール
sudo apt-get install realm-object-server-developer

# サービスとして登録、起動
sudo systemctl enable realm-object-server
sudo systemctl start realm-object-server

正しくインストールできたか確認するためには、Webブラウザからhttp://<droplet-ip-address-here>:9080にアクセスします。正しくインストールできていれば、Realm Object Serverのセットアップページが表示されます!

Realm Object Server setup page

ここで管理者アカウントをセットアップします。これでRealm Object Serverをアプリから使用する準備が整いました。先ほどWebブラウザに入力したURLを使ってアプリから接続できます。

Realm Object Serverが正しくインストールできたら、次はRealmTasksをビルドするセクションをご覧ください。

Microsoft Azureにデプロイする

Realm Mobile PlatformのDeveloper EditionはMicrosoftのAzure Marketplaceからインストールできます。その他のエディションにつきましては近いうちに可能になります。

既存のMicrosoftアカウントか新しいアカウントでAzureアカウントにサインインします。Azureダッシュボードが表示されます。

緑色の“➕”をクリックして、新しい仮想マシンを作成します。”Realm.”と入力して検索すると”Realm Mobile Platform Developer Edition”が表示されるので選択して、 Create をクリックします(既存の仮想マシンネットワークと連携しようとしているのでない限り、デプロイメントモデルをResource Managerに設定したままにできます。)。このとき、Microsoft Azureのサブスクリプションの確認画面が表示されることがあります(サブスクリプションを購入していない場合)。ここでは無料トライアルを選べます。(以前にサインアップしたことがあれば、 (サブスクリプションにサインアップしたら、次のステップに進む前にもう一度Realmをマーケットプレイスから追加する必要があることがあります。)

Azure New VM Dashboard

AzureでRealmをセットアップするには次の5つのステップが必要です。

  1. Basics: 仮想マシンの名前と管理者ユーザーを入力します。(SSH公開鍵を登録することもできます)新しくリソースグループを作成し(例: Realm)、お近くのホスティング場所を選択します。
  2. Size: 仮想マシンのスペック(ディスク容量、CPU)を選択します。どのスペックでもRealmは動作します。もっとも低いスペックであってもテスト用途から多くの同時接続までさばくことができます。
  3. Settings: すべてデフォルトの選択肢を選びます。
  4. Summary: 確認して問題なければ OK をクリックします。
  5. Buy: こちらにはMicrosoftによる仮想マシンにかかる料金とRealm Mobile Platformによるゼロ円の料金が合わせて表示されます。 Purchase をクリックします。

ダッシュボードに戻り、AzureがRealm Mobile Platformをデプロイします。しばらく時間がかかります。

Realm Mobile Platformが動作していれば、Azureダッシュボードに表示されている”Public IP address”と9080のポート番号の組み合わせで、Realm Object Serverのダッシュボードにアクセスできます。(AzureとObject Serverのそれぞれにダッシュボードがあるので間違えないようにしてください!)Webブラウザを開き、http://<azure-public-ip-address>:9080にアクセスします。Realm Object Serverのセットアップページが表示されます。

Realm Object Server setup page

ここで管理者アカウントをセットアップします。これでRealm Object Serverをアプリから使用する準備が整いました。先ほどWebブラウザに入力したURLを使ってアプリから接続できます。

Realm Object Serverが正しくインストールできたら、次はRealmTasksをビルドするセクションをご覧ください。

RealmTasksをビルドする

The macOS version of RealmTasks

RealmTasksはシンプルなTO-DO管理アプリです。デザインやUIはRealmac SoftwareのClearから拝借しました。iOS、macOS、Androidで動作します。ソースコードはSwift、Java、JavaScript(React Native)C#(Xamarin)の各言語で同等のアプリが実装されています。

ソースコードはすべてGitHubにて公開されています。iOSまたはAndroid版をビルドする場合は下記のチュートリアルをご覧ください。

React Native版とXamarin版のチュートリアルは準備中です。まもなく公開されます。それまでの間はソースコードを直接読んで試してみてください。

Mac上で使ってみる場合はmacOS用にビルドされたRealm Object ServerとRealmTasksがこちらからダウンロードできます。

次のステップ

これまでにRealm Mobile Databaseを使ったことがなければ、まず普段使っている開発環境のMobile Databaseのドキュメントをご覧ください。リアルタイムに自動更新されるオブジェクトがいかに強力か、ORMと比べてより柔軟であることなど、Realmの機能や独自性について学べます。もしくは、こちらの「RealmTasksをイチから作ってみる」というチュートリアルを実際にやってみましょう。

Realm Mobile Platformをすでによく知っている(もしくはRealm Object Serverのインストールガイドからこちらに来た)方は、次はRealm Object Serverのドキュメントをご覧ください。