AWS 기술 블로그
AWS가 제공하는 완전 관리형 병렬 파일시스템, Amazon FSx for Lustre – 1
이전 글에서는 병렬 파일시스템의 기본 개념과 특징, 그리고 대표적인 병렬 파일시스템인 Lustre에 대해 살펴보았습니다.
이번에는 AWS가 제공하는 완전 관리형 병렬 파일시스템 서비스인 Amazon FSx for Lustre를 알아보겠습니다.
What is Amazon FSx for Lustre?
고성능 컴퓨팅(HPC) 환경에서는 대량의 데이터를 신속하게 처리해야 하며, 이를 위해 병렬 액세스와 낮은 지연 시간이 필수적입니다. AWS는 다양한 스토리지 서비스를 제공하고 있지만, 그 중에서도 병렬 액세스와 낮은 지연 시간을 통해 고성능을 제공하도록 설계된 스케일 아웃 방식의 대표적인 스토리지 서비스가 바로 Amazon FSx for Lustre입니다.
Amazon FSx for Lustre는 고성능 병렬 파일시스템을 완전 관리형으로 제공하는 서비스로, 클라우드 서비스 제공업체(Cloud Service Provider) 중 최초로 AWS에서 2018년도에 출시되었습니다. 이 서비스는 복잡한 병렬 파일시스템에 대한 전문 지식이 없어도 누구나 손쉽게 고성능 스토리지 시스템을 사용할 수 있도록 설계되었습니다. Amazon FSx for Lustre의 궁극적인 목표는 사용자들이 별도의 복잡한 설정 및 관리 없이도 고성능 스토리지를 활용할 수 있도록 지원하는 것입니다. 이 서비스의 특징과 장점을 자세히 살펴보면 다음과 같습니다.
먼저, Amazon FSx for Lustre의 가장 큰 특징은 탁월한 성능입니다. 1밀리 초 미만의 지연 시간, 최대 수백 GBps의 처리량 (throughput, 스루풋), 수백만 IOPS까지 지원하는 뛰어난 성능을 제공합니다. 특히 수천 개의 컴퓨팅 인스턴스에서 동일한 파일이나 디렉터리에 대한 동시 접근을 지원하며, 이는 대규모 병렬 처리가 필요한 고성능 컴퓨팅 환경에서 매우 중요한 특징입니다.
Amazon FSx for Lustre의 아키텍처는 확장성과 유연성을 극대화하도록 설계되었습니다. 스케일아웃 아키텍처를 통해 파일시스템의 크기에 따라 선형적으로 성능이 증가하며, 여러 파일 서버와 디스크에 걸쳐 수평적으로 확장됩니다. 이러한 구조는 기존 파일시스템에서 흔히 발생하는 병목 현상을 효과적으로 제거합니다. 또한 스토리지 용량과 처리량을 필요에 따라 동적으로 조정할 수 있어, 변화하는 워크로드 요구사항에 유연하게 대응할 수 있습니다.
성능 최적화를 위한 다양한 기술적 특징도 주목할 만합니다. 각 파일 서버는 고속 인메모리 캐시를 사용하여 자주 접근하는 데이터의 성능을 향상시키며, HDD 기반 파일시스템의 경우 SSD 기반 읽기 캐시를 추가로 구성하여 성능을 더욱 개선할 수 있습니다. 이러한 다층적 캐싱 메커니즘은 디스크 접근을 최소화하여 지연 시간을 줄이고 전체 처리량을 향상시킵니다. 특히 최근에는 메타데이터 IOPS를 스토리지 용량과 독립적으로 프로비저닝할 수 있게 되어, 메타데이터 집약적인 워크로드의 성능을 더욱 효과적으로 최적화할 수 있게 되었습니다.
Amazon S3와의 긴밀한 통합은 Amazon FSx for Lustre의 특별한 장점입니다. FSx for Lustre는 S3와의 데이터 통합에 있어 효율적인 데이터 로딩 전략을 제공합니다. 특히 Lazy Load와 Pre Load 두 가지 주요 로딩 방식을 통해 데이터 접근을 최적화할 수 있습니다. Lazy Load 방식에서는 파일을 처음 읽을 때만 S3에서 필요한 데이터를 자동으로 로딩(loading)합니다. 한번 로드된 파일은 FSx for Lustre 파일시스템에 완전히 복사되어 저장되며, 이후 동일한 파일에 접근할 때는 지연 시간이 크게 단축됩니다. 이를 통해 고도의 병렬 작업을 수행하여 빠른 데이터 처리가 가능합니다. Pre Load 방식에서는 여러 파일을 동시에 미리 로딩할 수 있으며, Amazon FSx for Lustre는 S3 데이터 리포지토리(repository)에서 병렬로 데이터를 로딩합니다. 이는 대규모 데이터셋을 처리하기 전에 미리 데이터를 준비함으로써 전체적인 처리 시간을 단축할 수 있게 해줍니다. 이러한 데이터 로딩 전략들은 FSx for Lustre가 S3와 기본적으로 통합되어 있어 가능한 것으로, 자동 가져오기 및 내보내기를 통해 양방향으로 변경 사항을 동기화할 수 있습니다. 특히 한번 로딩된 데이터는 파일시스템에 캐시되어 있어 반복 작업 시 S3에서 재다운로드가 불필요하므로, 시간과 비용을 모두 절약할 수 있습니다.
Amazon FSx for Lustre는 데이터 보호와 가용성 측면에서 포괄적인 기능을 제공합니다. 데이터 보호 측면에서, Amazon FSx for Lustre는 자동 일일 백업과 사용자가 직접 시작하는 백업을 모두 지원합니다. 모든 백업은 증분식으로 수행되어, 마지막 백업 이후 변경된 블록 수준의 데이터만을 저장함으로써 비용을 효율적으로 관리할 수 있습니다. 이러한 백업은 99.999999999%의 뛰어난 내구성을 제공하는 Amazon S3에 저장되어 데이터의 안전한 보호를 보장합니다. 보안 측면에서는 저장 및 전송 중인 데이터에 대한 암호화를 지원합니다. AWS Key Management Service에서 관리되는 키를 사용하여 AES-256 블록 암호화 방식으로 데이터는 자동으로 암호화되며, 전송 중 암호화를 지원하는 Amazon EC2 인스턴스에서 파일시스템에 액세스할 경우 전송 중인 데이터도 자동으로 암호화됩니다. 복원 기능과 관련하여, AWS Management Console에서 버튼 하나로 특정 시점의 백업 복사본을 복원할 수 있습니다. 이러한 종합적인 데이터 보호 및 복구 기능을 통해 Amazon FSx for Lustre는 엔터프라이즈급 가용성과 안정성을 제공하며, 비즈니스 연속성과 규정 준수 요구사항을 효과적으로 충족시킬 수 있습니다.
관리 측면에서 Amazon FSx for Lustre는 완전 관리형 서비스의 장점을 최대한 활용합니다. 복잡한 Lustre 파일시스템의 설정, 구성, 관리를 AWS가 대신 처리해주므로, 사용자는 인프라 관리보다는 실제 워크로드에 집중할 수 있습니다. POSIX 호환성을 제공하여 기존 Linux 기반 애플리케이션을 수정 없이 그대로 사용할 수 있으며, AWS Management Console, CLI, API를 통해 손쉽게 파일시스템을 관리할 수 있습니다.
비용 최적화 측면에서도 Amazon FSx for Lustre는 효율적인 옵션을 제공합니다. 사용한 만큼만 비용을 지불하는 종량제 가격 모델을 채택하고 있으며, 스크래치(scratch) 파일시스템과 퍼시스턴트(persistent) 파일시스템 중 워크로드 특성에 맞는 옵션을 선택할 수 있습니다. 또한 스루풋 용량을 동적으로 조정할 수 있어, 비용을 최적화하면서도 필요한 성능을 확보할 수 있습니다.
이러한 특징들은 Amazon FSx for Lustre를 다양한 고성능 워크로드에 이상적인 선택으로 만듭니다. 머신 러닝의 분산 트레이닝, 고성능 컴퓨팅, 빅데이터 분석, 미디어 처리, 반도체 설계 자동화(EDA), 금융 모델링 등 고성능 스토리지가 필요한 다양한 워크로드에서 탁월한 성능을 발휘합니다. 특히 대규모 데이터셋을 처리하면서도 비용 효율성을 유지해야 하는 현대적인 클라우드 워크로드에 매우 적합한 솔루션이라고 할 수 있습니다.
또한 Amazon FSx for Lustre는 지속적으로 새로운 기능과 성능 개선을 제공하고 있습니다. 최근에는 GPU Direct Storage 지원, 메타데이터 성능 개선 등이 추가되어 더욱 다양한 워크로드를 효율적으로 지원할 수 있게 되었습니다. 이러한 지속적인 혁신은 Amazon FSx for Lustre가 앞으로도 고성능 파일시스템 시장에서 선도적인 위치를 유지할 수 있게 할 것입니다.
이후부터는 앞서 언급된 중요한 특징들을 포함하여, Amazon FSx for Lustre를 사용하기 위해 필수적으로 이해해야 하는 내용들에 대해 보다 상세히 알아보도록 하겠습니다.
Amazon FSx for Lustre의 아키텍처
그림1은 Amazon FSx for Lustre의 전체 아키텍처를 보여주고 있습니다. Amazon FSx for Lustre는 완전 관리형 서비스이기 때문에, 이 아키텍처에서는 지난 블로그에서 언급한 Lustre 아키텍처에서의 OSS(Object Storage Sever)와 OST(Object Storage Target) 관련 부분만 표현되어 있습니다. 그림에서 보이는 것처럼 Amazon FSx for Lustre 파일시스템은 클라이언트와 통신하는 파일 서버들(OSSs)과, 데이터를 저장하는 각 파일 서버에 연결된 디스크들(OSTs)로 구성됩니다.
기존의 스케일업 방식의 파일시스템과 달리, 스케일 아웃 기반의 Lustre 파일시스템은 그림1과 같이 여러 대의 파일 서버에 기반을 두고 있습니다. 여러 개의 디스크와 여러 개의 서버가 함께 연결될수록 성능은 향상됩니다. 사용 중 용량 증가가 가능하기 때문에, 처음에는 파일시스템을 작게 시작하고 상황에 따라 용량을 동적으로 확장 시킬 수 있습니다. Amazon FSx for Lustre는 완전 관리형 서비스이기 때문에 스토리지 서버 개수 및 디스크 용량이 증가하면, 자동으로 리밸런싱 작업이 작동하여 데이터가 분산 저장됩니다. 관련된 내용은 그림4에서 다시 확인할 수 있습니다.
파일 서버는 데이터 처리 성능을 최적화하기 위해 여러 단계의 캐싱 시스템을 활용합니다. 모든 파일 서버는 자주 접근하는 데이터를 고속으로 처리하기 위해 인메모리 캐시를 사용하며, HDD 기반 파일시스템의 경우 추가적인 성능 향상을 위해 SSD 기반의 읽기 캐시를 구성할 수 있습니다.
클라이언트가 인메모리 캐시나 SSD 캐시에 저장된 데이터에 접근할 때는 디스크 접근이 필요하지 않아 지연 시간이 감소하고 전체 처리량이 증가하게 됩니다. 이러한 경우 파일시스템의 성능은 네트워크 처리량에 의해서만 결정됩니다. 반면, 새로운 데이터를 쓰거나 캐시에 없는 데이터를 읽어야 하는 경우에는 상황이 달라집니다. 이때는 파일시스템과 클라이언트 간의 데이터 전송 속도인 네트워크 처리량과, 스토리지 디스크에서 데이터를 읽고 쓰는 속도인 디스크 처리량 중에서 더 낮은 값이 전체 파일시스템의 성능을 결정하게 됩니다. 일반적으로 디스크 처리량이 네트워크 처리량보다 낮은 값을 갖습니다.
HDD Lustre 파일시스템을 SSD 캐시와 함께 프로비저닝할 때, Amazon FSx Lustre는 파일시스템의 HDD 저장 용량의 20%에 해당하는 크기로 SSD 캐시를 자동 생성합니다. 이를 통해 자주 접근하는 파일에 대해 밀리 초 미만의 지연 시간과 더 높은 IOPS를 제공할 수 있습니다.

그림 1. Amazon FSx for Lustre의 아키텍처
Amazon FSx for Lustre의 프로비저닝
Amazon FSx for Lustre를 구성하기 위해 콘솔 화면에 접근하면, 가장 먼저 선택해야 하는 것이 바로 Lustre의 디플로이먼트(deployment) 옵션입니다. 앞서 언급한대로, Amazon FSx for Lustre는1) 퍼시스턴트 및 2) 스크래치 라는 두가지 디플로이먼트 모드를 제공합니다. 즉, 비용 및 데이터 저장 요건에 따라 사용자에게 선택할 수 있는 2가지 파일시스템 디플로이먼트 모드를 제공한다는 의미입니다.
퍼시스턴트 모드는 Amazon FSx for Lustre 서비스를 장기 스토리지로 사용하고자 할 때 적합한 모드입니다. 이를 위해 서비스에 대한 고가용성이 보장되며, 저장되는 데이터는 자동적으로 같은 AZ내에 복제됩니다. 스크래치 모드에 비해 더 높은 가용성과 내구성을 제공하기 때문에 상대적으로 비용이 높습니다. 퍼시스턴트 모드는 다시 최신 퍼시스턴트 배포 유형이면서 최고 수준의 IOPS 및 지연시간에 민감한 워크로드에 적합한 퍼시스턴트2 배포 유형과, 지연시간에 상대적으로 민감하지 않은 워크로드에 적합한 퍼시스턴트1 유형으로 구분할 수 있습니다. AWS 리전(Region) 별로 지원하는 모드가 서로 다르기 때문에 다음의 링크를 확인하시기 바랍니다.
스크래치 모드는 Amazon FSx for Lustre 서비스를 단기 데이터 처리용으로 사용하고자 할 때 적합한 모드입니다. 데이터 복제나 서비스에 대한 자동 복구 기능이 없기 때문에, 데이터에 대한 장기 저장에는 적합하지 않은 옵션입니다. 대신 비용은 퍼시스턴트 모드 대비 저렴합니다.
디플로이먼트 옵션을 선택하였다면, 다음으로는 스토리지 스루풋 옵션을 선택할 수 있습니다. 퍼시스턴트2 모드는 SSD 디스크만 지원 가능하며, 그림2와 같이 125, 250, 500, 1000 MB/s/TiB 의 4가지 스루풋 옵션을 제공합니다. 퍼시스턴트1 모드는, SSD로 구성할 경우 50, 100, 200 MB/s/TiB의 3가지 스로풋 옵션을 제공하며, HDD로 구성할 경우 12 및 40 MB/s/TiB의 2가지 스루풋 옵션을 제공합니다. 스크래치 모드의 경우는 TiB당 200MB/s 의 스루풋을 제공합니다.

그림 2. 퍼시스턴트모드2에서 제공하는 4가지 스루풋
이미 앞서 언급한 대로 그림2에서 보는 바와 같이 파일시스템의 성능은 스토리지 용량에 비례합니다. 이는 Lustre의 속성이 Amazon FSx for Lustre에서도 동일하게 상속 되었음을 의미합니다. 따라서 사용자가 스토리지 용량과 스루풋 옵션을 선택한다면, 사용자의 최종적인 처리량이 결정됩니다. 단, Amazon FSx for Lustre에서 스토리지 용량 증설 단위는 임의로 설정이 불가능하며, 기본적으로 디스크 미디어의 특정 증설 단위에 따라 진행해야 합니다.

그림 3. AWS 콘솔에서 Amazon FSx for Lustre를 프로비저닝 하는 과정
예를 들어, 그림3에서 사용자는 퍼시스턴트 모드 및 1000 MB/s/TiB의 스루풋을 선택하였습니다. 스토리지 용량은 7.2 TiB로 선택함으로써, 사용자는 Amazon FSx for Lustre 사용 중 최대 7200 MB/s의 처리량을 확보할 수 있게 됩니다.
Amazon FSx for Lustre의 스토리지 레이아웃(layout)
이번에는 Amazon FSx for Lustre의 스토리지 레이아웃(layout)에 대해 알아보도록 하겠습니다. 그림4는 총 7.2 TiB의 Amazon FSx for Lustre를 구성한 후, ‘lfs df -h’ 명령어를 통해 확인한 스토리지 레이아웃입니다. Amazon FSx for Lustre는 그림4와 같이 하나 이상의 MDT와 여러 개의 OST로 구성됩니다. 각 OST는 파일시스템의 배포 유형에 따라 약 1~2 TiB 크기입니다. Amazon FSx for Lustre는 스토리지 용량과 처리량, IOPS 부하의 균형을 맞추기 위해 파일 데이터를 파일시스템을 구성하는 OST들에 분산시켜 저장합니다. 그림4에서도 6개의 OST에 데이터가 약 9~10% 정도로 균형 있게 분산되어 저장되어 있는 것을 확인할 수 있습니다. 참고로 MDT는 전체 OST 용량의 약 3%를 할당한다고 알려져 있습니다.

그림 4. Amazon FSx for Lustre의 실제 스토리지 레이아웃
맺음말
이 블로그에서는 AWS가 제공하는 완전 관리형 병렬 파일시스템인 Amazon FSx for Lustre에 대해 전반적으로 소개하였습니다. 요약해서 정리하자면, 대표적인 병렬 파일시스템인 Lustre를 기반으로 구현된 스토리지 서비스이기 때문에 매우 뛰어난 성능 제공을 제공합니다. 또한 완전 관리형 서비스이기 때문에 지난 블로그에서 언급 하였던, Lustre 기술의 복잡성 및 이로 인한 운영 및 유지보수와 같은 여러 제약 사항들을 극복할 수 있습니다.
다음 블로그에서는 Amazon FSx for Lustre를 사용하고자 한다면 꼭 알아 두어야 할 다양한 내용들에 대해 소개하도록 하겠습니다.