起動時に永続的なセカンダリ EBS ボリュームを新しい EC2 Linux スポットインスタンスに自動的に添付するにはどうすればよいですか。

最終更新日: 2021 年 10 月 18 日

ユーザーデータスクリプトを使用して、起動時に永続的なセカンダリ Amazon Elastic Block Store (Amazon EBS) ボリュームを新しい Amazon Elastic Compute Cloud (Amazon EC2) Linux スポットインスタンスに自動的に起動したいと考えています。これを実行するにはどうすればよいですか。

簡単な説明

起動時に永続的なセカンダリ EBS ボリュームを新しい EC2 Linux スポットインスタンスに自動的に添付するには、EC2 起動テンプレートにユーザーデータスクリプトを追加します。スポットインスタンスリクエストを設定するときにテンプレートを使用します。

前提条件

少なくとも Amazon EC2 にボリューム添付アクセス権限が付与されている AWS Identity and Access Management (IAM) ロールを作成または使用します。このロールは起動テンプレートに添付されます。

解決方法

ステップ 1: IAM ロールとユーザーデータスクリプトを使用して起動テンプレートを設定する

1.    Amazon EC2 コンソールを開きます。

2.    [起動テンプレート] を選択し、[起動テンプレートの作成] を選択します。

3.    インスタンス AMI、タイプ、およびサイズを選択します。または、既存の AMI を選択します。

4.    キーペアをテンプレートに関連付けます。

5.    EBS ボリュームと同じアベイラビリティーゾーン内のサブネットを選択します。

6.    [Advanced Details] を選択します。

7.    以下の例に示すように、少なくともボリューム添付のアクセス権限が付与されている IAM ロールを追加します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AttachVolume",
                "ec2:DetachVolume"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:volume/vol-xxxxxxxxxxxx"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeVolumes",
            "Resource": "arn:aws:ec2:*:*:volume/vol-xxxxxxxxxxxx"
        }
    ]

8.    ユーザーデータスクリプトをテンプレートに追加します。以下は、ユーザーデータスクリプトの例です。リージョンボリューム ID を環境に合わせて置き換えます。

#!/bin/bash
      OUTPUT=$(curl http://169.254.169.254/latest/meta-data/instance-id)
      aws ec2 attach-volume --volume-id vol-xxxxxxxxxxxx --device /dev/xvdf --instance-id $OUTPUT --region ap-southeast-1

ステップ 2: ステップ 1 で作成した起動テンプレートを使用して、スポットリクエストを設定する

1.    [スポットインスタンス] を選択し、[スポットインスタンスのリクエスト] を選択します。

2.    [起動テンプレート] を選択し、ステップ 1 で作成した起動テンプレートを選択します。テンプレートに設定されているすべての情報が自動入力されます。

3.    EBS ボリュームと同じアベイラビリティーゾーンを選択します。

4.    [スポットリクエストの作成] を選択します。

スポットリクエストが完了すると、永続的なセカンダリ EBS ボリュームは、起動時に新しいスポットインスタンスに自動的に添付されます。


この記事は役に立ちましたか。


請求に関するサポートまたは技術サポートが必要ですか?