2013-05-15 1 views
2

Amazon ec2 API에는 두 가지 관련 질문 또는 문제가 있습니다. 파이썬과 boto 패키지를 사용하고 싶습니다. 그게 내가 코드를 제시하는 것과 같습니다. 동등한 쉘 ec2- * 명령을 사용하면 정확히 동일한 결과를 얻을 수 있습니다.Amazon aws/ec2 이미지의 블록 장치 매핑

처음에는 데비안 기반 공개 AMI 이미지 인 에서 인스턴스를 생성하려고합니다. 이미지에없는 데비안 패키지 을 설치하고 싶기 때문에 더 큰 루트 "파티션"을 원합니다. 문서는이 같은 일을한다고 생각하는 나에게 을 주도 :

import boto.ec2 as BE 
import boto.ec2.blockdevicemapping as BEM 

conn=BE.connect_to_region('us-east-1') 
bdt=BEM.BlockDeviceType() 
# I want a 10G root device, not a 1G 
bdt.size=10 
bdm=BEM.BlockDeviceMapping() 
bdm['/dev/sda1']=bdt 
reservations=conn.run_instances('ami-1234abcd', key_name='mykey', 
           instance_type='m1.medium', block_device_map=bdm) 

그러나 이것은 전혀 영향이없는 것으로 보인다. 인스턴스는 잘, 올바른 이미지 및 모든 양산하고 있지만

그래서, 나는 내가 그것을 수정하기 전에 내가 어떻게 든 이미지에서 BlockDeviceMapping를 초기화해야 어쩌면 생각 :-(루트 장치는 여전히 1G입니다. I를 이런 식으로 시도 :

bdm=conn.get_image_attribute('ami-1234abcd', attribute='blockDeviceMapping') 

을 그리고 이것은 ' 무단 조작 시도'또는 이와 유사한 말을 이상한 예외 추적 결과 그리고 이것은 나 자신이 다른 인스턴스를 동결 만든 이미지 에 대해서도 발생

.!

끔찍한 웹 인터페이스에 인스턴스를 생성 할 때 장치 구성을 수정하기는 쉽습니다. 그 방법을 가르쳐주십시오 programatically! 감사.

+0

인스턴스를 시작한 후 파일 시스템의 크기를 조정 해 보셨습니까? – garnaat

답변

0

코드가 올바르게 표시됩니다.

는 우분투 AMI를 시작합니다 같은 코드를 사용해보십시오 (여기 그들 모두를 찾을 수 있습니다 : http://cloud-images.ubuntu.com/locator/ec2/)

우분투 AMI가 시작

, 그것은 루트 블록 디바이스 볼 것이다. 장치가 루트 파일 시스템보다 크면 루트 파일 시스템의 크기를 자동으로 조정하여 루트 블록 장치를 채 웁니다. 소란스럽지 않습니다. 다른 모든 것들은 똑같이 작동합니다.

이것은 거의 항상 원하는 것입니다.

우분투에서 작동하는 경우 최소한 코드가 정확한지 확인하십시오. 그런 다음 Debian rootfs의 크기를 조정하는 방법을 알아야합니다 (또는 우분투 만 사용하십시오).