>   >  痴山紘史の日本CG見聞録:第19回:クラウド環境構築[ローカル環境とクラウト環境の連携]
第19回:クラウド環境構築[ローカル環境とクラウト環境の連携]

第19回:クラウド環境構築[ローカル環境とクラウト環境の連携]

aws cliのセットアップ

前回、AWS Transfer for SFTPを使用してファイルを転送するしくみをつくりました。単に手動でファイルをアップロードするだけならこれでも十分なのですが、自動化しようとすると色々と問題があったのでaws cliを使用することにします。

aws cliをインストールします。aws cliはpythonのpipでインストールできます。

[neo@matrix Downloads]$ pip install awscli --upgrade --user
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/dev

インストールが終わったら、パスを通します。

[neo@matrix Downloads]$ export PATH=~/.local/bin:$PATH

aws cliのインストールができたので、Access Keyの設定を行います。

[neo@matrix Downloads]$ aws configure
AWS Access Key ID [None]: (AWS Access Key)
AWS Secret Access Key [None]: (AWS Secret Access Key)
Default region name [None]: us-east-1
Default output format [None]: json
[neo@matrix Downloads]$

これで準備が完了です。早速試してみましょう。

[neo@matrix cloudTest]$ mkdir -p /s3fs/work/neo/cloudTest
[neo@matrix cloudTest]$ aws s3 sync render s3://condorannexdata/work/neo/cloudTest/render
upload: render/layout_Arnold.0000.exr to s3://condorannexdata/work/neo/cloudTest/render/layout_Arnold.0000.exr
upload: render/layout_Arnold.0001.exr to s3://condorannexdata/work/neo/cloudTest/render/layout_Arnold.0001.exr
upload: render/layout_Arnold.0002.exr to s3://condorannexdata/work/neo/cloudTest/render/layout_Arnold.0002.exr
upload: render/layout_Arnold.0003.exr to s3://condorannexdata/work/neo/cloudTest/render/layout_Arnold.0003.exr
upload: render/layout_Arnold.0004.exr to s3://condorannexdata/work/neo/cloudTest/render/layout_Arnold.0004.exr
upload: render/layout_Arnold.0006.exr to s3://condorannexdata/work/neo/cloudTest/render/layout_Arnold.0006.exr
upload: render/layout_Arnold.0005.exr to s3://condorannexdata/work/neo/cloudTest/render/layout_Arnold.0005.exr
upload: render/layout_Arnold.0007.exr to s3://condorannexdata/work/neo/cloudTest/render/layout_Arnold.0007.exr
upload: render/layout_Arnold.0009.exr to s3://condorannexdata/work/neo/cloudTest/render/layout_Arnold.0009.exr
upload: render/layout_Arnold.0008.exr to s3://condorannexdata/work/neo/cloudTest/render/layout_Arnold.0008.exr
[neo@matrix cloudTest]$ ls -la /s3fs/work/neo/cloudTest/render
total 249041
drwxrwxrwx 1 neo neo        0 Jan  1  1970 .
drwxrwxrwx 1 neo neo        0 Dec 24 15:32 ..
-rw-r----- 1 neo neo 25496058 Dec 24 23:03 layout_Arnold.0000.exr
-rw-r----- 1 neo neo 25504371 Dec 24 23:04 layout_Arnold.0001.exr
-rw-r----- 1 neo neo 25505110 Dec 24 23:04 layout_Arnold.0002.exr
-rw-r----- 1 neo neo 25499350 Dec 24 23:04 layout_Arnold.0003.exr
-rw-r----- 1 neo neo 25494908 Dec 24 23:04 layout_Arnold.0004.exr
-rw-r----- 1 neo neo 25502157 Dec 24 23:04 layout_Arnold.0005.exr
-rw-r----- 1 neo neo 25496158 Dec 24 23:04 layout_Arnold.0006.exr
-rw-r----- 1 neo neo 25501568 Dec 24 23:04 layout_Arnold.0007.exr
-rw-r----- 1 neo neo 25503468 Dec 24 23:04 layout_Arnold.0008.exr
-rw-r----- 1 neo neo 25511207 Dec 24 23:04 layout_Arnold.0009.exr
[neo@matrix cloudTest]$

正常に転送できました。

ファイルアップロード

続いて、ファイルのアップロードをHTCondorに行わせてみましょう。

[neo@matrix cloudTest]$ cat sendFile.sh
#!/bin/sh

export PATH=/home/neo/.local/bin:$PATH

mkdir -p /s3fs/work/neo/cloudTest/log

aws s3 sync render s3://condorannexdata/work/neo/cloudTest/render

[neo@matrix cloudTest]$

HTCondorの.sdfファイルも作成します。

[neo@matrix cloudTest]$ cat sendFile.sdf
executable = /bin/sh

output = /gs/work/neo/cloudTest/log/send_file.out
error = /gs/work/neo/cloudTest/log/send_file.err
log = /gs/work/neo/cloudTest/log/send_file.log

arguments = sendFile.sh
initialdir = /gs/work/neo/cloudTest
requirements = TARGET.OpSys == "LINUX" && TARGET.FileSystemDomain == "intra.jcgs.co.jp" && TARGET.UidDomain == "intra.jcgs.co.jp"

should_transfer_files = no

queue

[neo@matrix cloudTest]$

ジョブを投入します。

[neo@matrix cloudTest]$ condor_submit sendFile.sdf
Submitting job(s).
1 job(s) submitted to cluster 39.
[neo@matrix cloudTest]$

ジョブが完了したら、実行結果を確認します。

[neo@matrix cloudTest]$ ls /s3fs/work/neo/cloudTest/render
layout_Arnold.0000.exr  layout_Arnold.0002.exr  layout_Arnold.0004.exr  layout_Arnold.0006.exr  layout_Arnold.0008.exr
layout_Arnold.0001.exr  layout_Arnold.0003.exr  layout_Arnold.0005.exr  layout_Arnold.0007.exr  layout_Arnold.0009.exr
[neo@matrix cloudTest]$

計算ノード側からも確認します。

[ec2-user@ip-172-31-95-187 cloudTest]$ ls /gs/work/neo/cloudTest/render
layout_Arnold.0000.exr  layout_Arnold.0003.exr  layout_Arnold.0006.exr  layout_Arnold.0009.exr
layout_Arnold.0001.exr  layout_Arnold.0004.exr  layout_Arnold.0007.exr
layout_Arnold.0002.exr  layout_Arnold.0005.exr  layout_Arnold.0008.exr
[ec2-user@ip-172-31-95-187 cloudTest]$

無事に転送されています。

次ページ:
クラウド上での処理

その他の連載