プログラマでありたい

おっさんになっても、プログラマでありつづけたい

Amazon EC2のインスタンスと独自ドメインと紐付ける

 インスタンスを作ってサイトを立ち上げた後は、自分の持っているドメインを使いたくなるのが人情。さてさてどうするのかとおもっていると、Techinical FAXIP 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で個人サイトの作成、ボチボチ続けてます。