2014-11-20 12 views
0

나는 bees with machine gun을 성공적으로 사용하려고 노력해 왔습니다.아마존 프리 티어를 사용하는 기관총이있는 꿀벌

내가 이해하는 한, 이것은 대상 (웹 사이트)에 분산 부하 테스트를 수행하기 위해 AWS를 사용하여 EC2 인스턴스 (꿀벌)를 만드는 패브릭 스크립트 일뿐입니다.

다음은 내가 취한 조치입니다.

. AWS IAM으로 이동하여 새 사용자를 만들고 관리자 권한이있는 그룹에 할당되었습니다.

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": "*", 
     "Resource": "*" 
    } 
    ] 
} 

이 사용자를 생성하면 aws_access_key_id 및 aws_secret_access_key가 표시됩니다. . 이 자격 증명을 사용하여 다음 위치에 .boto 파일을 만들었습니다.

. 이 .boto 파일을 내 (로컬) 홈 디렉토리에 저장합니다.

. 또한 "public"이라는 보안 그룹을 만들고 ssh 액세스를 활성화했습니다.

SSH TCP 22 0.0.0.0/0 

. 로컬 .ssh/폴더 내의 서버에 연결하는 데 사용하는 .pem 키를 넣습니다. 나는 또한 0660 :

[email protected] 1 development staff 1.7K Nov 19 15:11 key.pem 

으로 chmod. 나는 기관총으로 꿀벌을 설치했다 LOCALLY. 모든 것이 좋아 보인다,하지만 난 실행하면

bees up -s 2 -k key -i ami-XXXXXX -g public -z us-west-2b -l ubuntu 

는 출력 :

connecting to the hive. 
Attempting to call up 2 bees. 

Traceback (most recent call last): 
    File "/usr/local/bin/bees", line 5, in <module> 
    main.main() 
    File "/Library/Python/2.7/site-packages/beeswithmachineguns/main.py", line 127, in main 
    parse_options() 
    File "/Library/Python/2.7/site-packages/beeswithmachineguns/main.py", line 111, in parse_options 
    bees.up(options.servers, options.group, options.zone, options.instance, options.login, options.key) 
    File "/Library/Python/2.7/site-packages/beeswithmachineguns/bees.py", line 104, in up 
    placement=zone) 
    File "/Library/Python/2.7/site-packages/boto/ec2/connection.py", line 974, in run_instances 
    verb='POST') 
    File "/Library/Python/2.7/site-packages/boto/connection.py", line 1188, in get_object 
    response = self.make_request(action, params, path, verb) 
    File "/Library/Python/2.7/site-packages/boto/connection.py", line 1112, in make_request 
    return self._mexe(http_request) 
    File "/Library/Python/2.7/site-packages/boto/connection.py", line 942, in _mexe 
    request.body, request.headers) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 973, in request 
    self._send_request(method, url, body, headers) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1007, in _send_request 
    self.endheaders(body) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 969, in endheaders 
    self._send_output(message_body) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 829, in _send_output 
    self.send(msg) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 791, in send 
    self.connect() 
    File "/Library/Python/2.7/site-packages/boto/https_connection.py", line 119, in connect 
    sock = socket.create_connection((self.host, self.port), self.timeout) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 571, in create_connection 
    raise err 
socket.timeout: timed out 

그런 다음, 내 첫 번째 질문은 :

는 AWS는 나에게 무료로 사용 요구에 EC2 인스턴스를 만들 수 있습니까 층?

AWS 무료 티어 기능 외. 제가 누락 된 것이 있습니까? 발견 한 모든 웹 자습서를 따라이 문제를 해결했습니다. 불운.

문제가 무엇인지 압니까?

감사합니다. 레안드로

답변

2

문제는, 내 생각, 당신의 BOTO 설정 파일에서이 라인 :

ec2_region_endpoint = ec2-54-148-72-140.us-west-2.compute.amazonaws.com 

이 그것을 EC2 요청을이 호스트 이름을 사용하려고한다는 것을 BOTO 말하고 있지만이 될 것으로 보인다 이러한 요청에 응답 할 수없는 EC2 인스턴스의 호스트 이름.

이 줄을 제거하고 boto가 EC2 서비스에 대해 미리 구성된 호스트 이름을 사용하게하면 ok입니다.

+0

감사합니다. @ garnaat! ec2_region_endpoint boto 구성 줄을 제거했습니다.EC2ResponseError : 400 잘못된 요청 - 잘못된 가용성 영역 : [us-west-2b] ec2_region_name boto 구성 줄을 제거하고 스크립트를 다시 실행합니다 (항상 -z 플래그를 사용하여 영역을 지정합니다).). 그것도 작동하지 않았다. – leamasuero

+0

''region_name''은 가용성 영역이 아닌 영역이어야합니다. 그래서''우리 - 서쪽 -2'보다는 오히려''우리 - 서 -2 ''라고합니다. 현재 받고있는 오류에 대한 세부 정보를 제공해 주시겠습니까? – garnaat

+0

당신 말이 맞아요. 문제는 지역 및 구역과 관련이 있습니다. EC2 명령 줄 인터페이스 도구를 설치하고 ec2-describe-availability-zones 명령을 사용하여 내 영역을 검사했습니다. 그런 다음이 정보를 사용하여 .boto 및 명령을 적절하게 조정합니다. 그것은 지역과 지역 사이의 혼란이었습니다. 대단히 감사합니다 !! – leamasuero