以前紹介した、「EC2(VPC)のPublic IPとPrivate IPを同時に切り替える」では、AWSコンソール上で手動で
行うものでした。
そこで、AWSではAPIが提供されているので、切り替えスクリプトも作成してみました。

まずは切り替え対象の二つのEC2のENIの確認です。

【アクティブEC2】

【スタンバイEC2】

上記の状態で、スタンバイEC2にて下記のスクリプトを、次のように実行してみます。

#!/bin/sh

AZ=`curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone`
REGION=`echo $AZ | cut -c 1-$((${#AZ} - 1))`
MAC=`curl -s http://169.254.169.254/latest/meta-data/mac`
INTERFACE_ID=`curl -s http://169.254.169.254/latest/meta-data/network/interfaces/macs/$MAC/interface-id`

aws --region $REGION ec2 assign-private-ip-addresses
--network-interface-id $INTERFACE_ID
--private-ip-addresses 10.10.8.200
--allow-reassignment
# ./test.sh 
{
"return": "true",
"requestId": "ddccfc4b-b387-4cbc-9161-718e6d96572b"
}

※Python版AWSコマンドラインツールをIAM Roleで利用しています。

Python版AWSコマンドラインツールをCentOS6で使ってみた

そうすると、次のようにスタンバイEC2に両IPアドレスが移っています。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら