AWS SDK for Python boto3で割り振られたEIPを他のインスタンスへ振り直す。

インスタンスBのインターフェース0が持っているEIPを、インスタンスAへ割り振る手順。

AとBのインスタンスIDのみ分かってる場合とするとこんなかんじ。

A = client.describe_instances(
        Filters=[{'Name':'instance-id','Values':['i-AAAAAAAAAAAAAAAA']}]
    )

B = client.describe_instances(
        Filters=[{'Name':'instance-id','Values':['i-BBBBBBBBBBBBBBBB']}]
    )

AllocationIds = client.describe_addresses(
        PublicIps=[B['Reservations'][0]['Instances'][0]['NetworkInterfaces'][0]['Association']['PublicIp']]
)

client.associate_address(
        AllocationId=AllocationIds['Addresses'][0]['AllocationId'],
        NetworkInterfaceId=A['Reservations'][0]['Instances'][0]['NetworkInterfaces'][0]['NetworkInterfaceId'],
        AllowReassociation=True
)

AとBのインスタンス情報を持ってきて、Bのアドレスから、AllocationIdを取ってくる。

AllocationIdがわかれば、associate_addressでAへEIPを関連付けしてあげられる。

本当はBのEIPを関連付けを外して、Aに割り振る流れになるんだけれども、AllowReassociationをTrueにしてあげることで、

EIPが誰かに振られてても強引に新しいインスタンスにあげられる。

インターフェースがいくつもあって0番目じゃない場合には振りたいのを修正する必要がある。

というかいくつもインターフェースがある場合にはもっと考えて作ってね。

AWSを利用した導入事例のご紹介

実際に構築を行ったAWSの事例を紹介しています。導入の目的に近い事例をご覧いただくと、実際の構成例やメリット、注意点などが把握できます。

ブックオフコーポレーション株式会社様
第一生命保険株式会社様
株式会社電通様
株式会社LIFULL様
株式会社リブセンス様
TBSアナウンス部様
明治大学様
拓殖大学様