AWS Batchで起動テンプレートを利用してEFSをマウントする
起動テンプレート作成
何もせずただ下にスクロール。以下の高度な詳細をクリック
起動テンプレートのサポート公式ドキュメントページを見てコピペ!
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==--
コンピューティング環境作成
作成を押す。
ここではマネージド型を選ぶ。
オンデマンドを選ぶ。
するとインスタンスロール、EC2キーペアが選べる。(ロールはなければ自動で作成される)
後でインスタンスに接続してマウントできているか確認するため、キーペア必須!
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の範囲で自動で変動させる)
追加設定:テンプレート、ユーザー指定のAMIを起動をクリックすると起動テンプレートが選べる。
しかし!さっき作ったテンプレートがまだ表示されない!なぜ!
自分なりの解決策としては、このページのまま、再読み込みボタン(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
Author And Source
この問題について(AWS Batchで起動テンプレートを利用してEFSをマウントする), 我々は、より多くの情報をここで見つけました https://qiita.com/quryu/items/f524fd124ef18777246c著者帰属:元の著者の情報は、元の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 .