Azure SQLデータベース 
最新動向&パフォーマンス 
8/13 国際左利きの日
2/37 
今日のアジェンダ 
1. はじめに 
2. Azure SQLデータベースの最新動向 
3. 内部構造(アーキテクチャ) 
4. パフォーマンス改善 
5. まとめ 
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
はじめに 
※CDP:クラウドデザインパターンの略、クラウドの設計方式を暗黙知から形式知にしたもの 
3/37 
 自己紹介@nishiokya 
 SQL ServerよりMySQLやPostgreSQLに詳しい 
 開発から運用までやってます 
 好きなAzureサービス 
 モバイルサービス 
 好きなCDP 
サーキットブレーカー
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
Azure SQL データベース 
最新動向
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
5/37 
最新動向の目次 
 Azure SQL データベースとは 
 2014/04 新機能の報告 
 基本と標準、プレミアムについて 
 新しい性能基準 
 新しい冗長性/バックアップ 
 新機能のまとめ 
 新しいティアの利用方法
6/37 
Azure SQL データベースとは 
 フルマネージドのデータベースサービス 
 SQL Serverのサブセット 
 マルチテナント方式 
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
7/37 
 2009年8月18日 
History 
 SQL Azure Database CTP版(プレビュー)のリリース 
 2013年1月 
 SQL Server 2012対応、BLOBへのバックアップ 
 2013年8月 
 新ティアプレミアムのプレビュー開始 
 2014年4月 
 新ティア基本、標準のプレビュー開始 
 SLA 99.95%に向上。 
 2015年4月 
 現状のティアWeb,Businessの終了予定
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
8/37 
2014/04 新機能の報告 
 新しいティア発表(基本と標準、プレミアム) 
 最大サイズ500Gの変更 
 性能基準の変更(DTU)し性能保証 
 監査 
 冗長性/バックアップ 
 新しいティアはCPU使用量が取れます 
出典: Azure SQL Database に新機能を導入 
http://blogs.msdn.com/b/windowsazurej/archive/2014/08/08/blog-azure-sql-database-adds-new-features.aspx
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
基本と標準、プレミアムについて 
9/37 
 サービススペック(月額はプレビュー期間のため50%) 
ティアDTU サイズ復元ポイント月額旧Tier 
基本5 2GB 7日間255円Web(5G) 
標準(S1) 15 250GB 14日間2,040円Business 
標準(S2) 50 250GB 14日間10,200円Business 
プレミアム(P1) 100 500GB 35日間47,439円 
プレミアム(P2) 200 500GB 35日間94,860円 
プレミアム(P3) 800 500GB 35日間379,440円 
出典:Azure SQL Database Service Tiers 
http://msdn.microsoft.com/en-us/library/azure/dn741340.aspx
¥20,400 
10/37 
新旧ティアの価格比較 
 月額料金の比較(プレビュー後) 
¥1,426 
¥4,080 
基本 
Web(2G) 
標準(S1) 
ビジネス(10G) 
標準(S2) 
出典:SQL データベースの料金詳細 
http://azure.microsoft.com/ja-jp/pricing/details/sql-database/#basic-standard-and-premium 
¥23,028 
¥4,687 
¥510 
ビジネス(150G) 
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
ティアごとのDTUs比較 
11/37 
新しい性能基準 
 DTUs(データベーススループットユニット) 
 DTUs は、CPU、メモリ、物理的な読み 
取り、トランザクションログの書き込み 
が1 つにまとめられた単位 
 5 DTU は、1 DTU のパフォーマンスレ 
ベルよりも5 倍 
 Azure SQL Database Benchmark 
(ASDB) というベンチマークの結果に基 
づいたパフォーマンスレベルの指標値 
800 
15 
100 
200 
50 
5 
0 400 800 
基本 
標準(S1) 
標準(S2) 
プレミアム 
(P1) 
プレミアム 
(P2) 
プレミアム 
(P3)
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
12/37 
新しい冗長性/バックアップ 
①地理レプリケーション(レプリカ) 
 非同期にデータをレプリケーション 
 標準以上で利用可能。申し込み必要 
 標準とプレミアムで機能が違う 
 プレミアムのレプリカは読み取り可能 
②セルフサービス復元サポート(リストア) 
 基本から利用可能。申し込み不要 
 セルフサービスリストア 
主な障害 
シナリオ 
デフォルト① ② 
サーバ障害○ 
データセン 
ター障害- ○ 
データ損失△ ○ 
出典:SQL Database のアクティブ地理レプリケーションの詳細 
http://blogs.msdn.com/b/windowsazurej/archive/2014/07/22/blog-spotlight-on-sql-database-active-geo-replication.aspx
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
13/37 
新しいティアの利用方法 
 事前申請が必要(2014/8現在) 
 http://azure.microsoft.com/ja-jp/services/preview/ 
 課金アカウントからのみ申請可能 
 即利用可能(プレミアムは1週間くら 
い) 
 DB作成、DBの切り替えどちらもOK
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
14/37 
新機能のまとめ 
1. ディスクサイズによる課金がなくなった 
2. 移行の問題はなさそう 
 標準(S2)はBusinessの最大サイズより安い 
 Azure Federationはサポート外 
3. CPUの使用率が取れるようになりました
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
Azure SQLデータベース 
内部構造(アーキテクチャ)
16/37 
アーキテクチャの目次 
 基本構成 
 接続のシーケンス 
 フェイルオーバのシーケンス 
 スロットリング 
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
基本構成 
 3500$位の物理サーバ(32 GB RAM 8 cores 12Disk) 
17/37 
 仮想マシンXLが14GB RAM 8cores (45,500円/月) 
 1000台で1クラスタを構成 
 1台に最大150データベース 
 1データベースは3台の配置 
 マスター1台、セカンダリー2台
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
18/37 
DBの接続シーケンス 
1. SESSION 1 新規接続 
① クライアントがFrontEnd Clusterに接続 
② Utility Layerでユーザ認証とFWの確認 
③ Master Clusterで物理DBを調査 
④ 物理DBに接続 
2. SESSION2 コネクション接続後 
A) クライアントがFrontEnd Clusterに接続 
B) 物理DBに接続(Frontend Clusterはプロク 
シーするだけ) 
Client 
A) 
Frontend 
Cluster 
Master 
Cluster 
Platform layer 
(物理DB) 
Utility 
Layer 
① 
② 
④ ③ 
B)
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
フェイルオーバーのシーケンス 
①プライマリに障害があると、②他の物理サーバが検知し、③ 
Master Clusterに通知、④Master Clusterがどのセカンダリを 
昇格するかを決定、⑤セカンダリがプライマリに昇格 
検知後30秒で切り替えが完了 
フェイルオーバーの主な例 
19/37 
 定期メンテナンス適用 
 ハードウェアトラブル 
 ソフトウェアトラブル 
2台死ぬと、サービス停止 
Platform Layer 
セカン 
ダリ 
Frontend Cluster 
×プライ 
① 
マリ 
セカン 
ダリ 
監視監視監視 
Master Cluster 
② 
③ 
④ 
プライ 
マリ 
⑤ 
×
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
20/37 
接続設定の注意点 
.NETの既定の設定では、接続タイムアウトを完全に 
回避することは困難 
1. 接続タイムアウト(既定15 秒) を30 秒以上 
 Connection Timeout=30 
2. 接続タイムアウト発生時に、接続の再試行を実施 
3. 接続の再試行間隔は10 秒(最低5 秒以上) 
出典:Windows Azure SQL データベースに接続する際に発生するタイムアウトへの対処方法 
http://msdn.microsoft.com/ja-jp/windowsazure/dn221935.aspx
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
21/37 
スロットリング 
マシンを守るためDB接続を強 
制的クローズする機構 
1. リソース使用量と閾値をリ 
アルタイムに比較 
2. 最もリソースを使用してい 
るDBを制限 
エラーコード“40501”をメッ 
セージ対処表のせる 
スロットリングの種類 
一時ディスク領域の問題が発生しました 
一時ログのスペースの問題が発生しました 
大量のトランザクション/書き込み/更新ア 
クティビティが存在します。 
高ボリュームデータベース入力/出力(I/O) 
処理が存在します。 
高ボリュームのCPU アクティビティが存 
在します。 
データベースのクォータを超過しました 
あまりにも多くの同時要求が発生しました
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
22/37 
内部構造のまとめ 
1. 接続処理に3つのサーバを経由する 
2. 接続エラーがあったら30秒待つ 
 Connection Timeout=30 
3. スロットリングのログを取っておく 
 40501: The service is currently busy. Retry the 
request after 10 seconds.
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
Azure SQLデータベース関連 
パフォーマンス改善
24/37 
パフォーマンス改善の目次 
 パフォーマンス改善の基本 
 パフォーマンス改善サービス一覧 
 SQLデータベースプレミアム 
 Azure Federation 
 Data Sync 
 仮想マシンにおけるSQL Server 
 Cache(クラウドデザインパターン) 
 サービス比較 
 まとめ 
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ
25/37 
パフォーマンス改善の基本 
1. SQL/INDEXチューニング 
2. サーバー 
 スケールアップ 
 スケールアウト 
3. テーブル分割 
4. CACHE 
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
今回の範囲
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
26/37 
パフォーマンス改善サービス 
サービス名(他) タイプ概要 
プレミアムスケールアウト 
スケールアップ 
SQLデータベースの新ティア 
の最上級 
Azure Federation テーブル分割 
(スケールアウト) 
SQLデータベースのサービス 
新ティアでは非サポート 
データ同期スケールアウトSQLデータベースのサービス 
仮想マシンのSQL Server スケールアップIaas利用 
Custom Sharding テーブル分割 
(スケールアウト) 
テーブル分割の独自実装 
※今回は説明しません 
Cash-Aside Cache クラウドデザインパターンの 
一つ
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
SQLデータベースプレミアム 
27/37 
 占有型のためスロットリングがない 
 パフォーマンス保証 
 3種のリソース(CPU、メモリ、IO 
など)タイプがありスケールアップ 
可能 
 最大4台セカンダリレプリカによる 
スケールアウト対応 
Windows Azure SQLデータベース向けのプレミアム機能の詳細 
http://satonaoki.wordpress.com/2013/07/10/azure-sql-db-premium/ 
DT 
U 
ス 
レッ 
ド 
Max 
Session 
トランザ 
クション 
レート 
P1 100 200 2,000 98 /sec 
P2 200 400 4,000 192/sec 
P3 800 1,600 16,000 730/sec 
プレミアムのサイズ
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
28/37 
Azure Federation 
 指定したキーでテーブル分割を 
別サーバに自動分割したスケール 
アウト可能(レンジ分割) 
 アプリ側でキーの範囲を把握し、 
アクセスする必要がある 
 新ティアでの非サポート 
出典: Sharding With SQL Azure 
http://blogs.msdn.com/b/sqlazure/archive/2010/12/23/10108670.aspx
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
29/37 
データ同期(Data Sync) 
 データのバックアップ用やオンプレ連携ツール 
 リードレプリケーションとして5台利用したス 
ケールアウト可能 
 同期頻度の最小タイムは5分 
出典:Azure SQL データ同期の概要 
http://azure.microsoft.com/ja-jp/documentation/articles/sql-database-get-started-sql-data-sync/
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
30/37 
仮想マシンにおけるSQL Server 
 SQL Serverの全機能が利用 
可能 
 プレミアよりハイスペック 
なスケールアップが可能 
 冗長性対策が必要 
インス 
タンス 
コ 
ア 
メモリ目的 
A4(XL) 8 14G 汎用 
A6 4 28G メモリ 
A7,A8 8 56G メモリ・コンピュー 
ティング 
A9 16 112G コンピューティング 
出典:Virtual Machines の料金詳細 
http://azure.microsoft.com/ja-jp/pricing/details/virtual-machines/
Cache-Asideデザインパターン 
31/37 
 DBより安価なCacheを利用してパフォーマンス向上 
 クラウドデザインパターンにはいろいろなCache利用案 
あります) 
① Cacheがあるか確認 
② Cacheが無い場合にData 
Storeから読み取る 
③ Cacheに書き込む 
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
32/37 
各サービスコスト比較 
 独断なので根拠はないのでイメージ 
改善サービス利用料開発おすすめ 
プレミアム× ◎ フルマネージドでやりたいなら 
Azure Federation ○ △ 概要だけ見ておけばよい 
データ同期○ ○ 5分遅延が許されれば 
仮想マシンのSQL 
× ○ お金があればこれが一番 
Server 
Custom sharding ○ × カスタマイズしやすい 
Cash-Aside ◎ ○ 安くあがる
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
33/37 
パフォーマンンスのまとめ 
1. 構成を変えずにスケールアウトするにはプレミアム 
 プレミアム(P2)+レプリカ4台 474,300 /月 
2. 構成を変えずにスケールアップするには仮想マシン 
 SQL Server StandardのA9の例538,806 /月 
3. 構成を変えないで、運用費を抑えてパフォーマンスを 
上げる方法は少ない
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ 
Azure SQLデータベース関連 
まとめ
35/37 
まとめのまとめ 
1. ティアの移行は計画的に! 
2. リトライ&ログ 
3. プレミアムやIAASはお金がかかる 
 クラウドデザインパターンでチープ/スケールしや 
すい設計 
1.はじめに2.最新動向3.内部構造4.パフォーマンス5.まとめ
36/37 
1. 内部構造 
参考情報 
 Inside Microsoft Azure SQL Database 
 http://social.technet.microsoft.com/wiki/contents/articles/1 
695.inside-microsoft-azure-sql-database.aspx 
2. パフォーマンス 
 Gaining Performance Insight into Windows Azure SQL 
Database 
 http://social.technet.microsoft.com/wiki/contents/articles/3507 
.windows-azure-sql-database-performance-and-elasticity-guide. 
aspx 
3. クラウドデザインパターン 
 クラウドデザインパターンAzureを例としたクラウドアフリケー 
ション設計の手引き(ISBN: 4822298337)

Azure SQLデータベース最新動向&TIPS

Editor's Notes

  • #4 無料で使える コードが少なくてすむ サーキットブレーカー 金融用語で、取引を停止したり値幅を規制すること、クラウドでは、障害が起きた外部サービスが停止しても提供する機能を動かして置く機構と、障害が起きた外部サービスに過剰な負荷がかからないようにするつまみを作ることです
  • #5 一次ソースを元に数字は書いていますが古くなった情報等があったら申し訳ないです
  • #9 150->500G
  • #12 ASDB(Azure SQL Database Benchmark ) ASDB は、OLTP ワークロードで最も頻繁に発生するさまざまな基本的なデータベース操作のパフォーマンスを測定
  • #18 画像は削除する
  • #20 ◎物理サーバの前にFlontend Clusterがある。プライマリ物理サーバに障害があると、他の物理サーバが検知しFrontend Clusterに通知し プライマリ、セカンダリとの切り替えのインシデント 定期メンテナンスによるパッチ適用 OS(Windows UpdateでCritical) ファームウエア SQLデータベース(2、3ヶ月に一度) サーバのハードウェアトラブル サーバのソフトウェアトラブル ロードバランサーの切り替えに最大30秒 2台死ぬと、サービス停止(なんでや)
  • #22 サービスシステムリソースを大量に長い時間使用されることからマシンを守る 実際のリソース使用量と安全閾値をリアルタイムに 比較評価 最もリソースを使用しているDBを制限 (ソフトな制限) 今のデータベースまたはサーバが限界につかづいているのかがわかります データベースならパフォーマンスチューニング、サーバなら切り替え
  • #26 画像 http://lets.postgresql.jp/documents/technical/partitioning/1
  • #28 Azure SQLデータベースには プレミアムとというコースがあります 先ほど話した通り共用のSQLデータベース ですが、プレミアムにすることでサーバを占有できます。 またプレミアムの機能として特徴として スロットリング機構がない(同時リクエストの制限が大きい) Self-Service Restore で最大過去35日までのデータで任意の日時に戻せます Active Geo-Replication で最大4箇所の読み取り専用セカンダリレプリカ作成することができます 用途に合わせて3種類のCPU,メモリから選択できます プレミアムには現在3種類定義があります  P1 1Core、8GB RAM 月当たり5万円  P2 2Cores,16GB RAM 月当たり10万円  P3 4Cores,16GB RAM 月当たり40万円 また近い将来P4というものも準備されているとのことです リソース (CPU、メモリ、IO など)
  • #33 SQL Azure フェデレーションの説明 データ同期の説明 1つのデータベース内にスケールアウトする必要性があるテーブルを別サーバに分割することができます。 これにより150Gを超えるデータ量を扱うことができますし データ増大した場合のパフォーマンス対策にもなります。 また最近データ同期 また、あとからぶ動的にデータをパーティションキーを変更することができます