Skip to main content

아키텍처 개요

AWS BLAST Performance Testing Architecture

Architecture Overview

                                    ┌─────────────────────────────────────────────────────────────┐
                                    │                      AWS Cloud (ap-northeast-2)             │
                                    │                                                             │
┌──────────────┐                    │  ┌─────────────────────────────────────────────────────┐   │
│              │                    │  │                    VPC                               │   │
│    User      │                    │  │                                                      │   │
│   (Client)   │────────────────────┼──┤  ┌───────────────────────────────────────────────┐  │   │
│              │                    │  │  │              Private Subnets                   │  │   │
└──────────────┘                    │  │  │                                                │  │   │
                                    │  │  │  ┌─────────────────────────────────────────┐  │  │   │
                                    │  │  │  │           AWS Batch                      │  │  │   │
                                    │  │  │  │                                          │  │  │   │
                                    │  │  │  │  ┌──────────────────────────────────┐   │  │  │   │
                                    │  │  │  │  │    Compute Environment           │   │  │  │   │
                                    │  │  │  │  │    (blast-high-memory-ce)        │   │  │  │   │
                                    │  │  │  │  │                                  │   │  │  │   │
                                    │  │  │  │  │  ┌────────────┐ ┌────────────┐  │   │  │  │   │
                                    │  │  │  │  │  │r6i.24xlarge│ │r7i.24xlarge│  │   │  │  │   │
                                    │  │  │  │  │  │  96 vCPU   │ │  96 vCPU   │  │   │  │  │   │
                                    │  │  │  │  │  │  768GB RAM │ │  768GB RAM │  │   │  │  │   │
                                    │  │  │  │  │  └────────────┘ └────────────┘  │   │  │  │   │
                                    │  │  │  │  │         maxvCpus: 384           │   │  │  │   │
                                    │  │  │  │  └──────────────────────────────────┘   │  │  │   │
                                    │  │  │  │                    │                    │  │  │   │
                                    │  │  │  │  ┌──────────────────────────────────┐   │  │  │   │
                                    │  │  │  │  │         Job Queue                │   │  │  │   │
                                    │  │  │  │  │   (blast-high-memory-queue)      │   │  │  │   │
                                    │  │  │  │  │        Priority: 100             │   │  │  │   │
                                    │  │  │  │  └──────────────────────────────────┘   │  │  │   │
                                    │  │  │  │                    │                    │  │  │   │
                                    │  │  │  │  ┌──────────────────────────────────┐   │  │  │   │
                                    │  │  │  │  │       Job Definition             │   │  │  │   │
                                    │  │  │  │  │   (blast-high-memory-test:1)     │   │  │  │   │
                                    │  │  │  │  │     64 vCPU, 512GB Memory        │   │  │  │   │
                                    │  │  │  │  │                                  │   │  │  │   │
                                    │  │  │  │  │  Container: NCBI BLAST+          │   │  │  │   │
                                    │  │  │  │  │  (ncbi/blast:latest)             │   │  │  │   │
                                    │  │  │  │  └──────────────────────────────────┘   │  │  │   │
                                    │  │  │  │                                          │  │  │   │
                                    │  │  │  └─────────────────────────────────────────┘  │  │   │
                                    │  │  │                       │                       │  │   │
                                    │  │  │                       │ EFS Mount             │  │   │
                                    │  │  │                       ▼                       │  │   │
                                    │  │  │  ┌─────────────────────────────────────────┐  │  │   │
                                    │  │  │  │              Amazon EFS                  │  │  │   │
                                    │  │  │  │         (fs-0d2d032d1cca25f3f)          │  │  │   │
                                    │  │  │  │                                          │  │  │   │
                                    │  │  │  │    Mount: /mnt/efs                       │  │  │   │
                                    │  │  │  │    Database: /mnt/efs/nt/core_nt         │  │  │   │
                                    │  │  │  │    (NCBI NT Core Database)               │  │  │   │
                                    │  │  │  └─────────────────────────────────────────┘  │  │   │
                                    │  │  │                                                │  │   │
                                    │  │  └────────────────────────────────────────────────┘  │   │
                                    │  │                                                      │   │
                                    │  └──────────────────────────────────────────────────────┘   │
                                    │                                                             │
                                    │  ┌──────────────────────────────────────────────────────┐   │
                                    │  │                     Amazon S3                         │   │
                                    │  │                                                       │   │
                                    │  │  ┌─────────────────────────────────────────────────┐ │   │
                                    │  │  │  blast-perf-test-queries-664263524008           │ │   │
                                    │  │  │                                                  │ │   │
                                    │  │  │  /queries/                                       │ │   │
                                    │  │  │    ├── query.fasta        (500 seqs, 75KB)      │ │   │
                                    │  │  │    ├── query_5000.fasta   (5,000 seqs, 755KB)   │ │   │
                                    │  │  │    ├── query_50000.fasta  (50,000 seqs, 7.4MB)  │ │   │
                                    │  │  │    └── query_500000.fasta (500,000 seqs, 74MB)  │ │   │
                                    │  │  │                                                  │ │   │
                                    │  │  │  /results/                                       │ │   │
                                    │  │  │    └── {job_id}/output.txt                      │ │   │
                                    │  │  └─────────────────────────────────────────────────┘ │   │
                                    │  └──────────────────────────────────────────────────────┘   │
                                    │                                                             │
                                    └─────────────────────────────────────────────────────────────┘

Component Details

AWS Batch Components

Component Name Configuration
Compute Environment blast-high-memory-ce EC2, MANAGED, maxvCpus: 384
Job Queue blast-high-memory-queue Priority: 100
Job Definition blast-high-memory-test:1 64 vCPU, 512GB Memory

EC2 Instance Types

Instance Type vCPU Memory Hourly Cost
r6i.24xlarge 96 768 GB $7.776
r7i.24xlarge 96 768 GB $8.1648

Storage

Service Resource Purpose
Amazon EFS fs-0d2d032d1cca25f3f BLAST NT Core Database
Amazon S3 blast-perf-test-queries-664263524008 Query files & Results

BLAST Configuration

blastn \
  -query /tmp/query.fasta \
  -db /mnt/efs/nt/core_nt \
  -out /tmp/output.txt \
  -outfmt 6 \
  -num_threads 64 \
  -evalue 1e-5

Performance Test Results

Query Sequences Execution Time EC2 Cost Cost per 1000 Sequences
500 3m 56s $0.51 $1.02
5,000 4m 46s $0.62 $0.12
50,000 5m 59s $0.78 $0.016
500,000 25m 9s $3.27 $0.0065

Performance Insights

  1. Batch Processing Efficiency: Per-sequence processing time decreases significantly with larger batches
  2. Fixed Overhead: ~4 minutes baseline for job initialization and database loading
  3. Scaling: 1000x more sequences only takes ~6x longer (excellent scaling)
  4. Cost Efficiency: Cost per sequence decreases by ~157x from 500 to 500,000 sequences

Data Flow

┌─────────────┐     ┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   S3        │     │  AWS Batch  │     │    EC2      │     │    EFS      │
│  (queries)  │────▶│  Job Queue  │────▶│  Instance   │────▶│  (BLAST DB) │
└─────────────┘     └─────────────┘     └─────────────┘     └─────────────┘
                                               │
                                               │ BLAST Search
                                               ▼
                                        ┌─────────────┐
                                        │   S3        │
                                        │  (results)  │
                                        └─────────────┘

Workflow Steps

  1. Input: Query FASTA file uploaded to S3
  2. Submit: Job submitted to AWS Batch Job Queue
  3. Schedule: Batch schedules job on Compute Environment
  4. Launch: EC2 instance launched with EFS mount
  5. Download: Container downloads query from S3
  6. Execute: BLAST search against NT Core database on EFS
  7. Upload: Results uploaded to S3
  8. Cleanup: EC2 instance terminated

Region: ap-northeast-2 (Seoul)