AWS HealthOmics で CloudFormation がサポートされました。数ヶ月前のアップデートにはなりますが、複数のリソースを作成時に利用してみたら便利でしたので紹介します。
CloudFormation をサポート
CloudFormation をサポートしたことりにより、HealthOmics のリソースを IaC 管理が可能になりました。現時点では HealthOmics の各種ストアの作成と、HealthOmics Workflow の作成をサポートしています。
AWS HealthOmics resource type reference - AWS CloudFormation
IaC 管理以外では管理するゲノムによって名前違いのストアを複数個作成するとき効率の良い作成方法としても利用できます。
やってみた
シーケンスストアを複数作成する機会がありました。シーケンスストアの設定を IaC で管理したいというよりは、マネージメントコンソールからの手作業で作成するより効率良く作成できると踏んで CloudFormation で書いてみました。結果は見込みどおり作成工数を削減できました。
シーケンスストア作成テンプレート
3 つのシーケンスストアを作成するテンプレートを作成しました。ヒト、シロイヌナズナ、キイロショウジョウバエのシーケンスファイルを格納用にそれぞれの名前を付けたストアを作成する内容となっています。
Sequence-stores.yaml
---
AWSTemplateFormatVersion: "2010-09-09"
Description: HealthOmics Storage Sequence Store
Parameters:
ProjectName:
Description: Project name
Type: String
Default: HealthOmicsBlog
Resources:
# ----------------------------------------------------------------------------------------
# HealthOmics Storage
# ----------------------------------------------------------------------------------------
SequenceStore1:
Type: AWS::Omics::SequenceStore
Properties:
Description: "Homo sapiens genome"
FallbackLocation: "s3://omics-work/fallback/"
Name: "Homo sapiens"
Tags:
ProjectName: !Sub ${ProjectName}
SequenceStore2:
Type: AWS::Omics::SequenceStore
Properties:
Description: "Arabidopsis thaliana genome"
FallbackLocation: "s3://omics-work/fallback/"
Name: "Arabidopsis thaliana"
Tags:
ProjectName: !Sub ${ProjectName}
SequenceStore3:
Type: AWS::Omics::SequenceStore
Properties:
Description: "Drosophila melanogaster genome"
FallbackLocation: "s3://omics-work/fallback/"
Name: "Drosophila melanogaster"
Tags:
ProjectName: !Sub ${ProjectName}
CloudFormation スタックを作成しました。正常にリソースが作成されました。
実行結果
シーケンスストアを確認したところ指定した名前のシーケンスストアを作成を確認できました。サクッと名前違いのリソースを複数個作成でき手間が省けました。
おわりに
AWS 上のリソースを IaC で管理したい重要は当然あるかと思います。ですが、今回の様にストア名違いで複数リソースを作成するときの作業効率化にも利用できます。ストア名と説明欄を修正するだけのコピペで量産が可能です。
AWS CLI でシーケンスストアを作成可能です。HealthOmics 関連の AWS CLI コマンドは引数が多い傾向にあり、使い勝手は良いとは言えないのが個人的な印象です。そのため CloudFormation のサポートは良いアップデートでした。従来どおりの CloudFormation テンプレートの書き方で HealthOmics リソースを作成できるため学習コストも低いです。