

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# で Amazon EC2 起動テンプレートを使用する AWS Batch
<a name="launch-templates"></a>

AWS Batch はAmazon EC2 EC2 起動テンプレートの使用をサポートしています。起動テンプレートを使用すると、カスタマイズされた AMIs を作成することなく、 AWS Batch コンピューティングリソースのデフォルト設定を変更できます。

起動テンプレートは、AMIs 選択順序で優先される AMI を指定できます。詳細については、「[AMI 選択順序](ami-selection-order.md)」を参照してください。

**注記**  
 AWS Batch コンピューティング環境にカスタム起動テンプレートを指定する場合、基盤となる Auto Scaling AWS Batch グループには起動テンプレートを直接アタッチしません。代わりに、 は Auto Scaling グループの個別のバッチ管理起動テンプレート AWS Batch を作成し、カスタム起動テンプレートから関連する設定を組み込みます。その結果、Auto Scaling グループに関連付けられている起動テンプレートは、最初に指定した起動テンプレートとは異なります。これは想定される動作です。

**注記**  
起動テンプレートは AWS Fargate リソースではサポートされていません。

コンピューティング環境に関連付ける前に、起動テンプレートを作成する必要があります。起動テンプレートは、Amazon EC2 コンソールから作成することができます。または、 AWS CLI または AWS SDK を使用できます。たとえば、次の JSON ファイルは、デフォルトの AWS Batch コンピューティングリソース AMI の Docker データボリュームのサイズを変更し、暗号化するように設定する起動テンプレートを表します。

```
{
    "LaunchTemplateName": "increase-container-volume-encrypt",
    "LaunchTemplateData": {
        "BlockDeviceMappings": [
            {
                "DeviceName": "/dev/xvda",
                "Ebs": {
                    "Encrypted": true,
                    "VolumeSize": 100,
                    "VolumeType": "gp2"
                }
            }
        ]
    }
}
```

前の起動テンプレートを作成するには、JSON を という名前のファイルに保存`lt-data.json`し、次の AWS CLI コマンドを実行します。

```
aws ec2 --region <region> create-launch-template --cli-input-json file://lt-data.json
```

起動テンプレートの詳細については、「*Amazon EC2 ユーザーガイド*」の「[起動テンプレートからのインスタンスの起動](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)」を参照してください。

起動テンプレートを使用してコンピューティング環境を作成する場合、次の既存のコンピューティング環境パラメータを起動テンプレートに移動できます。

**注記**  
上記のパラメータ (Amazon EC2 タグ以外) が起動テンプレートおよびコンピューティング環境設定の両方で指定されているとします。その場合は、コンピューティング環境パラメータが優先されます。Amazon EC2 タグは、起動テンプレートとコンピューティング環境設定間でマージされます。タグキーの対立がある場合、コンピューティング環境設定の値が優先されます。
+ Amazon EC2 のキーペア
+ Amazon EC2 AMI ID
+ セキュリティグループ ID
+ Amazon EC2 タグ

次の起動テンプレートパラメータは によって**無視されます** AWS Batch。
+ インスタンスタイプ (コンピューティング環境作成時にインスタンスタイプを指定)
+ インスタンスロール (コンピューティング環境作成時にインスタンスロールを指定)
+ ネットワークインターフェイスサブネット (コンピューティング環境の作成時に、サブネットを指定)
+ インスタンス市場オプション (スポットインスタンス設定を制御するAWS Batch 必要があります)
+ API の終了を無効にする (インスタンスのライフサイクルを制御するAWS Batch 必要があります)

AWS Batch は、インフラストラクチャの更新中にのみ、起動テンプレートを新しい起動テンプレートバージョンで更新します。詳細については、「[でコンピューティング環境を更新する AWS Batch](updating-compute-environments.md)」を参照してください。

## デフォルトおよびオーバーライド起動テンプレート
<a name="default-lt-and-overrides"></a>

コンピューティング環境のデフォルトの起動テンプレートと、特定のインスタンスタイプとファミリーのオーバーライド起動テンプレートを定義できます。これは、コンピューティング環境のほとんどのインスタンスタイプにデフォルトのテンプレートを使用できるようにするのに便利です。

置換変数 `$Default` および `$Latest` は、特定のバージョンに名前を付ける代わりに使用できます。オーバーライド起動テンプレートを指定しない場合、デフォルトの起動テンプレートが自動的に適用されます。

`$Default` 変数または `$Latest`変数を使用する場合、 AWS Batch はコンピューティング環境の作成時に現在の情報を適用します。デフォルトまたは最新バージョンが今後変更される場合は、[UpdateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) または AWS マネジメントコンソール - を使用して情報を更新する必要があります AWS Batch。

柔軟性を高めるために、特定のコンピューティングインスタンスタイプまたはファミリーに適用されるオーバーライド起動テンプレートを定義できます。

**注記**  
コンピューティング環境ごとに、最大 10 個のオーバーライド起動テンプレートを指定できます。

`targetInstanceTypes` パラメータを使用して、このオーバーライド起動テンプレートを使用するインスタンスタイプまたはファミリーを選択します。インスタンスタイプまたはファミリーは、まず [https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) パラメータで識別する必要があります。

起動テンプレートのオーバーライドを定義し、後で削除する場合は、空の配列を渡して [https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html) API オペレーションで [https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-overrides) パラメータの設定を解除できます。`UpdateComputeEnvironment` API オペレーションを送信するときに、`overrides` パラメータを含めないことも選択できます。詳細については、「」を参照してください。 [https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-overrides)

詳細については、 AWS Batch API リファレンスガイド[https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecificationOverride.html#Batch-Type-LaunchTemplateSpecificationOverride-targetInstanceTypes](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecificationOverride.html#Batch-Type-LaunchTemplateSpecificationOverride-targetInstanceTypes)の「」を参照してください。

## 起動テンプレートの Amazon EC2 ユーザーデータ
<a name="lt-user-data"></a>

起動テンプレート内の Amazon EC2 ユーザーデータを、[cloud-init](https://cloudinit.readthedocs.io/en/latest/index.html) をインスタンス起動時に提供できます。ユーザーデータは、以下を含む一般的な設定シナリオを実行できます。ただし、これらに限定されるものではありません。
+ [ユーザーまたはグループを含む](https://cloudinit.readthedocs.io/en/latest/topics/examples.html#including-users-and-groups)
+ [パッケージのインストール](https://cloudinit.readthedocs.io/en/latest/topics/examples.html#install-arbitrary-packages)
+ [パーティションおよびファイルシステムの作成](https://cloudinit.readthedocs.io/en/latest/topics/examples.html#create-partitions-and-filesystems)

起動テンプレートの Amazon EC2 ユーザーデータは、[MIME マルチパートアーカイブ](https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive)の形式であることが必要です。これは、ユーザーデータがコンピューティングリソースの設定に必要な他の AWS Batch ユーザーデータとマージされるためです。複数のユーザーデータブロックと単一の MIME マルチパートファイルを組み合わせることができます。例えば、Amazon ECS コンテナエージェントの設定情報を書き込むユーザーデータシェルスクリプトを使用して、Docker デーモンを設定するクラウドブートフックを組み合わせることができます。

を使用している場合は AWS CloudFormation、[AWS::CloudFormation::Init](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-init.html) タイプを [cfn-init](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html) ヘルパースクリプトとともに使用して、一般的な設定シナリオを実行できます。

MIME マルチパートファイルには次のコンポーネントが含まれます。
+ コンテンツの種類およびパート境界の宣言: `Content-Type: multipart/mixed; boundary="==BOUNDARY=="`
+ MIME バージョンの宣言: `MIME-Version: 1.0`
+ 次のコンポーネントを含む 1 つ以上のユーザーデータブロック:
  + ユーザーデータブロックの始まりを示す開始境界: `--==BOUNDARY==`。この境界の前の行は空白にしておく必要があります。
  + ブロックのコンテンツの種類の宣言: `Content-Type: text/cloud-config; charset="us-ascii"`。コンテンツの種類の詳細については、[Cloud-Init のドキュメント](https://cloudinit.readthedocs.io/en/latest/topics/format.html)を参照してください。コンテンツタイプ宣言の後の行は空白にしておく必要があります。
  + ユーザーデータのコンテンツ (例えば、シェルコマンドや `cloud-init` ディレクティブのリスト)。
+ MIME マルチパートファイルの終わりを示す、終了境界: `--==BOUNDARY==--`。この境界の前の行は空白にしておく必要があります。

**注記**  
Amazon EC2 コンソールの起動テンプレートにユーザーデータを追加するには、ユーザーデータをプレーンテキストとして貼り付けます。または、ファイルからアップロードすることもできます。 AWS CLI または AWS SDK を使用する場合は、この `base64` JSON ファイルに示すように、[CreateLaunchTemplate](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html) を呼び出すときに、まずユーザーデータをエンコードし、その文字列を `UserData`パラメータの値として送信する必要があります。  

```
{
    "LaunchTemplateName": "base64-user-data",
    "LaunchTemplateData": {
        "UserData": "ewogICAgIkxhdW5jaFRlbXBsYXRlTmFtZSI6ICJpbmNyZWFzZS1jb250YWluZXItdm9sdW..."
    }
}
```

**Topics**
+ [デフォルトおよびオーバーライド起動テンプレート](#default-lt-and-overrides)
+ [起動テンプレートの Amazon EC2 ユーザーデータ](#lt-user-data)
+ [リファレンス: Amazon EC2 起動テンプレートの例](launch-template-examples.md)