sql azure入門
TRANSCRIPT
第2回 SQLTO & TechParty 2011
~ 入門から 2011 年 8 月現在まで
SQL Azure
2
自己紹介大和屋 貴仁
SIer さんで、運用保守してます2010 年に SQLAzure.jp ドメイン取得
SQL Azure の情報発信を始める商標的に大丈夫?MS に怒られるかも……怒られたら逃げよう匿名でやってましたMVP 受賞したから、もう大丈夫??
日本初! SQL Azure MVP は覆面エバンジェリスト?!http://enterprisezine.jp/article/detail/3353
3
蒼の王座 sqlazure.jp
4
SQL Azure を知っていますか?SQL Azure は、SQL Server のクラウドサービス
5
SQL Azure 誕生経緯SQL Azure は、 SQL Server 2008から
どんどんガラパゴス化?→ しません!
6
SQL Server と SQL Azure の関係
SQL Server
SQL Azure
次世代データベースプラットフォームアーキテクチャ
7
SQL Azure 構成図
Data Sync レポーティング
データベース
Analytics
データマーケット
CTP CTPPlanning
8
SQL Azure の操作SQL Azure は、ブラウザでサーバ管理をする
10
以前は、 http://sqlazurelabs.com
で公開されていたHouston
データベースの作成
11
Silverlight SQL Manager
基本的なデータベース管理機能Table, Views, Stored Procedure の作成クエリの実行データベースオブジェクトの管理
12
SQL Server 2008 R2Management Studio
13
SSMS で接続
14
SQL Azure の裏側SQL Azure の動作アーキテクチャーを見ていく
15
世界6か所の DC
16
自由自在なスケールアウトSQL Azure サーバーは物理サーバではない
SQL Server
SQL Azure Server
Machine
TDS Endpoint
現時点の SQL Azure スケールアウト
データベースの柔軟なプロビジョニングCREATE DATABASE and go仮想でも、サーバでも無い
使用料に応じたビジネスモデル
物理管理は無し高可用性、パッチ、メンテナンスはビルトイン
18
動作方法 アプリケーション ツール
ODBC ADO.NET
TDS
SQL Azure サーバーConnection Routing
Billing
Provisioning
Server
SQL Server
SQL Azure Fabric
Server
SQL Server
SQL Azure Fabric
Server
SQL Server
SQL Azure Fabric
19
リソース共有モデルSQL データベースは共有インフラ一般的なハードウェアを使用した大規模分散クラスター仮想環境では無く物理マシンにホスト
20
物理マシンと DB の関係物理マシン
SQL インスタンス• SQL DB
– 複数ユーザの DB
DB を 3 つ作成したとしても……SQL Azure ゲートウェイサービス
スケーラビリティ&アベイラビリティ:ファブリック、フェイルオーバー、ロードバランス
21
サイズ
Web5 GB
Business50 GB
22
上限サイズ web : 1, 5GB Business : 10, 20, 30, 40, 50GB
23
可用性3 重化による自動保護バックアップ プライマ
リ
セカンダリ
24
セキュリティ( Dos Gard )FirewallSQL Server 認証
25
SQL Azure Firewall SQL Azure 用の IP アドレス
ベースのアクセスコントロール
初期値はすべての IP を拒否
SQL Azure Portal 、管理 APIを使用して設定
Windows Azure にホストされたアプリケーションからのアクセス許可・非許可の設定
インターネット
26
Firewall にアクセスできる IP の設定SQL Azure で必須の作業
アクセス可能な IP の登録アクセス可能な IP の登録
27
Firewall にアクセスできる IP の設定T-SQL からルール追加が可能
→ sp_set_firewall_rule
exec sp_set_firewall_rule N'Wayne Berry','206.63.251.3','206.63.251.3'
セキュリティモデル一般的なSQLセキュリティモデルを使用
ログインとユーザやロールをマッピングした認証
SQL オブジェクトをユーザとロールで承認
標準的な SQL 認証をサポートユーザ名とパスワード
セキュリティモデルはオンプレミスの SQL と互換性がある
SQL Azure セキュリティ認証と承認モデル
29
SQL Serverログイン
Databaseユーザ
Databaseロール
サーバレベルでの認証接続、権限設定
データベースレベルでの認証接続、権限設定
データベースレベルでのユーザグループと権限設定
SQL Azure は、 Mirosoft SQL Server で使用したのと同じような実績のある認証と承認モデルを使用している
29
30
SQL Azure へ接続SQL Azureの接続文字列は、以下のように通常のSQLと同じ
アプリケーションから直接データベースへ接続する“Initial Catalog = <db>” in connection stringデータベースの切り替え文は未サポート (USE <db>は使用できない )1つのバッチに1つしか記述できないコマンドがある• Create/Alter/Drop Database & Create/Alter/Drop Login, & Create/Alter USER with FOR/FROM LOGIN
暗号化セキュリティSet Encrypt = True, only SSL connections are supportedTrustServerCertificate = False, avoid Man-In-The-Middle-Attack!
認証用ユーザ名のフォーマット :ADO.Net:Data Source=server.database.windows.net;User ID=user@server;Password=password;...
Firewallのルールを最初に設定する !
31
承認、監査、暗号化のサポート
SQL Azure は、オンプレミスの SQL Server と同じデータベースレベルの権限モデル現在のバージョンでは、監査は未サポートまだ標準で暗号化 (TDE) をサポートしていないAzure は SSL暗号化と接続文字列での証明書チェックのオプション
Encrypt=True;TrustServerCertificate=False
32
価格
SQL Azure Development Accelerator Core - $74.95
http://microsoft.com/japan/windowsazure/pricing/
Edition Web Business Bandwidth
最大 1 GB 980円 / 月 n/a 受信 9.8円送信 14.7円
アジア受信 9.8円送信 19.6円
最大 5 GB 4900円 / 月 n/a 同じ
最大 10 GB n/a 9800円 / 月 同じ
最大 20 GB n/a 19600円 / 月 同じ
最大 30 GB n/a 29400円 / 月 同じ
最大 40 GB n/a 39200円 / 月 同じ
最大 50 GB n/a 49000円 / 月 同じ
33
バックアップ2種類のリスク : ディザスターリカバリと SQL による破壊バックアップ機能は、現時点で未サポート次バージョンの最優先機能提供予定
コードで他のロケーションへのデータ移行ファイルエクスポートもしかすると BCP か SSIS
34
Database Copythe first step in backup support
for SQL Azureデータベースのスナップショットを
簡単に作成可能
35
Database Copy の特徴同じデーターセンター内に Copy 可能
同じサーバー内にコピー可能別のサーバー内にコピー可能
T-SQL を使用し非同期実行T-SQL 発効後セッションが切れても処理を継続する
トランザクションコピーコピー元のダウンタイムは無し
36
Database Copy をしてみるmaster データベースに対してT-SQL を発行する
コピー先のサーバーにて実行。コピー先の test2 にスナップショットを作成する。コピー元は、 Server1 の test となる。
CREATE DATABASE test2 AS COPY OF Server1.test
37
実行状況のモニタリング
select name, state, state_desc from sys.databases
コピー中
38
実行状況のモニタリング
select * from sys.dm_database_copies コピー状況
39
Database Copy のポイントコピー中は負荷がかかるので、実行する時間に注意。当面のバックアップ用途に使用可能。
アプリのバージョンアップ前スキーマの更新前データパッチの実行前
マイグレーション選択肢• スクリプト生成ウィザード
• SQL Azure と互換性のあるスキーマやデータの SQL スクリプトの生成• SQL Server マイグレーションアシスタント
(ダウンロード可能 )• MySQL, Oracle, Access, SQL Server...
• SQLAzureMW 日本語化• SQL Azure で未サポートの機能抽出に便利• 効率的なデータ移行• 非公式サポート
• データ層アプリケーションコンポーネント (DAC)• T-SQL による新たなデプロイ単位インストール、アンインストールのサポー
ト• ポリシーによる制御
Data-tier Application Component
SchemaLOGICAL
Tables, Views,
Constraints, SProcs, UDFs,
PHYSICALUsers, Logins,
Indexes
Future - DAC Deployment ProfileDeployment Requirements, Management
Policies, Failover Policies
Unit of D
eployment
41
SQLAzureMW
SQL Azure Migration Wizard
42
日本固有の問題
照合順序タイムゾーン
43
DC と通信時間緑に塗られている箇所は、 NW遅延が 100ms 以内のDC が 2 つ以上ある地域日本は黄色なので、 100ms以内の DC が 1 つある地域
44
SQL Azure における NW遅延NW遅延は、
ユーザとアプリケーション間 アプリケーションと SQL Azure DB間
レスポンス時間
45
NW遅延の計測方法
46
NW遅延の計測結果世界6か所の DC に対して接続したときの NW遅延を計測
47
リソース管理と複数テナントリソースを他のユーザの DB と共有
CPU 、メモリワーカースレッド、ネットワークTempdbデータファイル / ログファイル他のユーザから性能影響を受ける
同じマシーンにのっている別の人高負荷の処理をする
48
複数テナント管理機能全ユーザが快適に使用できるように
ロードバランサースロットルサービス(制限サービス)
49
ロードバランサーリソース利用のバランスを取る
物理マシンの過剰利用を最小限にする制限を減少させる
Swap と物理マシンの移動
50
Swap と移動Swap
プライマリデータベースの変更プライマリデータベースの役割をセカンダリデータベースに移動
物理マシンの移動ホスト場所を別の物理マシンにコピーし移動させる
51
スロットル(制限)サービスシステムリソースを大量に長い時間使用されることからマシンを守る
実際のリソース使用量と安全閾値をリアルタイムに比較評価最もリソースを使用している DB を制限(ソフトな制限)もし無理ならすべての DB を制限します。(ハードな制限)
新しい接続要求の受付を停止リソースを過剰消費している処理を中断
52
エラーメッセージ“The service is currently busy. Retry the request after 10 seconds. Code: %d.”
53
制限コードのデコード方法
54
55
制限シナリオ例1顧客 A がマシンの CPU を 30% 使用している顧客 B が同じマシンで、追加で 70%の CPU を開始した
56
制限シナリオ例1顧客AがマシンのCPUを30%使用している顧客Bが同じマシンで、追加で70%のCPUを開始した
顧客Bは制限されます解決方法:ロードバランサーは、このマシンからAまたはBを移動させる
制限トリガー:顧客B制限対象:顧客B公平性:公平に顧客Bを制限します Bは、AよりもCPUを使用している このマシーンの制限は、Bがトリガーとなっている。
57
制限シナリオ例2顧客 A がマシン上で CPU を 70%使用している顧客 B が同じマシンで、追加で 30%の CPU を開始した
58
制限シナリオ例2顧客Aがマシン上でCPUを70%使用している顧客Bが同じマシンで、追加で30%のCPUを開始した
顧客Aは制限されます解決方法:ロードバランサーは、このマシンからAまたはBを移動させる
制限トリガー:顧客B制限対象:顧客A公平性:顧客Aを制限するのは公平では無い このマシーンの制限は、Bがトリガーとなっている。
59
制限シナリオ例3マシン上にアクティブなワークロードが無い顧客 A が CPU100%を使用し、何度も制限されている
60
制限シナリオ例3マシン上にアクティブなワークロードが無い顧客AがCPU100%を使用し、何度も制限されている
顧客Aは制限されます解決方法:無し。どこに配置しても制限されます。顧客AはマシンのCPUを使用しすぎます。
制限トリガー:顧客A制限対象:顧客A公平性:システム観点からは公正だが、顧客は幸せでは無い 顧客Aは、SQL Azureマシンに適合するように、最適化とリソース使用量を減らす必要があります。
SQL Azure 互換性現在サポートしている
• テーブル、インデックス、ビュー• ストアドプロシージャ• トリガー• 制約• Table変数 ,
一時 temp テーブル (#t)• 空間型 , HierarchyId
現時点は未サポート
• データ型– スパース列 , Filestream
• パーティション• フルテキストインデックス• SQL-CLR
テーブルはクラスタ化インデックスが必須61
SQL Azure セキュリティ
• SQL 認証と Windows 認証• データベースユーザとロール
による制御• serveradmin,
securityadmin ,dbcreator のようなサーバロール
• TCP ポート 1433 上の SSL とTDS 経由の接続
• ホスト Firewall を使用したFirewall と IP ブロッキング
• 標準で暗号化 (TDE) のサポート
伝統的な SQL Server vs SQL Azure
• SQL 認証のみ使用でき、 Windows 認証は使用できない
• データベースユーザとロールによる制御
• MasterDB にサーバロールlogin manager と dbmanager ロール の追加
• TCP ポート 1433 上の SSLと TDS 経由の接続
• SQL Azure 標準の Firewall でIP ブロッキング
• 標準で暗号化は未サポート62
63
SQL Azure Data Sync
64
SQL Azure Data Sync – 主要機能柔軟にスケール
成長に応じたリソースをスケールさせるサービス
コードなしで同期設定同期するデータの定義が簡単
スケジュール同期同期させるデータを選択する方法
衝突のハンドリング複数個所で同じデータを変更された場合の検知
ロギングとモニタリング問題の監視とデータの追跡が可能
課金
オンプレミスとクラウドの双方向同期
SQL Server と SQL Azure の同期
Sync
メリット• クラウドへの置き換えより
もクラウドへ拡張するシナリオ
• 投資した既存のインフラを使用しつつクラウドを活用することができる
• エンタープライズをクラウドで補完する
SQL Azure
小売店や支店へのデータ提供
SQL Azure から SQL Server への同期メリット
• 支店や小売店などとデータを共有する。データをエンドユーザの近くに置く
• 遅延が少ない – データ接続にラウンドトリップが必要なし
• 高可用性 – サーバがこけてもアプリを使用可能
• ネットワーク帯域の減少 – ほとんどのデータ接続はローカル
SQL Azure
同期シナリオ
オンプレミスアプリケーション
Sync
SyncSync
オフラインアプリケーション
Sync
SyncSQL Azure Database
Syn
cSync
Sync
SQL Azure Data Sync
http://azure.com
SQL Azure Data Sync CTP2
Microsoft Sync Framework 4.0 CTP
Sync Sync
支店小売店
SQL Azure Data Sync CTP1http://azure.com)
67
68
2011 年 8 月時点でのロードマップ
69
2011 年 5 月にリリースされた機能1つのサブスクリプションに複数のサーバを追加できるDAC フレームワークによるインポートとエクスポートSQL Azure サーバ API
70
2011 年 7 月にリリースされた機能
Co-Admin の設定データベースエンジンをDenali エンジンへ切り替え!
エンジン番号 11.XX.XXXX に変更されるSSMS 2008 R2 SP1 にて対応
71
SQL Azure の Co-admin 設定
72
リリース予定の機能ポイント・タイムリストア CTP指定した時間へデータベースをリストアできる
73
時期 Data Sync同期設定の設定画面改善スケール対応
74
今年度投資内容
Azure ユーザー会にご参加ください
http://r.jazug.jp
76
MSDN フォーラムWindows Azureカテゴリ レスポンスタイム 数十分~数時間
http://bit.ly/AzureBBS
77
2011 年4月SQL Azure
78
SQL Azureへの要望
http://bit.ly/SQLAzureVote
79
http://on.fb.me/maniax5
?Q
& A
Ask your questions. 80
81
付録
82
SQL Azure のサーバアドレス
カスタムドメインd.sqlazure.jpユーザ名 @ サーバ名
83
セッショントレース ID
SQL Azure は接続毎にセッショントレース ID を付与する
84
セッショントレース IDユニークな GUIDセッショントレース ID によって全ての接続の記録と追跡が可能
障害時の問い合わせ対応に使用すると効率的
85
セッショントレース IDT-SQL で取得可能
SELECT CONVERT(NVARCHAR(36), CONTEXT_INFO())