Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon LinuxにOpenMetadataを構築

Last updated at Posted at 2024-04-25

目的

AWS環境 (Amazon Linux) に OpenMetadata を導入したい。それだけ (だと思ってた)。
後述の通りバージョン違いなどによる影響で何度かインスタンスを立てなおしたり、エラーにはまってひたすら時間を溶かしたりしたので共有します。

環境

  • Amazon Linux 2
  • OpenMetadata 1.1.1
  • Docker 20.10.25
  • Docker Compose v2.26.1
  • Python 3.7.16

手順

1. EC2インスタンス構築
2. GUI環境構築
3. 各モジュールの導入
4. Dockerコンテナ起動
5. OpenMetadataにログイン
6. Airflowにログイン

EC2インスタンス構築

まず、下記要件を満たす必要があります。

Minimum sizing recommendations for OpenMetadata deployment include 2 vCPUs and 4 GiB of RAM, with 20 GiB of volume size for logs.

加えて、Linuxの場合はGUI環境が構築可能であること。

今回は下記設定でインスタンス作成。

  • AMI
    • Amazon Linux 2 with .NET 6, PowerShell, Mono, and MATE Desktop Environment
  • インスタンスタイプ
    • t2.large
  • Storage
    • 20 GB
  • Security Group
    • 社内ネットワークからのRDP, sshを許可

今回は導入の検証のため public subnet にインスタンスを配置します。
細かい構築手順は割愛します。

おまけ: Amazon Linux 2023 を使わない理由

Amazon Linux 2023 が最新ですが、GUI環境を構築できなかったので Amazon Linux 2 を採用しました。そのうち出来るようになるかもしれませんね。

GUI環境構築

以下、こちらを参考にしています。

パッケージ最新化と再起動

sudo yum update
sudo reboot

xrdpをインストール & 有効化

sudo amazon-linux-extras install epel
sudo yum install xrdp
sudo systemctl start xrdp
sudo systemctl enable xrdp

パスワード設定

認証のためパスワードを設定。
RDP接続時に利用します。

sudo passwd ec2-user

※ユーザー名がec2-userの場合

証明書ファイルとキーの作成

sudo openssl req -x509 -sha384 -newkey rsa:3072 -nodes -keyout /etc/xrdp/key.pem -out /etc/xrdp/cert.pem -days 365

ここで Country Name などを聞かれるので、回答してあげます。↓記事内の「証明書署名要求(CSR)を作成する」を参照。

xrdp 再起動

sudo systemctl restart xrdp

接続確認

ローカルからリモートデスクトップ接続できればOKです。
username と password は「パスワード設定」で設定したものです。
image.png

接続できない場合に確認したいこと

  • セキュリティグループ (RDP許可)
  • xrdpのステータス確認 (sudo systemctl status xrdp)
  • インスタンスの状態
  • パブリック IP の確認 (Elastic IPを使っていない場合、再起動の度にIPが変わる)

各モジュールの導入

Docker インストール

version 20.10.0 以上が必要です。

sudo yum update -y
sudo yum -y install docker
sudo systemctl start docker
sudo systemctl enable docker

バージョン確認

docker --version

Docker Compose インストール

version 2.1.1 以上が必要です。実行権限も付与します。

DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
curl -SL https://github.com/docker/compose/releases/download/v2.26.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

バージョン確認

docker compose version

コンテナ用ディレクトリ作成・移動

mkdir openmetadata-docker && cd openmetadata-docker

※ディレクトリ名は任意

仮想環境の構築・有効化

python3 -m venv env
source env/bin/activate

pip setuptools のインストール

pip3 install pip setuptools==66.0.0

筆者は最初 version 68.0.0 をインストールしましたが、Dockerコンテナの起動で失敗しました。
バージョン 66.0.0 前後が推奨されていますが、厳密にどのバージョンまでOKかは不明です。

OpenMetadata モジュールのアップデート

pip3 install --upgrade "openmetadata-ingestion[docker]”

ユーザーをdockerグループに追加

sudo なしで docker コマンド実行できるようにします。

sudo usermod -a -G docker ec2-user

再起動

コンテナ起動する前にインスタンスを再起動しましょう。

Dockerコンテナ起動

metadata docker --start

数分~10分ほど待ちます。

OpenMetadata is up and running が返ってくればOKです。

おまけ:コンテナ起動時に発生したエラー

  • No space left on device
    • ディスク容量不足などの場合はここでエラーになります
    • 自分は最初デフォルトの 8 GB で作成していて引っかかりました
  • Docker Service is not up and running
    • status 確認しても running なのになぜ...? と、かなり時間を溶かしました
    • ec2-user を docker グループに追加したところ解消しました

再起動用設定

検証用環境なので利用していない時間はインスタンスを停止したい。
そのまま再起動してもコンテナは勝手に起動してくれない (厳密には OpenMetadata用コンテナは起動しているようだが Airflow 用コンテナが起動していない?) ため、以下コマンドで自動的にコンテナを起動するよう設定。

docker update --restart unless-stopped $(docker ps -q)

OpenMetadataにログイン

  1. 構築したインスタンスにRDP接続・サインイン
  2. デスクトップ左下のメニューから「Applications > Internet > Chromium Web Browser」を選択
  3. http://localhost:8585/ に接続
  4. 管理者としてログインする場合は username, passwordともに admin で通ります

image.png
(ここまで長かった)

Airflowにログイン

上と基本は同じで、http://localhost:8080/ に接続します。
いくつかサンプルのDAGが用意されており、 sample_data などを実行するとサンプルデータがOpenMetadata上に登録されます。
実行はDAG名の右の方にある再生ボタンを押し、「Trigger DAG」を選択するだけです。

終わりに

最初に作ったインスタンスが GUI 対応していなかったり、 Docker composeDocker-compose を間違えていたりで何度かインスタンスを立て直すこととなりました。
色々な記事を参照した結果、バージョン違いによる影響をかなり受けたので、今回は一連の流れをまとめてみました。
以上、Qiita執筆デビューでした。

1
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?