🥭
【Azure】プライベートDNSを使ってみる
コンテナインスタンス(ACI)にプライベートDNSで作成したドメインを割り当ててみるハンズオンです。
仮想ネットワークを作成する
【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