AzureのBlob StorageとManaged DiskをLinuxから操作する方法|azコマンドとストレージ設計の基礎

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Azure > AzureのBlob StorageとManaged DiskをLinuxから操作する方法|azコマンドとストレージ設計の基礎
「Azureのストレージって種類が多くて、結局どれを使えばいいの?」
Azureを触り始めたLinuxエンジニアがよく感じる疑問です。VM間でデータを共有したい、バックアップを保存したい、大量のログをまとめておきたい——それぞれの用途によって使うべきストレージが違います。

この記事では、AzureのBlob StorageとManaged Diskの2つに絞って、Linuxから実際に操作する手順を解説します。azコマンド(Azure CLI)を使ったBlobのアップロード・ダウンロードと一覧確認、さらにManaged DiskをLinux VMにアタッチしてフォーマット・マウントするまでの流れを、実機の出力例つきで紹介します。

この記事のポイント

・Blob Storageはオブジェクト保存、Managed DiskはVM用ブロックストレージと役割が異なる
・az storage blob upload/download でLinuxから直接Blobを操作できる
・Managed DiskはAzureポータルかazコマンドでVMにアタッチ後、fdisk・mkfs・mountで使える
・Blob Storageはホットアクセス層・クールアクセス層でコストを調整できる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

AzureストレージはBlob Storage、Managed Disk、Files の3種類が基本

AzureのストレージはAWS S3やEBSに相当するものが、それぞれ別の名前で提供されています。まずこの3種類の使い分けを頭に入れておくと、後の操作が迷いなく進みます。

Blob Storage(オブジェクトストレージ):ファイルや画像、ログ、バックアップなどのファイルをオブジェクトとして保存する。AWSのS3に相当。
Managed Disk(ブロックストレージ):VM専用の仮想ディスク。AWSのEBSに相当。VMにアタッチしてOSまたはデータディスクとして使う。
Azure Files(ファイルストレージ):SMBプロトコルで複数VMから同時にマウントできる共有ストレージ。AWSのEFSに相当。

この記事ではLinuxエンジニアが最も頻繁に扱うBlobとManaged Diskを取り上げます。

Azure CLI(az コマンド)の準備とストレージアカウント作成

1. Azure CLIのインストール

RHEL/Rocky Linux系とUbuntu系のそれぞれにインストール手順があります。ここではRPMパッケージとaptパッケージの両方を紹介します。

RHEL 9.x / Rocky Linux 9.x の場合:

# Microsoftのリポジトリを追加してインストール sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo dnf install -y https://packages.microsoft.com/config/rhel/9.0/packages-microsoft-prod.rpm sudo dnf install -y azure-cli # バージョン確認 az --version

Ubuntu 24.04 LTS の場合:

# Microsoftの署名キーとリポジトリを追加 curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash # バージョン確認 az --version

インストール後の実行結果例(Rocky Linux 9.4で確認):

$ az --version azure-cli 2.61.0 core 2.61.0 telemetry 1.1.0 Python location '/opt/microsoft/azure-cli/bin/python3' Extensions directory '/home/azureuser/.azure/cliExtensions' Python (Linux) 3.11.9 (main, Apr 2 2024, 08:25:16) [GCC 11.4.1 20231218 (Red Hat 11.4.1-3)]

2. az login でAzureにサインイン

az login

コマンドを実行するとブラウザが開き、Azureアカウントでサインインを求められます。サーバー環境など、ブラウザが使えない場合は を使うとデバイスコードでのサインインができます。

# ブラウザが使えないサーバーでのログイン az login --use-device-code # → To sign in, use a web browser to open the page https://microsoft.com/devicelogin # and enter the code XXXXXXXX to authenticate.

3. ストレージアカウントの作成

Blob StorageはAzureの「ストレージアカウント」の配下に作成します。まずリソースグループとストレージアカウントを用意します。

# リソースグループの作成(Japan Eastリージョン) az group create --name myStorageRG --location japaneast # ストレージアカウントの作成 # 名前は英小文字+数字のみ、3~24文字、グローバルで一意である必要がある az storage account create --name mystorageaccount20260701 --resource-group myStorageRG --location japaneast --sku Standard_LRS --kind StorageV2 --access-tier Hot

SkuとAccessTierの選択肢:
Standard_LRS:3重冗長(同一データセンター内)。開発・テスト向け。
Standard_GRS:地理的冗長(別リージョンに自動複製)。本番推奨。
Hot アクセス層:頻繁にアクセスするファイル向け(ストレージ単価高め・転送単価低め)。
Cool アクセス層:アクセス頻度の低いログや長期バックアップ向け(ストレージ単価低め・転送単価高め)。

Blob StorageをLinuxから操作する(az storage blob)

1. コンテナの作成

Blob Storageのファイルは「コンテナ」という単位でまとめて管理します。S3のバケットに相当するものです。

# アカウントキーを変数に取得(コマンドを短くするため) export AZURE_STORAGE_ACCOUNT=mystorageaccount20260701 export AZURE_STORAGE_KEY= # コンテナの作成(パブリックアクセスなし) az storage container create --name mycontainer --public-access off

実行結果:

{ "created": true }

2. ファイルのアップロード(upload)

# 単体ファイルのアップロード az storage blob upload --container-name mycontainer --file /var/log/messages --name logs/messages-2026-07-01.log # ディレクトリごと一括アップロード(--pattern でワイルドカード指定可) az storage blob upload-batch --source /var/log/ --destination mycontainer/logs --pattern "*.log"

実行結果(単体アップロード):

{ "etag": ""0x8DC9A1B2C3D4E5F6"", "lastModified": "2026-07-01T09:30:00+00:00" }

3. ファイルの一覧確認(list)

# コンテナ内のBlob一覧を表示 az storage blob list --container-name mycontainer --output table # プレフィックスで絞り込み(logsフォルダ以下のみ) az storage blob list --container-name mycontainer --prefix "logs/" --output table

実行結果:

Name Blob Type Blob Tier Length Content Type Last Modified -------------------------------- ----------- ----------- -------- ------------------------ ------------------------- logs/messages-2026-07-01.log BlockBlob Hot 185432 application/octet-stream 2026-07-01T09:30:00+00:00 logs/secure-2026-07-01.log BlockBlob Hot 12089 application/octet-stream 2026-07-01T09:31:05+00:00

4. ファイルのダウンロード(download)

# 単体ファイルのダウンロード az storage blob download --container-name mycontainer --name logs/messages-2026-07-01.log --file /tmp/messages-restored.log # バッチダウンロード(コンテナのlogsフォルダを丸ごとローカルへ) az storage blob download-batch --source mycontainer --destination /tmp/blob-restore/ --pattern "logs/*"

実行結果:

{ "content": null, "contentMd5": null, "deleted": false, "metadata": {}, "name": "logs/messages-2026-07-01.log", "properties": { "blobType": "BlockBlob", "contentLength": 185432 } }

5. SAS URLでの一時公開(期限付きURL)

Blobをパブリック公開せず、期限付きで外部から参照できるようにするには、SAS(Shared Access Signature)URLを使います。

# 1時間だけ有効なダウンロードURL(読み取り権限のみ)を生成 az storage blob generate-sas --container-name mycontainer --name logs/messages-2026-07-01.log --permissions r --expiry --full-uri --output tsv

実行結果(URLは伏せています):

https://mystorageaccount20260701.blob.core.windows.net/mycontainer/logs/messages-2026-07-01.log?se=2026-07-01T10%3A30Z&sp=r&sv=2022-11-02&sr=b&sig=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

このURLをcurlやwgetで取得できます。1時間が経過すると自動的にアクセス不能になります。

Managed DiskをLinux VMにアタッチしてマウントする

Managed DiskはVMの「追加データディスク」として使うブロックストレージです。Blob Storageと違い、直接ファイルシステムをフォーマットしてマウントポイントを設定します。

1. Managed Diskの作成とVMへのアタッチ

# 100GBのManaged Disk(Premium SSD)を作成 az disk create --resource-group myStorageRG --name myDataDisk --sku Premium_LRS --size-gb 100 --location japaneast # 既存VMにアタッチ(VMの名前は myLinuxVM とする) az vm disk attach --resource-group myStorageRG --vm-name myLinuxVM --name myDataDisk

DiskのSKUの選択肢:
Premium_LRS:Premium SSD。データベースや高IOPSが必要なアプリ向け。
Standard_LRS:Standard HDD。コスト重視のバックアップ・アーカイブ向け。
StandardSSD_LRS:Standard SSD。一般的なWebサーバー・アプリサーバー向け。

2. Linux側でディスクを認識して確認

アタッチ後、VMのSSHで接続してディスクが認識されているか確認します。

# ブロックデバイスの一覧でアタッチされたディスクを確認 lsblk # 出力例 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 30G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 2G 0 part [SWAP] └─sda3 8:3 0 27G 0 part / sdb 8:16 0 100G 0 disk ← 新しく追加されたManaged Disk

として認識されています(VM環境によって 等になる場合があります)。

3. パーティションの作成とフォーマット

# GPTパーティションテーブルを作成(100GB以上ならGPT推奨) sudo parted /dev/sdb --script mklabel gpt sudo parted /dev/sdb --script mkpart primary ext4 0% 100% # パーティションの確認 sudo parted /dev/sdb print # ext4でフォーマット sudo mkfs.ext4 /dev/sdb1

フォーマット実行結果(Rocky Linux 9.4で確認):

$ sudo mkfs.ext4 /dev/sdb1 mke2fs 1.46.5 (30-Dec-2021) Discarding device blocks: done Creating filesystem with 26214144 4k blocks and 6553600 inodes Filesystem UUID: a1b2c3d4-e5f6-7890-abcd-ef1234567890 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (131072 blocks): done Writing superblocks and filesystem accounting information: done

4. マウントとfstab設定

# マウントポイントの作成 sudo mkdir -p /data # 手動マウントで確認 sudo mount /dev/sdb1 /data # マウント確認 df -h /data

実行結果:

Filesystem Size Used Avail Use% Mounted on /dev/sdb1 98G 24K 93G 1% /data

再起動後も自動マウントされるよう、/etc/fstabにUUIDで登録します(デバイス名は再起動で変わる場合があるためUUID推奨)。

# UUIDを確認 sudo blkid /dev/sdb1 # 出力例 /dev/sdb1: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # fstabに追記 echo "UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /data ext4 defaults,nofail 0 2" | sudo tee -a /etc/fstab # fstabのエラー確認(必ず実行すること) sudo mount -a && echo "OK - fstab設定に問題なし"

nofailオプションについて: Azure VMはディスクのデタッチ操作ができるため、 を付けておくとディスクがない状態でも起動に失敗しなくなります。本番環境では必須のオプションです。

Blob StorageとManaged Diskのコスト比較と使い分け判断

用途 推奨ストレージ 理由
VMのOSディスク・データディスク Managed Disk(Premium SSD) ブロックストレージが必要。fsシステム直接マウント
ログ・バックアップの長期保存 Blob Storage(Cool層) ストレージ単価が安く、月額コストを最小化できる
Web資産(画像・CSS・JS)の配信 Blob Storage(Hot層)+ CDN 静的コンテンツ配信はBlob+Azure Front Doorが定番
複数VMで同じファイルを共有 Azure Files SMBマウントで複数VMから同時アクセス可能
スクリプト・CLIでのファイル転送 Blob Storage(az storage blob) azコマンドで操作しやすい。SAS URLで一時共有も可能

トラブルシュート:よくあるエラーと対処

「AuthorizationPermissionMismatch」が出る

ストレージアカウントキーまたはSASトークンが正しく設定されていない場合に発生します。

# エラー例 The request is not authorized to perform this operation using this permission. ErrorCode: AuthorizationPermissionMismatch # 対処: 環境変数が正しくセットされているか確認 echo echo # または --account-name / --account-key を明示的に指定 az storage blob list --container-name mycontainer --account-name mystorageaccount20260701 --account-key "XXXXXXXX..."

Managed Diskアタッチ後にlsblkで見えない

VMへのアタッチが完了しているように見えてもカーネルがデバイスをスキャンできていない場合があります。

# SCSIバスを強制リスキャン echo "- - -" | sudo tee /sys/class/scsi_host/host*/scan # デバイスが認識されたか再確認 lsblk

それでも認識されない場合は、Azureポータルで「ディスク」の設定を確認し、アタッチが完了しているかチェックしてください。

fstab設定後にVMが起動しない

fstabにUUIDを間違えて記入した場合にVMが起動しなくなることがあります。Azureポータルの「シリアルコンソール」またはAzureの「Boot Diagnostics」ログで確認できます。

# 未然に防ぐ: fstab書き込み前に必ず以下でテスト sudo mount -a # エラーがなければ続行、エラーが出たら fstab を修正してから再試行

本番環境では オプションを必ず付けてください。ディスクが一時的にデタッチされた状態でもVMの起動が継続できます。

本記事のまとめ

やりたいこと コマンド・方法
ストレージアカウントを作成 az storage account create --name ... --sku Standard_LRS
Blobコンテナを作成 az storage container create --name mycontainer
Blobにファイルをアップロード az storage blob upload --container-name ... --file ...
Blob一覧を確認 az storage blob list --container-name ... --output table
Blobをダウンロード az storage blob download --container-name ... --name ...
期限付きSAS URLを生成 az storage blob generate-sas --permissions r --expiry ...
Managed Diskを作成してVMにアタッチ az disk create ...az vm disk attach ...
Managed Diskをフォーマット・マウント mkfs.ext4 /dev/sdb1mount /dev/sdb1 /data
fstabに自動マウント設定 UUID取得後に /etc/fstab へ nofail オプション付きで追記

Blob StorageとManaged Diskは役割がまったく異なります。VMのデータディスクとして高速アクセスが必要ならManaged Disk、ログや画像などのオブジェクト保存ならBlob Storageという切り分けを軸に選んでください。

AzureのストレージはLinuxエンジニアが避けて通れない実務スキルです。Blob Storageのオブジェクト操作からManaged DiskのマウントまでをCLIで体系的に身につけておくことで、現場でのトラブル対応速度が大きく変わります。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、AzureでのBlob Storage・Managed Disk操作を含むクラウド実務スキルを、現役エンジニアが実機ハンズオンで教えます。Azure実践ハンズオン講座の詳細はこちら >>

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。