次の方法で共有


大量のバッチ トランザクション処理

Azure Kubernetes Service (AKS)
Azure Service Bus
Azure Virtual Machines

このアーキテクチャでは、AKS を使用して、トランザクションの大量のバッチを処理するアプリケーションのコンピューティング クラスターを実装します。 アプリケーションは、Service Bus トピックまたはキューからメッセージ内のトランザクションを受信します。 トピックとキューは、異なる地理的リージョンの Azure データセンターにあり、複数の AKS クラスターから入力を読み取ることができます。

手記

このアーキテクチャは、IBM メインフレームでは、多くの場合、メッセージ指向ミドルウェアの IBM MQ ファミリを使用して実装されるバッチ トランザクション処理の種類に適しています。

建築

AKS と Service Bus を使用して実装されるアーキテクチャの図。

このアーキテクチャの Visio ファイル をダウンロードします。

Workflow

図の番号付き円は、次の一覧の番号付きステップに対応しています。

  1. このアーキテクチャでは、Service Bus のトピックとキューを使用して、バッチ処理入力を整理し、処理のためにダウンストリームに渡します。
  2. レイヤー 4 (TCP、UDP) ロード バランサーである Azure Load Balancer は、負荷分散セットで定義されたサービスの正常なインスタンス間で受信トラフィックを分散します。 接続の負荷分散と管理によって、処理が最適化されます。
  3. AKS クラスター ワーカー ノードは、入力のために Service Bus キュー エンドポイントをリッスンします。
  4. Java ノードは、Java Message Service を使用して Service Bus に接続し、Java Database Connectivity などの Java インターフェイスを使用して他のデータ ソースに接続します。 必要に応じて、他の Java API を使用します。
  5. 回復可能なトランザクションは、各バッチ ステップのビジネス コードと共に実行されます。
  6. バッチ インフラストラクチャでは、Azure 高速ネットワークを使用して速度を上げます。
  7. Azure Cache for Redis、Azure Cosmos DB、および Azure Stream Analytics では、必要に応じて作業用ストレージが提供されます。
  8. 永続的なデータ層では、データ統合に Azure Data Factory を使用し、高可用性のためにビジネス クリティカルなパフォーマンスレベルである Azure SQL Managed Instance を使用します。 永続的ストレージは、他のデータベース テクノロジに簡単に切り替え、(シャードやパーティションなどを使用して) ストレージの編成を最適化するために疎結合されます。
  9. データ ソリューション (移行と永続的) では、Azure Storage geo 冗長ストレージ (GRS) オプションを使用して、致命的な障害から保護します。

コンポーネント

  • Azure Bastion は、プライベートでフル マネージドのリモート デスクトップ プロトコル (RDP) と Secure Shell (SSH) アクセスを仮想マシン (VM) に提供するサービスとしてのプラットフォーム (PaaS) です。 このアーキテクチャでは、Azure Bastion を使用すると、パブリック インターネットに公開することなく、VM への安全な管理アクセスが可能になります。

  • Azure Blob Storage は、クラウド ネイティブワークロード、アーカイブ、データ レイク、ハイパフォーマンス コンピューティング、機械学習にスケーラブルで安全な REST ベースのオブジェクト ストレージを提供するクラウド オブジェクト ストレージ サービスです。 このアーキテクチャでは、Blob Storage は、入力、出力、および中間データ ファイルをバッチ処理するためのスケーラブルなストレージを提供します。

  • Azure Cache for Redis は、コンピューティング リソース間でデータと状態を共有するためのフル マネージドのインメモリ キャッシュ サービスです。 このアーキテクチャでは、Azure Cache for Redis は、バッチ処理状態と中間結果のための高速一時ストレージを提供します。

  • Azure Cosmos DB は、グローバルに分散された複数モデルの NoSQL データベースであり、あらゆる規模のオープン API を備えます。 このアーキテクチャでは、Azure Cosmos DB は、メタデータと作業データをバッチ処理するためのスケーラブルな NoSQL ストレージを提供します。

  • Azure Databricks は、ビッグ データ分析サービスを提供する Apache Spark ベースの分析プラットフォームです。 このアーキテクチャでは、Azure Databricks を使用して、バッチ処理の結果に関する高度な分析と機械学習を行うことができます。

  • Azure ExpressRoute は、Azure データセンターとオンプレミス インフラストラクチャ間のプライベート接続を提供する接続サービスです。 このアーキテクチャでは、ExpressRoute を使用すると、オンプレミスのデータ ソースにアクセスする必要があるバッチ処理アプリケーションに対して、高帯域幅で待機時間の短い接続が可能になります。

  • Azure Files は、クラウド内のシンプルで安全なサーバーレスのエンタープライズ レベルのファイル共有を提供するクラウド ファイル ストレージ サービスです。 業界標準のサーバー メッセージ ブロック (SMB) プロトコルとネットワーク ファイル システム (NFS) プロトコルを使用して共有にアクセスします。 このアーキテクチャでは、Azure Files は、ファイル ベースのデータ アクセスを必要とするバッチ処理アプリケーション用の共有ファイル ストレージを提供します。

  • Azure Kubernetes Service (AKS) は、コンテナー化されたアプリケーションをデプロイおよび管理するためのマネージド Kubernetes サービスです。 このアーキテクチャでは、AKS はバッチ処理アプリケーションを大規模に実行するためのコンテナー オーケストレーション プラットフォームを提供します。

  • Load Balancer は、VM 間および多層ハイブリッド アプリ間でトラフィックのバランスを取るために、低待機時間のレイヤー 4 (TCP、UDP) 負荷分散機能を提供する負荷分散サービスです。 このアーキテクチャでは、Load Balancer は、正常なバッチ処理インスタンス間で受信トラフィックを分散してパフォーマンスを最適化します。

  • Azure マネージド ディスク は、VM の高パフォーマンスで耐久性の高いブロック ストレージ ボリュームです。 クラウドには、Azure Ultra Disk Storage、Azure Premium SSD、Azure Standard SSD、Azure Standard HDD の 4 つのディスク ストレージ オプションがあります。 このアーキテクチャでは、Azure マネージド ディスクは、アプリケーションと一時データをバッチ処理するための永続的なストレージを提供します。

  • Azure ネットワーク インターフェイス は、VM をインターネットと Azure とオンプレミスのリソースに接続するコンポーネントです。 各子 VM に独自のネットワーク インターフェイスと IP アドレスを付与できます。 このアーキテクチャでは、ネットワーク インターフェイスにより、バッチ処理 VM と Service Bus メッセージング システム間の接続が可能になります。 ネットワーク インターフェイスの詳細については、「ネットワーク インターフェイスの 作成、変更、または削除」を参照してください。

  • Azure SQL は、SQL ポートフォリオ全体に統一されたエクスペリエンスと、エッジからクラウドまでの幅広いデプロイ オプションを提供する SQL クラウド データベースのファミリです。 このアーキテクチャでは、Azure SQL はバッチ処理アプリケーション用のリレーショナル データベース サービスを提供します。

  • Azure Storage は、BLOB、ファイル、キュー、テーブル ストレージなど、複数のストレージ ソリューションを提供するクラウド ストレージ サービスです。 Azure Storage の GRS オプションは、プライマリ リージョンの 1 つの物理的な場所内でデータを 3 回同期的にコピーし、セカンダリ リージョンの 1 つの物理的な場所に非同期的にコピーします。 詳細については、Azure Storage の冗長性に関するページを参照してください。 このアーキテクチャでは、GRS を備えた Azure Storage は、データをバッチ処理するための耐久性の高いストレージを提供し、致命的な障害から保護します。

  • Azure Virtual Machines は、仮想化をホストするハードウェアを提供および保守することなく、仮想化の柔軟性を提供するクラウド コンピューティング サービスです。 オペレーティング システムの選択肢には、Windows と Linux が含まれます。 このアーキテクチャでは、Virtual Machines は、バッチ処理アプリケーションとサポート サービス用のコンピューティング インフラストラクチャを提供します。

    高速ネットワークを使用して作成された VM では、単一ルートの入出力仮想化 (SR-IOV) が使用されるため、ネットワーク パフォーマンスが向上します。 詳細については、「 Azure PowerShell を使用した高速ネットワークを使用した Windows VM の作成 」および 「SR-IOV の概要」を参照してください。 このアーキテクチャでは、高速ネットワークにより、大量のバッチ トランザクションを処理する VM のネットワーク パフォーマンスが向上します。

  • Azure Virtual Network は、クラウド内でセキュリティで保護されたプライベート ネットワークを提供するクラウド ネットワーク サービスです。 VM を相互に接続したり、インターネットに接続したり、オンプレミスネットワークに接続したりすることができます。 このアーキテクチャでは、Virtual Network はバッチ処理インフラストラクチャのセキュリティで保護されたネットワーク分離を提供し、AKS クラスターとその他の Azure サービス間の通信を可能にします。

  • Data Factory は、すべてのデータを大規模に準備および変換するためにフル マネージドでサーバーレスなクラウドベースのデータ統合サービスです。 Data Factory では Parquet 形式がサポートされています。 このサポートにより、バッチ操作の効率的な列データ処理が可能になります。 このアーキテクチャでは、Data Factory は、入力と出力をバッチ処理するためのデータ統合ワークフローを調整します。

  • Log Analytics は、Azure Portal のツールで、 Azure Monitor ログのログ クエリを編集および実行するために使用できます。 このアーキテクチャでは、Log Analytics はバッチ処理操作の一元的なログ記録と監視機能を提供します。

  • Service Bus は、サービスとしての信頼性の高いクラウド メッセージング (MaaS) とシンプルなハイブリッド統合を提供するクラウド メッセージング サービスです。 このアーキテクチャでは、Service Bus はトランザクション メッセージを AKS クラスターに配信し、バッチ ワークロードの信頼性の高いメッセージ処理を保証します。

  • SQL Managed Instance は、セキュリティで保護された常に up-to-date SQL インスタンスをクラウドに提供するマネージド データベース サービスです。 このアーキテクチャでは、SQL Managed Instance は、永続的なデータ ストレージ用のビジネス クリティカルなパフォーマンスレベルを備えた高可用性データベース サービスを提供します。

  • Stream Analytics は、アプリケーションやデバイスから高速に移動するデータ ストリームに対してリアルタイム分析を提供するサービスです。 このアーキテクチャでは、Stream Analytics は、リアルタイムの監視と分析のためにバッチ操作からのストリーミング データを処理します。

シナリオの詳細

Azure では、Microsoft Azure Kubernetes Service (AKS) と Azure Service Bus に基づくアーキテクチャを使用して、アカウントへの支払いを転記するなど、バッチ トランザクション処理を実装できます。 この種類のアーキテクチャでは、大量のバッチ処理に必要なトランザクション処理速度、スケーリング、信頼性が提供されます。

通常、メッセージはトランザクションが完了するまでキューに残り、障害が発生した場合は復旧できます。 また、トピックとキューを他のリージョンにレプリケートし、ワークロードを共有したり、リージョンで障害が発生した場合でも処理を続行したりできます。

潜在的なユース ケース

このソリューションは、金融、教育、科学の業界に最適です。 このアーキテクチャは、トランザクションのバッチ 、特に並列で処理できる独立したトランザクションの大量処理用です。 したがって、メインフレームバッチ処理の移行に使用する可能性があります。 考えられるアプリケーションは次のとおりです。

  • 給与計算、注文、支払いなどの財務トランザクションの処理。
  • 科学機器によって収集された実験データの処理。
  • その他のメインフレーム バッチ処理。

考慮 事項

これらの考慮事項は、Azure Well-Architected Framework の柱を実装します。これは、ワークロードの品質を向上させるために使用できる一連の基本原則です。 詳細については、Microsoft Azure Well-Architected Frameworkの に関するページを参照してください。

確実

信頼性により、アプリケーションは顧客に対するコミットメントを確実に満たすことができます。 詳細については、「信頼性設計レビューチェックリスト」を参照してください。

  • Azure Site Recovery ディザスター リカバリー サービスは、大規模な障害から保護します。 信頼性が高く、コスト効率が高く、簡単にデプロイできます。
  • VM の可用性セットにより、ミッション クリティカルなバッチ プロセスのニーズを満たすのに十分な VM を使用できます。
  • Service Bus、AKS、Azure SQL Managed Instance は、地理的リージョン間で高可用性と回復性を提供します。

セキュリティ

セキュリティは、意図的な攻撃や貴重なデータとシステムの悪用に対する保証を提供します。 詳細については、「セキュリティ設計レビューチェックリスト」を参照してください。

  • Service Bus バッチ アーキテクチャ内のすべてのコンポーネントは、Microsoft Entra ID、Virtual Network、暗号化などの Azure セキュリティ コンポーネントと連携します。

コストの最適化

コストの最適化は、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳細については、「コストの最適化設計レビューチェックリスト」を参照してください。

このソリューションの実装のコストを見積もる場合は、料金計算ツールを使用します。

AKS クラスターの自動スケーリング機能と、オンデマンドでスケーリングを提供するその他の Azure Platform as a Service (PaaS) 機能は、コストを最小限に抑えます。

特定のコンポーネントの価格に関する考慮事項を次に示します。

  • ほとんどの企業には、既に Microsoft Active Directory の実装があります。 そうでない場合は、Microsoft Entra ID P1 または P2 低コストです。
  • Windows VM の価格 と linux VM の価格 は、コンピューティング容量によって異なります。
  • Premium SSD または Ultra マネージド ストレージ ディスクの価格については、「Managed Disks の価格」を参照してください。
  • Azure SQL Databaseの前払いコストはありません。使用したリソースに対して支払います。
  • ExpressRouteの場合は、毎月のポート料金と送信データ転送料金を支払います。
  • Azure Storage コスト は、データ冗長オプションとボリュームによって異なります。
  • Azure Files の価格 は、データ ボリューム、データ冗長性、トランザクション ボリューム、使用するファイル同期サーバーの数など、さまざまな要因によって異なります。
  • SSD マネージド ディスクの価格については、「マネージド ディスクの価格 参照してください。
  • Site Recoveryの場合、保護されたインスタンスごとに料金が課金されます。
  • これらのサービスは Azure サブスクリプションでは無料ですが、使用量とトラフィックに対して料金が課金されます。
    • load Balancerを します。
    • アクティビティの実行ボリュームによって、Data Factoryのコスト 決定されます。
    • Azure Virtual Networkの場合、IP アドレスにはわずかな料金がかかります。
    • 送信データ転送ボリュームによって、Azure Bastion コスト 決定されます。

オペレーショナル エクセレンス

オペレーショナル エクセレンスは、アプリケーションをデプロイし、運用環境で実行し続ける運用プロセスを対象としています。 詳細については、「オペレーショナル エクセレンス設計レビュー チェックリスト」を参照してください。

  • Azure Resource Manager テンプレート (ARM テンプレート) 、スクリプト化されたデプロイに使用できるテンプレート内のリソースを記述するための構成言語を提供します。 テンプレートには、監視とアラート機能も用意されています。

パフォーマンス効率

パフォーマンス効率は、効率的な方法でユーザーの要求に合わせてワークロードをスケーリングする機能です。 詳細については、「パフォーマンス効率設計レビュー チェックリスト」を参照してください。

  • このアーキテクチャは、独立したトランザクションの並列処理に対応するように設計されています。
  • Service Bus、AKS、およびその他の Azure PaaS 機能は、トランザクション処理、コンピューティング、データ ストレージに高いパフォーマンスを提供します。
  • Service Bus、AKS、およびその他の Azure PaaS 機能は、必要に応じて動的にスケーリングされます。

次の手順

  • AKS の詳細については、「Azure Kubernetes Service ソリューション体験する」を参照してください。
  • Service Bus の詳細については、「service Bus キュー、トピック、サブスクリプションする」を参照してください。