Advertisement

第15回JSSUG「Azure SQL Database 超入門」

Feb. 23, 2019
Advertisement

More Related Content

Slideshows for you(20)

Similar to 第15回JSSUG「Azure SQL Database 超入門」(20)

Advertisement
Advertisement

第15回JSSUG「Azure SQL Database 超入門」

  1. Azure SQL Database 超入門 2019年2月23日 第15回 JSSUG勉強会
  2. 自己紹介 ・名前 : 木下 裕之 ・HN:kingkino ・SNS Twitter:@kingkinoko FaceBookやってます ・Azure暦:8年 ・MCSE : Cloud Platform and Infrastructure 2017 ・Azureもくもく会主催 ・Microsoft MVP for Microsoft Azure ・AppService、MediaService、AzureStorage、CDN
  3. 注意 ※この資料は2019年2月23日時点での情報を元に作成しています ※更新が早いのですぐに古い情報になる可能性がありますが予めご了承ください
  4. 初めに https://docs.microsoft.com/ja-jp/azure/sql-database/ 本日話す内容はMicrosoft公式のドキュメントの内容をかいつまんだものになります。 内容が多いので駆け足で説明していきますが後でスライドをアップしますので後ほど参考にしてみてください。
  5. 今日話すことはAzure SQL Databaseの基本的な機能や概要になります。 対象者はAzureとAzure SQL Databaseの初心者になります。 アジェンダ ・Azure SQL Database の概要 ・単一データベース(Single Database) ・エラスティックプール(Elastic Pool) ・マネージドインスタンス(Managed Instance) ・機能 ビジネス継続性、高可用性、バックアップ、Geoレプリケーション スケーラビリティ、セキュリティ、監視・チューニング ・価格(Price) ・ツールの紹介(SSMS・Visual Studio・Azure Data Studio) ・DEMO ・おまけ 今日話すこと
  6. Azure SQL Databaseの概要 Azure SQL DatabaseはMicrosoft Azureが提供する汎用リレーショナルデータベース管理でありフ ルマネージドPaaSデータベースエンジンです。フルマネージドなためアップグレードや修正プログ ラムの適用、監視などの機能をユーザが意識せずに管理してくれます。 ゲストOS 仮想化 ホストOS サーバ ストレージ ネットワーク オンプレSQLServer Managed Instance SQL Database 利用者が管理 Azureが管理範囲 SQLServerインスタンス データベース データ SQL Server On Azure VM ゲストOS 仮想化 ホストOS サーバ ストレージ ネットワーク SQLServerインスタンス データベース データ ゲストOS 仮想化 ホストOS サーバ ストレージ ネットワーク SQLServerインスタンス データベース データ ゲストOS 仮想化 ホストOS サーバ ストレージ ネットワーク SQLServerインスタンス データベース データ
  7. Azure SQL Databaseの概要 Azure SQL Databaseの実行モデルとして「単一ベースデータ」「エラスティックプール」「マネー ジドインスタンス」の3つのデプロイオプションが存在します。 Azure SQL Database エラスティック プール Managed Instance 単一 データベース 購入モデル:DTU-BASE 購入モデル:vCore-based (Azure Hybrid Benefit for SQL Server) SQLServer Databaseエンジンの 最新の安定バージョンに基づいた サービスとしてのリレーショナル データベース (DBaaS) を提供し ます エラスティック プール内のデー タベースは、単一の Azure SQL Database サーバー上にあり、設 定された数のリソースを設定価格 で共有します Azure上でホストされるフル マ ネージド SQLServer Database エンジンインスタンスでオンプレ のSQLServerをクラウドに移行す るためのPaaS環境です
  8. Azure SQL Database サーバ SQL Databaseサーバは各種機能の中央管理ポイントして機能する論理サーバです。 下記の機能を提供します ・ログイン(AADログイン) ・ファイアウォール規則 ・監査規則 ・脅威検出ポリシー ・フェールオーバーグループ 下記のような特徴があります ・SQL Databaseサーバはデータベースを作成するにあたって先に存在している必要があります ・SQL Databaseサーバ内に作成されたデータベースは同一データセンター内に作成されます ・SQL Databaseサーバはインスタンスレベルのアクセスまたは機能を公開していません ・SQL Databaseサーバを作成するときに指定するログインユーザには管理特権が与えられます ・SQL DatabaseサーバのバージョンはAzureにて自動的に最新のバージョンで管理されています Azure SQL Database サーバ
  9. 単一データベース(SingleDatabase) 単一 データベース SQL Server Database Database Database 単一データベースは一番汎用性の高く一般的に利用されて いるデプロイオプションです。 開発環境には安くて低パフォーマンスなプランで構築をし、 本番環境には高パフォーマンスでそれなりの価格のプラン を選択するなど柔軟性と変化の激しいリソース要件を求め られるようなシナリオで非常に高い効果があります。 また、簡単にプランのスケールアップやスケールインが可 能で利用料も時間単位で分割課金されるため取り回ししや すいです。 BACPACのインポート/エクスポートによるバックアップ 及びリストアが可能なので複製の作成が容易です。 DatabaseMigrateAssistantを利用することでオンプレに あるSQLServerのデータベースを容易に移行することもで きます。
  10. エラスティックプール(Elastic Pool) エラスティック プール SQL Server エラスティックプールはパッケージシステム等でテナント 別にデータベースを展開したいケースなどで効果を発揮し ます。 各テナント別に単一データベースをデプロイする方法もあ りますが、テナント数が多くなると管理コストが高まりま す。また、テナントによって利用量も異なる事が多いため リソース要件を予測することが困難です。 こういったケースではエラスティックプールを選択すれば、 データベースが必要なパフォーマンスとリソースを必要な 時にだけ自動的に確保してくれるため非常に効率がよくな ります。 また、予測可能な予算の範囲内でシンプルなリソース割り 当てを行うメカニズムが提供されているのでスモールス タートなサービスでも安心して使用することができます。
  11. マネージドインスタンス(Managed Instance) Managed Instance Mangaged InstanceはオンプレミスにあるSQL Server環境をキュアにクラウドへリフト&シフト するケースに最適なデプロイオプションです。 仮想ネットワーク上(VNET)にインスタンスを 展開しExpressRouteの専用線を介してオンプレ ミスとクラウドのハイブリッド環境を構築してセ キュアに運用することが可能です。 今年(2019年)の7月にSQLServer2008/R2のサ ポートが終了するのでリフト&シフトしやすいオ プションです。 2018年にGAしたばかりで利用できるリージョン は全体の半分くらいです、日本リージョンは利用 可能です。 出典: https://azure.microsoft.com/en-us/blog/put-your-databases-on-autopilot-with-a-lift-and-shift-to-azure-sql-database/
  12. マネージドインスタンス(Managed Instance) Managed Instance Manged Instanceを利用することでリフト&シフトが容易になりますが、次のサービスはAzure SQL Databaseでは現時点で利用できないため別のサービスで代用する必要があります。 ・SQL Server Integration Service (SSIS) 対応するサービスは「Azure Data Factory」 ・SQL Server Analitics Service (SSAS) 対応するサービスは「Azure Analysis Service」 ・SQL Server Report Service (SSRS) 対応するサービスは「Power BI」
  13. Azure SQL Databaseのビジネス継続性機能 ビジネス継続性とはサービスの中断が発生した場合でもビジネスを継続するためのメカニズムやポリ シーを指します。Azure SQL Databaseではビジネス継続性を提供するための機能が備わっています。 [ビジネス継続を中断する主要シナリオ] ・アプリケーションのバグや人為的なミスによるデータの破損 ・アプリケーションまたはデータベースの計画的なアップグレードによる予期しない問題の発生 [対処法] テンポラルテーブルや自動バックアップ・ポイントタイムリストアによるデータ復元 ・自然災害によるデータセンターの停止 [対処法] geoレプリケーションと自動フェールオーバーグループによる遠隔地データセンターへの 自動フェールオーバー
  14. Azure SQL Databaseのビジネス継続性機能 ビジネス継続性に関わらずに下記の作業を行っておくと復旧作業を円滑に行えます ・サーバーレベルのIPファイアウォール規則、ログイン、マスター データベースレベルの アクセス許可など、ターゲット サーバーを特定して準備しておきます ・クライアントとアプリケーションを、新しいサーバーにリダイレクトする方法を決めておきます ・監査の設定、アラート等の他の依存関係の文書化をしておきます ※アプリケーションのアップグレード時の対応 最小のダウンタイムでアプリケーションをアップグレードするにはgeoレプリケーションを利用します。 geoレプリケーションのローリングアップグレードを有効化しておけばアップグレード中のダウンタイ ムを最小限に抑えてアップグレードできます。
  15. Azure SQL Databaseの高可用性機能 Azure SQL Databaseは稼働率99.99%が保証されています。 ※99.99%は年間で0.9時間(約53分)の停止許容時間です Azure SQL DatabaseはAzureのプラットフォームと密に統合されていて下記のサービスを利用して高 可用性を実現しています。 ・Service Fabricを用いて障害の検出と復旧 ・Azure Storage Blobを用いてデータ保護 ・Availability Zone(可用性ゾーン)を用いてフォールトトレランスの向上 ・AlwaysOn可用性グループテクノロジを用いてレプリケーションとフェールオーバーを向上
  16. Azure SQL Databaseのバックアップ機能 SQL Databaseはポイントタイムリストア(PITR)のためにSQL Serverの技術を利用して下記のバッ クアップを定期的に作成しています。 ・完全バックアップ ・差分バックアップ(12時間ごとに実施) ・トランザクションログバックアップ(5~10分毎に実施) バックアップの保有期間は購入モデルとサービスレベルによって異なります。 DTUベースの購入モデル ・Basic サービスレベル:1 週間(7日間) ・Standard サービス レベル:5 週間(35日間) ・Premium サービス レベル:5 週間(35日間) 仮想コアベースの購入モデル 既定のバックアップ期間は7日間、設定によって最大35日間まで変更可能
  17. Azure SQL Databaseのバックアップ機能 SQL Databaseはポイントタイムリストア(PITR)のためにSQL Serverの技術を利用して下記のバッ クアップを定期的に作成しています。 ・完全バックアップ ・差分バックアップ(12時間ごとに実施) ・トランザクションログバックアップ(5~10分毎に実施) バックアップの保有期間 バックアップの保有期間は購入モデルとサービスレベルによって異なります。 DTUベースの購入モデル ・Basic サービスレベル:1 週間(7日間) ・Standard サービス レベル:5 週間(35日間) ・Premium サービス レベル:5 週間(35日間) 仮想コアベースの購入モデル ・既定のバックアップ期間は7日間、設定によって最大35日間まで変更可能
  18. Azure SQL Databaseのバックアップ機能 長期保有(Long Term-backup Retention) 保存期間は基本的に7~35日間ですが長期保有オプションを構成すれば最大で10年間バックアップ データを保持することが可能です。LTRはAzure Storageにバックアップを保存し続けるためストレー ジコストがかかる点に注意が必要です。 バックアップの暗号化 Azure SQL DatabaseのTDE(Transparent Data Encryption)が有効になっている場合はバックアッ プデータは自動的に暗号化されます。現在は新規にSQL Databaseを作成した時に規定で有効になって います。 バックアップの整合性保証 Azure SQL Databaseの自動バックアップ機能はエンジニアリングチームにてバックアップとリストア の自動テストを継続的に実施しています。リストア時にDBCC CHECKDBを使用した整合性チェックを 行い問題が見つかるとエンジニアリングチームにアラートが送信されます。
  19. Azure SQL Databaseのgeoレプリケーション機能 https://azure.microsoft.com/ja-jp/global-infrastructure/global-network/
  20. Azure SQL Databaseのgeoレプリケーション機能 アクティブgeoレプリケーション 出典:https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-active-geo-replication アクティブgeoレプリケーションを使用す ることで地域災害や大規模機能停止が発 生したと場合でもディザスタリカバリ (DR)を迅速に実行できます。 GeoレプリケーションはPremiumプラン から利用できる機能で価格は高めです。 個人的には日本データセンターのDR環境 として物理的距離を考慮に入れるなら東 南アジアかオーストラリアがベターだと 思います。
  21. Azure SQL Databaseのgeoレプリケーション機能 自動フェールオーバーグループ 出典:https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-auto-failover-group 自動フェールオーバーグループはSQL Dtabaseサーバ上の複数のデータベース のグループやManaged Instanceのすべ てのデータベースのgeoレプリケーション とフェールオーバを管理することができ ます。 左図は単位データベースとエラスティッ クプールを使用した時の自動フェール オーバのベストプラクティスを図示した ものになります。
  22. Azure SQL Databaseのスケーラビリティ機能 SQL Databaseではコンピューティング能力を追加することをスケールアップ、データベースユニッ トを追加することをスケールアウトとよびます。 SQL Databaseのスケーラビリティとして下記の5つの機能が提供されています。 ・スケールアップ/スケールダウン Azure SQL Databaseではデータベースに割り当てられてられたリソースの増減を簡単に変更 することができます。インデックスやクエリ書き換えの方法では修正できない、アプリケーション使用量 増加によるパフォーマンスの問題を軽減することができます。 ・読み取りスケールアウト read専用のレプリカをスケールアウトすることによってデータ読み取りワークロードの負荷分散 を行えます。これはクラウドデザインパターンのCQRS(コマンドクエリ責務分離パターン)に 適した機能です。 ・データベースシャーディング シャーディングとは同じ構造を持つ多くのデータベース間でデータを分散し処理を行うスケール アウトパターンです。コストと弾力性の両面でスケールアウトに適した方法になります。
  23. Azure SQL Databaseのスケーラビリティ機能 ・エラスティッククエリ(プレビュー) エラスティック クエリ機能を利用すると複数のデータベースにまたがるTransact-SQL クエリを 実行することができます。 リモート テーブルにアクセスしたり、Excel・Power BI・Tableauを 接続して複数のデータベースが含まれるデータ層間でクエリを実行したりできます。 この機能により、クエリを SQL Database 内の大規模なデータ層にスケールアウトし、 結果をビジネス インテリジェンス (BI) レポートで視覚化することができます。 ・エラスティックトランザクション エラスティックデータベース トランザクションは、SQL DB内の複数のデータベースにまたがる トランザクションを実行する機能です。 オンプレミスで実現するためには通常、Microsoft分散 トランザクションコーディネーター (MSDTC) が必要でしたが、AzureではMSDTCが利用でき ないためSQL Databaseに直接統合されました。 SQL DBのエラスティックデータベーストランザクションの特長は、複数の異なるSQL Database に格納されているデータに対して不可分な変更をアプリケーションから実行できることです。
  24. Azure SQL Databaseのセキュリティ機能 Azure SQL Databaseではアプリケーションのデータ層を保護するために多層防御アプローチによる セキュリティ戦略を実施しています。 ・ネットワークセキュリティ IPファイアウォールの規則 仮想ネットワークファイアウォールの規則 ・アクセス管理 SQL認証・AzureActiveDirectory認証 ・脅威の検出と防止 SQL監査と脅威検出機能の提供 ・情報の保護と暗号化 TLSによる転送中の暗号化 TDEによる保存時の暗号化 AzureKeyVaultによるキーの管理
  25. Azure SQL Databaseのセキュリティ機能 Azure内からのSQL Databaseの接続アーキテクチャ 出典:https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-connectivity-architecture 接続ポリシーとしてリダイレクト接続が選択さ れます。接続クライアントはデータベースをホ ストしているノードへの直接接続を確立するた め待機時間とスループットのパフォーマンスが 改善されます。 GWを経由してデータベースへアクセスするの ではなくGWで接続を確立したのちにデータ ベースクラスタへのIPにリダイレクトして接続 する方法になります。 データセンタ内のローカルネットワーク速度は 高速なので通信速度がボトルネックになること は少ないです。
  26. Azure SQL Databaseのセキュリティ機能 Azure外からのSQL Databaseの接続アーキテクチャ 出典:https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-connectivity-architecture 接続ポリシーとしてプロキシ接続が選択されま す。SQL Databaseゲートウェイ経由でTCP セッションが確立しすべてのパケットがゲート ウェイ経由で送信されます。 オンプレミスから接続する場合は必ずプロキシ 接続が規定で選択されます。この場合はIPファ イヤウォールでゲートウェイに対してネット ワークトラフィックの送信許可を設定する必要 があります。
  27. Azure SQL Databaseの監視とチューニング機能 SQL DatabaseではQuery Perfomance Insightsという監視機能がが提供されています。 Query Perfomance Insightsでは下記の機能が提供されています。 ・データベース リソース (DTU) の消費量情報 ・CPUおよび実行回数での上位データベースクエリの詳細 ・クエリの詳細にドリルダウンしてクエリテキストやリソース使用率の履歴を表示する機能
  28. Azure SQL Databaseの監視とチューニング機能 ・自動チューニング 自動チューニングは、AI と機械学習に基づく継続的なパフォーマンスチューニングによって 最大限のパフォーマンスと安定したワークロードを実現します。AI を介してすべてのデータ ベースから水平方向に学習しチューニング操作を動的に改善します。 自動チューニングが有効な状態で長時間稼働させればパフォーマンスが向上します。 ・Intelligent Insights Intelligent Insightsは人工知能によりデータベースの使用状況を継続的に監視しパフォーマンス 低下の原因となるイベントを検出します。検出した内容に応じてパフォーマンス改善の推奨事項 を提案します。
  29. Azure SQL Databaseの価格 SQL Databaseの価格はDTUベースモデルとvCoreベースモデルの2つの購入モデルによって分類さ れます。DTUベースはプランに比例して性能が向上します、vCoreモデルはCPUやストレージ性能を 自由にアラカルトできるため要求に応じた性能を設定しやすいです。 価格自体は専用の価格計算サイトを参照してください。 https://azure.microsoft.com/ja-jp/pricing/
  30. Azure SQL Databaseの購入モデル DTU(データベーストランザクションユニット) DTUのサービス レベルは固定の付属ストレージ容量、バックアップ保有期間、価格がコンピューティングサイ ズによって区別されます。すべてのサービス レベルでダウンタイムなしでコンピューティングサイズを柔軟に 変更できます。単一データベースとエラスティック プールは、サービス レベルとコンピューティング サイズに 基づいて時間単位で課金されます。 単一データベース/DTUベース Basic Standard Premium アップタイムSLA 99.99% 99.99% 99.99% バックアップ保有期間 7 日 35 日 35 日 CPU 低 低、中、高 中、高 IO スループット (概算) DTU あたり 2.5 IOPS DTU あたり 2.5 IOPS DTU あたり 48 IOPS IO 待機時間 (概算) 5 ミリ秒 (読み取り) 10 ミリ秒 (書き込み) 5 ミリ秒 (読み取り) 10 ミリ秒 (書き込み) 2 ミリ秒 (読み取り/書き込み) エラスティックプール/eDTUベース Basic Standard Premium データベースあたりの最大ストレージ サイズ 2 GB 1 TB (テラバイト) 1 TB (テラバイト) プールあたりの最大ストレージ サイズ 156 GB 4 TB 4 TB データベースあたりの最大 eDTU 数 5 3000 4000 プールあたりの最大 eDTU 数 1600 3000 4000 プールあたりのデータベースの最大数 500 500 100
  31. Azure SQL Databaseの購入モデル vCoreモデルベース vCoreモデルはコンピューティングおよびストレージ リソースを個別にスケーリングしコストを最適化できます。 汎用 Business Critical ハイパースケール (プレビュー) 最適な用途 ほとんどのビジネス ワークロード。 予算重視のスケーラブルでバランスの取れたコンピュー ティングおよびストレージ オプションを提供します。 IO 要件の高いビジネス アプリケーション。 分離された複数のレプリカを使用して、最高の耐障害性が 提供されます。 高度にスケーラブルなストレージと読み取りスケールの要 件を持つほとんどのビジネス ワークロード Compute Gen4 : 1~24 仮想コア Gen5 : 1~80 仮想コア Gen4 : 1~24 仮想コア Gen5 : 1~80 仮想コア Gen4 : 1~24 仮想コア Gen5 : 1~80 仮想コア メモリ Gen4 : コアあたり 7 GB Gen5 : コアあたり 5.1 GB Gen4 : コアあたり 7 GB Gen5 : コアあたり 5.1 GB Gen4 : コアあたり 7 GB Gen5 : コアあたり 5.1 GB Storage 単一データベース : 5GB - 4TB Managed Instance : 32GB - 8TB 単一データベース : 5GB - 4TB Managed Instance : 32GB - 4TB 柔軟性が高く、必要に応じて自動拡張されるストレー ジ。 最大 100 TB のストレージなどをサポートします。 IO スループット 単一データベース 仮想コアあたり 500 IOPS (最大 7000 IOPS) コアあたり 5000 IOPS (最大 200,000 IOPS) TBD 可用性 1 レプリカ 読み取りスケールなし 3 レプリカ、 1 読み取りスケール レプリカ ゾーン冗長 HA TBD バックアップ RA-GRS 7 ~ 35 日 (既定では 7 日) RA-GRS 7 ~ 35 日 (既定では 7 日) バックアップは瞬時に行われ、Compute の IO パフォーマ ンスには影響しません。 復元は非常に高速で、データ操作のサイズにはなりません (数時間 ~ 数日ではなく、分単位で行われます)
  32. AzureSQLDatabaseの価格:AzureHybridBenefit(Azureハイブリッド特典) Azureハイブリッド特典では仮想コアベースの購入モデルで利用でき、既存のライセンスを割引料金 のライセンスに交換して利用することができます。最大で30%オフになります。
  33. Tool:SQL Server Management Studio ご存知SQL Server Management Studioです。SQLServerを扱う人なら必ず触れていると思います。 「SQL Server 2000」のころは「SQL Server Enterprise Manager」と呼ばれてましたが「SQL Server 2005」 から「SQL Server Management Studio」とリブランディングされ無償提供されるようになりました。 もちろんAzure SQL Databaseも扱うことが可能です。 SQL Server Management Studio https://docs.microsoft.com/ja- jp/sql/ssms/sql-server-management- studio-ssms?view=sql-server-2017
  34. Tool:Visual Studio IDEであるVisualStudioでSQL Databaseを操作することができます。SQL Serverオブジェクトエクスプローラを 利用することでローカルやオンプレのSQL Server、またAzure SQL Databaseに接続してい操作できます。 開発ソフトでデータベースを閲覧できるので複数のソフトを起動しなくていいのがメリットです。 Visual Studio https://visualstudio.microsoft.com/ja/
  35. Tool:Azure Data Studio Azure Data Studioはクラスプラットフォームで利用できるクラウドデータベースに特化した管理ツールです。 WindowsクライアントだけではなくMacOSやLinuxで利用できることが最大の特徴です。またVSCodeのように ファイル管理・Gitリポジトリ管理を基本機能としてもっておりExtensionsなどで機能追加を行うことができます。 Azure Data Studio https://docs.microsoft.com/ja- jp/sql/ssms/download-sql-server- management-studio-ssms?view=sql- server-2017 もともとは「Microsoft SQL Operations Studio」という名称でしたがGAの時に名称 が変更されて現在の名称が正式になりました。
  36. デモ DEMO
  37. おまけ:Microsoft Learnによる学習方法 Microsoft Learnを利用すればAzureのアカウントが不要で無料で勉強することができます。 https://docs.microsoft.com/ja-jp/learn/
  38. おまけ:Microsoft Learnによる学習方法 https://docs.microsoft.com/ja-jp/learn/modules/provision-azure-sql-db/2-plan-your-database SQLで検索 おすすめ
  39. おまけ:製品チームのブログ https://azure.microsoft.com/ja-jp/blog/topics/database/
  40. おまけ:Azureのコードサンプル https://azure.microsoft.com/ja-jp/resources/samples/?service=sql-database&sort=0
  41. 告知 3月9日(土)にAzureもくもく会を開催します。今日学んだことをもくもくと復習しませんか? CONNPASSで募集をしています。QRコードから参照してみてください。

Editor's Notes

  1. 使い勝手はなれてる人にとってはいい、接続文字列を入力しなくてはいけないのでめんどくさい
  2. .net系で開発している人には便利 ただ、遅い時もある、SSMSを起動するとメモリ容量が不安な人向け
  3. マルチプラットフォームで対応できるので便利 VSCODEと思想が一緒で多分エレクトロンで出来ている Windowsで使ってる人は少ないがMACで利用している人は多い Azureのサブスクリプションから自動で紐づくすべてのDBを取得してくれるので便利 アイパス入れればいいだけだから
Advertisement