独自ドメインでDynamic DNSを実現したい場合,多くのDDNSサービスでは有料なことが多い.あるいは,運営会社の知名度が低いor微妙であることもある.
AWSのRoute53は,非常にパワフルで柔軟性のあるDNSサービスである.ここでは,Route53をDNSサーバとして,DDNSの仕組みを構築する.
シンプルな方法 - aws-cliを使う
AWSは基本的に全ての操作にAPIが用意されており,大抵の場合はAWS CLIで片付いてしまう.
以下の記事のような,スクリプトを作成してCronで更新をおこなえば済むので非常に簡単である.
DynDNS互換なAPIを用意する方法
DynDNS(今はDynなのか…)はDynamicDNSサービスの老舗で,多くの家庭用ルータで対応していることが多い.
今回はVyOS互換なEdgeOS(EdgeRouterのOS)で使うことを想定した.(EdgeOSだとaws-cliを入れるのがだるい)
これをサーバレスで実現するために,以下のAWSサービスを使う.
これらのサービスであれば,Route53を除けば,定額で掛かるコストが無いので,ほとんどコストを掛けずにDDNSサーバを運用できる.(Route53は1ホストゾーンあたり$0.5/monthかかる)
- Lambda
- API Gateway
- Route 53
ここまで構想があったけれど,既にまさにそれを実現しているものがいくつかあった.
以下を試したところ,EdgeRouterでもきちんと動作した.