1時間200円の動画編集環境(NVMe SSD活用編)
DaVinci Resolve用に構築したAWS上のEC2インスタンスのNVMe SSDを、DaVinci ResolveプロジェクトのProxyやキャッシュ置き場として使えるようセットアップする。
NVMe SSD
g4dnインスタンスは、ルートボリューム用のEBSとは別にNVMe SSDが無料で利用できる。ただし、
- 起動時に自動的にマウントされない
- 停止時にファイルシステムごとデータが消去される
- (停止ではなく)リブート時はマウントは解除されるが、データは消去されない
といった特徴があるので、これらを踏まえてセットアップする。
systemdサービスの登録
Amazon Linux 2の初期化プロセスはsystemdが管理しているので、NVMe SSDの初期化・マウント処理をsystemdサービスとして登録しておく。
mount-nvmessd.sh
/etc/systemd/scripts/mount-nvmessd.sh
を以下の内容で作成し、実行権限を付与しておく(chmod +x mount-nvmessd.sh)。なお、NVMe SSDのマウント先は/data
、DaVinci Resolveを使うec2-user用のディレクトリを/data/ec2-user
とした。
#!/bin/bash NVME_SSD=/dev/nvme1n1 FS_TYPE=`lsblk -nf $NVME_SSD | awk -t '{print $2}'` if [ "$FS_TYPE" != "xfs" ]; then mkfs -t xfs $NVME_SSD mkdir -p /data mount $NVME_SSD /data mkdir -p /data/ec2-user chown ec2-user.ec2-user /data/ec2-user else mount $NVME_SSD /data fi
mount-nvmessd.service
/etc/systemd/system/mount-nvmessd.service
を以下の内容で作成する。
[Unit] Description=Mount NVMe SSD After=network-online.target [Service] Type=oneshot ExecStart=/etc/systemd/scripts/mount-nvmessd.sh RemainAfterExit=yes [Install] WantedBy=graphical.target
サービスの有効化と実行
以下のコマンドにて、先ほど作成したサービスを有効化の上実行する。
$ sudo systemctl daemon-reload $ sudo systemctl enable mount-nvmessd.service $ sudo systemctl start mount-nvmessd.service
サービスのステータスを確認すると、問題なく実行されたようだ。
$ systemctl status mount-nvmessd.service ● mount-nvmessd.service - Mount NVMe SSD Loaded: loaded (/etc/systemd/system/mount-nvmessd.service; enabled; vendor preset: disabled) Active: active (exited) since Tue 2022-03-08 13:23:10 UTC; 13min ago Process: 2789 ExecStart=/etc/systemd/scripts/mount-nvmessd.sh (code=exited, status=0/SUCCESS) Main PID: 2789 (code=exited, status=0/SUCCESS) CGroup: /system.slice/mount-nvmessd.service
DaVinci Resolveプロジェクト
プロジェクトの設定を開き「Master Settings - Working Folders」の「Proxy generation location」と「Cache files location」をそれぞれ/data/ec2-user
配下のディレクトリへ変更しておく(これらのディレクトリは存在しなければ自動的に作成される)。