Develop with pleasure!

福岡でCloudとかBlockchainとか。

インスタンス起動時にElasticIPの自動割当

EC2のインスタンスの起動時に固定IP(ElasticIP)を自動で割り当てるようにスクリプトを作成。

こちらのBlogを参考にさせて頂く。
Elastic IPを自動で割り振りたい - 旧cyberarchitect

ただ、インスタンスの取得にec2dinを使用されてるが、これだと複数インスタンスが起動している状況だと、先に取得されいたインスタンスIDにIPが割り当てられてしまうので、自分のインスタンスIDを取得するよう修正。

#!/bin/bash
#
# Associate EC2 Elastic IP Address to a INSTANCE
#
# chkconfig: 4 79 6
# description: Auto associate Elastic IP
# processname: elastic-ip
# 

ELASTIC_IP_ADDRESS=${適用するIP}
. /root/.ec2env

# 自分のインスタンスIDを取得
EC2_INSTANCE_ID=`curl -s http://169.254.169.254/latest/meta-data/instance-id`

# Carry out specific functions when asked to by the system
case "$1" in
        start)
                echo "Assigning Elastic IP Address. IP=$ELASTIC_IP_ADDRESS INSTANCE=$EC2_INSTANCE_ID"
                ec2-associate-address $ELASTIC_IP_ADDRESS -i $EC2_INSTANCE_ID >/dev/null 2>&1
        ;;
        stop)
                echo "Deassigning Elastic IP Address. IP=$ELASTIC_IP_ADDRESS INSTANCE=$EC2_INSTANCE_ID"
                ec2-disassociate-address $ELASTIC_IP_ADDRESS >/dev/null 2>&1
        ;;
esac


こんな感じ。