EBS 최적화 아키텍처 테스트 결과
AWS BLAST EBS 최적화 아키텍처 테스트 결과
테스트 날짜: 2026-01-02 리전: ap-northeast-2 (Seoul)
요약
EBS Snapshot 기반 아키텍처(r6i.24xlarge + EBS gp3)로 성공적으로 마이그레이션 테스트를 완료했습니다.
핵심 결과
| 항목 | EFS (기존) | EBS (신규) | 개선 |
|---|---|---|---|
| 50,000 시퀀스 | 5m 59s | 2m 51s | 52% 단축 |
| 500,000 시퀀스 | 25m 9s | 21m 49s | 13% 단축 |
| Job당 스토리지 비용 | $17.20 | $0.05 | 99.7% 절감 |
| 월간 예상 비용 | $2,268 | $162 | 93% 절감 |
아키텍처 비교
기존 아키텍처 (EFS 기반)
┌─────────────────────────────────────────────────────────────────────────────────┐
│ AWS Cloud (ap-northeast-2) │
│ │
│ ┌────────────────────────────────────────────────────────────────────────────┐ │
│ │ VPC │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────────────────────────────────────┐ │ │
│ │ │ Amazon │ │ AWS Batch │ │ │
│ │ │ S3 │ │ ┌─────────────────────────────────────┐ │ │ │
│ │ │ │ │ │ Compute Environment │ │ │ │
│ │ │ ┌─────────┐ │ │ │ (r6i.24xlarge) │ │ │ │
│ │ │ │ queries │◄├──────┼──┤ │ │ │ │
│ │ │ └─────────┘ │ │ │ ┌────────────────────────────────┐ │ │ │ │
│ │ │ ┌─────────┐ │ │ │ │ BLAST Container │ │ │ │ │
│ │ │ │ results │◄├──────┼──┤ │ (ncbi/blast:latest) │ │ │ │ │
│ │ │ └─────────┘ │ │ │ └────────────────────────────────┘ │ │ │ │
│ │ └─────────────┘ │ └──────────────────┬──────────────────┘ │ │ │
│ │ └─────────────────────┼────────────────────────┘ │ │
│ │ │ │ │
│ │ │ NFS Mount │ │
│ │ │ (네트워크 I/O) │ │
│ │ ▼ │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │ Amazon EFS │ │ │
│ │ │ (Elastic Throughput) │ │ │
│ │ │ │ │ │
│ │ │ /nt/core_nt (254 GB) │ │ │
│ │ │ 읽기 비용: $0.043/GB │ │ │
│ │ │ Job당 ~400GB 읽기 = $17.20 │ │ │
│ │ └─────────────────────────────────────────────┘ │ │
│ │ │ │
│ └────────────────────────────────────────────────────────────────────────────┘ │
│ │
│ 비용 문제: EFS Throughput이 전체 비용의 89% 차지 │
│ │
└─────────────────────────────────────────────────────────────────────────────────┘
신규 아키텍처 (EBS 기반) - 권장
┌─────────────────────────────────────────────────────────────────────────────────┐
│ AWS Cloud (ap-northeast-2) │
│ │
│ ┌────────────────────────────────────────────────────────────────────────────┐ │
│ │ VPC │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────────────────────────────────────┐ │ │
│ │ │ Amazon │ │ AWS Batch │ │ │
│ │ │ S3 │ │ ┌─────────────────────────────────────┐ │ │ │
│ │ │ │ │ │ Compute Environment │ │ │ │
│ │ │ ┌─────────┐ │ │ │ (r6i.24xlarge) │ │ │ │
│ │ │ │ queries │◄├──────┼──┤ 96 vCPU, 768 GB RAM │ │ │ │
│ │ │ └─────────┘ │ │ │ │ │ │ │
│ │ │ ┌─────────┐ │ │ │ ┌────────────────────────────────┐ │ │ │ │
│ │ │ │ results │◄├──────┼──┤ │ BLAST Container │ │ │ │ │
│ │ │ └─────────┘ │ │ │ │ Volume: /mnt/blastdb │ │ │ │ │
│ │ └─────────────┘ │ │ └────────────┬───────────────────┘ │ │ │ │
│ │ │ └───────────────┼─────────────────────┘ │ │ │
│ │ └──────────────────┼──────────────────────────┘ │ │
│ │ │ │ │
│ │ │ NVMe (로컬 I/O) │ │
│ │ │ 지연시간 ~1ms │ │
│ │ ▼ │ │
│ │ ┌───────────────────┐ ┌─────────────────────────────────────────┐ │ │
│ │ │ EBS Snapshot │ │ EBS gp3 Volume │ │ │
│ │ │ │───▶│ │ │ │
│ │ │ snap-0da0e59a... │ │ /mnt/blastdb/nt/core_nt (254 GB) │ │ │
│ │ │ $12.70/월 │ │ 16,000 IOPS │ │ │
│ │ │ │ │ 1,000 MB/s throughput │ │ │
│ │ └───────────────────┘ │ 추가 읽기 비용: $0 │ │ │
│ │ │ Job 완료 후 자동 삭제 │ │ │
│ │ └─────────────────────────────────────────┘ │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────────────────────┘ │
│ │
│ 장점: 읽기 비용 99.7% 절감, 성능 13-52% 향상 │
│ │
└─────────────────────────────────────────────────────────────────────────────────┘
생성된 AWS 리소스
EBS Snapshot
- Snapshot ID:
snap-0da0e59a29928ee10 - 크기: 300 GB (BLAST NT Core DB 254GB)
- 설명: BLAST NT Core Database - core_nt
Launch Templates
| 템플릿 | ID | 인스턴스 유형 | 스토리지 |
|---|---|---|---|
| blast-ebs-r6i-template | lt-022797b039e191875 | r6i.24xlarge | EBS gp3 (16K IOPS, 1000 MB/s) |
| blast-ebs-r6id-nvme-template | lt-09ff4ebeaf85069d3 | r6id.24xlarge | NVMe + EBS |
AWS Batch 리소스
| 리소스 | 이름 | 상태 |
|---|---|---|
| Compute Environment | blast-ebs-r6i-ce | VALID |
| Compute Environment | blast-ebs-r6id-nvme-ce | VALID |
| Job Queue | blast-ebs-r6i-queue | ENABLED |
| Job Queue | blast-ebs-r6id-nvme-queue | ENABLED |
| Job Definition | blast-ebs-job:2 | ACTIVE |
상세 테스트 결과
r6i.24xlarge + EBS gp3 테스트
| 테스트 | 시퀀스 수 | Total 시간 | BLAST 시간 | 결과 크기 | 상태 |
|---|---|---|---|---|---|
| blast-ebs-r6i-500 | 500 | 18m 19s* | 18m 4s* | 134 KB | SUCCESS |
| blast-ebs-r6i-5000 | 5,000 | 17m 51s* | 17m 36s* | 1.3 MB | SUCCESS |
| blast-ebs-r6i-50000 | 50,000 | 2m 51s | 2m 37s | 13.0 MB | SUCCESS |
| blast-ebs-r6i-500000 | 500,000 | 21m 49s | 21m 33s | 130.5 MB | SUCCESS |
*500과 5000 시퀀스 테스트는 동시 실행되어 리소스 경쟁 발생
r6id.24xlarge + NVMe 테스트
상태: 추가 구성 필요
이슈: User Data 스크립트에서 EBS → NVMe 복사(254GB)가 완료되기 전에 ECS 에이전트가 시작되어 Job이 실행되지 않음
해결 방안:
- 사전 구성된 AMI 생성 (권장)
- Container 내에서 데이터베이스 준비 대기 로직 추가
- EBS 직접 사용 (r6i 방식)
성능 비교: EFS vs EBS
순차 실행 비교 (정확한 비교)
| 시퀀스 수 | EFS 시간 | EBS 시간 | 개선율 |
|---|---|---|---|
| 50,000 | 5m 59s | 2m 51s | 52% 단축 |
| 500,000 | 25m 9s | 21m 49s | 13% 단축 |
성능 개선 분석
-
50,000 시퀀스 테스트
- EFS: 359초 (DB 로딩 + 처리)
- EBS: 171초 (총), 157초 (BLAST만)
- 개선: 52% 빠름
-
500,000 시퀀스 테스트
- EFS: 1509초
- EBS: 1309초 (총), 1293초 (BLAST만)
- 개선: 13% 빠름
성능 개선 원인
- EBS gp3: 16,000 IOPS, 1000 MB/s 처리량 보장
- EFS Elastic: 버스트 성능에 의존, 일관성 낮음
- 지연시간: EBS ~1ms vs EFS ~1-5ms
비용 분석
Job당 비용 비교
| 아키텍처 | EC2 비용 | 스토리지 비용 | 총 비용/Job |
|---|---|---|---|
| EFS (기존) | $1.30 | $17.20* | $18.50 |
| EBS r6i (신규) | $1.30 | $0.05 | $1.35 |
| EBS r6i + Spot | $0.39 | $0.05 | $0.44 |
*EFS Elastic 읽기 비용: ~400GB x $0.043/GB
월간 비용 예측 (120 jobs/월)
| 아키텍처 | 월간 비용 | 절감액 | 절감률 |
|---|---|---|---|
| EFS (기존) | $2,268 | - | - |
| EBS r6i | $162 | $2,106 | 93% |
| EBS r6i + Spot | $53 | $2,215 | 98% |
스토리지 비용 상세
| 항목 | EFS | EBS |
|---|---|---|
| 월 저장 비용 | $91.56 | $12.70 (Snapshot) |
| Job당 읽기 비용 | $17.20 | $0 |
| gp3 볼륨 사용 | - | ~$0.05/Job |
사용 방법
Job 제출 명령
# 500 시퀀스 테스트
aws batch submit-job \
--job-name "blast-ebs-test-$(date +%Y%m%d-%H%M%S)" \
--job-queue blast-ebs-r6i-queue \
--job-definition blast-ebs-job:2 \
--container-overrides '{
"environment": [
{"name": "QUERY_FILE", "value": "query.fasta"},
{"name": "JOB_NAME", "value": "blast-test-500"}
]
}' \
--region ap-northeast-2
지원 쿼리 파일
| 파일명 | 시퀀스 수 | 크기 |
|---|---|---|
| query.fasta | 500 | 75 KB |
| query_5000.fasta | 5,000 | 755 KB |
| query_50000.fasta | 50,000 | 7.4 MB |
| query_500000.fasta | 500,000 | 74 MB |
권장사항
즉시 적용 가능
- r6i.24xlarge + EBS gp3 사용 (테스트 완료)
- Job Queue:
blast-ebs-r6i-queue - 성능: EFS 대비 13-52% 향상
- 비용: 93% 절감
- Job Queue:
추가 최적화 (선택)
-
Spot 인스턴스 적용
- 추가 60-70% EC2 비용 절감
- 총 비용: Job당 $0.44
-
r6id + NVMe 아키텍처 (추가 구성 필요)
- 사전 구성된 AMI 생성 권장
- 잠재적 성능 향상: 3배 높은 처리량
롤백 방법
문제 발생시 기존 EFS 환경으로 롤백:
# 기존 Job Queue 사용
aws batch submit-job \
--job-queue blast-high-memory-queue \
--job-definition blast-high-memory-test:1 \
...
테스트 환경: AWS Batch, r6i.24xlarge, ap-northeast-2
No comments to display
No comments to display