目的
AppServiceはIPが固定されたいないので、MongoAtlas側でのFWでAppServiceのみ接続可能にできません。
そこでPrivateEndpointを使ってAppServiceと安全に接続をし、MongoAtlasをロックダウンします
PrivateEndpoint接続はAzure内での経路を使うので安心です
全体図
AppServiceとMongoAtlasをVNet経由で接続します
流れ
- AppService作成(すでにあるものとします)
- VNet作成
- MontoAtlas作成
- VNetにAppServiceを接続
それでは準備をしていきましょう。
VNet作成
VNetはAppServiceと同じリージョンにある必要があります。
PrivateEndpointなどを作成するといろいろなリソースが作成されますので、VNet用のリソースグループ作成をお勧めします
リソースグループ作成
VNet作成
VNetの名称をVNetとしました(ややこしい?)
リージョンはJapan Eastです
Monto用のサブネットを追加しましょう
VNetのアドレスが10.3.0.0なのでサブネットは10.3.1.0/24としました
MontoAtlasのPrivateEndpoint接続
PrivateEndpoint作成のコマンド生成(画面の項目を埋めるとEndPoint作成コマンドが生成されます)
リソースグループ、VNet名、サブネット名は上記で作成したVNetの名称をコピペ
PrivateEndPointNameはこれから作成するので入力します
入力が完了すると"Create your Private Endpoint”という領域にazのコマンドが作成されるので、迷わずコピーしましょう
CloudShellを開き上記でコピーしたコマンドを貼り付け実行しましょう。
作成完了後PrivateLinkを表示しましょう
先ほど作成したPrivateEndPointができているので、プロパティを表示し、リソースIDをコピー
MongoAtlasに戻り
Private Endpoint Resource IDにリソースIDをペースト
IPアドレスはPrivateEndPointの概要に戻りネットワークインターフェースを選択
プライベートIPをコピーしMongoAtlasに貼り付け、Createを押しましょう
するとEndpointStatusがAvailableになるのでしばらく待ちましょう。
データベースに戻ると枠線が点滅してると思います。
点滅が終わったら、Connectを押します。
PrivateEndpoint用の接続先が出現しますので、アプリケーションではこの接続先を使います。
AppServiceのVNet接続
AppServiceのネットワークを選択(VNetに接続するにはPremium以上が必要です)
VNet統合を選択
以上でMongoAtlasとAppServiceのPrivateEndPoint接続が完了です