自由気ままに書いちゃおう

好きなことをつらつらと・・・

【Azure】PrivateEndpoint(プライベートエンドポイント)について

今回はPrivateEndpoint(プライベートエンドポイント)についてです。

■はじめに

AzurePaaSへ接続する際、何も設定しないとインターネット経由での接続となりますが、PrivateEndpointを利用することでローカル接続(=プライベート、Microsoftネットワーク)が可能です。
※Azureサービスエンドポイントとの違いは別記事を予定しております。

尚、サービスエンドポイントとはプライベートエンドポイントは別物です。
※名称が似ているだけです。

www.guri2o1667.work


サービスエンドポイントとプライベートエンドポイントの違いは↓

www.guri2o1667.work


また、PrivateLinkとプライベートエンドポイントも別物です。。。
別物と書くと語弊がありそうですが、例えばプライベートエンドポイントだけを構成してAzurePaaSに接続することができます。
(このときはPrivateLinkは設定しません。)
※AzurePrivateLinkは別記事を予定しております。

■Azureポータルの画面からPrivateEndpointを表示

PrivateEndpointは「Private Link」のサービスの中で管理されているため、
「Private Link」をクリックします。
f:id:guri2o1667:20220107141124p:plain

クリック後、「Private Link センター」が表示されていればOKです。

f:id:guri2o1667:20220107141243p:plain


左ペインが以下の通りとなっており、その中に「プライベートエンドポイント」が存在します。

f:id:guri2o1667:20220107141317p:plain

■注意点

Azureポータル画面からもわかる通り、AzurePrivateLinkサービスの中に「プライベートエンドポイント」と「プライベートリンクサービス」があります。
そのため、会話する際にどちらのことを言っているのか、相互で認識があっているかどうかは確認しておいた方があらぬ誤解を生まなくて済むかもです。

詳細は後述してますが、Vnet上のAzureサービス(仮想マシン、等)からAzurePaaSへの接続だけであれば「プライベートエンドポイント」のみで実現可能です。

■料金

価格 - Azure Private Link | Microsoft Azure


2022/1/7時点では以下の通りです。
プライベートエンドポイントの時間当たりの料金とIn/Outのデータ処理量に対して従量課金となります。
余談ですが、PrivateLinkについては料金はかからないです。

f:id:guri2o1667:20220107135236p:plain

 

■PrivateEndpointとは

前置きが長くなりましたがPrivateEndpointは冒頭の通り、
ローカルネットワーク(Microsoftネットワーク)を利用したPaaS接続を実現します。
例えば、仮想マシンからSQLデータベースへアクセスする際、プライベートIPアドレスで接続できるようになります。

どんな仕組みかというと、プライベートエンドポイントの実体はVnet上に作成されるネットワークインターフェース(下図の「10.0.0.5」が該当)であり、
このネットワークインターフェースとAzurePaaS(SQLデータベース)を紐づける(リンクする)ことで、
プライベートIPアドレスを利用した接続が可能となります。

f:id:guri2o1667:20220107145313p:plain

引用元:Azure Private Link サービスとは | Microsoft Docs



ただ、AzurePaaSとプライベートエンドポイント(=Vnet上のプライベートIPアドレス)のリンクを行う必要があり、プライベートDNS等を利用した名前解決(プライベートDNS統合を実施すると簡単)が必要です。

 

■やってみる

実際にVnet上の仮想マシンからSQLデータベースへPrivateEndpointを利用して接続してみたいと思います。

事前に仮想マシンとSQLデータベースは構築済みとしてます。

流れは以下の通りです。

1.プライベートエンドポイントを作成
2.作成したプライベートエンドポイントを確認
3.接続確認

■1.プライベートエンドポイントを作成

Azure プライベート エンドポイントとは | Microsoft Docs

入力する内容は上記に説明があります。

1.「PrivateLinkセンター」をクリックします。

f:id:guri2o1667:20220107164820p:plain

2.左ペインの「プライベートエンドポイント」をクリックします。

f:id:guri2o1667:20220107164851p:plain

3.「作成」をクリックします。

f:id:guri2o1667:20220107164915p:plain


4.「基本」タブに必要事項を入力します。

f:id:guri2o1667:20220107164946p:plain

5.「リソース」タブに必要事項を入力します。
「接続方法」:マイディレクトリ~
「リソースの種類」:Microsoft.Sql/servers
「リソース」: ※SQLデータベースを選択※
「対象サブリソース」: ※自動的に選択される※

f:id:guri2o1667:20220107165045p:plain

f:id:guri2o1667:20220107165218p:plain

6.「構成」タブに必要事項を入力します。
「プライベート統合」: 環境次第ですが、ここでは、「はい」を選択してます。

f:id:guri2o1667:20220107165311p:plain

7.今まで入力した内容に問題がなければ、「作成」をクリックします。

5分程度で作成完了しました。
f:id:guri2o1667:20220107165500p:plain

■2.作成したプライベートエンドポイントを確認

1.作成したプライベートエンドポイントに移動します。

f:id:guri2o1667:20220107170249p:plain


2.左ペインにて「DNSの構成」をクリックします。

f:id:guri2o1667:20220107170331p:plain


3.右ペインに情報が記載されており、IPアドレスが表示されていることを確認します。

f:id:guri2o1667:20220107170417p:plain

■3.接続確認

仮想マシンにログインし、SQLデータベースへ接続してみます。
尚、仮想マシン上でSQLデータベースの名前解決をした結果は以下の通りです。

f:id:guri2o1667:20220107170158p:plain

10.0.0.5となっており、前の手順で確認したNIC(=プライベートエンドポイント)と同じIPアドレスが表示されることが確認できました。

SSMSで接続できることも確認できました。

f:id:guri2o1667:20220107170534p:plain

 

■PrivateEndpoint構成後の各Azureリソースの設定確認

ここまでで、PrivateEndpointを利用することはできました。
今度は、PrivateEndpointを作成したことにより、他Azureリソースの情報がどう更新されたのかを見ていきます。

■1.プライベートDNSゾーン

「プライベートDNSゾーン」を開きます。

f:id:guri2o1667:20220107171333p:plain

「privatelink.database.windows.net」が作成されているので、クリックします。

f:id:guri2o1667:20220107171423p:plain

左ペインの「概要」をクリックします。

f:id:guri2o1667:20220107171647p:plain


右ペインに「10.0.0.5」(=PrivateEndpoint)およびデータベースサーバ名(=testdbsv)がAレコードに登録されているのが確認できます。

f:id:guri2o1667:20220107171729p:plain


続いて、左ペインの「仮想ネットワークリンク」をクリックします。

f:id:guri2o1667:20220107171507p:plain

右ペインに「リンク名」「リンクの状態」「仮想ネットワーク」等が表示されます。

f:id:guri2o1667:20220107171543p:plain

※ここで、プライベートDNSが利用される仮想ネットワークがわかります。この場合だと「test-vnet01」です。

■2.SQLServer

「SQLServer」を開き、左ペインの「プライベートエンドポイント接続」をクリックします。

f:id:guri2o1667:20220107172056p:plain

右ペインにプライベートエンドポイントが表示されていることを確認します。

f:id:guri2o1667:20220107172125p:plain


※余談ですが、サービスエンドポイントと異なり、左ペイン「ファイアウォールと仮想ネットワーク」には何も設定が入ってません。

■3.仮想マシンのNIC

「有効なルート」に下記の通り、「10.0.0.5/32」が登録されています。

f:id:guri2o1667:20220107172452p:plain


以上です。

 

www.guri2o1667.work