🥭

【Azure】プライベートDNSを使ってみる

2024/03/09に公開

コンテナインスタンス(ACI)にプライベートDNSで作成したドメインを割り当ててみるハンズオンです。

仮想ネットワークを作成する

https://zenn.dev/shimiyu/articles/465a7fd46d0dde#仮想ネットワークを作成する

【Azure】VNetピアリングを試してみるで作成したVNetをそのまま使用します。

ACIを作成する

コンテナインスタンス(ACI)の作成
コンテナ名 containera
地域 Japan East
イメージのソース クイックスタート イメージ
イメージ mcr.microsoft.com/oss/nginx/nginx:1.9.15-alpine(Linux)
サイズ 1vcpu,1.5Gibメモリ,0gpu
ネットワークの種類 プライベート
仮想ネットワーク VNetA 先ほど作成した仮想ネットワーク
サブネット SubnetA-1(10.1.0.0/24)
ポート 80 / TCP

上記の内容でACIを作成します。

このコンテナのプライベートIPアドレスは、10.1.0.4です。

後ほどこのIPアドレスとドメインを紐付けます。

プライベートDNSゾーンを作成する

Azure PortalからプライベートDNSゾーンを作成します。

基本
名前 az104test.local
地域 Japan East

DNSの設定をする

DNSゾーンと仮想ネットワークをリンクする

作成したプライベートDNSゾーンを開き、「仮想ネットワークリンク」を開きます。

仮想ネットワークリンク
名前 vneta-link
仮想ネットワーク VNetA ACIを紐付けた仮想ネットワークを選択

Aレコードを追加する

レコードセットの追加
名前 service1
種類 A - アドレスレコード
TTL 1 時間 デフォルトのまま
IPアドレス 10.1.0.4 ACIのプライベートIPアドレスを設定します

この設定によって、service1.az104test.localとコンテナのプライペートIPアドレス10.1.0.4が紐づくことになります。

OKを押して、レコードセットを追加します。

名前解決が成功するかを確認する

同一VNet内にもう1つACIを作成して、そこからservice1.az104test.localドメインに対してHTTPリクエストを実施してみます。

containerbというACIを作成しました。

作成したcontainerbに入って、service1.az104test.localドメインにHTTPリクエストを行います。

名前解決が上手くいけば、nginxのデフォルトページが返却されるはずです。

az login
# ACI2に入ります
az container exec --resource-group AZ104-test-rg --name containerb --exec-command "/bin/sh"
# service1.az104test.localに対して、httpリクエストを実施
wget -qO- http://service1.az104test.local
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
# ...以下略

期待通り、nginxのデフォルトのWelcomeページが返却されました。

Discussion