Amazon EC2を使って、3Dレンダリングをしてみたメモ
米国東部ヴァージニアリージョンにEC2コンピュータクラスタを作成
プレイスメントグループにインスタンス(マスター・スレーブ)を作成
- AMIにWindows Server 2008 R2を選択
- Administratorパスワードを取得
- リモートデスクトップ接続する
- ファイアウォールの設定で、ポート8000(blenderの通信ポート)を開放する
- blenderをインストールする(NetworkRenderアドインを設定しておくこと)
blenderで処理
- マスター用サーバーでblenderを起動し、マスターの開始ボタンを押す
- マスター用サーバーのIPアドレス(プライベートアドレス)を確認する
- スレーブ用サーバーでblenderを起動し、マスター用サーバーのアドレスを設定し、スレーブの開始ボタンを押す
- クライアント用サーバーでblenderを起動し、処理するファイルを開いた後、マスター用サーバーのアドレスを設定する
- クライアントの「Send job」ボタンを押す
- サーバーモニターでFinishedになったら「Get Animation」ボタンを押す
- レンダリング結果は、クライアントで設定したPathに格納される
注意事項
bake処理はコア数が増えても並列処理できないので、マイクロインスタンスで十分。
クラスタコンピュートの場合(Twitterから転載)
↓
約30sec/1フレーム。
30fpsで5minの動画だと9000枚必要なので、9000*0.5minで4500min=75h。
75h*$3=$225。
$240/$3=80台を並列に並べれば約1hでレンダリング完了。
逆に1台でがんばっても、レンダリング時間がのびるだけで$225かかる。
ただし、ネットワーク転送に時間がかかる+分散処理に限界があるのでは?(未検証)
GPUインスタンスの場合(Twitterから転載)
↓
13.94sec/1フレーム。
0.25min*9,000フレーム=2,250min、2,250min/60min≒38h、38h*$2.6=$98.8。
スポットインスタンスなら38h*$1=$38。
ただし、ネットワーク転送に時間がかかる+インスタンス起動数に上限があるので注意。
結論
何度かベンチしてみたところ、AWSだと、どの方法でもだいたい$8/500フレーム程度が限界。
ユーロ建てだと高くつく、または、自前でサーバーを構築しないといけない場合は、GPUインスタンスのオンデマンド*1(マスター用)と、GPUインスタンスのスポット*n(スレーブ用)で処理する。
一般的なレンダリング処理だけなら、レンダーファーム(RenderFlowだと5ユーロ/500フレーム)を利用する。