Skip to main content

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이 실행되지 않음

해결 방안:

  1. 사전 구성된 AMI 생성 (권장)
  2. Container 내에서 데이터베이스 준비 대기 로직 추가
  3. EBS 직접 사용 (r6i 방식)

성능 비교: EFS vs EBS

순차 실행 비교 (정확한 비교)

시퀀스 수 EFS 시간 EBS 시간 개선율
50,000 5m 59s 2m 51s 52% 단축
500,000 25m 9s 21m 49s 13% 단축

성능 개선 분석

  1. 50,000 시퀀스 테스트

    • EFS: 359초 (DB 로딩 + 처리)
    • EBS: 171초 (총), 157초 (BLAST만)
    • 개선: 52% 빠름
  2. 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

권장사항

즉시 적용 가능

  1. r6i.24xlarge + EBS gp3 사용 (테스트 완료)
    • Job Queue: blast-ebs-r6i-queue
    • 성능: EFS 대비 13-52% 향상
    • 비용: 93% 절감

추가 최적화 (선택)

  1. Spot 인스턴스 적용

    • 추가 60-70% EC2 비용 절감
    • 총 비용: Job당 $0.44
  2. 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