2011-11-21 5 views
2

.NET SDK를 사용하고 인스턴스를 생성 한 직후에 새 인스턴스에 태그를 지정하려고합니다. RunInstances 직후에 CreateTags를 사용합니다.AWS, EC2 - RunInstances 이후에 CreateTags

대개의 경우 작동하지만 대개 인스턴스 ID가 유효하지 않은 오류가 발생합니다 (나중에 콘솔을 체크인하거나 다시 시도하면 유효합니다).

나는 SQS, SDB 등으로 '궁극적으로 일관성이있다'는 것을 알고 있으며, SDK가 호출을 다시 시도 할 필요가 있습니다. 그러나 SDK를 사용하면 인스턴스를 생성하기위한 일반적인 호출을 통해 그것이 필요하다고 생각했다. 더 좋은 것은 그것이 좋은 일이라고 생각하지 않습니다. 특정 예외를 찾고 그것이 작동 할 때까지 거의 무한히 재 시도합니다.

인스턴스를 생성하고 태그를 지정하는 프로세스가 폴링 및 재 시도를위한 중복 중앙 집중식 시스템이있는 분산 된 워크 플로우에 입력되어야하는 경우 나는 그 상황이 좋지 않다고 생각합니다!

관련 문서에서 관련 항목을 찾을 수없는 것 같습니다. RunInstances를 호출하고 인스턴스 ID로 응답을 받으면 인스턴스 ID가 즉시 태그 지정에 유효해야합니다. 지금까지 가능한 솔루션에 대한

내 생각 : RunInstances (나쁜, 임의 지연)

  • 을 한 후 몇 초

    • 고정 지연이 즉시 시도 다른 지연 5 초와 최대 다시 시도 'N'번
    • 이렇게 연결된 API 호출을 처리하기 위해 분산 된 워크 플로를 만들면 신뢰할 수있는 EC2 인스턴스의 중앙 중복 팜이 필요합니다.
    • 내가 부를 수있는 다른 설명 찾기 다른 API 메소드 또는 요청에 무엇인가 설정하여 전화를 걸어서 작동하게하십시오.

    다른 누구도이 경험이 있거나 해당 분야에 대한 지식이 있습니까?

    (난 아직 여기 AWS 커뮤니티 포럼에 스레드, 아무것도했습니다 : https://forums.aws.amazon.com/thread.jspa?threadID=80489&tstart=0)

  • 답변

    2

    난 당신이 첫 번째 옵션을 맞아 두려워 -이 RunInstances 호출 후 유한, 변수 시간이 걸립니다 인스턴스에 예약 ID가 할당되기 전에 실행을 시작하고 추가 호출에 사용할 수있게됩니다.

    내 제어 소프트웨어는 인스턴스가 'Running' 상태가 될 때까지 런처 스레드에서 5 초 간격으로 잠자기 상태가됩니다.이 시점에서 다른 호출을 시작할 수 있습니다.

    +0

    확인 만하면됩니다. 즉, 인스턴스 ID로 즉시 호출이 반환되지만 인스턴스 ID가 유효하지 않고 쓸데없는 동안 잠시 동안 반환됩니다. (나는 인스턴스를 실행할 필요가 없다. 단지 태그를 달고 싶다.) –

    +0

    얻는 InstanceID는 새로운 인스턴스에 할당 된 진짜 ID라는 의미에서 유효하다. 그러나 Xen Hipervisor는 비동기 적으로 VM을 구성하고 실행하도록 설정하므로 잠시 동안 ID가 주어지면 나머지 API가 관련되어 호출 될 때까지 인스턴스가 실제로 존재하지 않습니다 해당 ID를 사용하는 다른 메소드에 오류가 발생합니다. –

    +0

    약간 혼란 스럽지만, 시스템은 인스턴스 ID * 어딘지 *를 기록해야합니다. 예를 들어, 사용할 AMI를 추적해야합니다. CreateTags는 인스턴스 ID별로 태그 정보를 저장하므로 태깅이 VM, 하이퍼 바이저 또는 기타의 상태와 관련이있는 이유를 상상할 수 없습니다. 이 모든 것을 인용 할만한 게 있다고 생각지 않는다. 나는 몇몇 문서를 찾고 싶었다. –

    1

    태그 지정 API는 Xen Hypervisor API의 태그 지정 기능 위에 구현됩니다 (즉, see the tags field of a VM in the XenAPI). 반대로 인스턴스 ID는 AWS 관리 인프라 데이터베이스의 항목에 해당합니다. 따라서 인스턴스 ID가 호출자에게 반환 된 후에 인스턴스가 VM 생성 대기열에 포함될 수 있습니다. 이 접근법의 부작용은 AWS 인프라를 위해 예약되어 있으므로 일부 태그를 만들 수 없다는 것입니다.

    @Jonners가 지적한 것처럼, 태그 지정은 VM에 의존하는 유일한 API가 아닙니다. 예 : 인스턴스를 중지합니다. 그러나 "하이퍼 바이저"는 NIST에서 허용하는 상표권 분쟁을 피할 가능성이 더 높습니다. Guide to Security for Full Virtualization Technologies 인 반면, "hipervisor"는 IBM 문서에만 기인 한 것입니다.

    관련 문제