Azure ポータルを使った Azure Container Apps のボリューム マウント手順について

ブログ エントリ内にアフィリエイト広告が含まれています

Azure Container Apps で使用されるストレージは、通常エフェメラル ストレージが使用されており、コンテナー (もしくはレプリカ) が再起動/シャットダウンすると、ストレージに格納されている内容は消失してしまいます。

アプリケーションによっては、他システムとの連携でストレージに格納された内容が消失されては困るケースがあるかと思いますが、Azure Container Apps には Azure Files を使ってボリュームをマウントする機能が備わっています。

Microsoft Learn のドキュメントには、Azure ポータル/Azure CLI/ARM テンプレートを使った作成手順が簡潔に説明されていますが、実施する際のイメージがしにくかったので、本ブログにて操作画面を含めた形で手順を纏めてみました。

スポンサーリンク

Azure ポータルを使った Azure Container Apps のボリューム マウントについて

手順の確認で使用したリソースについて

※以下のリソースは、すべて同一リソース内に作成しています。リソース名については、確認用で作成したものであるため、作成する際は適時変更してください。

  • コンテナー アプリ :
    • コンテナー アプリ名 : kogaacademoapp
    • デプロイ元 : コンテナー イメージ (クイックスタート イメージ)
  • コンテナー アプリ環境 :
    • コンテナー アプリ環境名 : kogaacademoenv
    • SKU : ワークロード (Consumption)
    • 監視 (ログの出力先) : ログを保存しない
    • パブリック ネットワーク アクセス : 有効
    • 仮想ネットワーク (VNet 統合) : いいえ (使用しない)
  • Azure Files (ストレージ アカウント) :
    • アカウント名 : kogaacademostorage
      • SKU : 汎用v2 (Azure Files Standard)
      • レプリケーション : ローカル冗長ストレージ (LRS)
      • ファイル共有名 : azurefileshare
        • アクセス層 : トランザクションが最適化されました
Azure Container Apps のボリューム マウント機能は、Azure NetApp Files や Azure Blob Storage からのファイル共有のマウントはサポートされていないため、Azure Files を作成する際はこの点を注意してください。

手順の流れ

コンテナーアプリが動作しているコンテナー アプリ環境に Azure Files のファイル共有を追加した後で、コンテナー アプリにボリューム マウントやマウント パスを設定して新しいリビジョンを作成します。

コンテナー アプリ環境とコンテナー アプリの両方で設定する点に注意してください。

また、Azure Files (ストレージ アカウント) のファイル共有名とストレージ アカウント キーを事前に確認しておく必要があります。

手順

Azure Files (ストレージ アカウント) のファイル共有名とストレージ アカウント キーの確認

  1. Azure Files (ストレージ アカウント) の管理ブレード内、ナビゲーション ウィンドウから [データ ストレージ] – [ファイル共有] をクリックし、ボリューム マウントに使用するファイル共有名を確認します。
  2. 続けてナビゲーション ウィンドウから [セキュリティとネットワーク] – [アクセス キー] をクリック、[Key1] – [キー] の [表示] をクリックし、ストレージ アカウント名とストレージ アカウント キーの内容を確認します。

コンテナー アプリ環境での操作

  1. コンテナー アプリ環境の管理ブレード内、ナビゲーション ウィンドウから [設定] – [Azure Files] をクリックします。
  2. [+ 追加] を選択、[Server message Block (SMB)] を選択します。

    Network File System (NFS) もサポートしていますが、NFS での Azure Container Apps のボリューム マウント機能は投稿時点でパブリック プレビューであること、Azure Files (Premium SKU) が必要となるため、本手順では SMB を選択しています。
  3. [サーバー メッセージ ブロック (SMB) ファイル共有の追加] コンテキスト ペインで、確認した情報を元に、以下の情報を入力、[追加] をクリックします。
    • 名前 : volume-mount
    • ストレージ アカウント名 : 手順「Azure Files (ストレージ アカウント) のファイル共有名とストレージ アカウント キーの確認」の項番 2. で確認したストレージ アカウント名 (kogaacademostorage)
    • ストレージ アカウント キー : 手順「Azure Files (ストレージ アカウント) のファイル共有名とストレージ アカウント キーの確認」の項番 2. で確認したストレージ アカウント キー
    • ファイル共有名 : 手順「Azure Files (ストレージ アカウント) のファイル共有名とストレージ アカウント キーの確認」の項番 1. で確認したファイル共有名 (azurefileshare)
    • アクセス モード : 読み取り/書き込み
      コンテナー アプリに Azure Files がボリューム マウントされているとともにファイルが書き込めるかどうかの確認を行うため、「読み取り/書き込み」を選択しています。
  4. Azure Files のファイル共有が追加されていることを確認し、[保存] をクリックします。

コンテナー アプリ操作

  1. コンテナー アプリ環境の管理ブレード内、ナビゲーション ウィンドウから [アプリケーション] – [リビジョンとレプリカ] をクリックします。
  2. [新しいリビジョン] をクリックします。
  3. [新しいリビジョンの作成とデプロイ] ページで [ボリューム] タブを選択、[+ 追加] をクリックします。
  4. [ボリュームの追加] コンテキスト ペインで、以下の設定を入力、[追加] をクリックします。
    • ボリュームの種類 : Azure ファイル ボリューム
    • 名前 : smb-mount-volume
    • ファイル共有名 : 手順「コンテナー アプリ環境での操作」で設定したファイル共有名 (volume-mount)
    • マウント オプション : (空のまま)
  5. [新しいリビジョンの作成とデプロイ] ページで [コンテナー] タブを選択、ボリューム マウントするコンテナー (simple-hello-world-contianer) をクリックします。
  6. [コンテナーの編集] コンテキスト ペインで、[ボリューム マウント] タブを選択、以下の設定を入力、[保存] をクリックします。
    • ボリューム名 : この手順の項番 4. で作成したボリューム名 (smb-mount-volume)
    • マウント パス : /smbvolumemount
    • サブ パス (省略可能) : (空のまま)
  7. [作成] をクリックし、新しいリビジョンを作成します。
  8. 、正常にアクティブ化が完了し、「実行中」になることを確認します。

ボリューム マウントできているかどうかの確認

  1. コンテナー アプリ環境の管理ブレード内、ナビゲーション ウィンドウから [監視] – [コンソール] をクリックします。
  2. [App container console] タブを選択、コンソール画面上に表示される [スタートアップ コマンドの選択] で「/bin/bash」を入力、[接続] をクリックします。
  3. 以下のコマンドを入力、実行し、ボリューム マウントされていることを確認します。
     ls / 
  4. touch コマンドを用いて、ボリューム マウントしたディレクトリ内にファイルを作成できることも確認できます。
スポンサーリンク

関連サイト/リンク

焦げlog

 

コメント

タイトルとURLをコピーしました