Azure Blob Storage を利用した大容量データの保存とアクセス

概要

Microsoft Azureのサービスの一つであるAzure Blob Storage上に大容量データを保存し,手元のブラウザや計算機からアクセスする手順を説明します.使用量あたりの料金は以下のリンクを参考にしてください.

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

  • まだサブスクリプションをお持ちでない場合は,事前に以下サイトよりサブスクリプションを申請してください.
  • Azure portalUTokyo Accountでログインし、リソースの欄に申請したサブスクリプションがあることを確認してください.(新規申請された場合は表示されるようになるまで時間がかかります)

  • Azureサービスの検索で“ストレージ”と検索すると表示される,ストレージアカウントを選択します.

  • 適切なサブスクリプション,リソースグループを選択し,ストレージアカウント名を入力します.ストレージアカウント名は,規則のもとで自由に設定できます.

  • 次へを押して詳細を設定します.特に,「詳細」や「ネットワーク接続」はセキュリティに関わる項目があるため十分に注意して設定してください.

  • 最後に作成を押すと数分でストレージアカウントが作成されます.

手元の計算機等からのアクセス

コンテナーの作成

この操作はPython等で自動化可能です。例えば以下のリンクを参照ください。

ファイルシステムのディレクトリに相当する,コンテナーを作成します.

ブラウザのAzureトップページから「ストレージアカウント」=>「上で作成したストレージアカウント」=>「概要」=> 「Blob service」へアクセスします.

+コンテナーからコンテナーを作成します.

データのアップロード/ダウンロード

ブラウザ上で作成したコンテナーを選択し,アップロードからファイルをアップロード可能です.ダウンロードはファイル名の右端のから可能です.

Python等を使って,手元の計算機から直接アップロードすることも可能です.以下はPythonを用いる場合です.

  • 必要なライブラリのインストール

    • $ pip install azure-storage-blob azure-identity
  • アクセスキーの取得 ブラウザ上で作成したストレージアカウントへアクセスし,左端のメニューからアクセスキーを選択,キーをメモしておきます.アクセスキーは厳重に管理してください.

  • Pythonによるアクセス 取得したアクセスキーによる認証で,ローカルのファイルをアップロード可能です.以下はサンプルです.

import os 
from azure.identity import DefaultAzureCredential 
from azure.storage.blob import BlobServiceClient, ContainerClient, BlobBlock, BlobClient, StandardBlobTier 

account_url = "https://<Paste-Your-Storage-Account-Name>.blob.core.windows.net" 

access_key = "<Paste-Access-Key-For-Your-Storage-Account>" 

# Create the BlobServiceClient object 
blob_service_client = BlobServiceClient(account_url, credential=access_key) 

def upload_blob_file(blob_service_client: BlobServiceClient, container_name: str): 
    container_client = blob_service_client.get_container_client(container=container_name) 
    filepath = "<Paste-Your-File-Path>" 
    filename = "<Paste-Your-File-Name>" 
    with open(file=os.path.join(filepath, filename), mode="rb") as data: 
        blob_client = container_client.upload_blob(name=filename, data=data, overwrite=True) 
container_name = "<Paste-Your-Container-Name>" 
upload_blob_file(blob_service_client,container_name) 

Pythonを用いたデータのダウンロードやファイル一覧の表示,コンテナーの作成などのより高度な利用方法,Python以外の言語の利用に関しては以下のリンクを参照してください.

データの共有

特定のファイルやコンテナーを Shared Access Signature (SAS) を用いて共有することができます。.

1. ブラウザ上でファイル/コンテナーの右端のからSASの作成を選択.

2. 共有する期間やアクセスを許可するIPアドレス範囲、共有相手の権限を設定し、SASトークンおよびURLを生成

3. 生成されたBLOB SAS URLから共有相手もファイルにアクセスできます.

ストレージのマウント

手元のLinux計算機へマウントすることも可能です.以下はRocky Linux 9の例です.

1. Blobfuse2のインストール

 $ wget https://github.com/Azure/azure-storage-fuse/releases/download/blobfuse2-2.3.2/blobfuse2-2.3.2-Rocky-9.0.x86_64.rpm 
 $ sudo rpm -Uvh blobfuse2-2.3.2-Rocky-9.0.x86_64.rpm 

2. 設定ファイルの編集

$ mkdir -p ~/.blobfuse2 
$ vim ~/.blobfuse2/config.yaml 
  • config.yamlの記載例:
version: 2 
logging: 
  type: syslog 
  level: LOG_WARNING 
components: 
  - libfuse 
  - attr_cache 
  - azstorage 
libfuse: 
  mount_path: /mnt/blobfuse 
azstorage: 
  type: block 
  account-name: <Storage-Account-Name> 
  account-key: <Access-Key> 
  container: <Container-Name>  

3. マウント

$ sudo blobfuse2 mount /mnt/blobfuse --config-file ~/.blobfuse2/config.yaml

マウントに失敗する場合,設定ファイルやストレージアカウントのネットワーク設定を確認してください.

arrow_upward
上に戻る
feedback
フィードバック
contact_support
サポート窓口