BLOG

Luster용 Amazon FSx 신규 기능 업데이트… Amazon S3간의 데이터 이동을 쉽고 빠르게
작성일: 2020-02-05

Luster용 Amazon FSx를 소개합니다.

Luster 용 Amazon FSx는 머신 러닝, 고성능 컴퓨팅, 비디오 처리, 재무 모델링, 전자 설계 자동화 및 분석과 같은 워크로드에 최적화된 고성능 파일 시스템입니다. Amazon FSx는 기본적으로 Amazon S3와 함께 작동하므로 고성능 파일 시스템으로 클라우드 데이터 세트를 쉽게 처리할 수 ​​있습니다. S3 버킷에 연결되면 FSx for Luster 파일 시스템은 S3 객체를 파일로 투명하게 표시하고 결과를 S3에 다시 쓸 수 있습니다.

 

고객은 종종 파일 시스템의 중요한 데이터에 대한 액세스를 제어하고, 기호 연결과 같은 특수 파일을 처리하며, Amazon S3와 같은 장기 저장소에 데이터를 백업 및 복원할 때 이러한 제어 및 특수 파일을 유지 관리할 수 있는 기능을 필요로 합니다. Amazon FSx는 hsm_archive와 같은 파일 시스템 명령을 제공하여 Amazon FSx에서 S3로 새 파일 또는 변경된 파일을 내보내지만 파일 권한을 복사하지는 않으며 전송을 모니터링하거나 취소할 수도 없습니다.

 

오늘 메가존 테크블로그에서는 Amazon FSx에서 S3로 파일을 쉽게 내보낼 수 있는 신규 AWS API, Data Repository Tasks API (application programming interface) 기능을 소개하고자 합니다. 새 API를 사용하여 S3에 새 파일 또는 변경된 파일 쓰기를 시작하고 모니터링 및 취소를 할 수 있습니다. AWS 네이티브 API를 사용하여 Lambda 기반 서버리스 애플리케이션과 같은 클라우드 기본 워크 플로우에서 데이터 내보내기 작업을 쉽게 조정할 수 있습니다.

 

해당 API를 사용하면 파일 데이터 및 파일 권한 전송 외에도 기호 연결, 파일 소유권 메타 데이터 및 파일 타임 스탬프를 S3로 전송할 수 있습니다. API는 내용이나 권한이 변경된 파일과 디렉토리만 복사함으로써 전송 시간을 최소화합니다. 파일 권한 및 기타 파일 메타 데이터는 AWS DataSync 및 AWS Storage Gateway에서 사용하는 것과 동일한 형식으로 S3에 저장됩니다. 이는 AWS에서 파일과 데이터를 관리할 수 있는 일관된 메커니즘을 제공합니다.

 

S3가 지원하는 Amazon FSx for Luster 파일 시스템을 생성하면 Amazon FSx의 파일은 S3에 저장된 파일 권한, 소유권 및 타임 스탬프를 가정합니다. 또한 FSx는 S3에서 파일 메타 데이터를 가져오는 속도를 4배로 높였으므로 S3 지원 FSx 파일 시스템을 최대 4배 빠르게 실행할 수 있습니다.

 

Amazon FSx for Luster 및 Data Repository Task API의 향상된 기능 덕분에 광범위한 워크로드 세트에 대해 S3 데이터를 빠른 속도로 보다 쉽고 경제적으로 처리 할 수 ​​있습니다. 예를 들면 스트리밍과 같은 많은 작은 파일들을 처리해야 하는 워크로드, 금융 서비스 산업의 데이터 및 금융 거래, 게놈 산업의 DNA 시퀀싱 파일과 같은 민감한 데이터에 대한 액세스 제어가 필요한 워크로드 같은 경우 말이죠.

 

 

FSx for Luster에서 POSIX 메타 데이터/데이터 리포지토리 작업 시작하기

아래 예제에서는 Amazon FSx for Luster를 사용하여 권한에 민감한 유전 체학 워크로드를 실행해보도록 하겠습니다. 이 프로세스에는 데이터 세트가 포함된 S3 버킷에 연결된 Lustre for Luster 파일 시스템을 스핀 업하고 파일 시스템 내 데이터 세트를 분석한 다음 결과를 S3에 다시 쓰는 과정이 포함됩니다.

S3 버킷 s3://dataset-01에는 뉴클레오티드 서열 데이터를 포함하는 수백 개의 압축 FASTQ 객체가 포함되어 있으며, AWS DataSync를 통해 온 프레미스 데이터 센터에서 S3로 업로드 되었습니다. 파일의 POSIX 메타 데이터는 AWS DataSync, AWS Storage Gateway 및 Lustre 용 Amazon FSx에 의해 업로드 될 때 S3 객체에 유지됩니다.

 

 

이제 이 S3 버킷에 연결된 Amazon FSx for Luster 파일 시스템을 생성해보도록 하겠습니다. Amazon FSx는 S3 버킷의 객체를 파일로 가져오고 파일에 처음 액세스할 때 S3에서 파일 내용을 lazy-load합니다. ImportPath필드를 사용하여 S3 버킷에 임의의 경로를 지정할 수 있으며 Lustre용 Amazon FSx는 해당 경로의 모든 파일을 병렬 방식으로 반복해서 가져옵니다.

$ aws fsx createfilesystem \

  filesystemtype LUSTRE \

  storagecapacity 3600 \

  subnetids subnet0a2b78705852896b8 \

  lustreconfiguration ImportPath=s3://dataset01,ExportPath=s3://dataset01 

 

{

    “FileSystem”: {

        “FileSystemId”: “fs-00a70d77ae2252abc”,

        “Lifecycle”: “CREATING”,

        “DNSName”: “fs-00a70d77ae2252abc.fsx.us-east-1.amazonaws.com”,

               

    }

}

파일 시스템을 마운트하면 ( 여기의 지시 사항 참조 ) 모든 POSIX 메타 데이터가 온 프레미스에 보존된 것을 볼 수 있습니다. POSIX 권한, UID 및 GID가 유지됩니다. 이것은 파일, 디렉토리 및 심볼릭 링크에 해당됩니다. 파일 시스템 관리자는 POSIX 권한으로 지정된 사용자 / 그룹만 중요한 데이터에 액세스 할 수 있기에 안심하셔도 좋습니다.

$ ls lhR

.:

total 73K

drww—- 2 algo1 algo1 33K Dec 17 23:04 output

dr——– 2 algo1 algo1 41K Dec 17 22:49 sequences

 

./output:

total 0

 

./sequences:

total 19K

r——– 1 scrub algo1 1.0G Dec 17 20:36 G01711dd8cec7a4b2c90107585cc0dd9e8.fastq.gz

r——– 1 scrub algo1 1.0G Dec 17 20:35 G0187e29939a86427e989b09e768bd9ca8.fastq.gz

r——– 1 scrub algo1 1.0G Dec 17 20:36 G06f390113f3a84ebc88a53cb0ebc93c5b.fastq.gz

r——– 1 scrub algo1 1.0G Dec 17 20:36 G0712d1f44dd4b41be95e5930311011131.fastq.gz

S3 객체를 Luster 파일 시스템으로 가져오게 되면, 이제는 특정 파일을 읽기만해도 필요한 파일을 lazy-load 할 수 있습니다. 파일이 lazy-load된 후에는 파일 내용이 S3에서 Amazon FSx for Luster 파일 시스템으로 완전히 복사되며 액세스 시 지연 시간이 크게 단축됩니다. 이로써 데이터에 빠르게 액세스 할 수 있으므로 고도의 병렬 작업을 수행하여 주요한 통찰력을 얻을 수 있습니다. 이 워크로드는 다음 파일을 생성했습니다.

$ ls lhR output

output:

total 512G

rw——- 1 algo1 algo1 512M Dec 18 15:47 results_00.csv

rw——- 1 algo1 algo1 512M Dec 18 15:46 results_01.csv

rw——- 1 algo1 algo1 512M Dec 18 15:47 results_02.csv

rw——- 1 algo1 algo1 512M Dec 18 15:47 results_03.csv

이러한 파일을 S3 버킷으로 다시 내보내려면 데이터 리포지토리 작업을 사용하면 됩니다. 데이터 리포지토리 작업은 Amazon FSx for Luster 파일 시스템과 S3 버킷 간의 대량 작업을 나타내며, 그 중 하나는 변경된 파일 시스템 내용을 연결된 S3 버킷으로 다시 내보내는 작업입니다. create-data-repository-task아래 API를 사용하여 output파일 시스템의 디렉토리만 내보내는 데이터 리포지토리 작업을 만들 수 있습니다.

$ aws fsx createdatarepositorytask \

  filesystemid fs00a70d77ae2252aba \

  type EXPORT_TO_REPOSITORY \

  paths output

  report Enabled=true,Scope=FAILED_FILES_ONLY,Format=REPORT_CSV_20191124,Path=s3://dataset01/reports

 

{

    “DataRepositoryTask”: {

        “TaskId”: “task-08048701430a981b7”,

        “Lifecycle”: “PENDING”,

        “Type”: “EXPORT_TO_REPOSITORY”,

        “CreationTime”: 1576685114.413,

        “ResourceARN”: “arn:aws:fsx:us-east-1:123456789012:task/task-08048701430a981b7”,

        “Tags”: [],

        “FileSystemId”: “fs-00a70d77ae2252abc”,

        “Paths”: [“output”],

        “Report”: {

            “Enabled”: true,

            “Path”: “s3://dataset-01/reports”,

            “Format”: “REPORT_CSV_20191124”,

            “Scope”: “FAILED_FILES_ONLY”

        }

    }

}

Lambda 기반 서버리스 애플리케이션을 포함한 모든 AWS 워크 플로우에서 이 API를 호출 할 수 있으므로 클라우드 네이티브 워크 플로우에서 FSx와 S3 간의 데이터 전송 작업을 조정할 수 있습니다.

데이터 리포지토리 작업의 상태를 확인하기 위해 describe-data-repository-task API를 사용하여 설명할 수 있습니다. 이 경우, 데이터 리포지토리 작업은 이미 결과를 S3으로 다시 내보내는 데 성공했습니다.

$ aws fsx describedatarepositorytasks

 

{

    “DataRepositoryTasks”: [

        {

            “TaskId”: “task-08048701430a981b7”,

            “Lifecycle”: “SUCCEEDED”,

            “Type”: “EXPORT_TO_REPOSITORY”,

            “CreationTime”: 1576685114.413,

            “StartTime”: 1576685127.896,

            “ResourceARN”: “arn:aws:fsx:us-east-1:123456789012:task/task-08048701430a981b7”,

            “Tags”: [],

            “FileSystemId”: “fs-00a70d77ae2252abc”,

            “Paths”: [“output”],

            “Status”: {

                “TotalCount”: 1000,

                “SucceededCount”: 1000,

                “FailedCount”: 0,

                “LastUpdatedTime”: 1576685795.701

            },

            “EndTime”: 1576685795.701,

            “Report”: {

                “Enabled”: true,

                “Path”: “s3://dataset-01/reports”,

                “Format”: “REPORT_CSV_20191124”,

                “Scope”: “FAILED_FILES_ONLY”

            }

        }

    ]

}   

Luster용 Amazon FSx는 파일을 S3으로 다시 내보낼 때 POSIX 권한을 유지합니다. 즉, 이러한 객체를 다른 Amazon FSx for Luster 파일 시스템 또는 AWS Data Sync, 또는 AWS Storage 게이트웨이를 사용하려는 경우 액세스 제어가 유지됩니다.

 

위에서 설명한 바와 같이 Amazon FSx for Luster는 클라우드 데이터 세트를 Amazon S3로 또는 Amazon S3에서 원활하게 이동하도록 합니다. 고객은 Amazon FSx API를 사용하여 S3 버킷에 연결된 파일 시스템을 생성하고 워크로드를 실행 한 후 데이터를 S3 버킷으로 다시 내보낼 수 있습니다.

 

마무리하기

Luster 파일 시스템에 대한 Amazon FSx를 정리하려면 다음 명령을 실행하시면 됩니다.

$ aws fsx deletefilesystem \

  filesystemid fs00a70d77ae2252abc

이렇게 하면 지금까지 생성된 모든 예제 리소스에 대한 추가 요금이 발생하지 않습니다.

 

글을 마치며…

Lustre와 Amazon S3의 기본 통합을 위한 Amazon FSx를 통해 고객은 S3에 저장된 데이터 세트를 쉽고 빠르게 처리 할 수 ​​있습니다. 여기에 요약된 개선 사항은 다음을 제공하여 S3에 저장된 데이터 세트 처리를 더욱 단순화합니다.

  1. Amazon FSx for Luster 파일 시스템과 S3간에 POSIX 메타 데이터를 전송하는 기능으로 Amazon FSx와 S3 간의 POSIX 권한, 소유권 및 타임 스탬프를 유지할 수 있습니다. 자세한 내용은 FSx for Luster 사용 설명서를 참조하십시오.
  2. 새로운 API 제품군은 Amazon FSx가 Luster 파일 시스템과 이와 연결된 S3 버킷 간의 데이터 전송을 시작, 모니터링 및 취소하는 관리 기능을 제공합니다. 자세한 내용은 FSx for Luster API 참조 설명서를 참조하십시오.
  3. S3에서 Luster 파일을 위한 Amazon FSx 시스템으로 파일 메타 데이터를 가져 오는 속도의 4 배로 증가시킬 수 있어 S3 지원 Amazon FSx 파일 시스템을 최대 4 배 빠르게 시작할 수 있습니다.

 

 


 

원문 URL: https://aws.amazon.com/ko/blogs/storage/new-enhancements-for-moving-data-between-amazon-fsx-for-lustre-and-amazon-s3/

** 메가존 클라우드 TechBlog는 AWS BLOG 영문 게재 글 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.