【Azure for ITPRO シリーズ】 SQL Azure 管理とセキュリティ 2010年10月版 V1.1 マイクロソフト株式会社 エバンジェリスト 安納 順一 http://blogs.technet.com/junichia/ 1 修正履歴 修正日時 修正内容 2010/10/13 2010年10月13日時点では Azure データセンター間の as copy of パラメタによるデータベース複製はサポートされていな いことを追記 2 Agenda & Takeaway 1. SQL Azure オーバービュー 2. データベース管理とセキュリティ – 管理ツール – 認証とFirewall – 移行/同期/バックアップ 3. SQL Server との違い 4. Business Intelligence 5. まとめ 3 まずは初物から SQL AZURE オーバー ビュー 4 SQL Azure とは? ホスティングサービスの先へ 予定あり Public Preview 未定 Reporting Services Business Analytics Data Sync Service Community review Management Portal SQL Data Platform as a Service パブリッククラウド上の RDB 既存のスキルとツールを引き継いで利用可能 既存データベースアプリケーションにクラウド接続を提供 SQL Azure の特徴 • インストール/パッチ適用の必要が無い • サーバー本体のメンテナンスの必要が無い • 高い可用性と耐障害性 • シンプルな管理 • ビジネスニーズに応じたスケールアップ/ダウン • マルチテナント • 従来の管理ツール、開発ツールを継続して利用可能 • T-SQL ベースの RDB モデル 6 オンプレミスとのシンメトリックな関係 SQL Azure へのアクセス方法は2つ (HTTP/S と TDS) オンプレミスのアプリケーションからはシームレスにアクセスが可能 SOAP/REST HTTP/S ADO.NET/REST - EDM HTTP/S SQLCMD 管 理 Management Studio App Code (ASP.NET) PowerPivot BI Windows Azure T-SQL (TDS) SSAS SSIS LOB T-SQL (TDS) SQL Azure SSRS App AppCode Code T-SQL (TDS) ADO.NET/ODBC/PHP ※SQL Azureでサポートされるのは TDS(tabular data stream)7.3以降 ※OLE DB経由の接続はサポートされない SQL Server ちなみに TDS 以外の接続は? • SQL Azure OData Service をサポート予定(現在 Preview) • REST API を使用した HTTPS アクセスが可能 SQL Azure DB OData Service TDS 認証/承認 REST API https Anonymous or AppFabric ACS https://odata.sqlazurelabs.com/OData.sv c/v0.1/<sql azure host>/<dbname> OData Javascript Library OData SDK for PHP Restlet extension for OData (Java) ruby_odata: OData client library for ruby OData Client Library for Win Phone 7 OData client for Objective-C .NET F 3.5 SP1 Data Services update for .NET F 3.5 SP1 Microsoft .NET F 4 Silverlight 4 SQL Azure サービスのプロビジョニング Account Server Azure プラットフォームサービス共通のID (Live ID)を発行 SQL Azure Server と管理アカウントを作成 • サーバー名は自動生成 <servername>.database.windows.net 1つのアカウントで1つのサーバーのみ生成可能 Database Database Database データベースの作成 • 1データベースあたり1GB - 50GB 9 (参考)アカウント作成直後 まだデータベース用ノード(サーバー)は割り当てられていない 10 (参考)サーバー作成と管理カウントの作成 ここで作成したアカウントが sa 権限を持つ 11 (参考)サーバー名と master DB の割り当て サーバー名 初期は master データベース のみが割り当てられる 12 50GB Database サポート • 2タイプの SQL Azure Database: – Web Edition :最大サイズ = 1 GB or 5 GB • ¥ 979.02 / 最大1GB のデータベース / 月 • ¥ 4,895.10 / 最大5GB までのデータベース / 月 – Business Edition • • • • • ¥ ¥ ¥ ¥ ¥ :最大サイズ = 10 | 20 | 30 | 40 | 50 9,799.02 / 最大10GB までのデータベース / 月 19,598.04 / 最大20GB までのデータベース / 月 29,397.06 / 最大30GB までのデータベース / 月 39,196.08 / 最大40GB までのデータベース / 月 48,995.10 / 最大50GB までのデータベース / 月 Web の場合 Business の場合 SQL Azure の構造とスケーラビリティ ユーザーDB へのアクセスは TDS Gateway を介する ユーザー固有のmaster データベースにより認証が行われDB一覧を取得 Master クラスター TDS GATEWAY ログインリクエスト ユーザーのmasterを検索 master にアクセス UserDBにアクセス 認 証 master node 1 master node 2 Partition Manager Partition Manager Data Node Component Data Node Component データクラスター node:Machine14 node:Machine15 fabric fabric SQL SV Mgmt. Service SQL SV Mgmt. Service node:Machine150 fabric SQL SV Mgmt. Service master データベースの役割 • • • • SQL Azure Server は 複数の物理サーバーに分散したデータベースの集合体 master データベースによりユーザーのデータベースモデルが維持される ログイン/ロール チェックは master データベースで行われる ログイン管理/データベース管理は master に対して行う ログイン/ロールチェック ログイン管理 データベース管理 master 15 自動複製とフェールオーバー • 異なるノードに 常に 2 つの複製を持つ – プライマリレプリカ*1 – セカンダリレプリカ*2 トランザクションの コミット時に複製 プライマリ セカンダリ コミット優先度1 複製 複製 プライマリの障害時には コミット優先度の高い ほうがプライマリになる セカンダリ コミット優先度2 更新処理はプライ マリで行われる TDS Gateway DML Operations (insert/update/delete) (参考) 4時間以内に、障害が発生したプ ライマリが復旧しない場合、廃棄 されて新たなセカンダリが生成さ れる ロードバランス 5分に1回のチェックサイクルで最適なノードを選定 プライマリ Load Balancer セカンダリ セカンダリ いろいろ小難しいこと言ってるけど、 ぜーんぶ 勝手にやってくれるんだって! これならデータセンターよりいいかも… とはいえ、クラウドだって管理は必要 SQL AZURE の管理とセキュリティ 19 SQL Azure 用管理ツール SQL Azure Portal • • • • ブラウザーからの操作 管理ユーザーのパスワード変更 データベースの作成と削除 Firewall の設定 SQL Server Management Studio • おなじみの管理コンソール • SQL Server 認証で SQL Azure に接続 • 基本的なDB/テーブル操作に加えて、DB移行にも有用 SQLCMD • SQL Server 認証で SQL Azure に接続 Project Houston(CTP1) • • • • ブラウザーからの操作 Silverlight ベースの管理コンソール 現時点では SSMS にはおよばない… 1280 * 1024 以上の解像度がお勧め 20 SQL Azure の管理機能 概要 Scenario/Tool SQL Azure Portal SSMS 2008 R2 Houston CTP1 データ ベース作成/削除 ○ クエリーを使用 GUI テーブル作成/変更/削除 × クエリーを使用 GUI データ層アプリの抽出/登録/配置 × ウィザード × データの参照 × クエリーを使用 GUI データの操作 × クエリーを使用 GUI ログインの管理 管理者のパスワード変更 クエリーを使用 クエリーを使用 ユーザーの管理 × クエリーを使用 クエリーを使用 データベースオブジェクトのスクリプト生成 × ウィザード ロールの管理 × クエリーを使用 クエリーを使用 ストアドプロシジャーの管理 × クエリーを使用 GUI ビューの管理 × クエリーを使用 GUI スキーマの管理 × クエリーを使用 クエリーを使用 各種ステータス参照 × クエリーを使用 ○ Firewall の設定 ○ × × 21 SQL Azure Portal 管理者パスワード リセット サーバーの削除 データベースの 作成/削除 22 SQL Server Management Studio • バージョンによってサポート範囲が異なる • サーバーへの接続には SQL Server ログインを使用する SQL Server 2008 Management Studio • GUI による管理はサポートされていない • データベースに接続するたびに「接続」ダイアログを使用する ※SQL Azure では USEコマンドがサポートされていない • 全ての操作はクエリーで実行する SQL Server 2008 R2 Management Studio • GUIによる操作を「一部」サポート • オブジェクトエクスプローラーを使 用可能 • データベース作成、ユーザー作成を GUIから実施可能 • テーブル操作はクエリーを使用 • クエリーウィンドウはデータ ベースごとに開く必要あり ※SQL Azure では USEコマン ドがサポートされていない 23 SQL Azure Portal と Management Studio AQL Azure ポータル(http://sql.azure.com/) SQL Server 2008 R2 Management Studio SQLCMD • ログインには <login>@<server名> を使用する sqlcmd -U <ユーザーID@ホスト名> -P <パスワード> -S <サーバー名> -d <DB名> -N (注)osql コマンドは未サポート Codename “Project Houston” http://sqlazurelabs.com/houston.aspx • Silverlight版 SQL Azure 用管理ツール – – – – – テーブル デザイナー クエリー デザイナー ビュー デザイナー ストアドプロシジャー デザイナー 各種ステータス表示 CTP1 Houston ー データベースの使用量 27 Houston ー テーブルのデザイン 28 Houston ー データの操作 行の追加/削除 データを直接編集 29 SQL Azure へのアクセス経路と認証 • SQL Azure の認証は「SQL Server 認証」のみ • フロントのエンドポイントに実装された認証方式をユーザーに公開することも 可能 SSMS/SQLCMD/BCP ASP.NET 認 証 OData Service REST SQL Server SQL Azure 独自 認証 Application WIF AppFabric ACS WIF ASP.NET AD FS 2.0 AD DS 30 Firewall の設定 • インターネット • SQL Azure ←(1433/TCP)← ←(IP Range)← SQL Azure ポータル レンジを設定 xxx.xxx.xxx.xxx クライアントのIP アドレス オンプレミス インターネット SQL Azure ← ANY • • • • 1433/TCP サーバー単位に設定が必要 反映されるまでに5分程度を要する 現在は IPv6 未サポート 最大128ルール sys.firewall_rules_table ※ OData Service を使用することで HTTPS でのアクセスが可能 OData Service + ACS による認証/承認の拡張 • OData と ACS の連携により、より強固な認証/承認が可能に • オンプレミス AD DS を使用してシングルサインオン SQL Azure DB OData Service AppFabric ACS フェデレーション信頼 TDS 認証/承認 フェデレーション REST API https SWTト-クン ⑤ 信 頼 送 付 ②SAMLトークン発行 ①トークン発行依頼 認証 AD FS 2.0 AD DS Open Data Protocol (OData) Data Clients Excel PowerPivot .NET Client Silverlight Javascript PHP … Open Data Protocol (AtomPub + EDM) Data Sources ADO.NET SharePoint Analysis & Reporting SQL Server SQL Azure Win Azure WCF Data & RIA Services 33 移行/同期/バックアップ 移行 1. SQL Server Management Studio – スクリプトウィザード – データ層アプリケーション 抽出/登録/取込み – データインポート/エクスポート ウィザード 移行 2. BCP.EXE バックアップ 同期 3. SQL Server Integration Service(SSIS) 移行 – 接続マネージャーに「ADO.NET」を使用 4. Sync Framework 同期 – SQL Azure Data Sync Tool for SQL Server • Power Pack for SQL Azure November CTP(32-bit) – SQL Azure Data Sync Service(ラボ) 5. SQL Azure Data Copy バックアップ 6. SQL Server Migration Wizard(SSMW) 移行 34 SQL Server → SQL Azure データ移行ツールの概要 not supported by Microsoft Scenario/Tool 簡便 SSMS スクリプト 生成 ウィザード ● 高機能 スキーマの移行 √ データの移行 √ 高速移行 SSMS SSMS SQL Azure データ層アプ インポート/エク Migration リケーション スポート ウィ Wizard ザード SSIS BCP ● ● ● ● ● ● ● ● √ √ √ √ √ √ √ √ √ √ √ 35 SMSS ー スクリプト作成ウィザード • SQL Server から SQL Azure へのデータベース移行 SQL Server Management Studio ┗ [データベース] ノード ┗[タスク] ┗[スクリプトの生成] • SQL Azure へのネイティブな対応 • スクリプトによる細かな制御 データ部は Insert 文に変換されるため高速移行には向かない • 非互換によりスクリプトが生成されないこともある Unsupported Transact-SQL Statements (SQL Azure Database) http://msdn.microsoft.com/en-us/library/ee336253.aspx 36 つづき ~ SQL Azure への接続設定 37 SSMS - データ層アプリケーション(DAC)の移行 • データベース オブジェクトおよびインスタンス オブジェクトを含む エンティティ • データ自体は含まれない • テーブルやビューなどを個別に移行するのではなく、まとめて パッケージ化(DACPACK)して移行することができる • Visual Studio 2010 を使用して DAC を開発することも可能 DACPACKを抽出する場合 DACPACKを取り込む場合 SQL Server Management Studio ┗ [データベース] ノード ┗[タスク] ┗[データ層アプリケーションの抽出] SQL Server Management Studio ┗[<サーバー>] ┗[データ層アプリケーションの配置] データ スキーマ テーブル ビュー 抽出 .DACPACK 配置 ログイン ストアドプロシジャ DAC 38 DAC と UCP(Utility Control Point) UCP(ユーティリティコントロールポイント)と DAC により、アプリケー ションが要求する OS バージョンや SQL Server バージョンにあったイン スタンスに DAC を展開できる DACアプ リの抽出 管理者 SQL Server Management Studio DACアプリの状 態を集中監視 DAC DAC DACアプ リの開発 ユーティリティ コントロール ポイント (UCP) SQL Server インスタンス群 Visual Studio 2010 データベースエンジニア 39 SSMS ー インポート/エクスポート ウィザード SQL Server Management Studio ┗ [データベース] ノード ┗[タスク] ┣ [データのインポート] ┗ [データのエクスポート] データのインポート データのエクスポート 変換元 source SQL Server SQL Azure 変換先 destination SQL Azure SQL Server • SSIS と同様のウィザードを使用 • 移行単位を細かく制御可能 • データベース全体 • 選択したテーブル • クエリに合致した行 • データベースは事前に作成しておく • 自動的に互換性を補完しないので 必要に応じて手動での調整が必要 • クラスター化インデックス の追記 • データ変換の修正 40 つづき ~ SQL Azure DB の指定方法 .NET Framework Data Provider for SqlServer 編 タイムアウトでエラー となる場合にはここで 調整 41 SQL Azure Migration Wizard http://sqlazuremw.codeplex.com/ • Scenario – スキーマとデータの移行 • メリット – – – – SQL Azure 互換 バルク移行に対応 はじめに clustered index 作成を行う スクリプトを生成してくれる • 留意点 – データがローカルに保存される – NOT Supported by Microsoft 42 SQL Azure のバックアップ 障害シナリオ ハードウェア 故障 データ紛失 X ソリューション 提供 時期 備考 自動複製機能 ・常に3つのレプリカが作成される 提供中 SQL Azureに組 み込み BCP、SSIS 等 提供中 データベースクローン機能 ・ローカル→ローカル ・ローカル→別サーバー 提供中 利用者自身が実行 予定 利用者自身が設定 ・ローカル→別リージョン スケジューリング可能なバックアップ機能 • 任意の時点のバックアップからリストア • スケジュール設定 • バックアップされたデータは読取専用 • ローカル/リモート 対応 43 BCP.EXE バルク API を使用したデータの高速移行 SQL Azure → ローカル bcp KENALL.dbo.KEN out c:\data.txt -c -S tcp:xxa8lqxxxx.database.windows.net -U username@xxa8lqxxxx -P password ローカル → SQL Azure bcp KENALL.dbo.KEN in c:\data.txt -c -S tcp:xxa8lqxxxx.database.windows.net -U username@xxa8lqxxxx -P password -T(統合認証)は未サポート ーS(サーバー名)は必須 ※サーバー名には「tcp:」必須 44 SQL Azure データベース クローン • 大規模 SQL Azure データベースの高速コピー • 利用シナリオ – データベースのバックアップまたは移行 • 同一サーバー内 • リージョン内のサーバー間 • リージョン間 – データベースごとのロールバック CREATE DATABASE <dest_db> AS COPY OF <source_db> <source_db> :ソースデーターベース <dest_db> :複製先データベース データベースクローン機能(Update4 で提供済) CREATE DATABASE sv01.db1clone AS COPY OF sv01.db1 master DB1 clone DB1 sv01.database.windows.net CREATE DATABASE sv02.db1clone AS COPY OF sv01.db1 master DB1 clone sv02.database.windows.net NORTH US Region master データセンター間は 現時点で未サポート DB1 clone sv03.database.windows.net SOUTH US Region 46 SQL Azure を中心としたデータ統合シナリオ 全てのプラットフォーム間でのデータ同期が可能に オフラインキャッシュが 有効なアプリケーション Sync Framework V2.1 Sync Framework V3(future) C/Sアプリ 企業内 SQL Azure Data Sync Service (preview) スマート フォン Sync Framework V2.1 企業間 47 Microsoft Sync Framework • プロバイダー間のデータプロビジョニングを実現 • Metadata Storage により差分同期を管理 • V2.1 では SQL Azure をプロバイダーとして登録可能 SQL Azure オンプレミス Sync Framework V2.1 Sync Orchestrator SQL Server Sync Provider SQL Azure Provider Metadata Storage Metadata Storage 双方向の 差分同期 TDS Sync Runtime 48 Sync Framework V2.1 アプリを利用した拠点間同期 • SQL Azureをハブとして拠点間のDBを同期 • 1433/TCP を 「内部 → インターネット」 で Open すれば通信可能 49 SQL Azure Data Sync Service(Project Huron) • SQL Azure データベース間の同期 • ポータルサイトで設定が可能(完全なコードレス) • スケジュールされた同期が可能 • Daily / Monthly / Hourly / Weekly Public Preview HUB member SQL Azure Data Sync Service member 手近なSQL Azure からオン プレミスに同期 50 SQL SERVER との違い 51 SQL Server との管理方法とセキュリティの違い 違いのポイント サーバーレベルセキュリティ の設定場所 サーバーレベルのロールを管 理できるユーザー SQL Server SQL Azure Management Studio の「セキュリ Masterデータベース内の「users」 ティ」フォルダ securityadmin loginmanager ログインユーザーを管理する ためのコマンド CREATE LOGIN ALTER LOGIN DROP LOGIN CREATE LOGIN ALTER LOGIN DROP LOGIN ※パラメタに若干の違いあり ※Master DBで実行する必要あり データベース作成権限を持つ サーバーレベルのロール dbcreator dbmanager SQL Azure ポータル CREATE DATABASE ※パラメタに若干の違いあり ※Master DBで実行する必要あり DROP DATABASE ※パラメタに若干の違いあり ※Master DBで実行する必要あり データベースの作成 CREATE DATABASE データベースの削除 DROP DATABASE ログイン一覧の参照 sys.sql_logins ビュー sys.sql_logins ビュー ※master DBで実行する必要あり データベース一覧の参照 sys.databases ビュー sys.databases ビュー ※master DBで実行する必要あり 52 loginmanager と dbmanager loginmanager ロール ログインアカウントを作成する権限を持つロール。SQL Serverで言うとこ ろの securityadmin ロールに相当する。 ログインアカウントを管理するには、masterデータベースで実行する必要 がある。 dbmanager ロール データベースを作成する権限を持つロール。SQL Server 2008/R2 の dbcreator ロールに相当する。 データベースを管理するには masterデータベースで実行する必要がある。 SQL Azure Server プロビジョン時に作成した管理アカウントは両方の ロールを持っている SQL Azure では USE コマンドがサポートされていないため、master データベース接続後に実行しなければならない 53 (参考)T-SQL 文法の違い 詳細は以下を参照してください Transact-SQL Reference (SQL Azure Database) http://msdn.microsoft.com/ja-jp/library/ee336281(en-us).aspx Supported T-SQL Reference http://msdn.microsoft.com/en-us/library/ee336267.aspx Un-Supported T-SQL http://msdn.microsoft.com/en-us/library/ee336253.aspx (例) SQL Azure CREATE DATABASE database_name [(MAXSIZE = [1 | 10] GB )] [;] SQL Server CREATE DATABASE database_name [ ON [ PRIMARY ] [ <filespec> [ ,...n ] [ , <filegroup> [ ,...n ] ] [ LOG ON { <filespec> [ ,...n ] } ] ] [ COLLATE collation_name ] [ WITH <external_access_option> ] ] [;] 54 (参考)サポートされているデータ型(2010/09時点) 詳細 http://msdn.microsoft.com/en-us/library/ee336233.aspx カテゴリ SQL Azureでサポートされるデータ型 真数(Exact numerics) bigint, bit, decimal, int, money, numeric, smallint, smallmoney, tinyint. 概数(Approximate numerics) float, real. 日付と時刻 date, datetime2, datetime, datetimeoffset, smalldatetime, time. 文字列 char, varchar, text. Unicode文字列 nchar, nvarchar, ntext. バイナリ文字列 binary, varbinary, image. 空間型 geography, geometry その他のデータ型 cursor, sql_variant, table, timestamp, uniqueidentifier, xml, hierarchyid 55 Data Access APIs • Supported APIs Supported Unsupported ADO.Net .Net 3.5 SP1 and 4.0 ODBC - SNAC 10 Entity Framework .Net 3.5 SP1 and 4 SQL Server 2008 Driver for PHP v1.1 OleDB • 接続文字列の注意点 • • ADO.Net • Encrypt=True • ユーザーIDには @servername を付加する ODBC • Encrypt=yes • Uid に @servername を付加する • プロトコル Supported Unsupported TCP/IP over port 1433 動的ポート/名前付きパイプ/共有メモリ • 認証 Supported Unsupported SQL Server 認証 Windows 統合認証 BUSINESS INTELLIGENCE 57 Business Intelligence 機能 • オンプレミスからSQL Azure をデータソースとして利用 – PowerPivot for EXCEL – SQL Server Reporting Service – SQL Server Analysis Service • クラウド上でSQL Azure をデータソースとして利用 – Using the Report Viewer Control with SQL Azure • http://blogs.msdn.com/b/sqlazure/archive/2010/08/17/10 051010.aspx – SQL Azure Reporting Service 予定あり 58 PowerPivot for Excel 2010 SQL Azure 上のデータ ベースを分析ソースとして利用可能 オンプレミス ローカルPC SQL Azure SQL Server 2008 R2 など CSV CUBEの作成 PowerPivot ピボットテーブル EXCEL 2010 59 OData Service + PowerPivot for EXCEL 外向けに TDS(port 1433) が公開されていない環境では、OData Service を使用した HTTPS 通信が可能 SQL Azure DB OData Service TDS REST API https Atom フィード としてデータを 取り込む 60 まとめ 61 まとめ SQL Azure の登場により • あきらめていたことが実現できます • 従来の管理手法/考え方を継承できます • 少しの違いだけ覚えてください システム管理者はこらからも 頼られる存在であり続けます! 62 63
© Copyright 2024 ExpyDoc