Gemma

Gemma データベース移行手順ガイド【2026年最新】

ⓘ本ページはプロモーションが含まれています

Contents

スポンサードリンク

Gemma データベースの構成要素とバージョン確認

Gemma は遺伝子発現データを統合・検索できるオープンソースプラットフォームで、PostgreSQL、Elasticsearch、ファイルストレージ の 3 層アーキテクチャが基本です。各コンポーネントのバージョンが揃っていないとマイグレーション時に互換性エラーが頻発するため、本セクションでは公式ドキュメント(2024‑11 更新)に基づく推奨バージョンと、実際に稼働中のバージョンを確認する手順を解説します。

PostgreSQL のバージョン確認

PostgreSQL はメタデータ・実験情報を永続化する中心的なリレーショナル DB です。以下のコマンドでサーバー側とクライアント側双方のバージョンを取得できます。

目安:公式では PostgreSQL 13.x 系が推奨されています。12 系以下は非対応機能(例: パーティショニング)に注意してください。

Elasticsearch のバージョン確認

検索インデックスを担当する Elasticsearch は、Gemma 2.5.0 以降で 8.x 系 が公式サポートとなります。現在稼働中のバージョンは次のように取得します。

チェックリスト
GET /_cat/indices?v が正常に返るか
/_cluster/health のステータスが green であること

ファイルストレージの確認ポイント

バイオロジーデータ(FASTQ、BAM 等)は容量が大きくなるため、NFS 互換ファイルシステムまたは S3 互換オブジェクトストアを使用します。マウントポイントやバケットポリシーが正しく設定されているか、次の点を確認してください。

項目 確認方法
NFS マウント可否 showmount -e $NFS_SERVER
S3 バケットアクセスポリシー aws s3api get-bucket-policy --bucket <bucket>
書き込み権限 touch /path/to/storage/.test && rm /path/to/storage/.test

公式バックアップ取得手順と暗号化キー管理

信頼性の高いバックアップは、障害復旧だけでなく法規制遵守(例: GDPR)にも不可欠です。本節では pg_dump と Gemma が提供する gemma-export スクリプトを組み合わせた手順に加え、暗号化キーの安全な保管・ローテーション方法を具体的に示します。

1. pg_dump によるデータベースダンプ(AES‑256 暗号化)

  • -Fc はカスタム形式で、リストア時にテーブル単位の復元が可能です。
  • 暗号化キーは 平文で保存しない ことが原則です。以下のように外部シークレット管理ツールから取得します。

2. gemma‑export スクリプトによるメタ情報エクスポート

gemma-export は Gemma ソースツリーに同梱されている CLI ユーティリティです。インストール済みかは次で確認できます。

実際のエクスポート手順は以下の通りです(Docker コンテナ内部から実行する場合も同様)。

  • JSON は API 連携に最適、TSV が必要な場合は --format tsv を指定してください。
  • エクスポートファイルも同様に暗号化し、復号キーはバックアップと別管理します。

3. バックアップの二重保存

保存先 推奨理由
オンプレミス NAS(エアギャップ) ネットワーク障害時の保護
クラウドオブジェクトストレージ(例: AWS S3、GCS) 地理的冗長性とライフサイクル管理

保存期間は 最低 90 日、法令で求められる場合は更に長く保持してください。


Docker イメージでのデータ取得・エクスポート

Docker 環境を利用すれば、ホスト側に依存しない再現性の高いバックアップが可能です。ただし イメージタグの公式性バージョン管理 が重要です。以下では Docker Hub の公式リポジトリ gemma/gemma を例に、実在確認手順と推奨タグ戦略を示します。

1. イメージの公式性を確認する方法

  • latest タグは 常に最新 ですが、突発的な破壊的変更が入る可能性があります。
  • 本番環境では バージョンタグ(例: 2.5.0) を使用し、イメージの SHA256 ダイジェストでロックすることを推奨します。

2. イメージ取得・プライベートレジストリへのプッシュ

  • registry.mycompany.com は社内プライベートレジストリです。
  • タグ名に 年と月(YYYY.MM) を入れることで、ロールバック時の可視性が向上します。

3. コンテナ内部で pg_dump と gemma‑export を実行

  • 必要に応じて --cpus--memory オプションでリソース上限を緩め、ダンプ時間の短縮が期待できます(例: --cpus=4 --memory=8g)。

新環境へのインストール手順:Docker Compose と Conda の両対応

移行先のインフラが コンテナ中心軽量仮想環境 かに応じて、Docker Compose と Conda のどちらでも構築できるようにテンプレートを用意しました。ここでは公式推奨バージョン(PostgreSQL 13、Elasticsearch 8.9、Gemma CLI 2.5.0)に合わせた設定例と、実装上の注意点を示します。

Docker Compose 用設定ファイル(docker‑compose.yml)

  • .env ファイルで機密情報を管理し、CI/CD のシークレットストアと連携させます。
  • elasticsearch:8.9.0 は Gemma CLI 2.5.0 がサポートする最新安定版です。

Conda 環境用設定ファイル(environment.yml)

Conda 環境でのサービス起動手順

  • ディレクトリはすべて Conda 環境内に閉じ込めることで、ホストへの影響を最小化します。
  • gemma-cli init が成功すると、必要なテーブルとインデックスが自動作成されます。

スキーマバージョン管理・マイグレーションとデータ整合性チェック

Gemma のスキーマは頻繁に拡張されるため、Flyway または Liquibase によるバージョン管理が必須です。ここでは Flyway を例に、設定ファイル・マイグレーション実行手順と、移行後のデータ整合性を自動検証するスクリプト例を示します。

Flyway 設定例(flyway.conf)

  • sql ディレクトリに V2026_03__add_new_table.sql のような バージョン付スクリプト を配置します。

マイグレーション実行

  • 成功時は標準出力に Successfully applied X migrations と表示されます。

整合性チェックの自動化スクリプト(check_integrity.sh)

  • スクリプトは CI パイプライン に組み込むことで、リリースごとの回帰検証が自動化できます。

ダウンタイム削減策・セキュリティ設定・パッチ適用・トラブルシューティング

本章では、本番環境への影響を最小限に抑えるための リードレプリカブルー/グリーンデプロイ、さらに API キーや OAuth の安全な移行手順、2026 年版パッチ適用時の注意点、代表的エラーと対処法を網羅します。

リードレプリカ構築とブルー/グリーンデプロイフロー

  1. PostgreSQL リードレプリカ作成
    bash
    pg_basebackup -h primary_host -D /var/lib/postgresql/replica \
    -U replicator -P --wal-method=stream
    # postgresql.conf に hot_standby = on を追記し、再起動
  2. ブルー(現行)とグリーン(新バージョン)の同時稼働
    Docker Composegemma_bluegemma_green の二つのサービスを立ち上げ、ヘルスチェックが OK になるまで待機。
  3. トラフィック切替(例:NGINX の upstream を切り替える)
    bash
    # Blue → Green 切替コマンド例
    curl -XPOST http://nginx/api/switch?to=green

効果:サービス停止時間は数秒以内に抑えられ、ロールバックも即座に可能です。

API キー・OAuth の安全な移行手順

手順 詳細
1. 新キー生成 Gemma 管理画面 /admin/api-keys → 「Create new」→ 即時有効化
2. 秘密情報の暗号化保管 HashiCorp Vault の secret/gemma/api-key に保存し、アクセスは token‑auth のみ許可
3. 旧キー無効化 新キーが全クライアントに展開されたことを確認後、旧キーを即座に削除
4. OAuth クライアント登録 gemma-cli oauth register --client-id $ID --client-secret $SECRET → 環境変数 OAUTH_CLIENT_ID/SECRET に注入
  • ネットワーク制限は Docker Compose の network_mode: bridge から VPC 内プライベートサブネットへ変更し、セキュリティグループで IP アドレスレンジを限定してください。

2026 年パッチ適用と Elasticsearch 8.x 互換性確認

Gemma CLI 2.5.0 以降は Elasticsearch 8.x が公式サポートされています。パッチ適用手順は次の通りです。

  • 互換性チェック
    bash
    # Gemma CLI のバージョン確認
    gemma-cli version # 必ず 2.5.0 以上

# Elasticsearch インデックスマッピングが 8.x 用に自動変換されたか
curl -s http://localhost:9200/_mapping | jq '.'

よくあるエラーと対処法(FAQ)

エラー 原因例 推奨対策
psql: could not connect to server DB コンテナ未起動、DB_HOST 誤設定 docker compose ps で状態確認 → .envPOSTGRES_PASSWORD 再設定
Elasticsearch インデックス不整合 バージョン差異、マイグレーション未実施 gemma-cli reindex --force を実行しインデックス再構築
permission denied(pg_dump) 実行ユーザーにスーパーユーザ権限がない DB 管理者で GRANT ALL ON DATABASE gemma_db TO gemma_user; を付与
暗号化キー漏洩疑惑 環境変数に平文保存 秘密情報は Vault/KMS から取得し、プロセス外部に保持しない

ベストプラクティス:エラーログはすべて 集中ログ管理システム(例:ELK Stack) に集約し、アラート設定を行うことで再発防止が可能です。


まとめ

項目 推奨構成・手順
コンポーネントバージョン PostgreSQL 13、Elasticsearch 8.9、Gemma CLI 2.5.0(Docker イメージは gemma/gemma:2.5.0
バックアップ取得 pg_dump -Fc + AES‑256 暗号化 (openssl enc) → Vault/KMS で管理する鍵で暗号化、gemma-export によるメタ情報 JSON/TSV エクスポート
Docker イメージ運用 バージョンタグ(例 2.5.0)と SHA256 ダイジェストでロックし、プライベートレジストリへプッシュ
新環境構築 Docker Compose か Conda のいずれでも再現可能。Elasticsearch は 8.x 系を使用
スキーマ管理 Flyway(または Liquibase)でバージョン管理、CI パイプラインに check_integrity.sh を組み込み
ダウンタイム削減 リードレプリカ+ブルー/グリーンデプロイで数秒以下の切替が実現可能
セキュリティ・キー管理 Vault/KMS で暗号化鍵を保管、API キーは Vault シークレットとして保存し CI/CD のみ参照
パッチ適用と互換性 Gemma CLI 2.5.0+ が Elasticsearch 8.x をサポート。イメージ更新後はロールアウト方式でデプロイ
トラブルシューティング 代表的エラー表を参照し、ログ集約・アラート設定で迅速に復旧

上記の手順とベストプラクティスに従うことで、Gemma データベースの 安全なバックアップ取得 → 新環境への移行 → 本番稼働 を計画的かつ最小ダウンタイムで実施できます。公式ドキュメント(https://gemma.msl.ubc.ca/docs/)と Docker Hub のリポジトリ情報を併せて定期的に確認し、バージョンや脆弱性情報の最新状態を保つことが成功への鍵です。

スポンサードリンク

-Gemma