0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】Batch作成のAutoscalinggroupのテンプレートヴァージョンがデフォルトに戻ってしまう場合の対応方法

Posted at

概要

AWS Batch作成のAutoscalinggroupのテンプレートヴァージョンがデフォルトに戻ってしまう現象に遭遇しました。Batch Compute環境に起動テンプレートを書く際に、注意点があることがわかったので紹介します。

事象と解決法

先日、以下の記事に記載したようなテンプレートでAWS Batchを作成しました。

すると、AWS Batchからジョブが発行されてAutoscalinggroupが動くたびに、その「起動テンプレート」の「ヴァージョン」がデフォルトヴァージョン(1)に戻ってしまう現象に遭遇しました。つまり、例えばインスタンスタイプを変えるなどしてヴァージョン2を作成、Autoscalinggroupでヴァージョン2を選んでも、一度Autoscalingを使用すると、ヴァージョン2にした更新情報は失われ、デフォルト(1)に戻ってしまうのです。

その原因は、BatchComputeEnvironmentLaunchTemplateVersionにありました。
ここで、デフォルト以外のものを指定する必要があったのです。

  BatchComputeEnvironment:
    Type: 'AWS::Batch::ComputeEnvironment'
    Properties:
      # 略 #
      ComputeResources:
        # 略 #
        LaunchTemplate:
          LaunchTemplateName: "EC2Template_sample"
          Version: $Latest

ここになにも指定していない場合、管理コンソールのBatchComputeEnvironment詳細を確認すると起動テンプレートは「 - 」と表示されているのですが、これ実はデフォルトが適用されています。私は「 - 」とあるので、Autoscalinggroupの方で設定したヴァージョンが生きるのだと勘違いしていました。

挙動を確認するに、BatchComputeEnvironmentで指定されたテンプレートのヴァージョンが、Autoscalinggroupで指定されているテンプレートのヴァージョンを上書きする形になっているようです。指定がない場合は、デフォルトのヴァージョンで上書きされるわけです。

そもそもこのAutoscalinggroupはBatchComputeEnvironment作成時に自動で生成されたものであるので、BatchComputeEnvironment配下のリソースというイメージになるのだと思います。

「Autoscalinggroupは既に別の起動テンプレートを選択してしまっている!」という場合でデフォルトバージョン以外を適用したい場合は、一度BatchComputeEnvironmentから作成し直して、上記yaml例のようにテンプレートヴァージョンを指定する形を加える必要があります。ちなみに、ここはバージョン番号、$Default$Latestのいずれかを選ぶ必要があります。

これにより、デフォルトのヴァージョンに戻ってしまう現象が解決しました。

以下、AWS公式ドキュメントに近しいものがあったので紹介しておきます。

これらのルールに従うと、インフラストラクチャの更新をトリガーする更新により、AMI ID が再選択されます。起動テンプレートversionの (launchTemplate)設定が$Latestまたは$Defaultに設定されている場合、launchTemplateを更新していない場合でも、インフラストラクチャの更新時に起動テンプレートの最新バージョンまたはデフォルトバージョンが評価されます。

AWS BatchとAutoscalinggroup、起動テンプレートの関連性についてはあまり記事が見当たらず、体験談ベースのようなものになってしまいました。見識・経験のある方でなにかお気付きのことがあればぜひコメントで教えてください!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?