東日本リージョンのFunctionsから東西両リージョンのSQL Databaseにアクセスしようと思ったら盛大に躓いたので、その共有デス
1. システム構成
2. 検証目的
東西両方のFunctionsからSQLDatabaseに書き込みを行う。
3. 検証内容
FucntionsからDBに書き込む処理を用意するのがめんどくさかったので、手元にあったVMにSqlcmdをインストールして、connectできることを確認する。
4-1. 検証結果(サービスエンドポイント編)
- SQLDatabaseのFW設定から既存仮想ネットワークを選択し、サービスエンドポイントを作成して追加する流れなんだが、そもそもSQLDatabaseと異なるリージョンの仮想ネットワークが選択できない。
- もしかすると、グローバルピアリングすれば広報されてできるようになるかもと一抹の期待を持ってやってみたが、結果変わらず。
4-2. 検証結果(プライベートリンク編)
プライベートリンクなるものがあることが判明し、サービスエンドポイントを諦めて、プライベートリンクで検証実施。プライベートリンクを作成するときにPaaSとサブネットを選択すると、選択したサブネット内にPaaSに接続するIPアドレスが1つ払い出されて、そこから接続することになるようです。(CNAMEがプライベートエンドポイントを示すようになります)
▼サービスエンドポイント接続時のホスト名は以下の通りですが、
[root@rg01-jaea-vm01 ~]# sqlcmd -S rg01-jaea-sqlsrv01.database.windows.net -U sqlsrv01 -P 'xxxxxxxxxx'
▼一方、プライベートリンク接続時のホスト名は以下の通りとなります。
[root@rg01-jaea-vm01 ~]# sqlcmd -S rg01-jaea-sqlsrv01.database.windows.net -U sqlsrv01 -P 'xxxxxxxxxx'
[root@rg01-jaea-vm01 ~]# nslookup rg01-jaea-sqlsrv01.database.windows.net
Server: 168.63.129.16
Address: 168.63.129.16#53
Non-authoritative answer:
rg01-jaea-sqlsrv01.database.windows.net canonical name = rg01-jaea-sqlsrv01.privatelink.database.windows.net.
Name: rg01-jaea-sqlsrv01.privatelink.database.windows.net
Address: 10.0.0.8
[root@rg01-jaea-vm01 ~]#