Azure NetApp Files での AKS ワークロードにおけるアプリケーション データ保護

Azure NetApp Files
Azure Kubernetes Service (AKS)
Azure Virtual Network

この記事では、処理状態を把握するコンテナ化されたアプリケーションとそのリソースのアプリケーション データ管理を管理および実行するためのソリューションについて説明します。

Architecture

AKS と Azure NetApp Files が別々の仮想ネットワークに存在する場合に、Astra Control Service とともに AKS をデプロイする方法を示すアーキテクチャ図。

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

データフロー

  1. Azure サブスクリプションに Azure NetApp Files アカウントが作成され、容量プールが定義されます。 これらのプールは、Standard、Premium、Ultra など、実装に必要なサービス レベルにマップされます。

  2. 1 つ以上の AKS クラスターがデプロイされます。 クラスターは次の場所にデプロイされる必要があります。

  3. ユーザーが Astra Control Service アカウントにサインアップします。 Astra Control Service では、共同作成者アクセスを持つ Azure サービス プリンシパル認証情報を使用して、管理される AKS クラスターが検索されます。 Astra Control Service は、Astra Trident をインストールし、クラスターが Astra Control Service に追加されたときに、サービスの各レベルにマップされた StorageClasses を作成します。 Astra Trident は、Azure NetApp Files 容量プールにマップされる自動的にデプロイされた StorageClass (SC) オブジェクトを使用して、アプリケーション PersistentVolumeClaims (PVCs) から Kubernetes PersistentVolumes (PVs) を作成します。 マッピングでは、容量プールのサービス レベルが考慮されます。

  4. ユーザーが AKS クラスターにアプリケーションをインストールします。 デプロイ方法として、Helm チャート、演算子、YAML マニフェストがあります。 アプリケーションは、ラベルまたは名前空間でグループ化できます。 Astra Trident は、StorageClass オブジェクトを使用して PersistentVolumeClaims に基づいて永続ボリュームをプロビジョニングします。

  5. Astra Control Service は、アプリケーションとその関連リソース (ポッド、サービス、デプロイ、PersistentVolumeClaim (PVC) オブジェクトなど) を管理します。 また、PVC にバインドされた PersistentVolume (PV) も管理します。 ユーザーが、次のいずれかの方法を使用してアプリケーションを定義します。

    • 名前空間への制限
    • カスタム Kubernetes ラベルを使用したリソースのグループ化

ユーザーは、クラスター スコープのオブジェクト (ストレージ クラスなど) を (a) 特定のアプリケーションとグループ化してまとめて管理することもできます。

Astra Control Service は、ポイントインタイム スナップショット、バックアップ、バックアップ ポリシーインスタント アクティブ クローンを調整して、アプリケーション ワークロードの保護に役立ちます。 Astra Control Service は、次の方法でこのような保護を行います。

  • Astra Control Service 保護ポリシーの作成。 これらは、スナップショットやバックアップに対して作成し、スケジュールとバックアップ ターゲットを指定できます。 これらのポリシーを使用すると、事前に決定されたスケジュールでアプリケーションを自動的に保護できます。

  • 個々の、またはグループのアプリケーションに対して必要に応じてスナップショットを作成する。

  • 個々の、またはグループのアプリケーションに対して瞬時のバックアップまたはクローンを作成する。

    災害またはアプリの障害が発生すると、バックアップとスナップショットによってアプリケーションの状態が復元されます。 ユーザーは、名前空間と AKS クラスター間でアプリをクローンおよび移行できます。 クラスターは、同じリージョンにあっても異なるリージョンにあってもかまいません。

コンポーネント

  • AKS は、コンテナ化されたアプリケーションを簡単にデプロイして管理できるようにするためのフル マネージド Kubernetes サービスです。 AKS では、サーバーレスの Kubernetes テクノロジ、統合された継続的インテグレーションと継続的デリバリー (CI/CD) エクスペリエンス、エンタープライズ レベルのセキュリティとガバナンスが提供されます。
  • Azure NetApp Files は Azure のストレージ サービスです。 このサービスは、エンタープライズ レベルのネットワーク ファイル システム (NFS) とサーバー メッセージ ブロック (SMB) ファイル共有を提供します。 Azure NetApp Files を使用すると、コードを変更することなく、複雑なファイルベースのアプリケーションを容易に移行して実行できます。 このサービスは、Kubernetes 環境で永続ボリュームを持つユーザーに適しています。
  • Azure Virtual Network は、Azure 内のプライベート ネットワークの基本的な構成ブロックです。 Virtual Network を経由して、仮想マシン (VM) などの Azure リソースは、相互に、またはインターネットやオンプレミス ネットワークと安全に通信できます。
  • Astra Control Service は、フル マネージドのアプリケーション認識データ管理サービスです。 Astra Control Service は、パブリック クラウドおよびオンプレミスの環境で、データの豊富な Kubernetes ワークロードの管理、保護、移動に役立ちます。 このサービスは、Kubernetes ワークロードのデータ保護、ディザスター リカバリー、移行を提供します。 Astra Control Service では、業界をリードする Azure NetApp Files のデータ管理テクノロジを使用して、スナップショット、バックアップ、リージョン間レプリケーション、クローンが行われます

代替

多角的なカスタム アプローチを使用して、アプリケーションを復元するときに必要な永続ボリューム、Kubernetes リソース、その他の構成状態リソースを、個別にバックアップまたは複製することができます。 ただし、この方法では以下の可能性があります。

  • 作業が煩雑になる。
  • すべてのアプリとの互換性を維持するのが難しい。
  • 一般的な企業が保有する複数のアプリや環境間でスケーリングすることが難しい。

特定の環境では、ピアリングされた仮想ネットワーク間でのトラフィックを避けることで、コストを削減できます。 このトラフィックを排除するには、ソリューションを簡略化します。 具体的には、次の図に示すように、Azure NetApp Files に委任する AKS クラスターとサブネットを同じ仮想ネットワークに置きます。

1 つの仮想ネットワークで Astra Control Service とともに AKS を使用する方法を示したアーキテクチャ図。

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

シナリオの詳細

コンテナ化されたアプリケーションでは、データの保護の実行が困難な場合があります。 アプリケーションは複数のマイクロサービスで構成され、1 つのエンティティとして管理する必要があります。 Kubernetes にビジネス クリティカルなワークロードをデプロイする場合、次を満たすアプリケーション データ管理が必要です。

  • シンプル。 データ保護ポリシーとオンデマンド スナップショットおよびバックアップは、直感的に確立されたものである必要があります。 これらのポリシーは、基になるインフラストラクチャの細部に依存してはなりません。
  • 移植可能。 リージョン間でのアプリケーションのモビリティを可能にするには、複数の Kubernetes クラスターでバックアップを使用できる必要があります。
  • アプリケーション認識。 ソリューションは、シークレット、ConfigMap オブジェクト、永続ボリュームなどの標準の Kubernetes リソースを含む、アプリケーション全体を保護するものである必要があります。 また、カスタム Kubernetes リソースも保護する必要があります。 可能であれば、スナップショットおよびバックアップをする前に、手順でアプリケーションを休止できる必要があります。 これにより、バックアップ中に転送中のデータが失われるのを防ぐことができます。

NetApp Astra Control Service は、これらの目標を達成するのに役立つステートフル アプリケーション データ管理を実行するためのソリューションです。 Astra Control Service は、データ保護、ディザスター リカバリー、アプリケーション モビリティ機能を提供します。 これは、ストレージとアプリケーション認識のデータ管理サービスを豊富に備えたステートフルな AKS ワークロードを提供します。 Azure NetApp Files のデータ保護テクノロジが、これらのサービスの基盤となっています。

考えられるユース ケース

このソリューションは、次のような、ステートフル アプリケーションを実行するシステムに適用されます。

  • Jenkins などの継続的インテグレーション (CI) システム
  • MySQL、MongoDB、PostgreSQL などのデータベース ワークロード
  • TensorFlow や PyTorch などの AI および機械学習コンポーネント
  • Elasticsearch デプロイメント
  • Kafka アプリケーション
  • GitLab などのソース コード管理プラットフォーム

考慮事項

以降の考慮事項には、ワークロードの品質向上に使用できる一連の基本原則である Azure "Well-Architected Framework" の要素が組み込まれています。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。

[信頼性]

信頼性により、顧客に確約したことをアプリケーションで確実に満たせるようにします。 詳細については、「信頼性の重要な要素の概要」を参照してください。

AKS クラスターをデプロイする際は、1 つのリージョンにデプロイします。 アプリケーションのワークロードを保護するには、複数のリージョンにまたがる複数の AKS クラスターにワークロードをデプロイするのが最善です。 デプロイに影響を与える要因には、AKS リージョンの可用性と Azure のペアになっているリージョンがあります。 複数の可用性ゾーンにクラスターをデプロイする場合は、1 つのリージョン内の複数のゾーンにノードを分散します。 この AKS クラスター リソースの分散によって、特定のゾーンの障害に対する回復力が備わるため、クラスターの可用性が向上します。

Azure NetApp Files は、高可用性を備えた設計になっています。 オール フラッシュのストレージ システムの高可用性ベアメタル フリート上に構築されています。 このサービスの可用性の保証については、「Azure NetApp Files の SLA」をご覧ください。

Azure NetApp Files では、ディザスター リカバリーの目的でリージョン間レプリケーションがサポートされます。 Azure リージョンペア間で継続的にボリュームをレプリケートできます。 リージョン間レプリケーションの詳細については、次のリソースを参照してください。

コストの最適化

コストの最適化とは、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳しくは、コスト最適化の柱の概要に関する記事をご覧ください。

以下のコンポーネントのコストを見積もるには、Azure 料金計算ツールを使用します。

  • AKS
  • Azure NetApp Files
  • Virtual Network

Astra Control Service の価格プランについては、「価格」を参照してください。 Astra Control Service を導入すれば、スケーリングできないカスタム ソリューションの構築に時間もリソースも費やすことなく、アプリケーションにフォーカスできます。 Astra Control Service は、Azure Marketplace で利用できます。

帯域幅と価格を詳細に計算するには、Azure NetApp Files パフォーマンス計算ツールを使用します。 基本および詳細の計算ツールを使用できます。

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

オペレーショナル エクセレンスは、アプリケーションをデプロイし、それを運用環境で実行し続ける運用プロセスをカバーします。 詳細については、「オペレーショナル エクセレンスの重要な要素の概要」を参照してください。

Kubernetes コントロール プレーンを使用する場合は、インフラストラクチャとプラットフォーム レイヤーを監視することが重要です。 Astra Control Service は、複数の AKS クラスター間でアプリケーション保護ポリシーを定義および管理するために使用できる統一されたコントロール プレーンを提供します。 ダッシュボードを使用すると、リージョン間でワークロードを継続的に処理できます。 Astra Trident には、プロビジョニングされたストレージの監視に使用できる、豊富な Prometheus メトリックのセットも用意されています。

パフォーマンス効率

パフォーマンス効率とは、ユーザーによって行われた要求に合わせて効率的な方法でワークロードをスケーリングできることです。 詳細については、「パフォーマンス効率の柱の概要」を参照してください。

AKS クラスターでは、スケーラビリティを向上させるために追加のワーカー ノードを追加できます。 ソリューションをスケーリングするには、ノード プールを追加するか、既存のノード プールをスケーリングできます。 これらの手順により、クラスター内のノード数、コアの合計数、およびコンテナー化されたアプリケーションで使用可能なメモリが増加します。

各仮想ネットワークでは、Azure NetApp Files にサブネットを 1 つだけ委任できます。

Azure NetApp Files のネットワーク機能の基本構成を使用する場合、仮想ネットワークあたりの IP アドレスは 1,000 に制限されます。 標準のネットワーク機能の構成では、IP アドレス数の制限はありません。 詳細については、「構成可能なネットワーク機能」を参照してください。 Azure NetApp Files のリソース制限の詳細な一覧については、「Azure NetApp Files のリソース制限」を参照してください。

Azure NetApp Files には、複数のパフォーマンス レベルが用意されています。 Astra Control Service を使用して AKS クラスターを検出すると、オンボード プロセスによって、Standard、Premium、および Ultra の各サービス レベルにマップされる、キュレーションされた StorageClass オブジェクトが作成されます。 ユーザーは、アプリケーションをデプロイするときに、要件に適したストレージ層を選択します。 複数の容量プールが共存できます。 プロビジョニングされたボリュームには、サービス レベルに対応するパフォーマンス保証があります。 Azure NetApp Files がサポートするサービス レベルの一覧については、「Azure NetApp Files のサービス レベル」を参照してください。

このシナリオのデプロイ

このソリューションを実装するには、Azure アカウントが必要です。 無料でアカウントを作成できます

このシナリオをデプロイするには、次の手順に従います。

  1. Azure NetApp Files を使用できるようにするためのリソース プロバイダーを登録します。
  2. AKS で Astra Control Service を使用するための要件を確認します。
  3. Azure portal を使用して NetApp アカウントを作成します。
  4. Azure NetApp Files アカウントに容量プールを設定します。
  5. サブネットを Azure NetApp Files に委任します
  6. AKS クラスターを検出し、バックアップ、復元、およびデータ管理操作を実行するために使用する Astra Control Service のサービス プリンシパルを作成します。
  7. NetApp Cloud Central アカウントを作成して、Astra Control Service に登録します。
  8. AKS クラスターを Astra Control Service に追加して、アプリケーションの管理を開始します。
  9. Astra Control Service でアプリケーションを検出します。 アプリケーションを検出して管理する方法は、それらをデプロイして識別する方法によって異なります。 識別の一般的な方策として、専用の名前空間へのアプリケーション オブジェクトのグループ化、アプリケーションを構成するオブジェクトへのラベルの割り当て、Helm チャートの使用などがあります。 Astra Control Service では、これら 3 つの方法すべてがサポートされています。
  10. アプリケーションをバックアップおよび復元するための保護ポリシーを確立します。 保護ポリシーを定義する前に、ワークロードを明確に識別します。 前提条件は、Astra Control Service が各アプリケーションを一意に検出できることです。 詳細については、「アプリ管理を開始する」を参照してください。

アプリケーションの保護を支援するために実行できる手順については、「Astra Control Service と Azure NetApp Files を使用した AKS ワークロードのディザスター リカバリー」を参照してください。

Astra Control Service の詳細については、「Astra Control Service のドキュメント」を参照してください。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は次のとおりです。

プリンシパル作成者:

  • Arnt de Gier | テクニカル マーケティング エンジニア

次のステップ