グローバルに移動する
- 3 分
前のユニットでは、コンピューティングのスケーリングについて説明し、プロセスで使用できるようにする方法について説明しました。 また、パフォーマンスを向上させるために Azure Managed Redis を追加し、シャーディングを使用してデータベースAzure SQLスケールアウトすることもお勧めします。
ビジネスの成長に合わせて、次のステップはグローバルに進む可能性があります。 ただし、完全なグローバル アーキテクチャを実装する前に、考慮する必要がある点がいくつかあります。
確認事項
最初の質問は: あなたは本当にグローバルに行く必要がありますか?
このようなタスクを実行する前に、お客様がどのような痛みを抱えているかを理解することが重要であるため、もう少し質問してください。
- コンテンツ配信ネットワークを介してユーザーに近いコンテンツを取得できますか?
- この特定のシステムを 2 つ以上の地域にスケーリングする必要はありますか。 たとえば、米国のユーザーはイギリスでまったく同じアカウントを持っている必要がありますか。 独立系の方が適していますか? このパターンは、eコマースでよく見られます。
- グローバル分散システムが本当に必要な場合、データベースにはどのような整合性が必要ですか? 世界中の強力な一貫性を正しく取得することは困難です。 Cosmos DB などのサービスでは、複数リージョンの構成で強力な一貫性がサポートされますが、待機時間の増加、リージョンの停止時の可用性の低下、操作ごとの RU 消費量の増加など、大きなトレードオフが伴います。
データの一貫性
データの整合性の問題についてもう少し詳しく見てみましょう。
分散コンピューティングでは、 整合性 とは、up-to-date とデータがシステムのすべてのレプリカ間でどのように統一されているかを指します。 2 つの主要な整合性モデルがあります。
強力な整合性 により、線形化可能性が保証されます。 読み取りでは、アイテムの最後にコミットされたバージョンが返ることが保証されています。
その後、最終的な 整合性があります。データベースまたはシステムは、最終的に時間の経過と同時に一貫性が得られます。 読み取りの順序保証はありません。 さらに書き込みがない場合、レプリカが最終的に収束します。
Cosmos DB などのサービスでは、有界整合性制約、セッション、整合性プレフィックスなどの中間整合性モデルも提供されます。これにより、パフォーマンスとデータの鮮度のバランスが異なります。
グローバル化のためのツール
アプリケーションをグローバルにスケーリングする必要がある場合は、それを実現するために役立つAzureサービスがいくつかあります。 Azure Traffic ManagerとAzure Front Doorを見てみましょう。
- Azure Traffic Managerは、グローバル DNS ベースの負荷分散サービスです。 DNS と正常性プローブを使用して、定義したルーティング ポリシーに基づいて、ユーザーを最適な正常なバックエンドにルーティングします。 このルーティングは、「パフォーマンス」や「場所」、「ラウンドロビン」などに基づくことができます。 正常なバックエンドが特定されると、クライアントは常にバックエンドに直接接続します。
- Azure Front Doorは最新のクラウド CDN およびグローバル ロード バランサーであり、アプリケーションにさまざまなレイヤー 7 負荷分散機能を提供します。 動的サイト アクセラレーション (DSA) と、ほぼリアルタイムのフェールオーバーによるグローバル負荷分散を提供します。 これは、Azureによって完全に管理される高可用性でスケーラブルなサービスです。
Azure Front Doorは、基本的にグローバル HTTP ベースのロード バランサーです。 クライアントは Front Door 自体との接続を確立するため、Front Door はユーザーの要求をプロキシしています。 要求された項目がキャッシュ内にない場合は、正しいルーティング規則が識別されます。 次に、関連するバックエンドの正常性プローブをチェックし、すべてが正常であると仮定して、ルーティング方法に基づいてユーザー要求を最適なバックエンドに転送します。
Azure Front Door接続をプロキシするため、Web Application Firewallの実行やキャッシュなど、いくつかの高度な機能を実行できます。これはスケーリングに役立ちます。 これらのどちらの機能も Traffic Manager では実現できません。
この図は、両方を組み合わせて使用する方法を示しています。
このセットアップでは、ストレージ アカウント内の静的資産への単純な DNS ベースの負荷分散に Traffic Manager を使用します。 また、App Service と VM 間の Web アプリケーションに対するパスベースのルーティングにも Front Door を使用します。