次の方法で共有


Azure Batch を使用して Financial Service Industry (FSI) のワークロードを実行する

金融サービス業界 (FSI) では、コンピューティング集約型のワークロードを効率的かつ安全に実行することが極めて重要です。 Azure Batch は、これらのワークロードをクラウドで管理するためのスケーラブルでコスト効率の高いソリューションを提供します。 この記事では、Azure Batch を使用して Azure 上で FSI ワークロードを実行するための包括的なガイドを提供します。 最適なパフォーマンス、セキュリティ、コスト管理を実現するためのアーキテクチャ、ワークフロー、コンポーネント、ベストプラクティスを網羅しています。

建築業

次の図は、Azure Batch を使用して Azure 上で FSI ワークロードを実行するためのアーキテクチャを示しています。

Azure Batch を使用して Azure 上で FSI ワークロードを実行するためのアーキテクチャを示す図。

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

Workflow

このシナリオ例では、Azure Batch を使用して Azure 上で FSI ワークロードを実行する方法を示します。 以下は一般的なワークフローです:

  1. VPN Gatewayを使用してプライベート ネットワークに接続します。 または、リモートデスクトッププロトコル (RDP) またはセキュア シェル (SSH) を使用して、Azure Bastion を使用して jumpbox 仮想マシン (VM) に接続します。 どちらの方法でもプライベート ネットワークに接続できます。
  2. Azure CLI、Azure Storage Explorer、または azcopy を使用して、処理するデータセットをストレージ アカウントにアップロードします。
  3. Azure CLI、Batch Explorer、またはその他のツールを使用して、データを処理するジョブを Batch サービスに送信します。 この展開の例では、ジョブの投入にも使用できるカスタム コマンドライン ツールを開発しました。
  4. プールのサイズを変更して、プールにコンピューティング ノードを追加します。 既定では、展開により、コンピューティング ノードのないプールが作成されます。
  5. ストレージ アカウント から結果をダウンロードします。 ジョブの完了後、結果はストレージ アカウントに保存されます。 これらの結果は、Azure CLI、Azure Storage Explorer、または azcopy を使用してダウンロードできます。

コンポーネント

このアーキテクチャにはいくつかの Azure サービスが含まれており、ハブ リソースとスポーク リソースの 2 つのリソース カテゴリに分かれています。 ハブ&スポーク ネットワーク トポロジーの詳細については、この記事の後半で説明します。 それぞれのサービスとそのロールについては、次のセクションで説明します。

ハブ リソース

ハブ ネットワーク上に展開されるリソースは、スポーク ネットワークと外部との通信を有効化、フィルター、監視する共有リソースです。

次のリソースがハブ ネットワークに展開されます。

  • Azure Firewall はネットワークにネットワークレベルの保護を提供します。 ファイアウォールは、ネットワークに出入りする特定のトラフィックのみを許可するように構成されています。 この構成は、悪意のある攻撃からネットワークを保護し、ネットワークの出入りのトラフィックを監視する際に役立ちます。 ルールは、ビジネス固有のルールや規則に基づいて更新する必要があります。

  • Azure VPN ゲートウェイは、パブリック インターネットからハブ ネットワークに接続する 2 つの方法のうちのいずれかを有効にします。 もう 1 つの方法は、Azure Bastion サービスを使用することです。 VPN ゲートウェイにはパブリック IP アドレスが割り当てられ、VPN クライアントは公共のインターネットから VPN ゲートウェイに接続することができます。

  • Azure Bastionは、パブリック インターネットからジャンプボックスに接続する 2 つの方法のうちのいずれかを有効にします。 もう 1 つの方法は、VPN Gateway を使用することです。 Azure Bastion はハブネットワーク上に展開され、パブリック IP アドレスが割り当てられるため、ユーザーはパブリック インターネットから接続できます。

  • Linux ジャンプボックス は、展開されたリソースにアクセスし、ジョブを投入し、その進捗を監視するためのツールがプリインストールされた Linux VM です。 ジャンプボックスはハブ ネットワーク上に展開され、VPN ゲートウェイまたは Azure Bastion を使用してオンプレミス ネットワークからアクセスできます。

  • Windows Jumpbox は、展開されたリソースにアクセスし、ジョブを送信し、その進捗を監視するためのツールがプリインストールされた Windows VM です。 ジャンプボックスはハブ ネットワーク上に展開され、VPN ゲートウェイまたは Azure Bastion を使用してオンプレミス ネットワークからアクセスできます。

  • ログ分析ワークスペースでは、ログの収集が可能です。 可能な限り、展開されたリソースはワークスペースにログを保存するように構成されています。 ログは、リソースの監視と問題のトラブルシューティングに使用されます。 Azure Application Insights と組み合わせることで、展開されたリソースのパフォーマンス監視とトラブルシューティング機能を提供します。

  • Azure DNS Private Resolver は、たとえばオンプレミスのリソースから、プロビジョニングされた仮想ネットワークの外部で問い合わせがあった場合に、プライベート エンドポイントの IP を解決するインバウンドのエンドポイントを提供します。 DNS Private Resolver は、Azure VPN ゲートウェイの展開時に展開されます。

スポーク リソース

スポーク ネットワーク上に展開されたリソースは、コンピューティング ワークロードとすべてのサポート リソースの実行を支援します。

次のリソースがスポーク ネットワークに展開されます。

  • Azure Batch は、アーキテクチャがクラウド ネイティブなジョブのスケジューリングと実行のために依存しているコアサービスです。 Azure Batch は、必要なコンピューティング リソースを管理し、コンピューティング リソース上でタスクをスケジューリングし、タスクの完了を監視します。 Batch サービスは、Linux コンピュートノードを持つ linux という名前のプールと、Windows ンピューティング ノードを持つ windows という名前のプールの 2 つのプールで展開されます。 このプールは、以下のタスクを実行するように構成されます:

    • ユーザー サブスクリプション プールの割り当てモードを使用します。 バッチ サービスが内部的に使用するすべてのリソースは、バッチ アカウントと同じサブスクリプションの下に割り当てられ、サブスクリプション固有のクォータとポリシーを使用します。
    • スポーク ネットワーク上の対応するサブネットを使用します。 そのため、サブネットのアドレス範囲からアドレス空間が割り当てられます。 また、これらのサブネットで設定されたすべてのネットワーク セキュリティ グループ (NSG) ルールとトラフィック転送ルールがコンピューティング ノードにも適用されることになります。
    • コンピューティング ノードにパブリック IP アドレスを割り当てないようにしてください。これによって、コンピューティング ノードがパブリック インターネットから直接アクセスできなくなります。
    • 初期化時にサポートされるストレージ リソースをコンピューティング ノードにマウントすることで、コンピューティング ノート上で実行されるワークロードが共有ストレージリソースにアクセスしやすくなります。
    • ユーザーが割り当てたマネージド ID を使用して、コンピュート ノードがバッチプールに参加する際に、ストレージ アカウント、コンテナ レジストリ、およびその他のリソースを認証します。 こうすることで、コンピュート ノードはパスワードや鍵ではなく、証明書を使用して認証されるようになります。
  • Azure Key Vault には、Batch アカウント証明書などの展開のシークレットが格納されます。 これらの証明書は、バッチプールに参加するコンピューティング ノード リソースを認証するために使用されます。 キー コンテナーはスポーク ネットワーク上に展開され、バッチ サービスからのアクセスのみを許可するように構成されています。 この構成により、証明書が公共のインターネットからアクセスできないようになります。

  • Azure ストレージは、入出力データを格納します。 展開では、ブロブ ストレージ用とファイル ストレージ用の 2 つのストレージ アカウントが作成されます。 BLOB ストレージ アカウントは、ネットワーク ファイルシステム (NFS) を使用して Linux プールにマウントされます。 ファイル ストレージ アカウントは、サーバー メッセージ ブロック (SMB) を使用して、Linux と Windows の両方のプールにマウントされます。

  • Azure Container Registry はバッチコンピュート ノードで使用されるコンテナ イメージを格納します。 コンテナ レジストリのプライベート展開を使用すると、コンテナ イメージへのアクセスを制御しやすくなり、コンテナ イメージをより安全に保存することもできます。 コンテナ レジストリはスポーク・ネットワーク上に展開され、バッチ サービスからのアクセスのみを許可するように構成されています。 この構成により、コンテナ イメージは公共のインターネットからアクセスできないようになります。

  • Azure Managed Identity は、プールに追加されたコンピューティング ノードをコンテナ レジストリ、ストレージ アカウント、およびその他のリソースで自動的に認証するために使用されます。

代替手段

  • Azure Kubernetes Service (AKS) コンテナー化されたアプリケーションの同様の構成で、Azure Batch サービスの代わりに使用できます。

  • Azure CycleCloud は、Azure 上のハイパフォーマンス コンピューティング (HPC) クラスタの管理に使用できます。 このような HPC クラスタは、この記事で対象としているものと同様のワークロードを実行するようにセットアップすることができます。

シナリオの詳細

FSI の一般的なコンピューティング パターンは、金融商品または金融商品のポートフォリオを特徴付ける入力データセットに対して、大量のコンピューティングを必要とするシミュレーションを実行することです。 シミュレーションは通常並行して実行され、結果はポートフォリオのリスク プロファイルの要約を作成するために集約されます。

このアーキテクチャは、特定のワークロードに焦点を当てていません。 その代わりに、Azure Batch を使って計算負荷の高いシミュレーションを実行したいアプリケーションに焦点を当てています。 どのような運用展開アーキテクチャも、ワークロードとビジネス環境の特定の要件を満たすようにカスタマイズする必要があります。 このアーキテクチャは、運用前および運用展開のためのカスタマイズの出発点として使用されることを意図しています。

潜在的なユース ケース

このアーキテクチャは、さまざまな FSI ワークロードの実行に使用できます。 以下に一部の例を示します。

  • 金融商品ポートフォリオのリスク分析
  • モンテカルロ シミュレーションによる、金融商品の価値の見積もり
  • 取引戦略のバックテスト
  • 金融商品ポートフォリオのストレス テスト

ネットワーク トポロジ

このアーキテクチャでは、ハブ アンド スポーク ネットワーク トポロジを採用しています。 ハブとスポークのリソースは、仮想ネットワーク ピアリングで接続された別々の仮想ネットワークに展開されます。 ハブ ネットワークには、ファイアウォール、VPN Gateway、ジャンプボックスなどの共有リソースが含まれます。 スポークネットワークには、Batch サービスと Batch コンピューティング ノードが含まれます。 また、ストレージ アカウントやコンテナ レジストリなど、ワークロードが必要とするその他のサービスエンドポイントも含まれます。 スポーク ネットワークはパブリック インターネットから隔離され、ハブ ネットワークからのみアクセスできます。

ネットワーク トポロジのハイライトは次の通りです:

  • スポーク上のリソースはパブリック インターネットから隔離され、ハブ ネットワークからのみアクセスできるため、リソースがパブリック インターネットに直接公開されることを最小限に抑えることができます。
  • プールのコンピューティング ノードからのトラフィックを含むすべての送信トラフィックは、ファイアウォールを経由してルーティングされ、すべての送信トラフィックがフィルターされ、ログに記録され、追跡されます。
  • ファイアウォールは、許可リストに登録されたトラフィックだけを許可するように構成され、許可リストに登録されたトラフィックだけが仮想ネットワークから出ることができるようにします。
  • スポークネットワーク上のリソースへのアクセスは、オプションで展開される VPN Gateway または Azure Bastion を介して有効になります。 どちらもパブリック インターネットからハブ ネットワークに接続する安全な方法を提供します。
  • Windows と Linux のジャンプボックスには、展開されたリソースへのアクセス、ジョブの投入、進行状況の監視を行うためのツールがプリインストールされています。 ジャンプボックスはハブ ネットワーク上に展開され、VPN ゲートウェイまたは Azure Bastion を使用してオンプレミス ネットワークからアクセスできます。
  • Azure のサービスはすべてプライベート エンドポイントを使用しており、パブリック エンドポイントからアクセスするのではなく、プライベート ネットワーク経由でアクセスできるようになっています。 この構成により、サービスが公共のインターネットからアクセスできないようにするのにもできます。
  • NSG ルールは、仮想ネットワークへの必要なトラフィックのみを出入りさせるように設定されます。 この構成は、悪意のある攻撃からネットワークを保護し、ネットワークの出入りのトラフィックを監視する際に役立ちます。 これらのルールは、仮想ネットワーク内のリソース間のトラフィックまで制限します。

ハブ仮想ネットワーク

ハブ仮想ネットワークには、スポーク ネットワークへのトラフィックの出入りを許可または監視するリソースが含まれます。 仮想ネットワークは、展開テンプレートで以下のサブネットを定義します:

  1. GatewaySubnet: VPN ゲートウェイのサブネット (展開されている場合)
  2. AzureBastionSubnet: Azure Bastion サービスのサブネット (展開されている場合)
  3. AzureFirewallSubnet: Azure Firewall サービスのサブネット
  4. sn-jumpbox: ジャンプボックスのサブネット
  5. sn-dnspr: Azure DNS リゾルバーに委任されたサブネット

スポーク仮想ネットワーク

スポーク仮想ネットワークには、Batch サービス、Batch コンピューティングノード、およびワークロードが必要とするその他のサービスエンドポイントが含まれます。 仮想ネットワークは、展開テンプレートで以下のサブネットを定義します:

  1. pool-linux: Linux プールのサブネット
  2. pool-windows: Windows プールのサブネット
  3. private-endpoints: スポークネットワーク上に展開される Azure サービスのプライベート エンドポイントに使用されるサブネット

スポーク ネットワークはハブ ネットワークとピアリングされ、スポーク ネットワーク上のリソースがハブ ネットワーク上のリソースにアクセスできるようになります。 ルート テーブルは、スポーク間のトラフィックがファイアウォールを経由するように設定されます。

リソースへのアクセス

Batch サービスにコンピューティング ジョブを投入するには、Batch サービスのエンドポイントに接続してジョブを投入し、その進捗を監視します。 Batch サービスはプライベート エンドポイントを使用するように設定されているため、ネットワーク内からしかアクセスできません。

このアーキテクチャでは、Batch サービスにジョブを送信できるように、ネットワークに接続するための 2 つのオプションが用意されています:

  • VPN Gateway を使用します。 VPN Gateway を使用してハブネットワークに接続します。 VPN に接続した後は、ローカルマシンから直接 Batch サービスにジョブを投入できるため、ローカルマシンにインストールされた Batch Explorer を使用してジョブを監視することも容易になります。 この構成では、Azure CLI、Batch Explorer、その他のツールがローカルマシンにインストールされている必要があります。 または、VPN に接続した後、Linux または Windows のジャンプボックスを使用して Batch サービスにジョブを送信することもできます。 そのためには、ローカルマシンに SSH クライアントまたは RDP クライアントがインストールされている必要があります。

  • Azure Bastion を使用します。 VPN を使用する代わりに、Azure Bastion を使用して Linux または Windows のジャンプボックスにサインインできます。 Azure ポータルにサインインし、Azure Bastion を使用して Web ブラウザから直接ジャンプボックス VM にサインインします。 ジャンプボックスにサインインした後、ジャンプボックスにインストールされている Azure CLI、Batch エクスプローラー、その他のツールを使用して、Batch サービスにジョブを送信できます。

考慮事項

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

このワークフロー例では、まだ自動化の準備が整っていないワークロードの出発点として、手動によるデータ転送とジョブの投入に頼っています。 ただし、運用ワークロードの場合は、データ転送とジョブ投入を自動化することをお勧めします。これは、Azure Data Factory やその他のワークフロー オーケストレーション ツールを使用して行うことができます。

Batch プールは、プールに送信されたジョブの数に基づいて自動的にスケールアップおよびスケールダウンするように設定できます。 この構成により、実行するジョブがない場合にプールを実行するコストを削減できます。 詳細については、Azure Batch プールのコンピューティング ノードを自動的にスケーリングするを参照してください。

セキュリティ

セキュリティは、意図的な攻撃や貴重なデータやシステムの悪用に対する保証を提供します。 詳細については、セキュリティを構成する柱の概要を参照してください。

パスワードや鍵などの秘密の共有を最小限に抑えるため、アーキテクチャでは、バッチプールに参加する際に、マネージド ID を使用して、ストレージ アカウント、コンテナ レジストリ、およびその他のリソースでコンピューティング ノードを認証します。 この認証は、バッチ プールにマネージド ID を割り当て、そのマネージド ID にリソースへのアクセスを許可することで行われます。 ロール ベースのアクセス制御を使用することで、マネージド ID にリソースへのアクセスに必要な最小限の権限を付与できます。

また、このアーキテクチャではプライベート エンドポイントを使用し、サービスが公共のインターネットからアクセスできないようにしています。 この構成は、攻撃対象領域の最小化に役立ち、また、パブリック エンドポイント経由でアクセスするのではなく、プライベート ネットワーク経由でサービスにアクセスすることを保証します。

また、このアーキテクチャでは、Azure Firewall を使用して、ネットワークの出入りのトラフィックをフィルターし、監視しています。 ファイアウォールは、許可リストに登録されたトラフィックだけを許可するように構成され、許可リストに登録されたトラフィックだけが仮想ネットワークから出ることができるようにします。 この構成は、悪意のある攻撃からネットワークを保護し、ネットワークの出入りのトラフィック監視に役立ちます。

この構成は、悪意のある攻撃からネットワークを保護し、ネットワークの出入りのトラフィックを監視する際に役立ちます。

コストの最適化

コストの最適化とは、不必要な経費を削減し、業務効率を向上させる方法を検討することです。 詳細については、コスト最適化を構成する柱の概要を参照してください。

Azure Batch 自体は無料のサービスであり、顧客が支払うのは基盤となる仮想マシン、ストレージ、ネットワークのコストのみです。 このワークロードでは、コンピューティング ノード以外に、ストレージ アカウント、ジャンプボックス、VPN Gateway、Azure Bastion がコストの発生するリソースです。 ワークロードは、リソースへのアクセスの代替手段をサポートするように設計されているため、それらのパスのいずれかを選択することで、実行コストを最適化することができます。 たとえば、リソースへのアクセスに VPN Gateway を優先する場合は、展開時に Azure Bastion とジャンプボックス VM を無効にしてコストを削減できます。

コンピューティング リソースに関連するコストを削減するために、ワークロードに対してより費用対効果の高い VM のストック キープ ユニット (SKU) を使用します。 さらに、スポット インスタンスやプールのオートスケールを使用すると、コンピューティング ノードに関連するコストを削減できます。

このワークロードの実行コストを決定するには、Azure 料金計算ツールを参照してください。

パフォーマンス効率

パフォーマンス効率とは、ユーザーからの要求を効率的に満たすためにワークロードを拡張する能力を指します。 詳細については、パフォーマンスの効率性を構成する柱の概要を参照してください。

Batch では、ワークロードに適切な VM SKU を使用することで、パフォーマンス効率を向上できます。 ワークロードに適したVM SKUの選択方法の詳細については、Azure コンピューティング ユニットを参照してください。 コンピューティング ノードの VM サイズを選択することで、展開地域に基づいて適切な VM SKU を選択するための指針が得られます。

次のようなシナリオを展開する

この参照アーキテクチャの IaC (コードとしてのインフラ) ソースコードは、Azure Batch アクセラレータ リポジトリで入手できます。 付属のチュートリアルでは、この参照アーキテクチャの展開方法と、それを使用して azfinsim という名前のサンプル FSI ワークロードを実行する方法を示します。 また、以下のボタンを使用して、Azure ポータルを使用して、サブスクリプション下のリソースを展開することもできます:

Azure に展開する

次の手順

モジュールの学習