2013-03-25 2 views
33

Я только начинаю изучать amazon ec2. И я хочу услышать некоторые объяснения или, может быть, краткие примеры того, как и почему вам нужны «оговорки» в amazon ec2. Я использую python framework boto для управления сервисом Amazon. И до сих пор я не вижу никаких причин, почему мы имеем этот дополнительный шаг для того, чтобы получить экземпляры, например:Какова цель «Резервирования» в Amazon EC2

reservations = ec2.get_all_instances() 
instances = [instance for res in reservations for instance in res.instances] 

Вот как я получаю все мои экземпляры, несколько раз я делаю это так :

reservation = ec2.run_instances(image_id, min_count, max_count, key_name .....) 
instance = reservation.instances[0] 

и чем я использовать эти экземпляры, чтобы прикрепить объемы, добавлять теги, добавлять группы безопасности и так далее .... Но какова цель boto.ec2.instance.Reservation (я не спрашиваю только о рамках Boto, из конечно, это было предпочтительным, но в целом это означало в Amazon EC2)

>>> reservation = reservations[0] 
>>> reservation 
Reservation:r-74d11509 
>>> dir(reservation) 
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'connection', 'endElement', 'groups', 'id', 'instances', 'item', 'owner_id', 'region', 'startElement', 'stop_all'] 
>>> reservation.__class__ 
<class 'boto.ec2.instance.Reservation'> 

Я не нашел полезных методов. Пожалуйста, объясните мне, зачем нам это нужно? В чем причина этого? В каких случаях вы будете использовать его?

+1

Вы также можете попробовать 'помощь (бронирование)'. – cyroxx

+0

@cyroxx благодарю вас за то, что вы указали мне очень полезную команду, но я до сих пор не вижу ответа на свой вопрос. – Vor

ответ

31

С моей точки зрения, бронирование - это акт экземпляров запуска. В основном, резервирование - это то, что вы do, а экземпляр - это то, что вы получите. Если вы запускаете несколько экземпляров с одного изображения через run_instances(), вы делаете одно резервирование, но получаете несколько экземпляров.

run_instances вместе с Reservation.stop_all() позволяет запускать кучу экземпляров, дождаться их завершения задачи и затем остановить их всех сразу.

+1

Это неверно, и это неправильный ответ. Зарезервированные экземпляры или экземпляры по запросу аналогичны компаниям, которые позволяют вам платить 20 долларов за год против 8 долларов США за месяц. Резервные экземпляры означают, что вы заблокировали цену, но вы платите деньги авансом, чтобы обеспечить эту цену. По требованию, по запросу. –

+16

@ RyanParman: глядя на ваш профиль, я думаю, вы знаете, о чем говорите, однако ... вы уверены, что не запутаете ответы «зарезервированные экземпляры» и «ReservationInfoType» API, иначе «boto.ec2.instance». Reservation'? – georg

+0

Хорошая точка; Я может быть. Поскольку Митч (автор boto) работает в AWS, я бы спросил на [официальных форумах] (https://forums.aws.amazon.com/forum.jspa?forumID=132). Если вы не согласны с этим, вы можете [указать проблему] (https://github.com/boto/boto) в GitHub. Опять же, если я допустил ошибку, что @ thg435 говорит, что у меня может быть, тогда он вполне может быть прав. Виноват. : o –

10

От boto docs:

Оговорка соответствует команде для запуска экземпляров. Вы можете увидеть какие экземпляры связаны с оговоркой:

>>> instances = reservations[0].instances 
>>> instances 
[Instance:i-00000000] 
4

Это интересная нить и комментарии от Ryan Parman & Rose Perrone - Я могу попросить Митча об истории в ре: Invent позже в этом году (2015), но если вы делаете любой нормальный вид aws ec2 describe-instances (или эквивалент от Боты, SDKs и т.д.), вы увидите все экземпляры перечислять как «оговорка» в некотором общем смысле:

{ 
    "Reservations": [ 
     { 
      "OwnerId": "123456789012", 
      "ReservationId": "r-9aa12345", 
      "Groups": [], 
      "Instances": [ 

в этих данных является a ReservationId типа r-12345bc8, но нигде это не соответствует резервированию, которое вы платите за блокировку в более низкой ставке (удобство биллинга, а не фактический тип экземпляра, который вы разворачиваете). Поэтому моя догадка заключается в том, что это интересный небольшой остаток, когда они впервые создали систему - каждый экземпляр, необходимый для «резервирования» слота для запуска. Только позже они придумали модель ценообразования, которая использовала тот же термин.

Но опять же, это только догадка.

Похоже, что здесь явно существует перекрытие двух значений слова, которые, как представляется, не связаны друг с другом.