[新機能] PrivateLinkの公開サービスにプライベートDNS名が指定可能になりました
こんにちは、菊池です。
本日の新機能紹介です。PrivateLinkで公開したサービスにプライベートDNS名が設定可能になりました。
PrivateLinkのプライベートDNS名の設定
簡単に言うと、エンドポイントサービスを公開する側で設定したDNS名を使って、エンドポイントにアクセスが可能になります。
設定可能なDNS名は有効なパブリックドメインのものに限られ、DNSを使ったドメイン名の検証が必要になります。また、
- 1つのエンドポイントサービスに指定できるプライベートDNS名は1つだけ
- ワイルドカードの利用も可能
- エンドポイントサービス毎に検証が必要
となっています。ドメインの検証には、プライベートDNSの有効化時に指定される値をTXTレコードとして登録します。
これにより、エンドポイントサービス側で指定したDNS名を使って、エンドポイントユーザ側はプライベートIPの名前解決が可能になります。
やってみた
Private DNSを設定したエンドポイントサービスの公開
まずはエンドポイントサービスを作成します。内部NLBはあらかじめ作成しておきました。
[Enable private DNS name] という項目が追加されていますので、ここにチェックを入れます。
設定したいPrivate DNS名を入力し、作成しましょう。
作成できました。ドメイン名の検証のために必要な情報が表示されます。このレコードをTXTレコードとしてドメインのパブリックDNSに登録します。
作成直後はドメイン検証ステータスがPendingとなっています。こちらでもレコードの値が確認できます。
DNSにTXTレコードを登録し、しばらくすると、検証が完了しました。
Private DNSを有効にしたエンドポイントの作成
続いて、エンドポイントの作成です。今まで通り、エンドポイントを作成するとデフォルトでは、[Private DNS names enabled] が falseとなっていましたので無効のようです。
有効化のため、アクションから[プライベートDNS名の変更]を選びます。
[プライベート DNS 名を有効にする] にチェックを入れて変更を適用します。
この時点で、一度、エンドポイントのステータスが保留となりました。エンドポイントサービス側で再度、承認することで使用可能になりました。
[Private DNS names enabled] が trueになりました。
それでは実際に名前解決を試してみます。エンドポイントと同じVPCにEC2を起動して、名前解決してみます。
1 2 3 4 5 6 7 8 9 | $ nslookup internal.bopochi.net Server: 172.16.0.2 Address: 172.16.0.2 #53 Non-authoritative answer: Name: internal.bopochi.net Address: 172.16.0.19 Name: internal.bopochi.net Address: 172.16.1.86 |
ちゃんと名前解決できました。エンドポイントで作成されたENIともIPアドレスが一致しています。
まとめ
新機能のPrivateLinkのプライベートDNS名を試してみました。エンドポイントサービスの公開側でDNS名が設定可能になり、HTTPSのようなエンドポイントでも扱いやすくなるかと思います。