次の方法で共有


Azure Spring Apps で独自の永続ストレージを有効にする方法

Note

BasicStandardEnterprise プランは、2025 年 3 月中旬以降非推奨になり、廃止期間は 3 年間です。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。

Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨になり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金および専用プランを Azure Container Apps に移行する」を参照してください。

この記事の適用対象: ✔️ Java ✔️ C#

この記事の適用対象: ✔️ Basic または Standard ✔️ Enterprise

この記事では、Azure Spring Apps で独自の永続ストレージを有効にする方法について説明します。

Azure Spring Apps で組み込みの永続ストレージを使用すると、アプリケーションによって生成された成果物が Azure ストレージ アカウントにアップロードされます。 Microsoft は、これらの成果物の保存時の暗号化ポリシーと有効期間の管理ポリシーを制御します。

独自の永続的ストレージを使用すると、アプリケーションによって生成された成果物が、制御するストレージ アカウントにアップロードされます。 保存時の暗号化ポリシー、有効期間の管理ポリシー、ネットワーク アクセスをユーザーが制御することになります。 そのストレージ アカウントに関連するコストについては、お客様が責任を負うものとします。

前提条件

  • 既存の Azure ストレージ アカウントと既存の Azure ファイル共有。 Azure でストレージ アカウントとファイル共有を作成する方法については、「SMB Azure ファイル共有を作成する」を参照してください。
  • Azure CLI。バージョン 2.45.0 以上。

重要

独自の仮想ネットワークに Azure Spring Apps をデプロイし、ストレージ アカウントに仮想ネットワークからのみアクセスする場合は、「Azure Storage のプライベート エンドポイントを使用する」と、「Azure Storage ファイアウォールと仮想ネットワークの構成」の「仮想ネットワークからのアクセスの許可」セクションを参照してください。

独自の永続的ストレージをアプリケーションにマウントします

Note

永続的ストレージを更新すると、アプリケーションが再起動されます。

仮想ネットワーク統合を使用する場合は、ポート 80 と 445 を確実に開いた状態にしてください。

次の手順を使用して、Azure Storage アカウントを Azure Spring Apps のストレージ リソースとしてバインドし、独自の永続ストレージを持つアプリを作成します。

  1. サービスの [概要] ページに移動し、左側のナビゲーション ウィンドウで [ストレージ] を選択します。

  2. [ストレージ] ページで、[ストレージの追加] を選択します。

    [ストレージ] ページを示す Azure portal のスクリーンショット。

  3. [ストレージの追加] ページで次の情報を入力し、[適用] を選択します。

    設定
    ストレージ名 ストレージ リソースの名前。これは、Azure Spring Apps のサービス レベルのリソースです。
    アカウント名 ストレージ アカウントの名前。
    アカウント キー ストレージ アカウント キー。

    [ストレージの追加] ページを示す Azure portal のスクリーンショット。

  4. [Apps] ページに 移動し、永続的ストレージをマウントするアプリケーションを選択します。

    spr-apps-1 が強調表示された [アプリ] ページを示す Azure portal のスクリーンショット。

  5. [構成][永続的ストレージ] の順に選択します。

  6. [永続的ストレージを追加する] を選択します。 次の表に値を追加して、[適用] を 選択します。

    設定
    ストレージ名 前に入力したストレージ リソースの名前。
    永続ストレージの種類 AzureFileVolume
    共有名 Azure Storageアカウント内の Azure ファイル共有の名前。
    マウント パス 一意のマウント パス。
    マウント オプション オプション
    読み取り専用 省略可能

    [永続的ストレージを追加する] ページを示す Azure portal のスクリーンショット。

  7. [保存] を選択して構成の変更を適用します。

    [構成] ページの [永続的ストレージ] タブを示す Azure portal のスクリーンショット。

ベスト プラクティス

Azure Spring Apps に独自の永続的ストレージを追加する場合は、次のベスト プラクティスを使用します。

  • 待ち時間に関する潜在的な問題を回避するには、Azure Spring Apps インスタンスと Azure ストレージ アカウントを同じ Azure リージョンに配置します。

  • Azure Storage アカウントでは、使用中のアカウント キーが再生成されないようにします。 ストレージ アカウントには、2 つの異なるキーが含まれています。 段階的なアプローチを使用して、キーの再生成時に、アプリケーションが永続的ストレージを引き続き使用できるようにします。

    たとえば、 key1 を使用してストレージ アカウントを Azure Spring Apps にバインドした場合、永続的ストレージを引き続き使用できるようにするには、次の手順を使用します。

    1. key2 を再生成します。
    2. 再生成された key2 を使用するように、ストレージ リソースのアカウント キーを更新します。
    3. このストレージ リソースから永続ストレージがマウントされているアプリケーションを再起動します az spring storage list-persistent-storage コマンドを使用して、関連するすべてのアプリケーションを一覧表示します。
    4. key1 を再生成します。
  • Azure ストレージ アカウントまたは Azure ファイル共有を削除する場合は、アプリケーション内の対応するストレージ リソースまたは永続的ストレージを削除して、エラーが発生しないようにします。

  • どのアプリケーション インスタンスについても同じパスにファイルを書き込みたいが、ファイル共有の観点からそれらを別々のサブディレクトリに保持したい場合は、[サブパス] オプションを使用できます。 [サブパス] オプションは、[読み取り専用] と互換性がありません。これは、[サブパス] が新しいファイルの書き込みに使用されるのに対し、[読み取り専用] は既存のファイルの読み取りに使用されるからです。

よく寄せられる質問

このセクションでは、Azure Spring Apps で独自の永続的ストレージを使用することに関してよく寄せられる質問を次に示します。

  • 組み込みの永続的ストレージを有効にしてから、独自のストレージを追加の永続的ストレージとして有効にした場合、データは Azure ストレージ アカウントに移行されますか?

    いいえ。 ただし、Microsoft では、ご自身で移行を行う際に役立つドキュメントを間もなく提供する予定です。

  • 予約済みマウント パスとは何ですか。

    Azure Spring Apps では、次のマウント パスを予約します。

    • /tmp
    • /persistent
    • /secrets
    • /app-insights/agents
    • /etc/azure-spring-cloud/certs
    • /app-insights/agents/settings
    • /app-lifecycle/settings
  • どのようなマウント オプションを使用できますか。

    "現在、次のマウント オプションがサポートされています。"

    • uid
    • gid
    • file_mode
    • dir_mode

    mountOptions プロパティは省略可能です。 これらのマウント オプションの既定値は、["uid=0", "gid=0", "file_mode=0777", "dir_mode=0777"] です。

  • サービス エンドポイントを使用して、自分の仮想ネットワークからのアクセスのみを許可するようにストレージ アカウントを構成しています。 カスタム永続的ストレージをアプリケーションにマウントしようとしたときに [アクセス許可は拒否されました] とエラーが表示されたのはなぜですか?

    サービス エンドポイントは、サブネットレベルでのみネットワーク アクセスを提供します。 Azure Spring Apps インスタンスで使用されている両方のサブネットをサービス エンドポイントのスコープに追加したことを確認してください。

次のステップ