EFS vs FSx for Lustre 비교 분석 (실제 테스트 결과 포함)
BLAST 파일 시스템 성능 비교:비교 테스트
1. 테스트 환경 구성
1.1 인프라 설정
EC2 인스턴스
스토리지
테스트Scratch 일자:2, 2026-01-06
테스트 환경: AWS ap-northeast-1.2 TB (서울)
2. 실제 테스트 결과 (2026-01-06)
테스트 환경
인프라 구성 (ap-northeast-2)
| 구성요소 | 상세 |
|---|---|
| EC2 인스턴스 | r6i.24xlarge / r7i.24xlarge (96 vCPU, 768 GB RAM) |
| EFS | fs-0d2d032d1cca25f3f, Elastic 처리량 모드 |
| FSx Lustre | fs-0d75b85b2d9519a04, Scratch 2, 1.2 TB, S3 통합 |
| BLAST 데이터베이스 | core_nt (NCBI NT Core, ~254 GB) |
| AWS Batch | 64 vCPU, 512 GB Memory Job Definition |
쿼리 파일
| 파일명 | 시퀀스 수 | 크기 |
|---|---|---|
| query.fasta | 500 | 77 KB |
| query_5000.fasta | 5,000 | 755 KB |
| query_50000.fasta | 50,000 | 7.4 MB |
| query_500000.fasta | 500,000 | 74 MB |
3. EFS 테스트 결과
BLAST 성능 측정 (EFS Elastic 처리량 모드)
| 시퀀스 수 | BLAST 실행 시간 | 총 작업 시간 | 시퀀스당 처리 시간 |
|---|---|---|---|
| 500 | 209초 | 224초 | 0.42초 |
| 5,000 | 213초 | 238초 | 0.043초 |
| 50,000 | 336초 | 352초 | 0.0067초 |
| 500,000 | ~1,490초 | ~1,507초 | 0.003초 |
주요 관찰 사항
- 데이터베이스 로딩 오버헤드: ~200초 (BLAST 시작 시 데이터베이스 초기 로딩)
- 시퀀스 증가에 따른 선형 확장: 1,000배 시퀀스 증가 시 약 7배 처리 시간 증가
- 병렬 처리 효율: 64 vCPU에서 높은 CPU 활용률
EFS 비용 분석 (ap-northeast-2)
| 비용 항목 | 단가 | 계산 |
|---|---|---|
| 스토리지 (254 GB) | $0.36/GB-month | $91.56/month |
| 읽기 처리량 (Elastic) | $0.043/GB | BLAST 작업당 ~$17 |
| 일일 테스트 비용 | ~$70+ (처리량) |
4. FSx for Lustre 테스트 상태결과
인프라 문제구성
/mnt/lustreHydration 테스트
실제문제점 오류 로그:발견
/dev/nvme0n1p1 /mnt/lustre xfs ro,noatime,attr2,inode64,noquota 0 0
Host /mnt/lustre contents:
total 0
drwxr-xr-x 2 root root 6 Jan 6 02:43 .
drwxr-xr-x 1 root root 20 Jan 6 02:44 ..
NVMe 인스턴스 스토어가 FSx Lustre 마운트를 덮어씌워 디렉토리가 비어있음
FSx Lustre 예상 성능 (이론적)
AWS: FSx for LustreLustre의 S3 Data Repository는 "Lazy Loading" 방식으로 동작
Hydration 방법 테스트:
FSx BLAST 성능 측정
v11 테스트 (S3 Lazy Loading 영향 받음)
v13 테스트 (Full Hydration 후, 4개 작업 동시 실행)
FSx 성능 분석
예상과 다른 결과의 원인
처리량 공유 문제:
버스트 크레딧 소진:
v11 50,000 테스트가 빨랐던 이유:
FSx Lustre 처리량 상세 사양
FSx Lustre 비용 (ap-northeast-2)
| 비용 항목 | 단가 | 계산 |
|---|---|---|
| 스토리지 (1.2 TB) | $0.14/GB-month | $168/month |
| 처리량 | 스토리지에 포함 | $0 추가 비용 |
| S3 Data Repository | S3 표준 요금 | ~$6/month |
5. 비용 비교 분석
월간 비용 시나리오
시나리오 1: 간헐적 사용 (주 1-2회, 일일 1시간)
| 스토리지 | 월 스토리지 비용 | 월 처리량 비용 | 총 비용 |
|---|---|---|---|
| EFS Elastic | $91.56 | ~$280 (8회 |
~$371 |
| FSx Lustre | $168 | $0 | $168 |
시나리오 2: 집중 사용 (일일 수십 회)
| 스토리지 | 월 스토리지 비용 | 월 처리량 비용 | 총 비용 |
|---|---|---|---|
| EFS Elastic | $91.56 | ~$2,100+ | $2,191+ |
| FSx Lustre | $168 | $0 | $168 |
손익분기점 분석
- 일일 4회 이상 BLAST 실행 시: FSx Lustre가 더 경제적
- 주 1회 미만: EFS가 더 경제적 (스토리지 비용만 발생)
6. 최종 권장사항 (실제 테스트 계획결과 (벤치마크 스크립트)기반)
주요 발견사항
FSx Scratch 2는 BLAST 워크로드에 부적합:
#!/bin/bash다중 #작업 io_benchmark.sh시 MOUNT_POINTS=("/mnt/fsx"병목
EFS Elastic이 BLAST 워크로드에 적합:
EFS 추천 ✅ (BLAST 주요 패턴)
fio --name=seq-read \
--directory=$MOUNT \
--rw=read \
--bs=1M \
--size=50G \
--numjobs=16 \
--ioengine=libaio \
--iodepth=32 \
--runtime=300 \
--time_based \
--group_reporting \
--output=$MOUNT-seq-read.json \
--output-format=json
# 랜덤 읽기 (인덱스 접근)
fio --name=rand-read \
--directory=$MOUNT \
--rw=randread \
--bs=4K \
--size=10G \
--numjobs=16 \
--runtime=300 \
--time_based \
--group_reporting \
--output=$MOUNT-rand-read.json \
--output-format=json
done
BLAST 벤치마크워크로드)
#!/bin/bash
# blast_benchmark.sh
STORAGE=$1 # /mnt/fsx or /mnt/efs
THREADS=${2:-32}
RESULTS_DIR="results_$(basename $STORAGE)_$(date +%Y%m%d_%H%M%S)"
mkdir -p $RESULTS_DIR
# DB 복사 (캐시 영향 제거)
echo "Copying database to $STORAGE..."
time rsync -av --progress /data/blast_db/ $STORAGE/blast_db/
# 캐시 클리어
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
# 테스트 1: 소형 쿼리 (빠른 반복)
echo "Test 1: Small queries"
for i in {1..10}; do
/usr/bin/time -v blastn \
-db $STORAGE/blast_db/nt \
-query small_query.fasta \
-num_threads $THREADS \
-out $RESULTS_DIR/small_$i.txt \
2>> $RESULTS_DIR/small_timing.log
done
# 테스트 2: 중형 쿼리
echo "Test 2: Medium queries"
/usr/bin/time -v blastn \
-db $STORAGE/blast_db/nt \
-query sample_queries.fasta \
-num_threads $THREADS \
-out $RESULTS_DIR/medium.txt \
-outfmt "6 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore" \
2> $RESULTS_DIR/medium_timing.log
의사결정 기준
결과:
최종 권장사항
FSx for Lustre 추천 (대부분의 BLAST 워크로드)
장점:
권장 사용 사례:
EFS 추천 (간헐적 사용)
장점:
- 탄력적
비용처리량:사용한워크로드에만큼만따라지불자동 확장
권장 사용 사례:
월 10회 미만모든 BLAST실행워크로드 (소규모~대규모)소규모다중데이터베이스사용자 동시 접근 환경
FSx for Lustre 고려 시 (<50조건부)
FSx가 적합할 수 있는 경우:
FSx 성능 개선을 위한 권장사항:
비용 대비 성능 최종 비교
7. 실제 비용 분석 (2026-01-06~07)
테스트 기간 발생 비용
작업당 비용 분석
EFS 테스트 비용
*EFS 처리량: 254 GB × $0.043/GB = $10.93/작업
FSx 테스트 비용 (v13)
총 소유 비용 (TCO) 비교 - 500,000 시퀀스 기준
*연구원 시간 비용 $50/시간 가정
월간 비용 예측 (일일 1회 500K 시퀀스)
ROI 요약
8. 개선 권장 사항
FSxBLAST Lustre 인프라 개선
/mnt/lustre/fsx/blast-db비용워크로드 최적화
FSxEFSScratch 2Elastic 사용:Persistent처리량대비자동50%확장으로이상최적비용 절감성능- Spot 인스턴스: EC2 비용 60-80% 절감
데이터 계층화: 자주 사용하지 않는 DB는 S3에 보관
성능 최적화
FSx 사용 시 권장 구성 (필요시)
테스트 일자: 2026-01-06~07 테스트 환경: AWS ap-northeast-2 (서울) 분석자: Claude Code