EC2ではインスタンスがstop/startする際に
固定IP(Elastic IP)が自動では割り振られないので、
それを自動でやるシェルを用意したときのメモ。
環境はCentOS6です。
ますは、api-toolsをインストール。
yum -y install java-1.6.0-openjdk wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip unzip ec2-api-tools.zip mkdir /root/ec2keys/ mv ec2-api-tools-1.6.5.1 ec2-api-tools
弄りやすいように環境変数をセット。
環境に合わせて適宜変更。
vi .bashrc ------------------ export JAVA_HOME="/usr/" export EC2_HOME="/root/ec2-api-tools" export EC2_PRIVATE_KEY="/root/ec2keys/pk-xxxxxxxxx.pem" export EC2_CERT="/root/ec2keys/cert-xxxxxxxxx.pem" export EC2_URL="http://ec2.ap-northeast-1.amazonaws.com" export PATH="${PATH}:${EC2_HOME}/bin" ------------------ . .bashrc
これでapi-toolsは使えるようになる。
Elastic IPの割当は、ec2-associate-address
Elastic IPの解除は、ec2-disassociate-address
で行える。
起動時に自動で行えるようにシェルを作成。
vi /etc/init.d/aws_elastic_ip ------------------ #! /bin/sh ##Shell For Associate Elastic IP## ################################### EC2_ELASTIC_IP="IPアドレス" EC2_INSTANCE_ID="インスタンスID" ################################### export JAVA_HOME="/usr/" export EC2_HOME="/root/ec2-api-tools" export EC2_PRIVATE_KEY="/root/ec2keys/pk-xxxxxxxxx.pem" export EC2_CERT="/root/ec2keys/cert-xxxxxxxxx.pem" export EC2_URL="http://ec2.ap-northeast-1.amazonaws.com" export PATH="${PATH}:${EC2_HOME}/bin" ################################### case "$1" in start) echo "Associate Elastic IP" ec2-associate-address $EC2_ELASTIC_IP -i $EC2_INSTANCE_ID >/dev/null 2>&1 ;; stop) echo "Deassociate Elastic IP" ec2-disassociate-address $ELASTIC_IP_ADDRESS >/dev/null 2>&1 ;; esac exit 0 ------------------
あとはこれを起動時に実行されるようにして設定完了。
chmod 755 /etc/init.d/aws_elastic_ip ln -s /etc/init.d/aws_elastic_ip /etc/rc3.d/S98aws_elastic_ip ln -s /etc/init.d/aws_elastic_ip /etc/rc0.d/K98aws_elastic_ip