2012-03-30 7 views
3

PHP를 통해 스폿 요청을 할 때 태그를 포함하고 싶습니다. 당신이 좋겠 있도록 자리 입찰을 발행 할 때AWS EC2 스팟 인스턴스 스팟 요청시 PHP add tag

$ec2->create_tags($instance_id, array(
     array('Key' => 'Name', 'Value' => 'MyTestMachine'), 
    )); 

그러나, 인스턴스가 바로 시작되지 않았습니다 : 온 디맨드 인스턴스를 만들 때 인스턴스를 만들 수 있습니다, 그것은 다음과 같은 발행 인스턴스의 사용 요청 단계에서 태그를 추가 할 수없는 경우이를 처리 할 수있는 감시자 태그를 만들어야합니다. 이 문서가 어떻게 보이거나 보이는지 보여주는 문서를 찾지 못했습니다. 존재합니까?

답변

3

답변은 인스턴스가 실제로 만들어 질 때까지 태그를 할당 할 수 없다는 것입니다. 이것을 태그하기 위해 리스너 데몬을 사용하여 새 인스턴스를보고 시작한 후에 태그를 붙입니다. 리스너없이 본에 대한 해결책을 찾고 미래의 사람들을 위해

+0

어떻게 리스너 데몬을 만들었습니까? –

1

:

또한 인스턴스 태그 자체를 가질 수의 생성되면, 사용자 데이터의 CLI에 태그 요청을 포함하여. 이는 EC2 인스턴스에서 많은 EC2 기본 AMI (CLI가 기본적으로 설치되어 있음)의 부팅시 스크립트로 실행됩니다.

은 (재고 이미지를 사용하여) 그렇게하려면
  1. 는 EC2에 태그를 만들 수있는 권한이있는 IAM 역할을 만듭니다.
  2. 스팟 인스턴스 요청에서 역할을 지정하십시오.
  3. 사용자 인스턴스에서 사용자 데이터를 요청하려면 create tags CLI 명령을 포함하십시오 (Linux의 경우 창을 사용하는 경우 powershell과 동등한 조치를 취할 수도 있음). 당신은 EC2 메타 데이터 서비스에서 인스턴스 ID를 얻기 위해 인라인 명령이 있음을 볼 수 있습니다 :

    #!/bin/bash 
    aws ec2 create-tags --resources `wget -q -O - http://169.254.169.254/latest/meta-data/instance-id` --tags Key=somekey1,Value=somevalue1 Key=somekey2,Value=somevalue2 
    

당신은을 사용하는 경우 당신은 64 기수로서 상기 사용자 데이터를 e 노드해야 할 수도 있습니다 CLI 또는 SDK를 사용하여 현장 요청을 할 수 있습니다. AWS 웹 콘솔을 사용하면 다음과 같이 사용자 데이터를 전달할 수 있습니다.

user="$(cat /scripts/userdata.sh | base64 -w 0)" 

aws ec2 request-spot-instances \"UserData\": \"$user\",\"InstanceType\": \"m1.small\"}" 

그게 전부입니다!

관련 문제