FaunaDB with Docker

  • Web
  • DB
  • Docker

はじめに

FaunaDBとはクラウドデータベースです。独自のクエリ言語であるFQL (Fauna Query Language)での操作、またGraphQLがデフォルトで利用ができます。(公式サイト : https://fauna.com

クラウドデータベースサービスというとGoogleのCloud Firestoreもあります。いずれもお金がかかってしまう可能性はありますが、無料枠があるので、個人だけで使う用途なら大丈夫かなと思います。参考までにFaunaの無料枠制限を書いておきます。

  • ストレージ容量 : 5GB
  • 読込回数 : 10万/日
  • 書込操作 : 5万/日
  • データ転送量 (OUT) : 50MB/日

※ この記事を書いた時点のものなので公式サイトにある料金表をご覧ください。

開発は試行錯誤が常ですし、開発用データを入れておくデータベースを用意しておきたいと考えるのが普通かと思います。開発時に無料枠をオーバーしてしまったら嫌ですし、気になってしまいますよね。そんなときは、FaunaDBのDockerイメージが公式から提供されているので、それを使ってみましょう。

利用するDockerイメージ

今回利用するDockerイメージはfauna/faunadbです。

ドキュメントにも導入方法と注意書きがありますので、是非目を通してみてください。

あくまで開発用のためのものなので、本番環境ではクラウドサービスの方を利用しましょう。(オンプレで自分で管理することはたぶんないと思いますが)また、注意書きによると、このイメージではマルチノード機能をサポートしていないようです。

ローカルで立ち上げてみよう

ドキュメントにあるように、コマンドでコンテナを立ち上げてもよいのですが...

docker pull fauna/faunadb
docker run --rm --name faunadb -p 8443:8443 fauna/faunadb

開発に用いるコンテナはdocker-compose.ymlを用意して、開発リポジトリに含めておくというのが自然かと思います。YAMLファイルと利用方法は https://gitlab.com/nemuvski/local-faunadb にて公開していますのでご自由にお使いください。

Dockerイメージの仕様が変わる可能性もありますが、気付いたら更新していこうと思います。😅 バージョンが変わって挙動が変わったら嫌な方は、利用するイメージのタグをバージョンに固定してしまうのも良いと思います。

以下、docker-compose.ymlの内容になります。https://gitlab.com/nemuvski/local-faunadb にコミットしている内容の方は自分用にオプションを追記していますが、大まかには同じです。

version: '3'

services:
  db:
    image: fauna/faunadb:latest
    ports:
      # FaunaDB endpoint
      - 8443:8443
      # GraphQL endpoint
      - 8084:8084
    volumes:
      - lib:/var/lib/faunadb
      - log:/var/log/faunadb

volumes:
  lib:
    driver: local
  log:
    driver: local

導入後の動作確認についてはリポジトリのREADMEに記述してありますので、ぜひご覧ください。

さいごに

クラウドサービスの方ではGUIとCUIで管理ができますが、ローカルで立ち上げた方に関してはGUIで操作ができない模様です。(できるのか不明) CUIから操作する場合はfaunaコマンド(fauna-shell)が提供されています。

CUIでデータベースの作成等をする際は、FQLを書かなければなりません...。幸いにも、SQLで書く場合とFQLで書く場合についてまとめている記事がありますので大変参考になります。

ぜひ興味ある方はローカルにFaunaDBのサーバーを立ち上げて、試してみてください👋

この記事を共有

アバター

K.Utsunomiya
男・20代
主にWebフロントエンド技術と気になった音楽について投稿していきます。
最近ハマっていることは、クロスバイクで走ることとジムでの運動です。
詳しいプロフィール

© 2020–2021 コレ棚