Slide 1

Slide 1 text

実プロジェクトの経験から学ぶ Azure サービス適用パターン 2015/09/11 浅見 城輝 株式会社 pnop / Cloudlive 株式会社

Slide 2

Slide 2 text

©2015 pnop, Inc. © 2011 Microsoft Corporation All Rights Reserved. About me kuniteru.asami Find me Database Azure 2012~ Microsoft Azure

Slide 3

Slide 3 text

©2015 pnop, Inc. http://www.cloudlive.jp/ http://www.pnop.co.jp/ Microsoft Azure Microsoft Azure の特徴を活かした 設計、開発、構築により 最適な環境を実現 Windows / Linux 対応 コンサルティング サービス

Slide 4

Slide 4 text

©2015 pnop, Inc. Microsoft Azure 自習書シリーズ http://blogs.msdn.com/b/windowsazurej/archive/2014/06/02/blog-published-azure-self-learning-series.aspx Azure msdn 自習書 検索

Slide 5

Slide 5 text

©2015 pnop, Inc. Microsoft Azure スライド シリーズ http://www.slideshare.net/MicrosoftAzure_Japan/presentations

Slide 6

Slide 6 text

©2015 pnop, Inc. 弊社が携わった Azure プロジェクト例 ゲーム ERP クレジット EC POS ヘルスケア 交通 地域 広告 書籍 天気 写真 CMS 占い 駐車場 イベント サイネージ IoT HPC パッケージ OSS

Slide 7

Slide 7 text

©2015 pnop, Inc. Agenda Azure のサービス PaaS と IaaS Data store 構成例

Slide 8

Slide 8 text

©2015 pnop, Inc. Azrue のサービス Powered by Kamebuchi@pnop

Slide 9

Slide 9 text

©2015 pnop, Inc. Paas と IaaS

Slide 10

Slide 10 text

©2015 pnop, Inc. PaaS と IaaS どちらにしたらいいですか?

Slide 11

Slide 11 text

©2015 pnop, Inc. 選択する理由 目的を実現することができる 導入コストが低い 運用コストが低い 障害発生率が低い 障害時の復旧時間が短い 障害時の復旧が容易 エンジニアの確保が容易 学習コストが低い etc…

Slide 12

Slide 12 text

©2015 pnop, Inc. 仮想マシン クラウドサービス Web Apps

Slide 13

Slide 13 text

©2015 pnop, Inc.

Slide 14

Slide 14 text

©2015 pnop, Inc. v v Web Apps クラウドサービス 仮想マシン

Slide 15

Slide 15 text

©2015 pnop, Inc. Web Apps Web アプリケーションの場合はまずは Web Apps を検討すべき 言語は以下に含まれること .NET, PHP, Java, Python, node.js あるいは 静的ファイル 言語の細かいバージョンにこだわらないこと インストールが必要なミドルウェアやエージェントなどがないこと WAF を必要としないこと Barracuda WAF が Web Apps にも対応していますが、Web Apps だけでは実現できません VPN や Azure 内部のネットワークからアクセスする必要がないこと Active Directory に所属する必要がないこと OS、Web サーバー、言語ランタイムのアップデートの管理が不要 アプリケーションの展開が簡単 素早いオートスケールが可能

Slide 16

Slide 16 text

©2015 pnop, Inc. クラウドサービス OS、Web サーバー、.NET Framework のアップデートの管理が不要 .NET 以外の言語を利用する場合は、そのアップデートの管理が必要 多くのミドルウェアやアプリケーションを利用可能 オートスケールが容易 インスタンス内に保存したデータや設定は永続化されない 初期設定は可能ですが、後で変更するとメンテナンスや障害などによる再起 動時に初期化されます データは Azure Storage や SQL Database などの外部データストアに保存します アプリケーションの展開方法にややクセがある Azure を利用し始めていきなりクラウドサービスは 難易度がやや高い

Slide 17

Slide 17 text

©2015 pnop, Inc. 仮想マシン 普通の Windows Server、Linux Server として利用することができる OS に対応しているアプリケーションであれば何でもインストールすることが できる クラウド向けのライセンスを確認すること ローカルディスクに保存したデータが永続化される Docker、Chef、Puppet などを利用可能 OS やインストールしたミドルウェアなどのアップデートの管理が必要 ロードバランスされている Web サーバーで Windows Update が同時に動いていいのか? OS やアプリケーションのアップデートを凍結しても、 ホスト OS のアップデートの影響を受ける

Slide 18

Slide 18 text

©2015 pnop, Inc. Data Store

Slide 19

Slide 19 text

©2015 pnop, Inc. MySQL 使いたいんです

Slide 20

Slide 20 text

©2015 pnop, Inc. Azure で利用できる主なデータストア RDBMS NoSQL BLOB Data on IaaS SQL Database Table Storage DocumentDB BLOB Storage 仮想マシン ClearDB Redis Cache

Slide 21

Slide 21 text

©2015 pnop, Inc. RDBMS を利用するなら v DB on 仮想マシン SQL Database ClearDB???

Slide 22

Slide 22 text

©2015 pnop, Inc. SQL Database Microsoft SQL Server 互換の DBaaS 3 重化されており、Master の障害時には瞬時に Slave が自動で昇格 非同期ではあるがRead only replica の作成が可能 (同一DC / 異なるDC) 自動でバックアップが取得されており、PITR が可能 .NET ではライブラリにより Sharding が可能 データサイズの制限 (MAX 500GB) TimeZone が UTC 固定 一部の関数やストアドプロシージャ、 SQL Server Agent / Job などサポートされない機能がある スロットリングがある

Slide 23

Slide 23 text

©2015 pnop, Inc. ClearDB サードパーティから提供されている MySQL 互換 の DBaaS Azure 上で稼働している 3 サーバーでの マルチマスタレプリケーション構成 自動で日時バックアップを取得

Slide 24

Slide 24 text

©2015 pnop, Inc. DB on 仮想マシン 仮想マシン上にユーザー自身で任意の RDBMS を構築する Microsoft SQL Server、Oracle Database、IBM DB2 が公式に対応を表明 SQL Server は、Azure に対応した機能を持つ MySQL、PostgreSQL なども利用可能 Premium Storage を利用するのが定石 全ての Disk をPremium Storage にしなくてもよい Azure のメンテナンスや障害による 仮想マシン再起動への対策として可用性の高い 構成が必要 インスタンスサイズによるがデータベースの 最大サイズは 64TB ※ トランザクションログ、バックアップ領域なども含む (SQL Server は除く)

Slide 25

Slide 25 text

©2015 pnop, Inc. SQL Server の高可用性構成 AlwaysOn 可用性グループ 同期コミットによるレプリケーション

Slide 26

Slide 26 text

©2015 pnop, Inc. 可用性セット SQL Server AlwaysOn 可用性グループ Worker ロール (クラウドサービス) Web ロール (クラウドサービス) 仮想マシン ILB SQL Server on 仮想マシン SQL Server on 仮想マシン 同期コミット WSFC ノード AD DC AD DC 可用性セット

Slide 27

Slide 27 text

©2015 pnop, Inc. Oracle Database の高可用性構成 Oracle GoldenGate 双方向/マルチマスタ レプリケーション Oracle Data Guard REDO ログ転送によるミラーリング Oracle RAC は構成できない

Slide 28

Slide 28 text

©2015 pnop, Inc. Oracle GoldenGate Active - Active 双方向 / マルチマスタ レプリケーション 必要なデータのみをレプリケーション Oracle Database Standard Edition でも利用可能

Slide 29

Slide 29 text

©2015 pnop, Inc. Oracle GoldenGate GoldenGate GoldenGate 双方向同期 Oracle DB on 仮想マシン ILB Worker ロール Oracle DB on 仮想マシン Web ロール 仮想マシン (クラウド サービス) Web ロール 仮想マシン Worker ロール CTF/TAF* CTF/TAF* CTF/TAF* (クラウド サービス) * CTF = Connection Time Failover, TAF = Transparent Application Failover 可用性セット

Slide 30

Slide 30 text

©2015 pnop, Inc. Oracle Data Guard Active - Standby ディザスタ リカバリを目的とした REDO ログ転送 によるミラーリング ファスト・スタート・フェイルオーバーによる切 替

Slide 31

Slide 31 text

©2015 pnop, Inc. 可用性セット 可用性セット Oracle Active Data Guard Data Guard Data Guard REDOログ同期転送 Oracle DB EE on 仮想マシン Oracle DB EE on 仮想マシン Web ロール (クラウドサービス) 仮想マシン CTF/TAF* CTF/TAF* Worker ロール (クラウドサービス) CTF/TAF* オブザーバー オブザーバー * CTF = Connection Time Failover, TAF = Transparent Application Failover

Slide 32

Slide 32 text

©2015 pnop, Inc. MySQL の高可用性構成 MySQL Cluster MySQL 標準のクラスタ Galera cluster for MySQL マルチマスタ レプリケーション

Slide 33

Slide 33 text

©2015 pnop, Inc. MySQL Cluster MySQL 標準のクラスタ機能 NDB ストレージエンジン 通常の MySQL Server に加えて、クラスタをサポー トするバイナリ、NDB ストレージ エンジン、NDB ストレージ マネジメント サーバーが必要

Slide 34

Slide 34 text

©2015 pnop, Inc. 可用性セット 可用性セット 可用性セット MySQL Cluster ILB Worker ロール SQL ノード on 仮想マシン Web ロール 仮想マシン Data ノード on 仮想マシン Data ノード on 仮想マシン SQL ノード on 仮想マシン 管理ノード on 仮想マシン 管理ノード on 仮想マシン 管理クライアント on 仮想マシン

Slide 35

Slide 35 text

©2015 pnop, Inc. MySQL Galera Cluster マルチマスタ レプリケーション InnoDB ストレージエンジン Galera Cluster 対応の MySQL / MariaDB / PERCONA Server と wsrep APIを利用 http://galeracluster.com/

Slide 36

Slide 36 text

©2015 pnop, Inc. 可用性セット MySQL Galera Cluster wsrep API wsrep API MySQL on 仮想マシン Worker ロール MySQL on 仮想マシン Web ロール 仮想マシン wsrep API MySQL on 仮想マシン ILB

Slide 37

Slide 37 text

©2015 pnop, Inc. クラスタソフトの利用 市販されている / OSS のクラスタソフトを利用す ることも可能 NEC CLUSTERPRO SIOS LifeKeeper Pacemaker + Corosync etc… Worker ロール (クラウドサービス) Web ロール (クラウドサービス) 仮想マシン ILB 仮想マシン 仮想マシン レプリケーション 可用性セット

Slide 38

Slide 38 text

©2015 pnop, Inc. 構成例

Slide 39

Slide 39 text

©2015 pnop, Inc. とあるゲームの初期計画構成イメージ Apple Push Notification Service Google Cloud Messaging 仮想マシン 管理サーバー PHP ロードバランサー ロードバランサー ロードバランサー DocumentDB ログ出力先 クラウドサービス ゲームサーバー node.js Storage Queue クラウドサービス ミニゲームサーバー node.js Redis Cache 仮想マシン 通知サーバー PHP クラウドサービス ロジックサーバー C#.net 運用管理者 ユーザー MySQL on 仮想マシン ゲームDB (Sharding & Read only replica)

Slide 40

Slide 40 text

©2015 pnop, Inc. とあるゲームの運用構成イメージ Apple Push Notification Service Google Cloud Messaging Web App 管理サーバー PHP ロードバランサー ロードバランサー ロードバランサー Storage Table ログ出力先 クラウドサービス ゲームサーバー node.js Service Bus Queue Web App ミニゲームサーバー node.js Redis Cache Nortification Hubs 通知サーバー クラウドサービス ロジックサーバー C#.net 運用管理者 ユーザー SQL Database ゲームDB (Sharding and Active geo-replication)

Slide 41

Slide 41 text

JAZUGのご紹介 ◼ Japan Azure User Group 略称:JAZUG(じゃずゆーじー) ◼ http://r.jazug.jp ◼ コミュニティ活動概要: 「Microsoft Azureを通じて、技術、交流、実ビジネスを楽しむ。」 “ちょっと興味がある=ゆるふわな方” から “実ビジネスで使うんだよね” な方まで 大歓迎!ゆるふわコミュニティです。 ◼ JAZUGへの参加はFacebookで。 Japan Windows Azure User Group(Facebookページ) https://www.facebook.com/jazug.jp Japan Windows Azure User Group(Facebookグループ) https://www.facebook.com/groups/jazug/ ◼ JAZUG女子部、札幌(きたあず)、青森、仙台、福島、静岡、名古屋(なごあず)、 信州(Azureしなの)、関西(関西Azure研究会)、福岡(ふくあず)、沖縄 ◼ Twitter: #jazug ◼ 一緒に運営してくれるメンバーを募集中です。

Slide 42

Slide 42 text

JAZUGで書籍の監訳をしました • クラウド デザインパターン • 日経BP社 • 2014/06/09 発売 • ¥3,240 (Kindle版: ¥3,000)

Slide 43

Slide 43 text

©2015 pnop, Inc. http://www.pnop.co.jp/