sql azure入門

85
SQLTO & TechParty 2011 第第第第 2011 第 8 第第第第第 SQL Azure

Upload: -

Post on 28-May-2015

1.348 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Sql azure入門

第2回 SQLTO & TechParty 2011

~ 入門から 2011 年 8 月現在まで

SQL Azure

Page 2: Sql azure入門

2

自己紹介大和屋 貴仁

SIer さんで、運用保守してます2010 年に SQLAzure.jp ドメイン取得

SQL Azure の情報発信を始める商標的に大丈夫?MS に怒られるかも……怒られたら逃げよう匿名でやってましたMVP 受賞したから、もう大丈夫??

日本初! SQL Azure MVP は覆面エバンジェリスト?!http://enterprisezine.jp/article/detail/3353

Page 3: Sql azure入門

3

蒼の王座   sqlazure.jp

Page 4: Sql azure入門

4

SQL Azure を知っていますか?SQL Azure は、SQL Server のクラウドサービス

Page 5: Sql azure入門

5

SQL Azure 誕生経緯SQL Azure は、 SQL Server 2008から

どんどんガラパゴス化?→  しません!

Page 6: Sql azure入門

6

SQL Server と SQL Azure の関係

SQL Server

SQL Azure

次世代データベースプラットフォームアーキテクチャ

Page 7: Sql azure入門

7

SQL Azure 構成図

Data Sync レポーティング

データベース

Analytics

データマーケット

CTP CTPPlanning

Page 8: Sql azure入門

8

SQL Azure の操作SQL Azure は、ブラウザでサーバ管理をする

Page 9: Sql azure入門

9

サーバの設定 http://windows.azure.comにアクセス

Page 10: Sql azure入門

10

以前は、 http://sqlazurelabs.com

で公開されていたHouston

データベースの作成

Page 11: Sql azure入門

11

Silverlight SQL Manager

基本的なデータベース管理機能Table, Views, Stored Procedure の作成クエリの実行データベースオブジェクトの管理

Page 12: Sql azure入門

12

SQL Server 2008 R2Management Studio

Page 13: Sql azure入門

13

SSMS で接続

Page 14: Sql azure入門

14

SQL Azure の裏側SQL Azure の動作アーキテクチャーを見ていく

Page 15: Sql azure入門

15

世界6か所の DC

Page 16: Sql azure入門

16

自由自在なスケールアウトSQL Azure サーバーは物理サーバではない

SQL Server

SQL Azure Server

Machine

TDS Endpoint

Page 17: Sql azure入門

現時点の SQL Azure スケールアウト

データベースの柔軟なプロビジョニングCREATE DATABASE and go仮想でも、サーバでも無い

使用料に応じたビジネスモデル

物理管理は無し高可用性、パッチ、メンテナンスはビルトイン

Page 18: Sql azure入門

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

Page 19: Sql azure入門

19

リソース共有モデルSQL データベースは共有インフラ一般的なハードウェアを使用した大規模分散クラスター仮想環境では無く物理マシンにホスト

Page 20: Sql azure入門

20

物理マシンと DB の関係物理マシン

SQL インスタンス• SQL DB

– 複数ユーザの DB

DB を 3 つ作成したとしても……SQL Azure ゲートウェイサービス

スケーラビリティ&アベイラビリティ:ファブリック、フェイルオーバー、ロードバランス

Page 21: Sql azure入門

21

サイズ

Web5 GB

Business50 GB

Page 22: Sql azure入門

22

上限サイズ  web : 1, 5GB  Business : 10, 20, 30, 40, 50GB

Page 23: Sql azure入門

23

可用性3 重化による自動保護バックアップ プライマ

セカンダリ

Page 24: Sql azure入門

24

セキュリティ( Dos Gard )FirewallSQL Server 認証

Page 25: Sql azure入門

25

SQL Azure Firewall SQL Azure 用の IP アドレス

ベースのアクセスコントロール

初期値はすべての IP を拒否

SQL Azure Portal 、管理 APIを使用して設定

Windows Azure にホストされたアプリケーションからのアクセス許可・非許可の設定

インターネット

Page 26: Sql azure入門

26

Firewall にアクセスできる IP の設定SQL Azure で必須の作業

アクセス可能な IP の登録アクセス可能な IP の登録

Page 27: Sql azure入門

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'

Page 28: Sql azure入門

セキュリティモデル一般的なSQLセキュリティモデルを使用

ログインとユーザやロールをマッピングした認証

SQL オブジェクトをユーザとロールで承認

標準的な SQL 認証をサポートユーザ名とパスワード

セキュリティモデルはオンプレミスの SQL と互換性がある

Page 29: Sql azure入門

SQL Azure セキュリティ認証と承認モデル

29

SQL Serverログイン

Databaseユーザ

Databaseロール

サーバレベルでの認証接続、権限設定

データベースレベルでの認証接続、権限設定

データベースレベルでのユーザグループと権限設定

SQL Azure は、 Mirosoft SQL Server で使用したのと同じような実績のある認証と承認モデルを使用している

29

Page 30: Sql azure入門

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のルールを最初に設定する !

Page 31: Sql azure入門

31

承認、監査、暗号化のサポート

SQL Azure は、オンプレミスの SQL Server と同じデータベースレベルの権限モデル現在のバージョンでは、監査は未サポートまだ標準で暗号化 (TDE) をサポートしていないAzure は SSL暗号化と接続文字列での証明書チェックのオプション

Encrypt=True;TrustServerCertificate=False

Page 32: Sql azure入門

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円 / 月 同じ

Page 33: Sql azure入門

33

バックアップ2種類のリスク : ディザスターリカバリと SQL による破壊バックアップ機能は、現時点で未サポート次バージョンの最優先機能提供予定

コードで他のロケーションへのデータ移行ファイルエクスポートもしかすると BCP か SSIS

Page 34: Sql azure入門

34

Database Copythe first step in backup support

for SQL Azureデータベースのスナップショットを

簡単に作成可能

Page 35: Sql azure入門

35

Database Copy の特徴同じデーターセンター内に Copy 可能

同じサーバー内にコピー可能別のサーバー内にコピー可能

T-SQL を使用し非同期実行T-SQL 発効後セッションが切れても処理を継続する

トランザクションコピーコピー元のダウンタイムは無し

Page 36: Sql azure入門

36

Database Copy をしてみるmaster データベースに対してT-SQL を発行する

コピー先のサーバーにて実行。コピー先の test2 にスナップショットを作成する。コピー元は、 Server1 の test となる。

CREATE DATABASE test2 AS COPY OF Server1.test

Page 37: Sql azure入門

37

実行状況のモニタリング

select name, state, state_desc from sys.databases

コピー中

Page 38: Sql azure入門

38

実行状況のモニタリング

select * from sys.dm_database_copies コピー状況

Page 39: Sql azure入門

39

Database Copy のポイントコピー中は負荷がかかるので、実行する時間に注意。当面のバックアップ用途に使用可能。

アプリのバージョンアップ前スキーマの更新前データパッチの実行前

Page 40: Sql azure入門

マイグレーション選択肢• スクリプト生成ウィザード

• 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

Page 41: Sql azure入門

41

SQLAzureMW

SQL Azure Migration Wizard

Page 42: Sql azure入門

42

日本固有の問題

照合順序タイムゾーン

Page 43: Sql azure入門

43

DC と通信時間緑に塗られている箇所は、 NW遅延が 100ms 以内のDC が 2 つ以上ある地域日本は黄色なので、 100ms以内の DC が 1 つある地域

Page 44: Sql azure入門

44

SQL Azure における NW遅延NW遅延は、

ユーザとアプリケーション間 アプリケーションと SQL Azure DB間

レスポンス時間

Page 45: Sql azure入門

45

NW遅延の計測方法

Page 46: Sql azure入門

46

NW遅延の計測結果世界6か所の DC に対して接続したときの NW遅延を計測

Page 47: Sql azure入門

47

リソース管理と複数テナントリソースを他のユーザの DB と共有

CPU 、メモリワーカースレッド、ネットワークTempdbデータファイル / ログファイル他のユーザから性能影響を受ける

同じマシーンにのっている別の人高負荷の処理をする

Page 48: Sql azure入門

48

複数テナント管理機能全ユーザが快適に使用できるように

ロードバランサースロットルサービス(制限サービス)

Page 49: Sql azure入門

49

ロードバランサーリソース利用のバランスを取る

物理マシンの過剰利用を最小限にする制限を減少させる

Swap と物理マシンの移動

Page 50: Sql azure入門

50

Swap と移動Swap

プライマリデータベースの変更プライマリデータベースの役割をセカンダリデータベースに移動

物理マシンの移動ホスト場所を別の物理マシンにコピーし移動させる

Page 51: Sql azure入門

51

スロットル(制限)サービスシステムリソースを大量に長い時間使用されることからマシンを守る

実際のリソース使用量と安全閾値をリアルタイムに比較評価最もリソースを使用している DB を制限(ソフトな制限)もし無理ならすべての DB を制限します。(ハードな制限)

新しい接続要求の受付を停止リソースを過剰消費している処理を中断

Page 52: Sql azure入門

52

エラーメッセージ“The service is currently busy. Retry the request after 10 seconds. Code: %d.”

Page 53: Sql azure入門

53

制限コードのデコード方法

Page 54: Sql azure入門

54

Page 55: Sql azure入門

55

制限シナリオ例1顧客 A がマシンの CPU を 30% 使用している顧客 B が同じマシンで、追加で 70%の CPU を開始した

Page 56: Sql azure入門

56

制限シナリオ例1顧客AがマシンのCPUを30%使用している顧客Bが同じマシンで、追加で70%のCPUを開始した

顧客Bは制限されます解決方法:ロードバランサーは、このマシンからAまたはBを移動させる

制限トリガー:顧客B制限対象:顧客B公平性:公平に顧客Bを制限します Bは、AよりもCPUを使用している このマシーンの制限は、Bがトリガーとなっている。

Page 57: Sql azure入門

57

制限シナリオ例2顧客 A がマシン上で CPU を 70%使用している顧客 B が同じマシンで、追加で 30%の CPU を開始した

Page 58: Sql azure入門

58

制限シナリオ例2顧客Aがマシン上でCPUを70%使用している顧客Bが同じマシンで、追加で30%のCPUを開始した

顧客Aは制限されます解決方法:ロードバランサーは、このマシンからAまたはBを移動させる

制限トリガー:顧客B制限対象:顧客A公平性:顧客Aを制限するのは公平では無い このマシーンの制限は、Bがトリガーとなっている。

Page 59: Sql azure入門

59

制限シナリオ例3マシン上にアクティブなワークロードが無い顧客 A が CPU100%を使用し、何度も制限されている

Page 60: Sql azure入門

60

制限シナリオ例3マシン上にアクティブなワークロードが無い顧客AがCPU100%を使用し、何度も制限されている

顧客Aは制限されます解決方法:無し。どこに配置しても制限されます。顧客AはマシンのCPUを使用しすぎます。

制限トリガー:顧客A制限対象:顧客A公平性:システム観点からは公正だが、顧客は幸せでは無い 顧客Aは、SQL Azureマシンに適合するように、最適化とリソース使用量を減らす必要があります。

Page 61: Sql azure入門

SQL Azure 互換性現在サポートしている

• テーブル、インデックス、ビュー• ストアドプロシージャ• トリガー• 制約• Table変数 ,

一時 temp テーブル (#t)• 空間型 , HierarchyId

現時点は未サポート

• データ型– スパース列 , Filestream

• パーティション• フルテキストインデックス• SQL-CLR

テーブルはクラスタ化インデックスが必須61

Page 62: Sql azure入門

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

Page 63: Sql azure入門

63

SQL Azure Data Sync

Page 64: Sql azure入門

64

SQL Azure Data Sync – 主要機能柔軟にスケール

成長に応じたリソースをスケールさせるサービス

コードなしで同期設定同期するデータの定義が簡単

スケジュール同期同期させるデータを選択する方法

衝突のハンドリング複数個所で同じデータを変更された場合の検知

ロギングとモニタリング問題の監視とデータの追跡が可能

課金

Page 65: Sql azure入門

オンプレミスとクラウドの双方向同期

SQL Server と SQL Azure の同期

Sync

メリット• クラウドへの置き換えより

もクラウドへ拡張するシナリオ

• 投資した既存のインフラを使用しつつクラウドを活用することができる

• エンタープライズをクラウドで補完する

SQL Azure

Page 66: Sql azure入門

小売店や支店へのデータ提供

SQL Azure から SQL Server への同期メリット

• 支店や小売店などとデータを共有する。データをエンドユーザの近くに置く

• 遅延が少ない – データ接続にラウンドトリップが必要なし

• 高可用性 – サーバがこけてもアプリを使用可能

• ネットワーク帯域の減少 – ほとんどのデータ接続はローカル

SQL Azure

Page 67: 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

Page 68: Sql azure入門

68

2011 年 8 月時点でのロードマップ

Page 69: Sql azure入門

69

2011 年 5 月にリリースされた機能1つのサブスクリプションに複数のサーバを追加できるDAC フレームワークによるインポートとエクスポートSQL Azure  サーバ API

Page 70: Sql azure入門

70

2011 年 7 月にリリースされた機能

Co-Admin の設定データベースエンジンをDenali エンジンへ切り替え!

エンジン番号 11.XX.XXXX に変更されるSSMS 2008 R2 SP1 にて対応

Page 71: Sql azure入門

71

SQL Azure の Co-admin 設定

Page 72: Sql azure入門

72

リリース予定の機能ポイント・タイムリストア  CTP指定した時間へデータベースをリストアできる

Page 73: Sql azure入門

73

時期 Data Sync同期設定の設定画面改善スケール対応

Page 74: Sql azure入門

74

今年度投資内容

Page 75: Sql azure入門

Azure ユーザー会にご参加ください

http://r.jazug.jp

Page 76: Sql azure入門

76

MSDN フォーラムWindows Azureカテゴリ         レスポンスタイム    数十分~数時間

http://bit.ly/AzureBBS

Page 77: Sql azure入門

77

2011 年4月SQL Azure

Page 78: Sql azure入門

78

SQL Azureへの要望

http://bit.ly/SQLAzureVote

Page 79: Sql azure入門

79

http://on.fb.me/maniax5

Page 80: Sql azure入門

?Q

& A

Ask your questions. 80

Page 81: Sql azure入門

81

付録

Page 82: Sql azure入門

82

SQL Azure のサーバアドレス 

     カスタムドメインd.sqlazure.jpユーザ名 @ サーバ名

Page 83: Sql azure入門

83

セッショントレース ID

SQL Azure は接続毎にセッショントレース ID を付与する

Page 84: Sql azure入門

84

セッショントレース IDユニークな GUIDセッショントレース ID によって全ての接続の記録と追跡が可能

障害時の問い合わせ対応に使用すると効率的

Page 85: Sql azure入門

85

セッショントレース IDT-SQL で取得可能

SELECT CONVERT(NVARCHAR(36), CONTEXT_INFO())