COVID-19(SARS-CoV-2)の解析プロジェクトへの参加環境を AWS Fargate で構築してみました。
前回は、CloudFormation で解析環境を構築しました。
https://qiita.com/hirosys-biz/items/fa19e596c3872059bf2c
今回は、コンテナの勉強もかねて AWS Fargate を利用して構築してみました。
思いの外簡単にできてびっくりしました。
こんな方にお勧めです
- Amazon ECS や AWS Fargate が好きだ!
- コンテナ技術を使って新型コロナウイルスの解析に貢献したい!
では、さっそく始めましょう
Amazon ECS の利用開始する
今まで、Amazon ECS を未使用の場合は以下のような画面が表示されると思います。
[いますぐ始める]ボタンをクリックします。
コンテナを定義する
スタンダードの設定
以下のように設定します。
- コンテナ名
- 任意のコンテナ名を指定します。本稿では「folding-at-home-ecs」としました。
- イメージ
- コンテナイメージを指定します。今回は、john k tims さんが作成されたイメージ[johnktims/folding-at-home] を指定します。
- ポートマッピング
- Folding@Home で使用するポート番号 7396 tcp を指定します。
つづけて、詳細コンテナ設定を行います。
画面をスクロールさせ、オープナーを開いてください。
詳細コンテナ設定
動かすだけであれば、環境の箇所を設定すればOKです。
必要に応じてその他の場所も確認してください。
- CPU ユニット数
- 1024 で 1vCPU となります。1024 以上かつ 4096 以下の任意の値とすればよいでしょう。
- Folding@Home は CPU (と GPU)がものを言いますので、本稿では後述する タスク CPU の最大値である 4096 を指定しました。
- コマンド
- コンテナに与えるコマンドを指定します。こちらの一番下[Start folding]を参考にしました。
- --user ユーザー名。本稿の例では標準指定であり匿名を意味する Anonymous としています。
- --team チームの ID 。222 は 日本(japan) の ID です
- --power は 解析に使用する CPU パワーをどのくらいにするかの指定です。 full、middle, light があります。
- Amazon ECS では、スペースではなく、以下のようにカンマ区切りで指定します。
--user=Anonymous,--team=222,--power=full
設定例は以下のようになります。
つづいて、このコンテナを使うタスクの定義を行います。
タスクを定義する
タスク定義のエリアにある[編集]ボタンをクリックします。
※詳細コンテナ設定の CPU ユニット数の指定が タスク CPU の標準値より大きいため警告メッセージが表示されています。
タスクメモリならびにタスク CPU の値を設定します。
今回の例では、 コンテナ詳細設定の CPU ユニット数を 4096 としているため、以下のような設定なっています。適宜調整してください。
- タスクメモリ:8GB (8192)
- タスク CPU を 4 vCPU (4096) を選択すると タスクメモリの最低値が 8GB (8192) となります。
- タスク CPU:4 vCPU (4096)
設定例は以下のようになります。
タスク定義が完了したら、[次]ボタンをクリックします。
サービスを定義する
必要なタスクの数とセキュリティグループの指定を行います。
必要に応じてサービス名を指定してください。Folding@Home で解析を行う際、ロードバランサーは不要です。
- 必要なタスク数
- いくつ同時実行するか(解析を何並列で行うか)を指定します。
- 以下の画像では 1 となっていますが、5 を指定しました。好きな数を指定してください。
- セキュリティグループ
- 前回の記事の事前準備記載の方法でアクセス元 IP アドレスを確認し指定することで、不要なアクセスを防ぐことができます。
設定例は以下のようになります。
サービス定義が完了したら、[次]ボタンをクリックします。
クラスターの設定
特に設定する箇所はありません。[次]ボタンをクリックして進んでください。
確認
設定した内容を確認します。
問題なければ、[作成]ボタンをクリックしてください。
構築実施
構築が完了すると、[サービスの表示]ボタンが活性化されますのでクリックします。
動作確認
下記の赤枠で囲った箇所の「必要数」と「実行中の数」がサービスの定義で指定した「タスクの数」のとおりになるまで待ちます。
そして、緑枠で囲んだ[タスク]タブを選択します。
タスクのステータスが「RUNNING」になっていることを確認し、任意のタスクのリンクをクリックします。
確認した IP アドレスにポート番号7396(例:111.222.333.444:7396 ※あり得ないアドレスです)を付与して、Web ブラウザで開きます。
以下のような表示がされれば動作確認成功です!
結果
タスク数5個で1日程度回した結果は、 15,889 ポイントでした。
※使用料はざっくり 25ドル程度/日。
まとめ
使用するコンテナイメージとコマンド、必要なCPU数、並列数(タスク数)を指定するだけで簡単に解析環境が構築できてしまいました。
時間をかけて CloudFormation のテンプレートを何百行も書かなくとも並列解析環境が作れてしまったので、感動を覚えています。
今後も使いどころや他のコンテナサービス含めて学び、得た知見を共有していいけたらと思います。
参考資料
https://hub.docker.com/r/johnktims/folding-at-home
https://qiita.com/aqr_w/items/57834c89ded1d8c7d20c
https://qiita.com/jey0taka/items/24c5590ae9cb2b66d383
Author And Source
この問題について(COVID-19(SARS-CoV-2)の解析プロジェクトへの参加環境を AWS Fargate で構築してみました。), 我々は、より多くの情報をここで見つけました https://qiita.com/hirosys-biz/items/a148d2cbe5224b1c0162著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .