cdp 勉強会 - multiple datacenter deployment ガイダンス

52
JAZUG 3 CDP 勉強会 Multiple Datacenter Deployment ガイダンス 2014/10/18 浅見 城輝 株式会社 pnop / Cloudlive 株式会社

Upload: kuniteru-asami

Post on 28-May-2015

347 views

Category:

Technology


0 download

DESCRIPTION

複数のデータセンターにアプリケーションをデプロイすることにより得られる利点と、解決しなければならない課題

TRANSCRIPT

Page 1: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

JAZUG 第 3 回 CDP 勉強会Multiple Datacenter Deployment ガイダンス2014/10/18

浅見城輝

株式会社 pnop / Cloudlive 株式会社

Page 2: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

About me

kuniteru.asami

Find me

DatabaseMicrosoft Azure

© 2011 Microsoft CorporationAll Rights Reserved.

Azure 2012~

Page 3: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

JAZUGのご紹介 Japan Azure User Group略称:JAZUG(じゃずゆーじー)

コミュニティ活動概要:「Azureを通じて、技術、交流、実ビジネスを楽しむ。」“ちょっと興味がある=ゆるふわな方”から“実ビジネスで使うんだよね”な方まで大歓迎!ゆるふわコミュニティです。

JAZUGへの参加はFacebookで。Japan Windows Azure User Group(Facebookグループ)https://www.facebook.com/groups/jazug/

JAZUG女子部、大阪(関西Azure研究会)、福岡(ふくあず)、札幌(きたあず)、名古屋(あずちゅう)、仙台、静岡、しなの、青森

Twitter: #jazug 一緒に運営してくれるメンバーを募集中です。

Page 4: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

JAZUG のFacebook グループへのご参加をお願いします。

4

https://www.facebook.com/groups/jazug/

Page 5: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

本よろしくです!

クラウド デザインパターンAzure を例としたクラウドアプリケーション設計の手引き

http://amzn.to/1oTJNVH

15 人の JAZUG メンバーで半泣きになりながら監訳しました

5@k1hash

Page 6: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

内容

クラウド アプリケーション設計の頻出課題集

Software design pattern の Cloud Application 版

• 24のパターン

• 10のガイダンス

• ポスター– http://azure.microsoft.com/en-

us/documentation/infographics/cloud-design-patterns/

kyrt @takekazuomi 6

Page 7: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

回答集じゃない

課題が整理され、考慮点について記述されている

• 8の問題領域

• 10の code sample

kyrt @takekazuomi 7

Page 8: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

Microsoft Azure 自習書シリーズ

8

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

Azure msdn 自習書

検索

Page 9: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

Microsoft Azure スライドシリーズ

9

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

Page 10: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

Multiple Datacenter Deployment ガイダンス

Page 11: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

今日のゴール

複数のデータセンターにアプリケーションをデプロイすることにより得られる利点と、解決しなければならない課題を理解していただくこと。

Page 12: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

複数のデータセンターにシステムをデプロイすることにより、利点を得ることができます。

• 可用性の向上

• 世界的に広い地域でのレスポンスの向上

しかし実現するためには、難易度の高い課題もあります。

• データの同期

• 規制による制限

Page 13: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

複数のデータセンターにデプロイする理由

Page 14: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

複数のデータセンターにデプロイする理由

時間と共に成長するキャパシティ

ユーザーに最低限の遅延でグローバルリーチを提供

パフォーマンスと可用性の維持

Page 15: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

時間とともに成長するキャパシティ

Page 16: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

ユーザーに最低限の遅延でグローバルリーチを提供

Page 17: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

ユーザーに最低限の遅延でグローバルリーチを提供

Page 18: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

パフォーマンスと可用性の維持

Page 19: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

パフォーマンスと可用性の維持

Page 20: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

複数のアプリケーションデプロイへのリクエストのルーティング

Page 21: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

障害時にどうやってトラフィックをリダイレクトするか?

Page 22: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

障害時にどうやってトラフィックをリダイレクトするか?

Page 23: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

複数のアプリケーションデプロイへのリクエストのルーティング複数のデータセンターにアプリケーションをデプロイしていても、その内の 1 つのデータセンターに障害が発生した場合には、他のデータセンターに自動的にはリダイレクトされません。

アプリケーション障害時の手動再ルーティング

アプリケーション障害時の自動再ルーティング

Microsoft Azure Traffic Manager による再ルーティング

Page 24: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

アプリケーション障害時の手動再ルーティング

DNS エントリの変更や、リダイレクトページを利用してこれを手動で変更することで、指定のデータセンターにトラフィックが流れるようにします。

しかし、これらのアプローチには、いくつかの課題があります。

Page 25: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

手動再ルーティングの課題 #1障害をすぐに検出することができ、すみやかに手動切り替えを実施できる必要があります。常に稼働している切り替え用のデプロイ(ホットスワップデプロイ)がない場合、それを起動しまた正しく動作していることを検証する必要があります。業務時間外に障害が発生し、担当者がその場にいない場合は、さらに切り替えに遅延が発生することがあります。

Page 26: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

手動再ルーティングの課題 #2

DNS エントリを変更することによってリクエストを再ルーティングする場合、その変更が世界中に伝搬するまでに数時間~数日かかることがあります。

Page 27: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

手動再ルーティングの課題 #3リダイレクトページや、バックアップ先のデータセンターにリクエストを再ルーティングさせるメカニズムを使用すると、そこが単一障害点になります。リダイレクトページなどにも障害が発生していた場合、バックアップ先のデータセンターにアクセスされません。

Page 28: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

手動再ルーティングの課題 #4元々プライマリ側だったデータセンターの障害が復旧した時には、再度ルーティングを戻すように設定を変更する必要があります。DNS によってルーティングを制御していた場合、その設定変更の伝搬に再度、数時間~数日の時間がかかります。

Page 29: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

アプリケーション障害時の自動再ルーティング

ルーティング変更のための切り替えの遅延を回避するために、各デプロイの正常性を監視し、最適なデプロイに再ルーティングすることを自動化することが可能です。

自動再ルーティングのメカニズムは、複数データセンターを使用するシナリオにより異なります。

Page 30: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

シナリオ 1:災害復旧再ルーティングの自動メカニズムは、バックアップ用のデプロイを起動して動作を確認し、その後、ユーザーからのアクセスをバックアップ側のデプロイにルーティングします。

Page 31: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

シナリオ 2:ホットスワップ再ルーティングの自動メカニズムは、バックアップ用のデプロイが正常に動作していることを確認し、ユーザーからのアクセスをバックアップ側のデプロイにルーティングします。

Page 32: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

シナリオ 3:グローバルリーチ再ルーティングの自動メカニズムは、リクエストを調査して、正常なデプロイの中から適切な(最も近い)データセンターにルーティングします。

Page 33: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

自動再ルーティングの課題 #1自動再ルーティングを司るサーバー自体が単一障害点と成りえます。これを回避するためには、複数のデータセンターに自動再ルーティングを管理するサーバーを配置し、これ自体にDNS ラウンドロビンでリクエストを分散することで可能ですが、構成の変更があった場合に、これらのサーバー同士で同期をとる必要があります。

Page 34: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

自動再ルーティングの課題 #2プライマリ側の瞬断や、障害の誤検知により断続的に切り替えが発生してしまうことを防ぐために、再ルーティングを遅らせることを検討する必要があります。この問題への対策は、プライマリ側への接続が複数回連続で失敗してから障害と判断し、切り替えをすることです。

Page 35: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

自動再ルーティングの課題 #3元々プライマリ側だったデータセンターの障害が復旧した時には、再度ルーティングを戻す仕組みが必要になります。

Page 36: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

Microsoft Azure Traffic Manager による再ルーティングTraffic Manager はアプリケーションの障害検出と動的DNS ルーティングを組み合わせた Azure のインテリジェントな DNS サービスです。

Traffic Manager は選択したポリシーに応じて、ルーティング先のデプロイを決定します。

ラウンドロビンポリシー

フェールオーバーポリシー

パフォーマンスポリシー

Page 37: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

ラウンドロビンポリシーTraffic Manager に登録されているデプロイの Endpoint に対して、『順番に』リクエストをルーティングします。

アプリケーションが稼働しているデプロイに均等にアクセスを分散します。

障害を検出したデプロイにはルーティングしないことで、可用性を維持します。

アクセスもとの場所は考慮しないので、遠いデータセンターにアクセスしてしまうことがあります。

Page 38: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

フェールオーバーポリシー管理者がデプロイに対するルーティングの優先順位のリストを構成し、Traffic Manager はそのリストの内、障害のない最優先のデプロイにルーティングします。

プライマリデプロイが使用できない場合にのみバックアップにアクセスする、ホットスワップのシナリオにマッチします。

Page 39: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

パフォーマンスポリシーユーザーからのリクエストを、ネットワークの遅延が最も小さいデータセンターのデプロイにルーティングします。

障害を検出した場合、そのデプロイの代わりに、ユーザーから次に近いデータセンターのデプロイにルーティングします。

可用性とパフォーマンスが最適な組み合わせとして、このパフォーマンスポリシーを選択することが推奨されています。

Page 40: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

複数のデータセンターへのデプロイに関する検討事項

Page 41: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

アプリケーションを複数のデータセンターにデプロイする場合、いくつかの課題や検討事項があります。

データセンターの場所とドメイン名

規制または SLA 制限

データ同期

データとサービスの可用性

アプリケーションの構成バージョンと機能

テストとデプロイ

カスタマーエクスペリエンス

ユーザーを規定とは異なる他のデータセンターに再ルーティングした場合は、それを示すメッセージをユーザーに表示するとよいでしょう。

Page 42: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

データセンターの場所とドメイン名アプリケーションをデプロイする場所をどのように指定できるかを考慮します。

リージョン、サブリージョンの指定

可用性セットの指定による物理的な分割

※言葉の意味はクラウドプロバイダーにより異なる

Page 43: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

規制または SLA 制限SLA や、適用される可能性のある法的規制を考慮する必要があります。

国や地域によっては、特定の地域外へのデータの持ち出しや、データの処理を行うことを禁止されている場合があります。

SLA などにより可用性の要件が定義されていることがあります。その場合、ルーティングの切り替えにかかる時間がこの要件を満たす必要があります。

Page 44: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

データ同期ユーザーが POST したデータは、そのユーザーが接続したデータセンターのストレージに保存されます。障害などによりユーザーが依然と異なるデータセンターにルーティングされた場合、そのデータが利用できないかもしれません。

データセンター間のデータの同期が完了していないと、同じデータにアクセスできません。フェールオーバーのシナリオでは、プライマリとバックアップのデータセンターでデータの同期を行う必要があり、また RTO を定義する場合にこれが完了する時間も考慮する必要があります。

Page 45: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

データとサービスの可用性設計や構成によっては、すべてのデータセンターで利用することができないデータやサービスがある場合があります。

データの内容を拠点ごとに分割した場合は、データ同期のためのコストを最小化することができますが、別のデータセンターから再ルーティングされたユーザーには必要なデータが不足しているかもしれません。

ひとつのデータセンターにのみデプロイし、そこをすべてのデータセンターから参照している場合、そのサービスが停止するとアプリケーションが障害となります。

Page 46: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

アプリケーションの構成バージョンと機能データセンターごとに微妙に異なったアプリケーションをデプロイすることがあります。

グローバルリーチのシナリオで、それぞれのデータセンターにローカライズしたバージョン(対応言語の違い)をデプロイすることがあります。この場合、障害により再ルーティングされると、ユーザーにマッチした言語が提供されない可能性があります。

データセンターごとに正常時の負荷を基に必要最低限のインスタンス数だけを稼働させている場合、オートスケールなどによって障害時の再ルーティング先のデータセンターへのアクセスが向上しても対応できるようにしておきましょう。あるいは、障害時には機能をダウングレードする仕組みを用意し、アクセス量を制限しましょう。

Page 47: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

テストとデプロイすべてのデータセンターでアプリケーションが正しく動作することを確認し、更新や障害を管理・計画するために、テストを実施することが重要です。

すべてのデータセンターのアプリケーションを新しいバージョンにアップグレードする方法

複数のデータセンターに対してデプロイ可能なスクリプトやユーティリティのような自動メカニズムを検討しましょう。

データセンターごとに異なるピークタイムを回避するための更新タイミングの調整

一部のデータセンターのみで発生する更新の失敗やパフォーマンスの低下をロールバックする方法を検討しましょう。

一部のデータセンターのサービスを停止して、そのサービス地震の復旧、再ルーティングやフェールオーバー、再ルーティング先のオートスケールのテストをしてください。

Page 48: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

カスタマーエクスペリエンス頻繁なデータセンターの切り替えは避けるべきで、プライマリの環境が確実に利用できない場合にのみ切り替えされるべきです。切り替えがされた場合に以下に対応すべきかもしれません。

セッション管理

遅延の増大やパフォーマンスの低下

アプリケーションの不安定さとエラー

Page 49: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

関連するパターンとガイダンス

Compute Partitioning ガイダンス

Data Replication and Synchronization ガイダンス

Federated Identity パターン

Page 50: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

JAZUG のFacebook グループへのご参加をお願いします。

50

https://www.facebook.com/groups/jazug/

Page 51: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

次回予告

第 4 回 クラウドデザインパターン勉強会

http://jazug.doorkeeper.jp/events/16501

2014/11/18(火) 19:30-21:50

• Asynchronous Messaging 入門 第2回

• Data Replication and Synchronization ガイダンス

51

Page 52: CDP 勉強会 - Multiple Datacenter Deployment ガイダンス

アンケートよろしくお願いします

• http://bit.ly/1rFGhzP

• 1, 2 分で終了します。

52