2012-05-06 3 views
3

Windows Server 2008이 설치된 AMI가 EBS 루트 장치로 사용됩니다. boto와 원격 데스크톱을 사용하여 인스턴스를 시작할 수는 있지만 일시적인 저장소를 마운트 할 수는 없습니다. 내 BlockDeviceMapping에 문제가 있습니까? 이 코드를 실행하면boto를 사용하여 Windows ec2 인스턴스에 임시 저장 영역을 마운트하는 방법은 무엇입니까?

import boto 
from boto.ec2.connection import EC2Connection 
conn = EC2Connection(mykey, mysecretkey) 
bdm = boto.ec2.blockdevicemapping.BlockDeviceMapping({'/dev/xvdb':'ephemeral0'}) 
conn.run_instances(myami, key_name=mykeyname,security_groups=[mysecgroup],block_device_map=bdm) 

는, 인스턴스가 화재와 내가 액세스 할 수 있지만 난 단지 루트 장치가 장착 참조 :

여기 내 코드입니다.

+0

나는 boto를 모르지만 장치 이름을 장치 드라이버에 매핑하는 것처럼 보이지만 장치를 포맷하거나 네임 스페이스에 장치를 마운트하는 데 아무 것도하지 않습니다. – sarnold

+0

@sarnold hmmmmm. 설명서를 읽으면 aws가 설치 작업을 수행 할 것임을 나타낼 수 있지만 잘못 될 수 있습니다. Amazon EBS 기반 Windows 인스턴스에서 인스턴스 저장소 액세스 '섹션을 참조하십시오. http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/InstanceStorage.html – oob

답변

5

나는 그것을 알아 냈다. 블록 장치 맵은 문자열 맵에 문자열이어야한다고 생각하게하는 몇 가지 예를 보았지만 실제로는 BlockDeviceType 맵에 대한 문자열이어야합니다. 다음은 내가 작동하게 된 방법입니다.

from boto.ec2.connection import EC2Connection 
from boto.ec2.blockdevicemapping import BlockDeviceType, BlockDeviceMapping 
conn = EC2Connection(mykey, mysecretkey) 
xvdb = BlockDeviceType() 
xvdb.ephemeral_name='ephemeral0' 
bdm = BlockDeviceMapping() 
bdm['/dev/xvdb'] = xvdb 
conn.run_instances(myami, key_name=mykeyname,security_groups=[mysecgroup],block_device_map=bdm) 

로그인 할 때 임시 드라이브가 표시됩니다. AWS 관리 콘솔에 블록 장치로 나타나지는 않습니다. 여전히 루트 장치 만 볼 수 있습니다.

Here은 문제 해결에 도움이되는 코드 샘플/포럼 질문입니다.