LoginSignup
1
0

【Terraform】MetabaseをFargateで実行し、データをEFSで永続化

Last updated at Posted at 2023-06-02

概要

AWSを利用している場合、MetabaseをECSにデプロイすることが多いのかなと思います。
ただ、Fargateで動かした時のデータの永続化をどうするか悩んでしました。
ここでいうデータとは

  • ログインユーザー
  • Metabaseに保存した質問
    等を指します。

デフォルトではアプリケーションの実行環境下にH2データベースを作成し、そこにデータを溜めていきます。しかし、本番運用する際はPostgresにその役割を委託することが推奨されています。
参考:Configuring the Metabase application database

本稿は、「「それでもデフォルトのままがいい!Postgresにデータを保存したくない!」」という熱い気持ち(?)がある私のような方への手順書になります。

手法

前述の通り、デフォルトでデータはアプリケーション内のmetabase.db.h2.dbファイルに蓄積されていきます。ECS on EC2であれば、このファイルをEC2のファイルシステム、ひいては接続されたEBS等にマウントすれば仮にECSが停止したとしてもデータは永続化されるのですが、Fargateで動作する場合はどうすればいいのでしょうか?
そういえば、EFSがFargateと接続できたような…。。。

安西先生…。
Eh7J3mEUYAADAZf.png

Fargate で実行されている Amazon ECS コンテナまたはタスクに Amazon EFS ファイルシステムをマウントする方法を教えてください。

とりあえずPrivateSubnetで動くRDSがあるとして、以下のようなインフラと理解しました。
(一部簡略化しています。)
名称未設定ファイル.drawio (8).png

Terraformも書いてみました✨

結論

「え?もしまたMetabase環境を作る機会があったらって?」

「…」

「Postgresにデータを保存します。」

Migrating to a production application database

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0