AWS 스팟 요금을 자동으로 확인하는 방법은 무엇입니까?


15

나는 우리가 시작한 에이전트 박스의 가격을 확인하는 Jenkins 직업에 대해 생각하고 있습니다. 가격이 급등하는 경우가 많으며 새로운 에이전트가 나오지 않는다는 사실을 알리기까지 1-2 시간이 소요됩니다. 그런 다음 수동으로 들어가서 현물 가격을 확인하고 그에 따라 조정하거나 영역을 전환해야합니다.

나의 첫 번째 본능은 가장 좋은 경로는 시간당 Jenkins 작업을 수행 aws ec2 describe-spot-instance-requests하여 실패한 요청을 확인한 다음 실패로 인해 우리를 늦추는 것입니다. 그러나 성공 / 실패한 요청을 보지 않고 실제로 어려운 가격을 비교하여 정확한 가격을 비교할 수있는 더 깨끗한 방법이 있는지 궁금합니다.

누구 비슷한 것을 설정? 어떻게 했어요?


1
합리적인 질문입니다.하지만 왜 인스턴스가 실제로 가치가 있는지 입찰하지 않고 여러 인스턴스 유형을 선택하십시오 (필요한 것보다 큰 인스턴스를 포함하여 더 작은 인스턴스 스팟 가격이 상승 할 때 때때로 더 저렴합니다 ...) 때때로 (지금 내가 쓰는 것을 포함하여) 때때로 cc2.8xlarge가 있습니다. 왜냐하면 코어 4 배와 메모리 4 배에도 불구하고 현재 필요한 c3.2xlarge보다 저렴하기 때문입니다. 시장에 따라 유형 선택 및 AZ 배치?
Michael-sqlbot

1
@ Michael-sqlbot 프로세스의 그 부분에서 말하지 않았습니다. 감사 목적으로 특정 크기의 인스턴스를 구매한다는 내용의 문서가 있으므로 이것이 바로 우리가 고집하고있는 것입니다. 비 이상적인 상황을 최대한 활용하려고합니다.
Alex

1
충분합니다, @Alex. 당신이 그것을 고려하지 않은 경우에 대비해 내가 그것을 던질 것이라고 생각했습니다.
Michael-sqlbot

@Alex 관심이 없으면 특정 인스턴스 크기가 청구서에서 쉽게 볼 수 있습니까? 당신은 (그 대신에!) 태그를 사용하여 비용 탐색기에서 볼 수 있기 때문입니다.
Tim Malone

답변:


15

autospotting 이라는 오픈 소스 도구를 발견했습니다 .

기존 온 디맨드 AutoScaling 그룹에서 활성화되면 EC2 스팟 인스턴스가 시작됩니다.이 인스턴스는 적어도 저렴하고 현재 온 디맨드 인스턴스와 동일하게 구성되어 있습니다. 새 인스턴스가 준비 되 자마자 그룹에 추가되고 주문형 인스턴스가 그룹에서 분리되어 종료됩니다.

우리는 to-do 파이프 라인에 이것을 가지고 있으며, 일단 완료하면 더 많은 컨텍스트를 추가 할 수 있습니다.

최신 정보:

최근 회의에서 시연 된 또 다른 도구는 mapbox / spotswap입니다.

이것은 약간 다르게 작동합니다. 온 디맨드 인스턴스 또는 예약 인스턴스를 사용하여 일반 ASG를 모니터링 한 다음 규모가 발생하면 별도의 ASG에서 유사한 컴퓨팅 수준의 스팟을 입찰 및 프로비저닝합니다.


2
Hashfyre 사이트에 오신 것을 환영합니다 :)
Dawny33

1
저는 AutoSpotting의 저자입니다. 언급 해 주셔서 감사합니다! 아직 시도해 보셨습니까? 나는 사용자 피드백에 귀를 기울입니다.
Cristian Măgherușan-Stanciu

6

개인적으로 다음과 같은 모델을 고려할 것입니다.

Timed Lambdas -> Checks spot price -> Push to ElastiCache

그런 다음 인스턴스가 필요할 때 :

Timed lambdas -> Pulls spot price from ElastiCache, sets it as environment variable on your Machine where you spin up IaC from -> This is parsed as argument to IaC code and pushes out the spot price

예를 들어 람다 (예 : 중요도에 따라 10, 25, 50 % 증가) 및 온 디맨드 하드 캡 내에서 일부 허용 오차를 설정할 수도 있습니다. 또한 가장 저렴한 AZ 찾기, 상대적으로 가장 저렴한 스팟 가격 찾기 ( 2xt2.mediumvs t2.large) 등 을 처리하는 논리를 구축하기에 좋은 장소입니다 .


정보를 위해서, 삭제 된 답변을 편집하고 삭제를 요청하도록 플래그를 지정할 수 있습니다. (해를 끼치 지 않음, 그것은 단지 유익합니다 :)
Tensibai

1
영원 토록 나의 잘못 인도 된 날을 상기시켜주기 위해 부끄러운 마음을 남길 것입니다.
Henry

Rofl, 정말 부끄러운 일이 없습니다, 걱정하지 마십시오 :)
Tensibai

3
나의 스칼라 정의 내가 누구인지
Henry

멋진 아이디어-ElastiCache 클러스터가 아직없는 경우 DynamoDB 테이블로 가격을 푸시 할 수 있다고 언급 할 가치가 있습니다. 또는 S3 버킷의 JSON 파일 일 수도 있습니다.
Tim Malone

4

이 작업을 수행하는 도구에 독립적 인 방법을 알려 드리겠습니다.

가격이 급등하는 경우가 많으며 새로운 상담원이 나오지 않는다는 사실을 알리기까지 1-2 시간이 소요됩니다. 그런 다음 수동으로 들어가서 현물 가격을 확인하고 그에 따라 조정하거나 구역을 전환해야합니다.

우리가 구축하는 인프라에서 동일한 문제에 직면했습니다. 따라서 if-else인스턴스의 온 디맨드 가격에 따라 입찰 가격을 설정하는 스타일 블록 이있었습니다 .

AWS에는 인스턴스의 온 디맨드 가격을 얻기 위한 API 가 있습니다. 이 파이썬 래퍼 를 목적으로 사용했습니다.

우리는 온 디맨드 가격을 가지고 그래서 일단, (의 말을하자 X, 우리는 연결) if-else하는 스타일 블록, 0.4*X, 0.6*X, 0.8*X, X, 우리는 40 %, 60 %, 범위의 입찰 가격의 80 %를하려고 수단 수요 가격. 모두 실패하면 온 디맨드 인스턴스 생성으로 돌아갑니다.

또한 이는 AWS의 현재 스팟 요금과 무관하므로 주문형 가격보다 높은 가격을 지불하지 않습니다.

그러나 즉시 작업을 수행 할 수있는 방법을 찾고 있다면 Hashfyre의 솔루션이 필요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.