Oracle Cloud infrastructure (OCI)の無料枠でOSSのBIツールMetabaseを構築する

Docker

概要

Oracle Cloud Infrastructure (OCI)の Always Freeでは ArmベースのAmpereアーキテクチャのメモリ6GBのVMがなんと、インスタンスが最大4つまで立ち上げられます。

本手順ではOCIのApereのVM.Standard.A1.FlexインスタンスでOSS BIツールであるMetabaseを構築する手順を記載します。

OCIの登録・インスタンスの作成

OCI のアカウント作成

OCIのAlways Freeが利用できるアカウントを作成ください。

リージョンは Japan central (大阪)を選択してください。東京リージョンではAmpereインスタンスが枯渇しており作成できないケースがあります。

インスタンスの作成

「コンピュート」→「インスタンスの作成」
「イメージとシェープ」 シェープ=Ampere, イメージ=Ubuntu で作成

メモリ6GBのインスタンスが無料で作成できてしまいます。

SSH用の秘密鍵ファイルはダウンロードしておいてください。SSH接続時に必要です。
※または、TeratermなどでSSH用の鍵を作成し公開鍵をアップロードしてください。

サブネットの編集

インスタンス情報からサブネットを選択し、TCP/UDP の 80 および 443を開放します。

サーバ構築

SSH接続

インスタンス作成時に設定した秘密鍵を利用し、インスタンスにSSH接続します。

私の環境ではなぜかTeratermで正常に接続できない事象があり、PuTTYで接続しました。

Docker, Docker-compose のインストール

Docker および Docker-compose をインストールしてください

参考 OCI + docker でWordPress環境を簡単構築する
https://qiita.com/Kai238/items/65f1bcc24084667e1a1f

フォルダの作成

/usr/docker/metabase

/usr/docker/postgres

上記のフォルダを作成します。

docker-compose.ymlの作成

以下の通り、/usr/docker/metabase/docker-compose.ymlを作成します。

注意事項

・Ampereアーキテクチャではamd64系のイメージが正常に動作しないため、arm64向けのイメージを利用します。

・https-portalコンテナ を利用してSSL接続を有効化してあります。1週間で5回以上証明書を更新するとブロックされるため、構築時はhttps-portalコンテナ(Let’s encypt)を有効化せず、確認ください。

version: '3.7'

services:
    # metabase
    metabase:
      #image: metabase/metabase
        build: ./metabase
        env_file: ./env
        volumes:
          - ./metabase/data:/metabase-data
        ports:
          - 3000:3000
        depends_on:
          - postgres


    # DB
    postgres:
        image: arm64v8/postgres:14.5
        env_file: ./env
        container_name: postgres_metabase
        volumes:
          - ./postgres/db-data:/var/lib/postgresql/data
          - ./postgres/initdb:/docker-entrypoint-initdb.d
        ports:
          - "5432:5432"
        restart: always
        environment:
          TZ: Asia/Tokyo
  # SSL
    https-portal:
        image: steveltn/https-portal:latest
        ports:
            - '80:80'
            - '443:443'
        links:
            - redmine
        restart: always
        environment:
            DOMAINS: 'ドメイン名 -> http://metabase:3000'
            STAGE: 'production'
            FORCE_RENEW: 'true'

volumes:
    metabase:
    postgres:

~
~

envファイルの作成

# for metabase
MB_DB_FILE=/metabase-data/metabase.db
MB_DB_TYPE=postgres
MB_DB_DBNAME=【DB名】
MB_DB_PORT=【ポート】
MB_DB_USER=【ユーザー名】
MB_DB_PASS=【パスワード】
MB_DB_HOST=postgres

# for postgres
POSTGRES_DB=【DB名】
POSTGRES_PASSWORD=【パスワード】

起動・動作確認

docker-compose up -d を実行し、起動

IPアドレスまたはドメイン名を入力し初期画面が表示されればOKです。