0Pricing
Azure Fundamentals · レッスン

Azure DNS と Load Balancer の基本

Azure DNS のプライベート ゾーンで Azure 内のドメイン名解決を管理し、Azure Load Balancer で受信トラフィックをバックエンド VM プールに分散します。

「Azure DNS と Load Balancer の基本」はCoddyKit上の無料Azure Fundamentalsレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAzure Fundamentals学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Azure Fundamentalsコースには全4レッスンが含まれています。

Azure の DNS:基本

DNS (Domain Name System) は、人間が読みやすいドメイン名(api.mycompany.com など)を、コンピューターが通信に使用する IP アドレスに変換します。Azure には2つの DNS サービスがあります。インターネットに公開するドメインのパブリック DNS ゾーンをホストするAzure DNSと、VNet 内部の名前解決に使用するAzure Private DNSです。適切な DNS 構成がない場合、Azure リソースは IP アドレスで参照する必要があり、アーキテクチャが脆弱になります。IP が変更されると、依存するすべての構成が機能しなくなるためです。Azure DNS は、Microsoft のエニーキャストネットワークに支えられた、高可用性でグローバルに分散されたサービスです。

Azure DNS パブリックゾーン

Azure DNS パブリックゾーンは、インターネットからアクセスできるドメインの DNS レコードをホストします。GoDaddy などのレジストラに登録したドメインの NS レコードを Azure のネームサーバーを指すように更新することで、ドメインを Azure DNS に委任します。委任後は、別の DNS プロバイダーを使用せず、Azure ポータルまたは CLI からすべての DNS レコード(A、CNAME、MX、TXT など)を管理できます。Azure DNS パブリックゾーンは、稼働率 100% の SLA、1秒未満のグローバル伝播、さらに承認済みのチームメンバーだけが DNS レコードを変更できる RBAC によるアクセス制御を提供します。

# Create a DNS zone and add an A record
az network dns zone create \
  --resource-group myRG \
  --name mycompany.com

az network dns record-set a add-record \
  --resource-group myRG \
  --zone-name mycompany.com \
  --record-set-name www \
  --ipv4-address 20.10.20.30

Azure Private DNS ゾーン

Azure Private DNS ゾーンは、DNS レコードをパブリックに公開せずに、VNet 内のリソースの名前解決を提供します。たとえば、プライベートゾーン myapp.internal を作成し、VM を登録すると、IP ではなく名前(db.myapp.internal)で解決できます。Private DNS ゾーンは VNet にリンクされ、リンクされた VNet 内のリソースだけがプライベートレコードを解決できます。また、自動登録を有効にすると、VM が VNet に参加した際に DNS レコードが自動的に作成されるため、手動管理なしで DNS を同期できます。

# Create a private DNS zone and link it to a VNet
az network private-dns zone create \
  --resource-group myRG \
  --name myapp.internal

az network private-dns link vnet create \
  --resource-group myRG \
  --zone-name myapp.internal \
  --name myVNetLink \
  --virtual-network myVNet \
  --registration-enabled true

Azure サービス向けの Private DNS

Private Endpoint(Azure SQL、Blob Storage、Key Vault などのサービス向け)では、サービスのパブリックホスト名がパブリック IP ではなくプライベート IP に解決されるよう、DNS を構成する必要があります。Azure では、各サービス向けにプライベート DNS ゾーンが用意されています(Blob Storage の場合は privatelink.blob.core.windows.net など)。Private Endpoint を作成すると、Azure はこのプライベートゾーンに、プライベート IP を指す DNS A レコードを作成します。このゾーンを VNet にリンクすると、ストレージアカウント URL に対するすべての DNS ルックアップが自動的にプライベート IP に解決されます。アプリケーションコードを変更せずに、プライベートバックボーン経由でトラフィックをルーティングできます。

Azure Load Balancer とは

Azure Load Balancerは、複数のバックエンドリソース(VM またはスケールセット内のインスタンス)にインバウンドネットワークトラフィックを分散し、特定のリソースに負荷が集中しないようにします。OSI モデルのレイヤー4(トランスポート層)で動作し、HTTP の内容を検査せずに、送信元と宛先の IP およびポートに基づいて TCP と UDP のパケットをルーティングします。Azure Load Balancer は、高可用性とゾーン冗長性を備えたサービスであり、99.99% の SLA(Standard SKU)を提供します。また、インバウンド負荷分散(インターネットまたは VNet から)と、VM のインターネット向け送信におけるアウトバウンド SNAT の両方をサポートします。

Load Balancer のコンポーネント

Azure Load Balancer には、主に4つのコンポーネントがあります。フロントエンド IP 構成 — クライアントが接続するパブリックまたはプライベート IP です。バックエンドプール — トラフィックを受信する VM またはスケールセットインスタンスの集合です。負荷分散規則 — フロントエンドの IP:ポートをバックエンドポートに対応付け、負荷分散アルゴリズム(既定では5タプルハッシュ)を指定します。正常性プローブ — 各バックエンドインスタンスを定期的にテストします。正常性チェックに失敗したインスタンスは、回復するまで新しい接続を受信しなくなります。これらのコンポーネントによって、トラフィックの受信、確認、分散方法が定義されます。

# Create a Standard Load Balancer with a public IP
az network lb create \
  --resource-group myRG \
  --name myLoadBalancer \
  --sku Standard \
  --public-ip-address myPublicIP \
  --frontend-ip-name myFrontend \
  --backend-pool-name myBackendPool

正常性プローブ

正常性プローブは、各バックエンドインスタンスが正常でトラフィックを受信すべき状態かどうかを判定するために、ロードバランサーから定期的に送信されるチェックです。プローブのプロトコル(HTTP、HTTPS、または TCP)、ポート、間隔を設定します。HTTP/HTTPS プローブでは、ロードバランサーが指定された URL パスに GET リクエストを送信し、インスタンスが HTTP 200 を返すと正常と判定されます。TCP プローブでは、TCP 接続が成功すると正常と判定されます。バックエンドが設定可能な回数の連続したプローブに失敗すると、再びプローブに合格するまで、ロードバランサーはそのバックエンドへの新しい接続の送信を停止します。これにより、手動対応なしで自動的な障害耐性を実現できます。

Basic と Standard の Load Balancer

Azure Load Balancer には2つの SKU があります。Basic — 無料で、最大300個のバックエンドインスタンスをサポートしますが、SLA、可用性ゾーンのサポート、セキュアな既定設定(トラフィックを許可するための NSG 要件)がありません。Standard — 有料(月額基本料金約20ドル)で、最大1,000個のバックエンドインスタンス、99.99% の SLA、ゾーン冗長フロントエンド、既定で安全な構成(トラフィックを許可するには明示的な NSG ルールが必要)、複数のフロントエンド IP をサポートします。運用環境のワークロードには、Standard SKU を強く推奨します。Microsoft は Basic SKU を廃止する予定であるため、新しいデプロイでは必ず Standard を使用してください。

内部ロードバランサーと外部ロードバランサー

Azure Load Balancer は、2つの構成でデプロイできます。パブリック(外部)Load Balancer — フロントエンドにパブリック IP を持ち、インターネットトラフィックをバックエンド VM に分散します。Web サーバーや API ゲートウェイなど、インターネットに公開するアプリケーションに使用します。内部(プライベート)Load Balancer — VNet 内のフロントエンドにプライベート IP を持ち、VNet 内のトラフィックを分散します。アプリ層のロードバランサーをインターネットからアクセスできないようにし、同じ VNet 内の Web 層からだけアクセスさせるマルチティアアプリケーションに使用します。両方を同時にデプロイすることもできます。Web 層にはパブリック LB、アプリ層には内部 LB を使用します。

Azure Load Balancer と Application Gateway の比較

Azure には、シナリオに応じて使い分ける 2 つの主要な負荷分散サービスがあります。Azure Load Balancer — レイヤー 4、TCP/UDP、超低レイテンシで、毎秒数百万の接続を処理できます。HTTP 以外のワークロードや、最大スループットと最小レイテンシが優先される場合に適しています。Azure Application Gateway — レイヤー 7、HTTP/HTTPS に対応し、URL パスやヘッダーを認識します。Web Application Firewall (WAF)、SSL 終端、Cookie ベースのセッション アフィニティ、URL ベースのルーティングも利用できます。コンテンツを認識した負荷分散、TLS オフロード、WAF による保護が必要な Web アプリケーションに適しています。単純な TCP 負荷分散には Load Balancer を使用します。Web アプリケーションでは、Application Gateway によって大きな付加価値が得られます。

DNS と Load Balancer の連携

DNS と Load Balancer を組み合わせることで、可用性が高く、ユーザーにとって使いやすいエンドポイントを構築できます。一般的な構成は次のとおりです。1) Standard パブリック IP と Web サーバー VM のバックエンド プールを使用して Azure Load Balancer を作成します。2) Azure DNS に DNS CNAME レコードを作成し、www.mycompany.com を Load Balancer のパブリック IP (または DNS 名) に設定します。3) ユーザーが www.mycompany.com にアクセスすると、DNS によって Load Balancer の IP アドレスに解決され、Load Balancer が正常な VM インスタンス間でリクエストを分散します。これにより、使いやすい URL と、障害耐性を備えた自動的なトラフィック分散の両方を実現できます。

クイック チェック

このレッスンで扱った Microsoft Azure Fundamentals (AZ-900) の概念の理解度を確認します。

レッスンのまとめ

このレッスンでは、次のことを学びました。Azure DNS はパブリックおよびプライベート DNS ゾーンをほぼ 100% の可用性でホストし、Azure リソースに人間が読みやすい名前を付けられるようにします。プライベート DNS ゾーンの自動登録により、手動管理なしで VNet の DNS レコードを最新の状態に保てます。また、Azure Load Balancer は正常性プローブを使用して障害のあるインスタンスを自動的に検出して迂回しながら、レイヤー 4 の TCP/UDP トラフィックを正常なバックエンド VM インスタンス間で分散します。次は Azure Databases コースに進み、Azure SQL Database から始めます。

よくある質問

「Azure DNS と Load Balancer の基本」レッスンは無料ですか?

はい。「Azure DNS と Load Balancer の基本」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Azure Fundamentalsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Azure Fundamentalsコースには全4レッスンが含まれています。

「Azure DNS と Load Balancer の基本」で何を学びますか?

Azure DNS のプライベート ゾーンで Azure 内のドメイン名解決を管理し、Azure Load Balancer で受信トラフィックをバックエンド VM プールに分散します。 ブラウザで直接実行するハンズオンコードでAzure Fundamentalsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Azure Fundamentalsを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAzure Fundamentalsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Azure DNS と Load Balancer の基本」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAzure Fundamentalsレッスンでコードを書いて実行できますか?

はい。すべてのAzure Fundamentalsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 仮想ネットワークとサブネット
  2. ネットワーク セキュリティ グループとアプリケーション セキュリティ グループ
  3. VNet ピアリングとサービス エンドポイント
  4. Azure DNS と Load Balancer の基本
← Azure Fundamentalsに戻る