AWS Genomics CLI を試してみる
概要
ここに書いてあることをやるだけ
環境
on macOS 11.6.1
やったこと
Amazon CLI をインストールする
brew で node を入れる
ここで brew install node@16 しないと node 17 が入ってしまい AWS CDKのサポート外になってしまった (2021-11-09)
brew install awscli
agc (というらしい) を取ってきてパスを通す
適当なところに zip をダウンロードして unzip -d agc して ./agc/install.sh をする
$HOME/bin を勝手に彫りやがるので install.sh をいじって $HOME/local/bin に変更した
code:agc
$ agc --help
🧬 Launch and manage genomics workloads on AWS.
Commands
Getting Started 🌱
account Commands for AWS account setup.
Install or remove AGC from your account.
Contexts
context Commands for contexts.
Contexts specify workflow engines and computational fleets to use when running a workflow.
Logs
logs Commands for various logs.
Projects
project Commands to interact with projects.
Workflows
workflow Commands for workflows.
Workflows are potentially-dynamic graphs of computational tasks to execute.
Settings ⚙️
version Print the version number.
configure Commands for configuration.
Configuration is stored per user.
Flags
-h, --help help for agc
-v, --verbose Display verbose diagnostic information.
--version version for agc
Examples
Displays the help menu for the specified sub-command.
$ agc account --help
emoji が入るのが今っぽい
zsh の completion も入れてくれるらしい
agc completion zsh > "${fpath[1]}/_agc"
CDK Bootstrap
AWS CDK という CloudFormation (Cfn) の toolkit を入れる必要があるらしい
npm install -g aws-cdk
node@17 だと派手めの warning が出る
code:cdk-warning
cdk --version
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! !!
!! This software has not been tested with node v17.0.1. !!
!! You may to encounter runtime issues, and should switch to a supported release. !!
!! !!
!! As of the current release, supported versions of node are: !!
!! - ^12.7.0 !!
!! - ^14.5.0 !!
!! - ^16.3.0 !!
!! !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1.131.0 (build 7560c79)
そんな怒らんでもいいやんけ
Bootstrapします
言われたとおりに cdk bootstrap aws://<account-number>/ap-northeast-1 したらめっちゃ怒られた
指定したアカウントと credential のアカウントが違うとのこと
aws コマンドの configure をします
aws configure --profile agc してagc用のIAMアカウントを作っておく
権限周りでコケるのがつらいので administratorAccess をつけます(危険)
あとで消して作り直す
気を取り直してもう一度
code:cdk-bootstrap
cdk bootstrap --profile agc aws://<account number>/ap-northeast-1
⏳ Bootstrapping environment aws://<account number>/ap-northeast-1...
CDKToolkit: creating CloudFormation changeset...
✅ Environment aws://<account number>/ap-northeast-1 bootstrapped.
でけた
AGCをactivateします
agc account activate
DynamoDBのテーブルとかS3バケットとかVPCとかを作るらしい
5minsほどかかるとのこと
code:activate
$ agc account --awsProfile agc activate
...
コケる
なぜ……
エラーはこれだった
Nat Gateway is not available in this availability zone
AZ変えられるのか、、?
issueを立てる
Regionを us-east-1 に変えてみる
今度は違うエラーが
VPCの上限値に達したとか
EC2にElastic IPが割り当てられないとか
使ってないリソースは消してくれ、、、
できた!
code:activate
agc account --awsProfile agc activate
2021-11-09T18:29:52+09:00 𝒊 Activating AGC with bucket '' and VPC ''
続き
usernameの登録
agc configure email inutano@inutano.com
Hello World やる
code:helloWorld
$ agc context --awsProfile agc deploy --context myContext
...
SUMMARY false myContext
クソが!
と思ったら Cfn のコンソールを確認すると create_complete になっている、、、?
謎、、、、
実行してみます
code:run-hello
$ agc workflow --awsProfile agc run hello --context myContext
2021-11-10T16:05:05+09:00 𝒊 Running workflow. Workflow name: 'hello', Arguments: '', Context: 'myContext'
5d23aaf6-8ac8-4111-84bf-b26e9fed62f7
$ agc workflow --awsProfile agc status
2021-11-10T21:14:21+09:00 𝒊 Showing workflow run(s). Max Runs: 20
WORKFLOWINSTANCE myContext 5d23aaf6-8ac8-4111-84bf-b26e9fed62f7 true COMPLETE 2021-11-10T07:05:10Z hello
$ aws --profile agc ssm get-parameter --name /agc/_common/bucket --query 'Parameter.Valuee' --output text
None
はい、、、
消しましょうね
code:deactivate
$ agc context --awsProfile agc destroy -c myContext
2021-11-10T21:41:36+09:00 𝒊 Destroying context(s)'
$ agc account --awsProfile agc deactivate
2021-11-10T22:13:28+09:00 𝒊 Deactivating AGC. Deactivation may take up to 5 minutes to complete and return.
Cfn に cdk bootstrap した残骸が残っているが消す方法は地味に stack を潰すしかないらしい
まあ害はないっぽいので放っておこう
で?
よしなにCfnしてくれるのは便利
便利だがそれだけ
しかし独自yamlを書かされるのは頂けない
WES立てろや
おしまい。