インスタンスを作ってサイトを立ち上げた後は、自分の持っているドメインを使いたくなるのが人情。さてさてどうするのかとおもっていると、Techinical FAXのIP Informationにやり方が載っていました。Dynamic DNSを使うようです。という事は、取得しているドメインのレジストラがダイナミックDNSに対応している必要があります。
ダイナミックDNS対応のレジストラでは、ValueDomainなどが安くて良いと思います。
使い方は、curlコマンドでIPを調べて、ValueDomianに送るだけです。
current_ipの部分にcurlコマンドの結果をセットしてください。DOMAIN、PASSWORD、HOSTはバリュードメインのダイナミックDNSの設定の仕方を参照してください。
#curl http://169.254.169.254/latest/meta-data/local-ipv4
#wget -O - -q "http://dyn.value-domain.com/cgi-bin/dyn.fcg?d=${DOMAIN}&p=${PASSWORD}&i=${current_ip}&h=${HOST}siraisiさんが公開している自動更新シェルを使うと楽で良いですよ。もしくは、DiCEなんかも良いかも
#!/bin/bash
DOMAIN=example.com
PASSWORD=******
HOST="*"
current_ip=`curl http://169.254.169.254/latest/meta-data/local-ipv4 2&>1 1 > /dev/null`
result=`wget -O - -q "http://dyn.value-domain.com/cgi-bin/dyn.fcg?d=${DOMAIN}&p=${PASSWORD}&i=${current_ip}&h=${HOST}"`
result=${result:7:1}
echo $result
errMsg=""
case $result in
0)
exit 0
;;
1)
errMsg="Invalid request"
;;
2)
errMsg="Invalid domain name or password"
;;
3)
errMsg="Invalid IP address"
;;
4)
errMsg="Invalid password"
;;
5)
errMsg="Database server is busy"
;;
9)
errMsg="Unknown error"
;;
esac
if [ "$errMsg" != "" ]; then
echo $errMsg
logger -p cron.error "Value-Domain DDNS Error: `date` $errMsg"
fiダイナミックDNSの設定は、下記の記事を参考にしました。
VALUE DOMAINで独自ドメインを使ったダイナミックDNSを使う
Amazon EC2で個人サイトの作成、ボチボチ続けてます。