8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Route53+MyDNSでサーバを公開する(複数サブドメイン/自動IP報知/Let's Encrypt対応)

Posted at

SaaSいっぱいの時代に個人でサーバを生やしている人がどれほどいるのか謎ですが、お遊び用途で固定IPのISP契約とかElasticIPとか使ってられないよみたいな人に向けたDDNSの設定記事です。

MyDNS、便利に使わせていただいているのですが、複数ドメインを管理しようとすると最初は設定がわからないところが結構あったので、書き残しておきます。

前提

Route 53でドメインを取得し、管理ができる状態になっていること。
とりあえずMyDNSのIDは発行されていてログインできること。

Route53の設定

NSレコード追加

↓のようにサブドメインのゾーン情報にmydnsのネームサーバを指定します。
mydnsに管理させたいサブドメインを同様に全て放りこんでいきます。

ns0.mydns.jp
ns1.mydns.jp
ns2.mydns.jp

download1.png

CAAレコード追加

Let's encrypt(letsencrypt.org)でのみ証明書を利用する場合は下記のような形でOK。
各サブドメイン側に設定をするのが面倒なので、ドメイン全体に対して証明書発行を許可しています。
指定したサブドメインにのみ設定する場合、mydns側で設定しましょう。

0 issuewild "letsencrypt.org"
0 iodef "あなたのメールアドレス"
0 issuewild ";"

download2.png

MyDNSの設定

子ID発行

今回は複数のサブドメインを管理する想定なので、管理メニューの「USER INFO」で子IDを追加します。
管理したい数を考えて適当な個数を指定して子IDを発行します。完了したらメールでIDが一杯飛んできます。
download3.png

親IDのドメイン設定

親IDには取得したドメインを設定します。
レコード入力欄にサブドメインをDELEGATEで登録し、最右のの項目でそのサブドメインを管理する子IDを指定します。
download4.png

子IDのドメイン設定

子IDは「*」をAレコードに設定しましょう。
download6.png

サーバの設定

最後に到達したいサーバのIPをmydnsに報知してやります。
以下のシェルスクリプトを作成し、IDとパスワードを入力して保存します。(パスワード直書きなんてありえない!って方は別の方法を教えてください)
私はcronで定期的に報知したいので、cron.hourlyに置きましたが、そこは要件やディストリに合わせましょう。

/etc/cron.hourly/regist-ip.sh
#!/bin/bash
mydnsid=mydnsxxxxxx #yourid
mydnspass=xxxxxxxxx #yourpassword

while true
do
    status=`curl -o /dev/null -w %{http_code} -s --user $mydnsid:$mydnspass https://ipv4.mydns.jp/login.html`
    if [ $status -eq 200 ]; then
        logger "$mydnsid ip-regist success"
        echo "success"
    break
    fi
    sleep 2
done

実行確認

sh /etc/cron.hourly/regist-ip.sh

successが表示されたら成功です。
同サーバから別IDも報知したい場合、利用する子IDの分だけスクリプトを作るとか処理を追加するとかで対応しましょう。

確認

報知されていることはmydns子IDポータルの「LOG INFO」で確認できます。

2020/03/26 06:01:11 JST 	IPv4 UPDATE : mydnsXXXXXX XX.XX.XX.XXX (yourhost), http, jpn 
2020/03/26 06:01:11 JST 	DNSINFO UPDATE : test1.example.co.jp

名前解決できているか、CAAレコードが登録されているか、digで確認してやりましょう。

dig test1.example.co.jp
dig example.co.jp CAA

これで固定IPじゃなくてもサーバに到達できますね。

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?