0
0

More than 3 years have passed since last update.

AWS Batchで起動テンプレートを利用してEFSをマウントする

Last updated at Posted at 2021-02-06

起動テンプレート作成

これをクリック
image.png

何もせずただ下にスクロール。以下の高度な詳細をクリック

image.png

起動テンプレートのサポート公式ドキュメントページを見てコピペ!
https://docs.aws.amazon.com/ja_jp/batch/latest/userguide/launch-templates.html
ただし file_system_id_01=fs-abcdef123 には自分のEFSのidを入れる。

MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/cloud-config; charset="us-ascii"

packages:
- amazon-efs-utils

runcmd:
- file_system_id_01=fs-abcdef123
- efs_directory=/mnt/efs

- mkdir -p ${efs_directory}
- echo "${file_system_id_01}:/ ${efs_directory} efs tls,_netdev" >> /etc/fstab
- mount -a -t efs defaults

--==MYBOUNDARY==--

私はいつも以下でやっている。

MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/cloud-config; charset="us-ascii"

runcmd:
- file_system_id_01=fs-abcdef123
- efs_directory=/mnt/efs

- mkdir -p ${efs_directory}
- sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport ${file_system_id_01}.efs.ap-northeast-1.amazonaws.com:/ ${efs_directory}

--==MYBOUNDARY==--

コンピューティング環境作成

作成を押す。

image.png

ここではマネージド型を選ぶ。

image.png

オンデマンドを選ぶ。

image.png

するとインスタンスロール、EC2キーペアが選べる。(ロールはなければ自動で作成される)
後でインスタンスに接続してマウントできているか確認するため、キーペア必須!

image.png

vCPUを設定する。
この設定について、現時点での自分の認識を書く。間違っている可能性大!公式ドキュメントページ参照のこと!

初めに公式ドキュメント
https://aws.amazon.com/jp/ec2/instance-types/
以下のように書いてある。

[最小 vCPU] で、ジョブキューの需要にかかわらず、コンピューティング環境で維持する EC2 vCPU の最小数を選択します。
[最大 vCPU] で、ジョブキューの需要にかかわらず、コンピューティング環境でスケールアウトできる EC2 vCPU の最大数を選択します。
[必要な vCPU] で、コンピューティング環境の起動に必要な EC2 vCPU の数を選択します。ジョブキューの需要が増えると、AWS Batch はコンピューティング環境で必要な vCPU の数を増やし、vCPU の最大数まで EC2 インスタンスを追加できます。需要が減ると、AWS Batch はコンピューティング環境で必要な vCPU の数を減らし、vCPU の最小数までインスタンスを削減できます。

うーん。正直あまりわからない。
次に私なりの解釈。c4.largeを例に挙げて説明する。

インスタンス vCPU*  メモリ(GiB) ストレージ
c4.large 2 3.75 EBS のみ

最小vCPU:この値を超えない最大個数のインスタンスが起動する。ただし0より大きい値の場合、許可されたインスタンスタイプのvCPUによらず、最低でも1個はインスタンスが起動する。
例)8にした場合:4個インスタンスが起動する(2 $\times$ 4 = 8)
最大vCPU:この値を超えない範囲のもと、jobによってインスタンスが起動する
例)20にした場合:最高で10個インスタンスが起動する(2 $\times$ 10 = 20)
必要なvCPU:わからない(Batchが最小vCPU~最大vCPUの範囲で自動で変動させる)

image.png

追加設定:テンプレート、ユーザー指定のAMIを起動をクリックすると起動テンプレートが選べる。
しかし!さっき作ったテンプレートがまだ表示されない!なぜ!

image.png

自分なりの解決策としては、このページのまま、再読み込みボタン(chromeなら左上にあるやつ)を押す。

マウント確認

vCPUを1に設定すれば、jobを送信しなくても一個インスタンスが立つのでジョブやキューを作らなくても確認できる。

注意

コンピューティング環境を無効化していても最小vCPUが0でない限り、消しても消しても新しいインスタンスが起動する。
コンピューティング環境は無効化した状態であれば、最小vCPUを編集することができる。

参考記事

コンピューティング環境の作成
https://docs.aws.amazon.com/ja_jp/batch/latest/userguide/create-compute-environment.html
Amazon EC2 インスタンスタイプ
https://aws.amazon.com/jp/ec2/instance-types/
起動テンプレートのサポート
https://docs.aws.amazon.com/ja_jp/batch/latest/userguide/launch-templates.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0