Amazon Omics Storage と S3 でゲノムデータを保存する場合のコストを比較してみた

Omics Storage は安かった。伊達にゲノムデータ保存専用設計のストレージではないということか。
2023.01.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ゲノムデータを保存するなら結局のところ Omics Storage と S3 どっちが安いのか?気になったので確認しました。

確認結果

以下の条件で試算すると Omics Storage の方が3分の1のコストでゲノムデータを保存できました。とくに Omics Storage が有利になる条件を想定したわけではないです。

  • 保存するデータは10TB(≒ 合計12Tb換算)
  • 頻繁にアクセスするデータは全体の30%(3TB ≒ 3.6Tb換算)
  • 30日以上アクセスされないデータは全体の10%(1TB ≒ 1.2Tb換算)
  • 90日以上アクセスされないデータは全体の60%(6TB ≒ 7.2Tb換算)
  • ストレージからデータの取り出す頻度は月間3,000回
  • Omics Storage は一時保存用の S3 を利用
    • 月間平均100GBのデータ保存
    • Omics Storage からデータを取り出す頻度(3,000回)
Omics Storage S3
保存コスト $30.51 $103.1
データ取り出しコスト $0.0027 $0
月額合計 $32.9 $103.1

S3 と Omics Storage では単価の単位の違いがあるため 1TB ≒ 1.2Tb 換算で試算しています。FASTQ,BAM,CRAMのファイル数が多いと想定しています。

Omics Storage の料金体系

最新情報は以下の公式サイトをご確認ください。本記事では2023年1月20日時点のバージニア北部(us-east-1)の料金を元に解説します。

ゲノムデータ分析 - Amazon Omics の料金表 - Amazon Web Services

現在 Amazon Omics は日本(ap-northeast-1)には未提供のサービスです。

特徴的な課金単位

課金対象の単位がbp(base pair)となっており、塩基対の数に対して課金される他に例を見ないストレージとなっています。

塩基対数で課金されるメリットはユーザー側が圧縮形式、圧縮レベルを気にしなくて済みます。

滅多に使わないデータを長期保存するなら tar で固めてから全力で圧縮してサイズ小さくした方がいいかな?と悩まなくて済みます。実際にやるのも手間ですしね、Omics Storage ならファイルサイズで保存コストは変わらないので。とはいえ、Omics Storage に保存できるデータフォマーマットには制限がありFASTA,FASTQ(要 gzip 圧縮),BAM,CRAM形式に限られています。FASTA を除けば圧縮レベルの違いあれど圧縮済みであることが前提となっています。

bp を byte 換算すると?

base pair 換算だと何が嬉しいのかヒトゲノムを例に確認してみます。

FASTA ファイル

ヒトのリファレンスゲノムを確認します。ファイルサイズは約3.25GBでした。

$ ls -l Homo_sapiens_assembly38.fasta
-rw-r--r--  1 ohmura.yasutaka  staff  3249912778 11  7  2018 Homo_sapiens_assembly38.fasta

seqstatusで base pair 数を確認すると約3.22Gbでした。FASTA ファイルは概ねファイルサイズと変わりはありません。ヒトゲノムは約30億塩基対とよく聞きますがはじめてまじめに確認する機会となりました。

$ ./seqstats Homo_sapiens_assembly38.fasta
Total n:	3366
Total seq:	3217346917 bp
Avg. seq:	955836.87 bp
Median seq:	2379.00 bp
N 50:		145138636 bp
Min seq:	970 bp
Max seq:	248956422 bp

FASTQ ファイル

とある日本人女性の末梢静脈の血液のリード配列を確認します。ファイルサイズは154MBでした。

NA18942 | IGSR sample

$ ls -l ERR244202_1.fastq.gz
-rw-r--r--  1 ohmura.yasutaka  staff  154255444  1 18 16:00 ERR244202_1.fastq.gz

base pair 数は165Mbでした。圧縮されたデータであればファイルサイズ換算の方が小さいことになります。

$ ./seqstats ERR244202_1.fastq.gz
Total n:	1653541
Total seq:	165354100 bp
Avg. seq:	100.00 bp
Median seq:	100.00 bp
N 50:		100 bp
Min seq:	100 bp
Max seq:	100 bp

大切なことなのでもう一度 Omics Storage の課金対象はbase pairです。Omics Storage はゲノムデータ保存専用設計のストレージですのでコストを確認してみます。

2階層の構造を持つストレージ

Omics Storage はActiveArchive階層という構造を持つストレージになっています。いつでも引き出せる状態のデータはActiveにあり、30日間アクセスがなければ自動的にArchiveへ移されます。

Inventory icons created by Freepik - Flaticon

Archiveに移動されたデータはすぐにアクセスできずActive化するコマンドを発行する必要があります。Active化に要する時間についてはドキュメントに記述がなくかつ、直接Archiveへデータを保存することができないため手元で検証ができていません。30日後には検証できるようになるため追って情報を共有したいと思います。

Archiveに移動されたデータはActiveに比べると8割引きになります。50TB 以上保存すると単価が安くなるようなボリュームディスカウントは Omics Storage には用意されていません。とてもシンプル料金体系で提供されています。

S3 と料金比較

課金単位が Gb と GB で違うため単純比較はできないですが、FASTA ファイルであれば同等で、FASTQ ファイルであれば base pair はファイルサイズの1.1倍程度でした。Omics Storage で利用される bp 単価の方が数値としては多少大きくなることが予想されます。

S3 は Omics Storage と同様の階層構造を持つ S3 Inteligent-Tiering と機能的に近い単価層を比較(青い矢印)してみました。

機能面で近しい層を比較すると Omics Storage の保存コストは安価に設定されていることがわかります。

アクセス速度は Omics Storage のActiveも S3 のFrequent Access Tier(アクセス頻度の高いオブジェクトストレージ)もミリ秒単位のアクセスとなっています。ですが...

Omics Storage へのアクセス方法

S3 の様に大容量ストレージとして Omics Storage の利用を考えた場合、データを保存またはデータを取り出すとき必ず S3 バケットを経由しないといけません。

Omics Storage へ直接アップロード、ダウロードはできないです。S3 に直接保存と比べるとデータアクセスするために一手間発生します。

Inventory icons created by Freepik - Flaticon

Omics Storage へのデータ保存方法は以下の記事も参考にしてください。

料金シミュレーション

10TB ≒ 合計12Tb と仮定してゲノムデータを保存コストを試算します。以下の条件で Omics Storageに保存した場合と、S3に保存した場合で比較します。

  • 頻繁にアクセスするデータは全体の30%
  • 30日以上アクセスされないデータは全体の10%
  • 90日以上アクセスされないデータは全体の60%
  • ストレージからデータの取り出す頻度は月間3,000回

Omics Storage

Omics階層 料金 備考
アクティブ $20.8 3.6Tb
アーカイブ $9.7 8.4Tb
データ取り出し $0.0015 3000回のGetリクエスト
月額合計 $30.51

S3 Inteligent-Tier

S3 INT階層 料金 備考
高頻度アクセスティア $69 3TB
低頻度アクセスティア $12.5 1TB
アーカイブアクセスティア $21.6 6TB
データ取り出し $0 3000回のGetリクエスト
月額合計 $103.1

本来 S3 Inteligent-Tier は階層移動するかどうかのチェックのために保存されているオブジェクト数に対してチェックコストがかかります。保存コストだけでも3倍近い開きがあったので厳密に計算はしませんでした。

Omics Storage では S3 バケットを経由する都合、一時的にゲノムデータを保存する想定で S3 バケットの料金を試算しました。S3 の標準ストレージになんやかんやデータを置き忘れてしまうことを想定して月間平均で 100GB 保存すると仮定しました。3,000回のデータ取り出しリクエストを含めてもコストは微々たるものでした。

S3 一時利用 料金 備考
S3 標準 $2.3 100GB保存
データ取り出し $0.0012 3000回のGetリクエスト

計算結果比較

  • 保存するデータは10TB(≒ 合計12Tb換算)
  • 頻繁にアクセスするデータは全体の30%(3TB ≒ 3.6Tb換算)
  • 30日以上アクセスされないデータは全体の10%(1TB ≒ 1.2Tb換算)
  • 90日以上アクセスされないデータは全体の60%(6TB ≒ 7.2Tb換算)
  • ストレージからデータの取り出す頻度は月間3,000回
  • Omics Storage は一時保存用の S3 を利用
    • 月間平均100GBのデータ保存
    • Omics Storage からデータを取り出す頻度(3,000回)
Omics Storage S3
保存コスト $30.51 $103.1
データ取り出しコスト $0.0027 $0
月額合計 $32.9 $103.1

長期保存することを考えると保存コストの安さは魅力的です。

おわりに

NGS の進化や、研究によって膨れ上がるゲノムデータの保存コストは喫緊の課題ではないでしょうか?一度 S3 を経由したりデータの保存方法にお作法があるため通常のストレージの様にとはいかないのですが、触って使用感を確認してみてはいかがでしょうか。安く保存しておけるのは魅力的ですね。

参考