나만의 스토리지 가져오기(1부)


Rescale 플랫폼은 주요 퍼블릭 클라우드 공급업체의 스토리지 제품을 기반으로 엔드투엔드 파일 관리를 제공합니다. 여기에는 최적화된 클라이언트 측 전송 도구와 전송 중 및 저장 중 암호화가 포함됩니다. 이 모델에서 Rescale은 객체 저장소 레이아웃과 암호화 키 관리를 제어합니다. 해독된 파일 콘텐츠를 검색하려면 사용자는 Rescale 도구를 사용해야 합니다. 처음부터 시작하여 완전히 관리되는 보안 솔루션을 찾는 경우 이것이 편리할 수 있지만, 발생하는 한 가지 시나리오는 이미 클라우드에 업로드된 입력 데이터로 플랫폼을 사용하는 방법입니다. 우리가 볼 수 있는 또 다른 사용 사례는 고객이 제어하는 ​​저장 위치에 있는 시뮬레이션 출력 파일에서 직접 작동하는 기존 데이터 파이프라인과 통합하는 것입니다. 비용 및 성능상의 이유로 컴퓨팅을 스토리지에 최대한 가깝게 유지하는 것이 중요합니다. Rescale 플랫폼의 이점 중 하나는 다양한 클라우드 제공업체를 지원하고 귀하가 이미 사용하고 있는 모든 클라우드 스토리지 계정에 컴퓨팅을 제공할 수 있다는 것입니다.
이 게시물에서는 고객이 기본 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/*" ] }, { "Effect": "Allow" , "작업": [ "s3:*" ], "리소스": [ "arn:aws:s3:::my-simulation-data/output", "arn:aws:s3:::my-simulation-data /출력/*" ] } ] }

이를 수행하는 또 다른 방법은 교차 계정 액세스를 설정하는 것입니다(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 내보내기 AWS_CONFIG_FILE=config aws s3 cp ${s3_input} . unzip *.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. 소프트웨어: Convergence 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 관리 스토리지에 저장됩니다. 작업의 핵심인 입력 및 출력 파일은 사용자가 지정한 버킷에 저장됩니다.
위의 설정을 구성하려면 약간의 수동 작업이 필요하다는 것을 알고 있습니다. 우리의 로드맵 중 하나는 고객이 제공한 스토리지 계정과의 더 나은 통합을 제공하는 것입니다. 자세한 내용을 계속 지켜봐 주시기 바랍니다!

비슷한 게시물