あまり日本語情報が充実していないのでメモメモ~。
◆EC2の東京リージョンにつなげる
>>> import boto.ec2
>>>
>>> tokyo = boto.ec2.connect_to_region('ap-northeast-1')
>>>
>>> tokyo
EC2Connection:ec2.ap-northeast-1.amazonaws.com
◆EC2インスタンスを起動する
>>> reservation = tokyo_ec2.run_instances(image_id='ami-300ca731', key_name='testkey', instance_type='t1.micro', security_groups=['testgroup'])
※インスタンスを起動すると、Reservationというオブジェクトが返ってくる。これは同時に起動されたインスタンスのコレクション。
クラス変数として、
self.id
self.owner_id
self.groups
self.instances
を持つ。
つまり、インスタンスを確認するには、
>>> reservation.instances
[Instance:i-8899ef89]
とする。
◆tagをつけるには、、、
reservation.instances[0].add_tag(key='test',value='testvalue')
とかってする。
◆tagをキーにしてインスタンスを取得するには、、、
tagのkeyで取得する。
>>> tokyo.get_all_instances(filters={'tag-key':'test'})[0].instances
[Instance:i-aa0f71ab]
tagのvalueで取得する。
>>> tokyo.get_all_instances(filters={'tag-value':'testvalue'})[0].instances
[Instance:i-aa0f71ab]
keyとvalueの組み合わせで取得する。これが一番使うのかな~
>>> tokyo.get_all_instances(filters={'tag-key':'test', 'tag-value':'testvalue'})[0].instances
[Instance:i-aa0f71ab]
とかってすればいいんだけど、これだと "key:value" の組み合わせが1つしか指定できないので、
>>> tokyo.get_all_instances(filters={'tag:test': 'testvalue'})[0].instances
とすれば、複数の指定が出来る。
◆パブリックDNSを取得する
起動した直後は、情報がそろっていないため、microインスタンスなら1分程度待機し、
>>> reservation.instances[0].update()
u'running'
として更新する。
その後、
>>> reservation.instances[0].public_dns_name
u'ec2-46-51-226-124.ap-northeast-1.compute.amazonaws.com'
とすることでパブリックDNSを取得できる。
プライベートDNSは、
>>> reservation.instances[0].private_dns_name
u'ip-10-146-70-41.ap-northeast-1.compute.internal'
とする。
ひとまず簡単なところではこんな感じ。
◆一応最後に、起動したインスタンスを終了しておく
状態を確認
>>> reservation.instances[0].state
u'running'
インスタンスIDを確認
>>> reservation.instances[0]
Instance:i-8899ef89
インスタンスを削除
>>> reservation.instances[0].terminate()
落ちて行くのを確認
>>> reservation.instances[0].state
u'running'
>>> reservation.instances[0].update()
u'shutting-down'
>>> reservation.instances[0].state
u'shutting-down'
>>> reservation.instances[0].update()
u'terminated'
こんな感じで、、、
おしまい。
0 件のコメント:
コメントを投稿