自分のストレージを持ち込む (パート 1)


Rescale プラットフォームは、主要なパブリック クラウド ベンダーのストレージ製品を活用したエンドツーエンドのファイル管理を提供します。 これには、最適化されたクライアント側の転送ツール、転送中および保存時の暗号化が含まれます。 このモデルでは、Rescale がオブジェクト ストアのレイアウトと暗号化キーの管理を制御します。 復号化されたファイルのコンテンツを取得するには、ユーザーは Rescale ツールを使用する必要があります。 これは、ゼロから始めて、完全に管理された安全なソリューションを探している場合には便利ですが、考えられるシナリオの XNUMX つは、すでにクラウドにアップロードされている入力データを使用してプラットフォームを使用する方法です。 私たちが確認しているもう XNUMX つの使用例は、顧客が管理する保管場所にあるシミュレーション出力ファイルを直接操作する既存のデータ パイプラインとの統合です。 コストとパフォーマンスの理由から、コンピューティングをできるだけストレージの近くに配置することが重要です。 Rescale のプラットフォームの利点の XNUMX つは、さまざまなクラウド プロバイダーをサポートしており、すでに使用しているクラウド ストレージ アカウントにコンピューティングを提供できることです。
この投稿では、顧客がデフォルトの Rescale 管理ストレージを使用する代わりに、ユーザーが指定した場所から入出力ファイルを転送する方法を説明します。 この例では、Amazon S3 に焦点を当てますが、同様のアプローチはどのプロバイダーでも使用できます。 以下では、入力ファイルと出力ファイルが顧客が制御するバケットに存在する実験計画法ジョブのセットアップについて説明します。 バケットの名前が「my-simulation-data」で、入力ファイルにはすべて「input」という接頭辞が付いており、パラメーター スイープによって生成されたすべての出力ファイルは「output」という接頭辞が付いているパスにアップロードする必要があるとします。
この DOE は、HSDI および Pintle Injector のサンプルを実行します。 コンバージCFD 弊社のサポートページ (https://support.rescale.com/customer/en/portal/articles/2579932-converge-examples) 並行して。 通常、DOE フレームワークは入力ファイル内の特定の数値を変更するために使用されますが、ここでは実行ごとにまったく異なる input.zip を選択するために使用します。
まず、コンバージ入力 zip (hsdi_fb_2mm.zip および pintle_injector.zip) を s3 の s3://my-simulation-data/input/ ディレクトリにアップロードします。
次に、次のような inputs.csv という名前のファイルをローカルに作成します。

s3_input,s3_output
s3://my-simulation-data/input/hsdi_fb_2mm.zip,s3://my-simulation-data/output/hsdi/
s3://my-simulation-data/input/pintle_injector.zip,s3://my-simulation-data/output/pintle/

Rescale コンピューティング ノードにバケットへのアクセスを許可するには、入力ディレクトリへの読み取りアクセスと出力ディレクトリへのフル アクセスを提供する IAM ポリシーを作成する必要があります。

{ "バージョン": "2012-10-17", "ステートメント": [ { "効果": "許可", "アクション": [ "s3:Get*", "s3:List*" ], "リソース" : [ "arn:aws:s3:::my-simulation-data/input", "arn:aws:s3:::my-simulation-data/input/*" ] }, { "効果": "許可" 、「アクション」: [ "s3:*" ]、「リソース」: [ "arn:aws:s3:::my-simulation-data/output"、"arn:aws:s3:::my-simulation-data /output/*" ] } ] }

これを実現する別の方法は、クロスアカウント アクセスをセットアップすることです (https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html)。 すべての計算ノードが AWS で実行される場合、これはアクセスを設定するための推奨される方法です。 ただし、上記のアプローチは、計算ノードが実行されている場所に関係なく機能します。
次に、このポリシーを IAM ユーザーにアタッチし、アクセス キーと秘密キーを生成します。 このアクセス キーと秘密キーは、ローカル ファイルに保存する AWS 設定ファイルに配置する必要があります。

[デフォルト] aws_access_key_id=XXXXXXX aws_secret_access_key=XXXXXXXXX リージョン=us-east-1

上記を config というファイルに保存します。
ローカルで作成する必要がある最後のファイルは、実行スクリプト テンプレートです。 実行ごとに実行されるシェル スクリプト テンプレート ファイル内で、上で作成した inputs.csv から s3_input 変数と s3_output 変数を参照します。 次のような run.sh.template というファイルを作成します。

#!/bin/bash export AWS_CONFIG_FILE=config aws s3 cp ${s3_input} 。 *.zip を解凍して aws s3 cp を収束します。 ${s3_output} --recursive --exclude config rm -rf *

上記のスクリプトには、いくつか注意すべき点があります。 通常、Rescale プラットフォームは zip ファイルを自動的に解凍しますが、この場合、入力に対して Rescale ストレージをバイパスしているため、それを自分で処理する必要があります。 スクリプトの最後にある rm -rf * は、ユーザーが指定した S3 の場所に出力ファイルをアップロードした後、すべての出力ファイルを削除します。 この手順を省略すると、スクリプトの終了後に出力ファイルも Rescale ストレージにアップロードされます。
必要なファイルがローカルに作成されたので、それらを参照する新しい DOE ジョブをプラットフォーム上で構成できます。 から 新しい求人ページ、ジョブ タイプを DOE に変更し、次のようにジョブを構成します。

  1. 入力ファイル: 構成のアップロード
  2. 並列設定: 「実行定義ファイルを使用する」を選択し、input.csv をアップロードします。
  3. テンプレート: run.sh.template をアップロードします。 テンプレート名として run.sh を使用します
  4. ソフトウェア: converge 2.3.X を選択し、コマンドを run.sh に設定します。
  5. ハードウェア: Onyx、スロットあたり 8 コア、2 タスク スロット

ジョブを送信します。 ジョブが完了すると、すべての出力ファイルが s3://my-simulation-data/output/hsdi/ ディレクトリと s3://my-simulation-data/output/pintle/ ディレクトリに表示されます。
この DOE セットアップでは、補助セットアップ データ (例: AWS 設定ファイル、csv ファイル、実行スクリプト テンプレート) が暗号化され、Rescale が管理するストレージに保存されます。 ジョブの本質である入力ファイルと出力ファイルは、ユーザー指定のバケットに保存されます。
上記のセットアップを構成するには、多少の手動作業が必要であることは認識しています。 私たちのロードマップの XNUMX つは、お客様が提供するストレージ アカウントとの統合を強化することです。 詳細については続報をお待ちください!

類似の投稿