새 스팟 인스턴스에 EBS 볼륨을 자동 연결 하시겠습니까?


14

EC2 스팟 인스턴스를 실험하고 있으며 종료 사이에 일부 데이터를 유지해야합니다. 이제 이해하지만 현재 가격이 최대 한도를 초과하면 입찰이 자동 종료됩니다. 종료시 내가 가진 모든 init 스크립트가 실행된다고 가정하여 마운트를 해제하기 전에 데이터를 EBS로 푸시 할 수 있습니다.

내 질문은, 가격이 내려 가면 처음으로 루트 볼륨에로드했을 init 스크립트가 없기 때문에 새로운 스팟 인스턴스에 동일한 EBS 볼륨을 자동으로 마운트하는 방법은 무엇입니까?

커스텀 AMI를 생성해야합니까, 아니면이를 달성 할 수있는 다른 방법이 있습니까?

답변:


11

인스턴스가 실행될 때마다 고정 된 시작점으로 인스턴스를 시작하려는 경우 다음을 수행 할 수 있습니다.

  1. 자신의 AMI를 생성하고 매번 인스턴스로 실행하거나

  2. 표준 기본 AMI에서 새 인스턴스가 시작될 때마다 사양에 따라 소프트웨어를 설치 및 구성하는 사용자 데이터 스크립트를 지정하십시오.

인스턴스 실행간에 상태를 유지해야하는 경우 인스턴스 / AMI 외부에 데이터를 저장해야합니다. 예를 들면 다음과 같습니다.

  1. S3, SimpleDB, DynamoDB, RDS 등의 데이터를 최신 상태로 유지할 수 있습니다.

  2. 시작시 인스턴스가 동적으로 연결 및 마운트되는 영구 EBS 볼륨을 지정할 수 있습니다. 이것은 사용자 데이터 스크립트로 수행 할 수 있습니다.


소리를 설치하는 사용자 데이터 스크립트를 지정하면 흥미로울 것입니다. 스팟 요청이 새 인스턴스를 자동으로 시작할 때 어떻게 할 수 있습니까? 이미 데이터를 저장하는 영구 EBS 볼륨이 있으며 계속 사용할 것입니다.
Jeff

1
스팟 요청을 생성 할 때 각각의 새 스팟 인스턴스로 전달되어야하는 사용자 데이터를 지정합니다.
Eric Hammond

아 나는 cloud-init puting #을 몰랐다! 사용자 데이터에서 처음으로 스크립트를 실행했습니다. 감사합니다
Jeff

3
@Jeff : 그래, 나는 그것을 :-) 채택했다고 인기 AMI를 발명 alestic.com/2009/06/ec2-user-data-scripts을
에릭 하몬드을

이 줄을 따라 스팟 인스턴스가 시작될 때 특정 EBS 볼륨을 루트 디스크로 마운트 할 수 있습니까?
데릭 모리슨

5

GitHub 에서 ec2-spotter 프로젝트 를 확인하십시오 . 설명하는 문제를 해결하기 위해 만들어졌습니다.

@mcenzm의 답변에 설명 된 문제 (# 1 ~ # 4)는 실제이며 ec2-spotter에서 올바르게 처리됩니다.


Dunno는 이것을 다운 버트했지만 코드를 작성하는 데 시간을 낭비하지 않을 수 있음을 의미합니다! 그것을 사랑하십시오.
Jeremy

3

나는 이것을 잠시 동안 시도해 왔으며 여전히 EC2 스팟 인스턴스 및 연결된 스토리지와 관련된 많은 문제가 있습니다.

  1. 연결하려는 볼륨이 인스턴스와 같은 영역에 있지 않을 수 있습니까? 시작시 영역을 지정할 수 없습니다.
  2. init 스크립트를 내부적으로 연결하면 작동하지만 약간 비동기 적이므로 테스트하거나 sleep 10말해야합니다.
  3. AWS 콘솔에 "파티션"이 기본 블록 디바이스로 표시되는 이유를 이해할 수 없습니다. 어쩌면 다른 파티션에서 해적 창 이미지를 거부 할 수 있습니까? (sda 대신 sda1). 파티션 테이블을 찾는 것이 좋습니다.

    여기에 이미지 설명을 입력하십시오

  4. 현재 외부 제어 지점에서 CLI를 사용하여 연결하기 어렵 기 때문에 버전 관리에 스냅 샷을 사용하기가 어렵습니다.

  5. 따라서 일반적으로 ... tar.bz2를 다른 상자에 백업 한 다음 시작할 때 "작업 영역"을 채울 수 있습니다. 이는 소량의 데이터에만 유용하므로 두 볼륨으로 새 ami를 기준으로하는 것이 좋습니다. 스팟 인스턴스는 실제로 "작업 단위"또는 "재시작 가능"작업에 적합하므로 서버에서 작업을 가져 오는 개념이 잘 확립되어 있습니다. 실행을 위해 9 분을 기다리면 디스크를 포맷하지 않아도됩니다.

    1. EBS는 여전히 비정상적이며 "최적화"에 대해 추가 비용을 지불해야합니다. 인스턴스가 "가격이 책정"되었을 때 완료된 작업을 90 년대 정도 업로드하는 것보다 여전히 빠릅니다.

    2. 나는 이것이 "탄력적 인 파일"오퍼링으로 모든 것이 바뀔 것이라고 생각한다.


1
1. AZ 영역에 연결된 서브넷을 지정합니다. 2. / dev / xvdx가 나타날 때까지 기다리는 것이 쉽습니다. 3. 이것은 어떻게 관련이 있습니까?
Morgan Christiansson

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.