Posted at

DynamicDNSをサーバレスで構築する

More than 1 year has passed since last update.

独自ドメインでDynamic DNSを実現したい場合,多くのDDNSサービスでは有料なことが多い.あるいは,運営会社の知名度が低いor微妙であることもある.

AWSのRoute53は,非常にパワフルで柔軟性のあるDNSサービスである.ここでは,Route53をDNSサーバとして,DDNSの仕組みを構築する.


シンプルな方法 - aws-cliを使う

AWSは基本的に全ての操作にAPIが用意されており,大抵の場合はAWS CLIで片付いてしまう.

以下の記事のような,スクリプトを作成してCronで更新をおこなえば済むので非常に簡単である.

http://qiita.com/tt2004d/items/21c2001bb758dfa6ddde


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でもきちんと動作した.

https://github.com/sTywin/dyndns53