Azure

Azure Private Linkを利用してAWSからAzureのDBに接続する。

はじめに

Azure Private LinkかGAしました。

Private LinkがGAしたということでエンプラ界隈で有効活用されるケースが増えると思います。
なぜなら、様々なPaaSサービスがインターナルで外部に公開せず利用できるためです。
これまでインターネット経由では、セキュリティ要件として満たせないため利用できなかった場合が多かったと思います。
Private Linkはそれを解決できます。

さて、今回はPrivate Linkの利用して単にAzure内から接続するのではなく、応用編としてAWSからAzure Databaseに接続する方法を解説します。
構成はこんな感じです。DatabaseはMySQLを選択しています。ほかでも作業自体は変わらないです。

作業を整理すると以下になります。

  • AzureとAWSをVPNを接続する
  • Azure DatabaseでPrivate Linkを有効にする
  • Route53にDNSを登録する(オプション)

AzureとAWSをVPNを接続する

Private Linkとは直接関係ないので、以下の記事を参考に接続してください。

【追記2020/02/24】
注意事項としてはAzure DB側をSlaveとしてレプリケーションすることは現在できません。
AzureDBがSourceの通信はすべてインターネット経由となります。
また、AWS側のRDSをSlave、AzureDB側をMasterにすることも現状できませんでした。
たぶん、ユーザ名が〇〇〇@DB名 が起因しているような感じがしました。

Azure DatabaseでPrivate Linkを有効にする

すでに接続するDBは用意され、VPNでAWSと接続されていることが前提です。

次にDatabaseを開きます。左メニューからPrivate endpoint connectionsを開きます。(まだプレビューの表記が消えてませんね)
開いたらPrivate endpoint と追加するため右ペインの上部にある「+Private endpoint」を開きます。

必要項目を埋めます。

利用するリソースタイプにMySQLを選択し、接続するDBを選択します。

接続するVNETを選択した後に、作成します。
DNSに関してはAWS側からのみアクセスする場合は有無は関係ありません。

しばらくするとエンドポイントが追加されます。

作成されたエンドポイントを開きます。

概要でDBに振られているプライベートIPがわかります。
このIPに接続することでDBに接続できます。
ただし注意すべきこととしてAzure DatabaseはIPでの接続を許可されておらず、FQDNを利用してアクセスする必要があります。

接続の確認を行います。
確認方法はAWSにEC2を立ててアクセスする簡単なものです。
前文で書いた通りFQDNのみアクセスを許可されます。
そこで、HOSTSに書き込みます。

下記のように振り当てています。

特にホスト名自体はなんでも大丈夫です。
環境の命名ルールに従ってつけてよいです。

今回は、EC2はAmazon Linux2を利用しmariadbをインストールしmysqlコマンドを実行しています。
この場合、下記のようにエラーがでます。

解消するためには

とオプションを追加する必要があります。

オプションを設定し接続してみます。

接続されDBが確認できました。
以上で接続確認は完了です。

Route53にDNSを登録する(オプション)

複数台のEC2からアクセスなど、HOSTSでは対応できない場合はRoute53を利用します。
ホストゾーンをプライベートで作成しEC2のあるVPNを指定します。

VPCのDNS hostnamesが有効でない場合は有効にします。

以上で少々時間がたった後に利用できるようになります。
前項と同様のコマンドで接続し接続できることを確認しましょう。

まとめ

今回はAWS側からAzure Databaseを利用する方法のひとつとして、Private Linkを使って接続する方法を説明しました。
これはAWSだけではなくオンプレや他のパブリッククラウドでも同様に可能です。
Private Linkを利用してインターナルの通信のみで完結できるため、これまではセキュリティ要件と照らし合わせて無理だった環境でも利用できると思います。
これから、どんどん利用シーンが増えていくと考えています。

関連記事

  1. Azure

    CacooでAzureのステンシル、テンプレートが使えるようになった。

    はじめにヌーラボさんのCacooですがAzureのステンシル、テン…

  2. Azure

    Windowsの仮想マシンを作成時に拡張機能を追加できます。

    はじめにくどうですWindowsの仮想マシンを作成する時に…

  3. AWS

    CLR/H in TOKYO #7 ~カソウ化デイ~

    12/20に開催されたCLR/H in TOKYO #7 ~カソウ化デ…

  4. Azure

    同サブスクリプションでVNET間接続を行う。ポータルでも設定できます。

    はじめにくどうです。VNET間接続、ポータルでもちゃんと設…

  5. Azure

    Azure Active Directoryを削除する。なんか消えないんすけど。

    はじめに今回はAzure Active Directory(以下A…

  6. Azure

    MCP 70-534 Architecting Microsoft Azure Solutions …

    受験の感想くどうです。MCP 70-534 Archite…

  1. その他

    第1回IETF勉強会に参加してきました。標準化の世界へようこそ。
  2. Windows

    IIS8 vs IIS7.5(仮)
  3. Linux

    CPU負荷テストで単調なグラフだとつまらないので、正弦波っぽくするスクリプトを作…
  4. その他

    FaceAPIで初老じゃないことを証明します。
  5. お知らせ

    第10回北海道情報セキュリティ勉強会を開催します!
PAGE TOP