こんにちは。
今回は、Azure Private Link をいじってみたことのメモです。
Private Link とは
ざっくり概要
超絶簡単にいうと、Service Endpoint と同じように、Azure のリソースの接続を Private な接続を行うための設定です。
こんな感じで、Private Endpoint を経由して Private Link の先にあるリソースに接続できるっていう感じです。
ドキュメントや資料を見た中で、Service Endpoint と Private Link の一番の違いは、Azure の PaaS サービスに接続するのは、Microsoft Backbone Network という部分は一緒なのですが、接続先の IP が、Service Endpoint は Public IP なのに対し、Private Link は Private な IP という部分です。
より、セキュアな環境を構築することができるってことですよね。
Microsoft Ignite のセッションの中でもこんなアナウンスがありましたので、ただリソースをプライベートに接続するだけでなく、Azure に構築したサービスに対しても Private に接続できるサービスみたいなので、Service Endpoint の世界観よりは、もっと大きなものになるんだと思います。
ちなみに、Microsoft Ignite のセッション動画などは、こちらです。
ドキュメントなど
Private Link のドキュメントのリンクも貼っておこっと。
料金についてのリンクも貼っておきますが、この記事を書いてる 2020 年 2 月 5 日時点ではプレビュー価格です。
Private Link に接続するために必要な、Private Endpoint はデプロイしてる時間単位の課金で、Private Link の部分は、送受信それぞれのデータ量単位となるみたいです。
※2020/02/15追記
Private Link は2020/2/14にGAしました
SLAは以下から確認できます。
Private Link を作成してみた
以下のドキュメントをベースに、Private Link を作ってみました。
ひとまずは、こんな感じの構成で作ってみました。
疎通確認とかは、ドキュメントと一緒で各 PC に SSMS をインストールして、そこから Private Link 越しに SQL 認証ができるかどうかって感じで。
Private Link の作成
他のリソースの作成手順は、省略します。
今回は、Private Link を作るところだけ。
今回は、Azure SQLDatabase というリソースに対しての Private Link なので、「Build a private connection to a service」を選びました。
Private EndPoint の作成です。Basicのところは、まぁー、普通ですね。
この画面で、Private Link でつなぐリソースを選びます。
別のサブスクリプションのリソースも選択できるみたいですね。
Private Endpoint を紐づける Vitual Network の設定と、Private DNS の設定です。
VM以外で作ったリソースはこんな感じ。Private DNS だけ別のリソースグループに作っちゃってたやw
VM や VNET の Global Peering の設定とかはすっとばします。
っていうか、spot VM を今回使ったけど、マジ安くて神!!
Azure SQLDatabase のネットワークの設定
Azure SQLDatabase のネットワークの設定は、デフォルトの状態です。
つまり、Azure 接続も Client IP 接続も、Virtual Network 接続もできない状態です。
なんも面白くない画面ですがこんな感じ。なんも設定されてないでしょw
この状態で、East US 2 に作った別の Virtual Network に作った VM でnslookup をみてみるとこんな感じで、グローバルアドレスが返ってきます。
SSMS で認証してもエラーになりますね。
動作確認
PC01(同じ SubnetのVM)
Peivate Endpoint と同じ Subnet の VM からの接続です。
まぁーこれは普通につながりますよねw
nslookup でプライベートな IP が引けてることが確認できます。
SSMS も普通に繋がる
ただ、IP 直指定だと怒られます。
IP 直指定でダメってなんでなんだろ~??
PC02(同じ VNET で違うSubnet)
これも普通に繋がりますよねー。
って、ちゃんと確認したけど、スクショは省略w
PC03(Global Peering でつないだ別のVNET)
別リージョンだったり、別VNETのPCからのアクセスは色んな組み方が出来ちゃうと思います。
今回は、Private Endpoint を一カ所で管理してネットワーク的に回すことを考えてみました。
で、なんもしないでnslookup をひくと
ってことで、何もしないと プライベート IP が引けません。。。。
なので、通信出来ないので、こうしましたw
Private DNS を PC03 のVNETにも適用する感じでw
ついでに、ここではいじってない DNS のレコードはこんな感じになってます。
ってことで、再度 nslookup を確認するといい感じっすね。
これで SSMS もつながりました(画像はめんどいので省略)
まとめ
Private なネットワーク接続を行う、Azure Private Link について紹介しました。
今回はリソースをつなげただけのネットワークなお話でしたが、サービスへの接続のところはもうちょっと深い世界観だと思います。
その辺もおいおい紹介したいと思います。
最後に、Ignite の資料からですが、Private Link の Road Map がアナウンスされてました。Q1CY20 で App Service に対応するところが興味深いですね。
あとこんな感じで、Service Endpoint から Private Link へ Migration の話題も記載されてました。
ネットワーク的にも色んな選択肢がまた増えた感じですね。
なんか楽しみなサービスだなー♪
コメント