Sql azure入門

Preview:

Citation preview

第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 は、ブラウザでサーバ管理をする

9

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

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())