43
実実実実実実実実実実実実実実 Azure 実実実実実実実実実実 2015/09/11 実実 実実 実実実実 pnop / Cloudlive 実実実実

実プロジェクトの経験から学ぶazureサービス適用パターン

Embed Size (px)

Citation preview

Page 1: 実プロジェクトの経験から学ぶazureサービス適用パターン

実プロジェクトの経験から学ぶAzure サービス適用パターン 2015/09/11

浅見 城輝株式会社 pnop / Cloudlive 株式会社

Page 2: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

© 2011 Microsoft CorporationAll Rights Reserved.

About me

浅見 城輝(あさみ くにてる)

kuniteru.asamiFind me

Database

Azure 2012~

Microsoft Azure

Page 3: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

http://www.cloudlive.jp/http://www.pnop.co.jp/

Microsoft Azure

Microsoft Azure の特徴を活かした設計、開発、構築により

最適な環境を実現Windows / Linux 対応

コンサルティング サービス

Page 4: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

Microsoft Azure 自習書シリーズ

http://blogs.msdn.com/b/windowsazurej/archive/2014/06/02/blog-published-azure-self-learning-series.aspx

Azure msdn 自習書検索

Page 5: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

Microsoft Azure スライド シリーズ

http://www.slideshare.net/MicrosoftAzure_Japan/presentations

Page 6: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

弊社が携わった Azure プロジェクト例ゲーム ERP クレジット EC POS ヘルスケア 交通

地域 広告 書籍 天気 写真 CMS 占い

駐車場 イベント サイネージ IoT HPC パッケージ OSS

Page 7: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

AgendaAzure のサービスPaaS と IaaSData store構成例

Page 8: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

Azrue のサービス

Powered by Kamebuchi@pnop

Page 9: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

Paas と IaaS

Page 10: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

PaaS と IaaSどちらにしたらいいですか?

Page 11: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

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

Page 12: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

仮想マシン クラウドサービス Web Apps

Page 13: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

Web Appsクラウドサービス仮想マシン

◎△○環境構築の容易さ

△○◎自由度の高さ

◎○△運用コストの安さ

\12.04/h (S1)\9.59/h (A1)\10.82/h (Windows

A1)\8.27/h (Linux A1)

Azure 費用

Page 14: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

v

v

Web Apps

クラウドサービス仮想マシン

Page 15: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

Web AppsWeb アプリケーションの場合はまずは Web Apps を検討すべき

言語は以下に含まれること.NET, PHP, Java, Python, node.js あるいは 静的ファイル

言語の細かいバージョンにこだわらないことインストールが必要なミドルウェアやエージェントなどがないことWAF を必要としないこと

Barracuda WAF が Web Apps にも対応していますが、 Web Apps だけでは実現できませんVPN や Azure 内部のネットワークからアクセスする必要がないことActive Directory に所属する必要がないこと

OS 、 Web サーバー、言語ランタイムのアップデートの管理が不要アプリケーションの展開が簡単素早いオートスケールが可能

Page 16: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

クラウドサービスOS 、 Web サーバー、 .NET Framework のアップデートの管理が不要

.NET 以外の言語を利用する場合は、そのアップデートの管理が必要多くのミドルウェアやアプリケーションを利用可能オートスケールが容易インスタンス内に保存したデータや設定は永続化されない

初期設定は可能ですが、後で変更するとメンテナンスや障害などによる再起動時に初期化されますデータは Azure Storage や SQL Database などの外部データストアに保存します

アプリケーションの展開方法にややクセがあるAzure を利用し始めていきなりクラウドサービスは難易度がやや高い

Page 17: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

仮想マシン普通の Windows Server 、 Linux Server として利用することができる

OS に対応しているアプリケーションであれば何でもインストールすることができるクラウド向けのライセンスを確認すること

ローカルディスクに保存したデータが永続化されるDocker 、 Chef 、 Puppet などを利用可能OS やインストールしたミドルウェアなどのアップデートの管理が必要

ロードバランスされている Web サーバーでWindows Update が同時に動いていいのか?

OS やアプリケーションのアップデートを凍結しても、ホスト OS のアップデートの影響を受ける

Page 18: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

Data Store

Page 19: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

MySQL使いたいんです

Page 20: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

Azure で利用できる主なデータストアRDBMS NoSQL BLOB Data on IaaS

SQL Database Table Storage DocumentDB BLOB Storage 仮想マシン

ClearDB Redis Cache

Page 21: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

RDBMS を利用するなら

vDB on 仮想マシン

SQL Database

ClearDB???

Page 22: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

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

Page 23: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

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

Page 24: 実プロジェクトの経験から学ぶazureサービス適用パターン

©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 は除く )

Page 25: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

SQL Server の高可用性構成AlwaysOn 可用性グループ

同期コミットによるレプリケーション

Page 26: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

可用性セット

SQL Server AlwaysOn 可用性グループ

Worker ロール(クラウドサービス)Web ロール(クラウドサービス) 仮想マシン

ILB

SQL Serveron 仮想マシン SQL Server

on 仮想マシン

同期コミット

WSFC ノード AD DC AD DC

可用性セット

Page 27: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

Oracle Database の高可用性構成Oracle GoldenGate双方向 / マルチマスタ レプリケーション

Oracle Data GuardREDO ログ転送によるミラーリング

Oracle RAC は構成できない

Page 28: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

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

Page 29: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

Oracle GoldenGate

GoldenGate GoldenGate

双方向同期

Oracle DBon 仮想マシン

ILB

Worker ロール

Oracle DBon 仮想マシン

Web ロール 仮想マシン( クラウド サービス )

Web ロール 仮想マシンWorker ロール

CTF/TAF*CTF/TAF*CTF/TAF*

( クラウド サービス )

* CTF = Connection Time Failover, TAF = Transparent Application Failover

可用性セット

Page 30: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

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

Page 31: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

可用性セット

可用性セットOracle Active Data Guard

Data Guard Data Guard

REDO ログ同期転送

Oracle DB EEon 仮想マシン Oracle DB EE

on 仮想マシン

Web ロール(クラウドサービス) 仮想マシン

CTF/TAF*CTF/TAF*

Worker ロール(クラウドサービス)

CTF/TAF*

オブザーバー オブザーバー

* CTF = Connection Time Failover, TAF = Transparent Application Failover

Page 32: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

MySQL の高可用性構成MySQL Cluster

MySQL 標準のクラスタGalera cluster for MySQL

マルチマスタ レプリケーション

Page 33: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

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

Page 34: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

可用性セット

可用性セット

可用性セットMySQL Cluster

ILB

Worker ロール

SQL ノードon 仮想マシン

Web ロール 仮想マシン

Data ノードon 仮想マシン Data ノード

on 仮想マシン

SQL ノードon 仮想マシン

管理ノードon 仮想マシン管理ノード

on 仮想マシン 管理クライアントon 仮想マシン

Page 35: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

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

Page 36: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

可用性セット

MySQL Galera Cluster

wsrep API wsrep API

MySQLon 仮想マシン

Worker ロール

MySQLon 仮想マシン

Web ロール 仮想マシン

wsrep API

MySQLon 仮想マシン

ILB

Page 37: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

クラスタソフトの利用市販されている / OSS のクラスタソフトを利用することも可能

NEC CLUSTERPROSIOS LifeKeeperPacemaker + Corosyncetc…

Worker ロール(クラウドサービス)Web ロール(クラウドサービス) 仮想マシン

ILB

仮想マシン 仮想マシン

レプリケーション

可用性セット

Page 38: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

構成例

Page 39: 実プロジェクトの経験から学ぶazureサービス適用パターン

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

Page 40: 実プロジェクトの経験から学ぶazureサービス適用パターン

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

Page 41: 実プロジェクトの経験から学ぶazureサービス適用パターン

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 一緒に運営してくれるメンバーを募集中です。

Page 42: 実プロジェクトの経験から学ぶazureサービス適用パターン

JAZUG で書籍の監訳をしました

• クラウドデザインパターン

• 日経 BP 社• 2014/06/09 発売• \3,240

(Kindle 版 : \3,000)

Page 43: 実プロジェクトの経験から学ぶazureサービス適用パターン

©2015 pnop, Inc.

http://www.pnop.co.jp/