Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Microsoft Azureで使えるデータベースはSQL Serverだけじゃない! フルマネージドなAzure Database for MySQL/PostgreSQL入門

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2018/03/08 14:00

 Microsoft Azure(以下、Azure)が提供するフルマネージドなSQLデータベースは、2017年5月にMySQLとPostgreSQLがパブリックプレビューとして追加されるまで、SQL Serverのみでした。今回はその2つをAzure Portalで作成する方法と、PHPから実際に使う方法をご紹介いたします。

目次

1. Azure Database for MySQL/PostgreSQLとは?

 MySQLとPostgreSQLが追加されたラインナップ拡充の背景として、以前からAzureではClearDBというサードパーティー製のMySQLを提供していましたが、利用者からはMicrosoftが提供するマネージドなMySQLやPostgreSQLを利用したいという要望が数多くあり、それが実現したという結果になります。

 Azureの要望は見える化がされていて、Feedback Forumsでは、執筆時点で2328 vote(投票)もありました。タイトルは「ClearDBを消してネイティブなAzure MySQL互換データベースを作って欲しい」という少し過激な内容が含まれていますが、ClearDBは現在も使用できます。

 投票は誰でもできますし、自分で新たに作成することもできます。気になるものがありましたら、皆さんも投票することでAzureの新機能が実装されるかもしれません。

サービスの特徴

 大きな特徴は、フルマネージドなPaaS型のサービスであることです。Virtual MachineなどのIaaSと異なり、皆さん自身でOSのアップデートやデータベースのセキュリティパッチを適用する必要はありません。

 標準で冗長化されており、もしお使いのデータベースインスタンスで不具合があった場合は自動でフェールオーバーされます。冗長化の恩恵として、ダウンタイムなしのスケールアップ、スケールダウンが可能です。

 データは自動バックアップされており、ポイントインタイムリカバリ(PITR)が最大35日間可能です。

 Azure Database for MySQL/PostgreSQLを使い始めるのに特別なドライバやツールは必要なく、オンプレのMySQLやPostgreSQLと同じように使えます。新たに覚えなければいけないこともありませんし、マイクロソフト製のツールやドライバも不要です。

Virtual Machineとは一味違う、サービスの仕組み

 Azure Database for MySQL/PostgreSQLは単純にVirtual Machine上で動いているのではなく、Service Fabric上で動いています。

 Service Fabricは長年Azureの基幹サービスとして使われており、Azure SQL Databaseも同様にService Fabric上で運用されています。長年蓄積されたAzure SQL Databaseの運用ノウハウをもとにMySQLとPostgreSQLサービスを展開しているので、皆さんはセキュリティやファイル破損などを気にすることなく、安心してサービスを利用できます。

サービスの概念と接続イメージ

 冒頭でAzure Database for MySQL/PostgreSQLは「標準で冗長化されている」と記載しました。皆さんのクライアントから接続するデータベースは「論理データベース」であり、実際のデータベースインスタンスはService Fabricのクラスタ上で動作しています。下図のようなイメージです。

サービスの概念と接続イメージ
サービスの概念と接続イメージ

 このように冗長化されているため、SLAは99.99%で提供されています。2018年3月に一般提供が開始され、SLAが設定されました。

セキュリティの仕組み

 データベースで最も気になるポイントの一つはセキュリティです。Azure Database for MySQL/PostgreSQLは次の3つの層でセキュリティを管理しています。

  1. ID管理
    • MySQL/PostgreSQLネイティブ認証
  2. アクセス管理
    • SSL接続
    • ファイアウォール(IPホワイトリスト方式)
  3. データ保護
    • データベースバックアップ
    • 暗号化(AES 256)

 1点だけ、IPアドレスはパブリックIPとなり、VNET統合はまだサポートされていませんのでご注意ください。パブリックIPというと、通信が不特定多数のインターネット上に流れてしまい、情報漏えいを心配される方がいるかもしれませんが、ほとんどのケースでは安全です。

 例えば、プライベートIPを持つVirtual Machineから、パブリックIPのAzure Database for MySQLに接続した場合の通信は、Microsoftのネットワーク内でルーティングされるので極めて安全であり、高速に動作します。つまり、Azureのサービス同士で使用するならば、皆さんは安心してお使いいただけます。

セキュリティの仕組み
セキュリティの仕組み

その他運用面でのメリット

 フルマネージドならではのメリットが多数あります。

  • 自動的にパッチを適用
  • メトリック監視とアラート機能
  • サーバーログの保存(最大7日分)
  • 最大35日分のポイントインタイムリカバリ可能なバックアップ
  • MySQL/PostgreSQLのコンフィグを編集可能(一部のみ)

 注意点として、パッチ適用時は自動フェールオーバーにより、接続が切断される可能性があります。プログラムでは再接続可能なように設定しておくと良いでしょう。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2018/03/22 17:13 一般提供(GA)の開始に伴い、本文を一部更新しました。

著者プロフィール

  • 山本 誠樹(ヤマモト マサキ)

     スマホアプリからクラウドアプリまで作成するフリーのデベロッパー。記事へ質問などあればお気軽にご連絡ください。 Twitter:@nnasaki blog:http://blog.nnasaki.com

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5