シナプス技術者ブログ

シナプスの技術者公式ブログ。インターネットで、鹿児島の毎日を笑顔にします。

AcroBiz Cloud Connectを利用し、オンプレミスのGitLabサーバからAzure App Serviceへのデプロイを試してみた

技術部システム開発課の蔵坪と申します。

弊社では、2022年4月より利用拠点とクラウド間を閉域ネットワークで接続するサービス「AcroBiz Cloud Connect(アクロビズ クラウド コネクト)」を提供しております。

今回、AcroBiz Cloud Connect(クラウド閉域ネットワーク接続サービス)を利用し、オンプレミスのGitLabサーバからAzureのApp Serviceへのデプロイを試してみました。

AcroBiz Cloud Connectとは

2022年4月より弊社で提供している利⽤拠点とクラウド間のネットワークを閉域で接続するサービスです。

AcroBiz Cloud Connect

corp.synapse.jp

Azure App Serviceとは

Microsoftが提供しているAzureのPaaS (Platform-as-a-service) の一つです。

learn.microsoft.com

今回の検証した構成

検証構成

注意点

オンプレミスとAzureのクラウドの環境を専用線で接続するために、ExpressRoute サービス(Azure への専用プライベート ネットワーク ファイバー接続)が必要になりますが、今回はExpressRouteサービスが既に存在している(Azureと閉域接続が完了している)前提での検証になります。

azure.microsoft.com

Webアプリの作成

Azureポータルにログインし、App Serviceのトップから、作成をクリックします。

AppService

情報を入力し、作成します。

Webアプリの作成

作成されたリソースの概要にアクセスし、URLに記載されているアドレスをクリックするとApp Serviceの初期ページが表示されます。

https://synapse-crm-test.azurewebsites.net/

トップページ

この時点では、インターネットを経由したアクセスになります。

ネットワークの設定

App Serviceのリソースのネットワーク画面を開き、VNET統合をクリックします。

VNET

VNETの追加をクリックします。

VNET追加

情報を入力し、VNET統合を作成します。

VNET統合の追加

次にプライベートエンドポイント追加します。

App Serviceのネットワークにアクセスし、プライベートエンドポイントをクリックします。

プライベートエンドポイントの追加

追加をクリックします。

情報を入力し、プライベートエンドポイントを作成します。この時、選択するサブネットは、オンプレミスと接続している仮想ネットワークで、サブネットを用意しておく必要があります。

プライベートエンドポイントの追加

この時点で、App Serviceのエンドポイント(受付)がプライベートIPアドレスになり、インターネット上からアクセスできなくなります。

プライベートIP

概要にアクセスし、URLに記載されているアドレスをクリックします。403のForbiddenページが表示され、アクセスできません。

Fobdden

オンプレミス環境からはアクセスするためには、PCのhostsファイルに以下の記述が必要になります。

10.XXX.XXX.XXX synapse-crm-test.azurewebsites.net synapse-crm-test.scm.azurewebsites.net

オンプレミス環境からアクセスできるようになりました。

ホームページ

デプロイ

弊社は、オンプレミスのGitLabサーバを利用しておりますので、今回、App Serviceから、GitLabのURLを直接指定して、デプロイしてみます。

Privateリポジトリなので、事前に対象プロジェクトでデプロイトークン(read_repository)を発行しておきます。

デプロイトークンの発行手順は、以下をご確認ください。

gitlab-docs.creationline.com

リポジトリのURLは以下の形式になります。

https://デプロイユーザ:デプロイトークン@オンプレのGitLabサーバのホスト名/HTTPのクローン用のアドレス

ホスト名がオンプレミスのホスト名になっておりますが、こちらは、仮想ネットワークの設定で、オンプレミス環境のDNSサーバを参照しているため、App Serviceから名前解決ができます。

デプロイセンターにアクセスし、情報を入力し、保存をクリックします。

デプロイ

しばらく待つと、デプロイが完了します。

無事、オンプレミス環境からASP.NET COREのサンプルアプリページがが見れるようになりました。

サンプルアプリ

DNSの状態について

この時点で、DNSの名前解決は以下になっております。

場所 ホスト IPアドレス
インターネット上からの名前解決 synapse-crm-test.azurewebsites.net 20.XXX.XXX.XXX
オンプレミス環境からの名前解決 synapse-crm-test.azurewebsites.net 20.XXX.XXX.XXX

どちらもグローバルのIPアドレスが返ってきます。

プライベートエンドポイントを作成する際に、プライベートDNSゾーン統合するで「はい」を選択したので、プライベートDNSサービスにprivatelink.azuruwebsites.netのゾーンが自動的に作成されおり、そちらでは、ローカルIPが設定されています。

プライベートDNS

プライベート DNSは、仮想ネットワークに属しているAzure内のリソース(VM等)からしか利用できません。この状態では、オンプレミス環境からApp Serviceにアクセスするためには、端末のhostsファイルにIPアドレスを記載するか手段がありません。

今回、検証できませんでしたが、hostsファイル無しで、オンプレミス環境から名前解決をしたい場合、Azure DNS Private Resolverサービスを利用することが一番手軽そうでした。

learn.microsoft.com

さいごに

今回の検証にあたって、DNS部分のところが、なかなか仕組みが理解できず、調査に時間がかかりましたが、それ以外のところについては、あまり悩まずに簡単に作業できました。

運用するためには、まだまだハードルがあると思いますが、一つ一つ解決していきたいと思います。