SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事(AD)

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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のコンフィグを編集可能(一部のみ)

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

次のページ
2. Azure Database for MySQLを使ってみる

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10620 2018/03/22 17:13

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング