1時間200円の動画編集環境(構築編)
AWS(Amazon Web Services)上にDaVinci Resolveの動画編集環境を作ろうと思いまずは料金を試算してみたところ、Linux環境の方がWindows環境より3割程安かったのと面倒なインストール作業が不要な便利なAMI(Amazon Machine Image)があることが分かったので、AWS上にLinux版DaVinci Resolveの動画編集環境を構築していくことにした。
環境構成(おさらい)
GPU搭載EC2インスタンスと、NICE DCV(リモートデスクトップソフト)やNVIDIA GPUドライバが入ったAmazon Linux 2ベースのAMIを使う。EBSはとりあえず100GBだけ確保する。
AWSサービス | スペック | 備考 |
---|---|---|
EC2 | g4dn.4xlarge(16 vCPU、64MBメモリ、1 GPU、225GB NVMe SSD) | 225GBストレージ付き。ただし停止/起動で内容はクリアされる |
EBS | 汎用SSD(gp2)100GB | - |
AMI | NICE DCV for Amazon Linux 2 | - |
事前準備
g4dnインスタンスを起動する前の準備として、EC2 vCPUの制限引き上げリクエストを行う。デフォルトでは、G系インスタンスの利用可能vCPU数は0なので、必要に応じて16なり32なりへ変更する。やり方は以下が参考になる。
EC2
ステップ1:Amazonマシンイメージ(AMI)
AWS Marketplaceから「NICE DCV for Amazon Linux 2」を選択する。
ステップ2:インスタンスタイプの選択
セットアップ中はマシンパワーは不要なので、g4dnシリーズの最低スペック(g4dn.xlarge)をまずは選択する。
ステップ3:インスタンスの詳細の設定
基本的にはデフォルトのままでOKだが、EC2インスタンスからNICE DCVのライセンス情報(専用のS3バケット)へのアクセス権が必要なので、ここを参考にポリシーとEC2へアタッチするロールを新たに作成し、作成したIAMロールを以下のように設定しておく。
ステップ4:ストレージの追加
ルートボリュームのサイズを100GBへ変更する。
ステップ5:タグの追加
何も追加せず次へ。
ステップ6:セキュリティグループの設定
デフォルトのままだとすべてのIPアドレスにポートが解放されてしまうので、TCP/UDP共にマイIPを設定しておく。また、SSH接続用のポートも追加しておく。
あとは、キーペアを選択(or 新規作成)してEC2インスタンスを起動しておく。
パスワード設定
起動したEC2インスタンスに、設定したキーペアとユーザ名ec2-userを使ってログインし、ec2-userのパスワードを設定する。
$ sudo passwd ec2-user
詳しくはNICE DCV for Amazon Linux 2(Marketplace)の「Usage Instructions:」を参照。
NICE DCV
セッションの作成
EC2インスタンスでパスワード設定後、さらに以下のコマンドをec2-userで実行し、リモートデスクトップ接続のためのセッションを作っておく。
$ dcv create-session ec2-user-session $ dcv list-sessions Session: 'ec2-user-session' (owner:ec2-user type:virtual)
NICE DCVクライアント
NICE DCVクライアントはWindows版、Linux版、MacOS版に加え、Webブラウザをクライアントとしても使うことができる(Webブラウザを使う場合は https://public_dns:8443
(public_dnsはEC2インスタンスのパブリック IPv4 DNSやアドレス)で接続可能)。簡単なのはWebブラウザだが、今後DaVinci Resolve Speed Editorをリモート接続して使ってみたいので、Windows版クライアントをインストールする。
NICE DCVクライアントを起動したら、接続先のホスト名とec2-user、先ほど設定したパスワードを入力すると、EC2インスタンス上のデスクトップ環境にアクセス可能になる。
DaVinci Resolve
Chromium
DaVinci ResolveをEC2サーバ上で直接ダウンロードするためにChromium(Google Chromeのオープンソース版)をインストールする。
$ sudo amazon-linux-extras install epel $ sudo yum install chromium
DaVinci Resolveダウンロード&インストール
ChromiumブラウザでBlackmagic Designのサイトへ行き、DaVinci Resolve(無料版)のLinux版をダウンロードする。
以下を実行し、DaVinci Resolveをインストールする。
$ unzip DaVinci_Resolve_17.4.4_Linux.zip $ chmod +x ./DaVinci_Resolve_17.4.4_Linux.run $ sudo ./DaVinci_Resolve_17.4.4_Linux.run -i
無事にインストールされたようだ。
起動してみると、GPU(NVIDIA Tesla T4)も問題なく認識された。
なお、DaVinci Resolve(無料版)のLinux版だと、MP4ファイル出力に非対応なので、MP4ファイルを扱いたい場合はWindows環境を構築するか、Studio版を入手するしかなさそうだ。
DaVinci Resolve Speed Editor
最後に、EC2上のDaVinci ResolveにSpeed Editorを接続してみる。
まずはここを参考に、Speed Editorが接続された手元のPCにてNICE DCVクライアントに付属の dcvusblist.exe
というコマンドを実行し「DaVinciResolveSpeedEditor,255,・・・」という文字列を取得する(右クリックでCopy filter string
を選択するとエラーになることがあるので、その場合は見ながら次の作業をやる)。
次にここを参考にNICE DCVサーバ(先ほど作成したEC2インスタンス)の /etc/dcv/usb-devices.conf
の最後に先ほどの「DaVinciResolveSpeedEditor,255,・・・」を追記し、NICE DCVサーバを再起動する(再起動後はもう一度NICE DCVセッションを作り直す)。
$ sudo vi /etc/dcv/usb-devices.conf $ sudo systemctl stop dcvserver $ sudo systemctl start dcvserver $ dcv create-session ec2-user-session
NICE DCVクライアントを起動してEC2インスタンスにログイン後、ウィンドウ左上のSettingsメニューから「Removable Devices...」を開き、「DaVinci Resolve Speed Editor」のスイッチをONへ切り替える。
そして、EC2インスタンス上でDaVinci Resolveを起動すると・・・Speed Editorが認識されてリモートデスクトップ経由で操作が可能になる(素晴らしい!)。
TODO
以上でAWS上にDaVinci Resolveの動画編集環境が整った。あとは作業内容に応じてインスタンスタイプを変更したり、EBSを追加したりすればそれなりの作業ができるかと思う。ただ・・・DCVセッションはサーバの停止・起動により毎回削除されるので、今のままだと作業のために起動するたびにSSHでログイン→セッション作成をしなければならないのが面倒だったりする。それと、g4dnインスタンスには揮発性のNVMe SSDが付属しているのが、ここまでの設定だけだと活用することができない。なので、次回以降、このあたりの細かい設定についてもう少し書いておこうと思う。
2022/3/7追記
EC2インスタンス起動時にNICE DCVセッションを自動的に作る設定について書きました。
2022/3/8追記
NVMe SSDを活用するための設定について書きました。
2022/3/9追記
性能を測定してみました。