はい、前回の書き込みから1週間くらい空きましたが、ネットリと前進しております。
個人サイト作成。
多少は皆さんのお役に立てそうなトピックもあるので、書きとめておきます。
とりあえず今までのあらすじは、「Amazon EC2で個人サイトを作ろうと思ってたら、『公開ドメインを使いたければ、DynamicDNSを使え』と書いてあったので、VALUE DOMAINという、ドメイン管理代行&DDNSサービスを同時に提供しているサイトがあったので、"siraisi.net"ドメインを作った」というところです。
で、その続き。
まず、"siraisi.net"のIPを動的に変更できるよう、こちらのページの13ステップを忠実に実行しました。
こちらのページに書いてあるのはつまり、「今現在のサーバの公開IPを調べて、手で入力してみてよ」ということ。
ここで一つ目のポイント。Amazon EC2インスタンス内で、自分の公開IPを調べる方法ですが、以下のコマンドを実行します。
この前翻訳したドキュメントを見るとわかりますが、"169.254.169.254"はAmazon EC2インスタンスが所属するLAN内のサーバを指しています。
そこにcurlでHTTPアクセスをかければ、自分の公開IPを教えてくれるというわけ。
で、このコマンドの結果表示されたIPアドレスをVALUE DOMAINに登録し、数分待ってから「http://siraisi.net」にアクセスすると・・・
表示されない。なぜだ。
当たり前だ。httpd立ち上げてなかった。と言うか、Apacheのインストールすらしてない。
僕が使用したEC2のイメージは、こちらのページで見つけたFedora Core 6 Lite Base Imageという、Fedora6インストール直後みたいな超プレーンなやつです。Xも入ってないやつ。
ということで、
でApacheを入れ、HTTPを立ち上げて再度アクセスすると、ページが見えました!
はーよかったよかった。手作業による実験完了。
であとは、EC2のインスタンスは再起動するたびにIPアドレスが変わってしまうので、cronで起動時にVALUE DOMAINにIPを通知するようなスクリプトを作成。
こちらによると、VALUE DOMAINは決まったURLにGETアクセスを行うだけでIPを通知できるようです。ということで、wgetでURLにGETアクセスを行うスクリプトを書きました。
#!/bin/bash DOMAIN=siraisi.net 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
こんなスクリプトを、cronで起動時に実行されるよう登録します。
# crontab -e @reboot /root/ddns_update.sh :wq
これで、インスタンスを起動するたびにVALUE DOMAINにDDNSリクエストを投げるので、手作業によるIP更新が必要なくなりました。
なんとかこれで、ドメイン名によるサイトアクセスは実現できたようです。
今日は眠いのでこれまで。次は、いくつかアプリでもインストールしてみますか。
※このエントリはZDNetブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet編集部の見解・意向を示すものではありません。