概要
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です。
