부팅 시 새 EC2 Linux 스팟 인스턴스에 영구 보조 EBS 볼륨을 자동으로 연결하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2021년 10월 18일

사용자 데이터 스크립트를 사용하여 부팅 시 새로운 Amazon Elastic Compute Cloud(Amazon EC2) Linux 스팟 인스턴스에 영구 보조 Amazon Elastic Block Store(Amazon EBS) 볼륨을 자동으로 시작하고 싶습니다. 어떻게 해야 하나요?

간략한 설명

부팅 시 영구 보조 EBS 볼륨을 새 EC2 Linux 스팟 인스턴스에 자동으로 연결하려면 EC2 시작 템플릿에 사용자 데이터 스크립트를 추가합니다. 스팟 인스턴스 요청을 구성할 때 템플릿을 사용합니다.

사전 조건

Amazon EC2에 대해 최소한 볼륨 연결 액세스 권한이 부여된 AWS Identity and Access Management(IAM) 역할을 생성하거나 사용합니다. 이 역할은 시작 템플릿에 연결됩니다.

해결 방법

1단계: IAM 역할 및 사용자 데이터 스크립트로 시작 템플릿 구성

1.    Amazon EC2 콘솔을 엽니다.

2.    시작 템플릿(Launch Templates)을 선택한 다음 시작 템플릿 만들기(Create launch template)를 선택합니다.

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.    템플릿에 사용자 데이터 스크립트를 추가합니다. 다음은 예제 사용자 데이터 스크립트입니다. 리전(region)volume-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.    스팟 인스턴스(Spot Instance)를 선택한 다음 스팟 인스턴스 요청(Request Spot Instance)을 선택합니다.

2.    시작 템플릿(Launch Templates)을 선택한 다음 1단계에서 만든 시작 템플릿을 선택합니다. 템플릿에 구성된 모든 정보가 자동으로 채워집니다.

3.    EBS 볼륨과 동일한 가용 영역을 선택합니다.

4.    스팟 요청 생성(Create Spot Request)을 선택합니다.

스팟 요청이 완료되면 부팅 시 영구 보조 EBS 볼륨이 새 스팟 인스턴스에 자동으로 연결됩니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?