今回は、Raspberry Pi Zero Wからファイル共有プロトコルであるSMB 3.0を使って、クラウドストレージ「Azure Files」へファイルを送信するレシピをご紹介します。
Azure Filesの利点としては、SMB 3.0に対応している自宅コンピューターや会社マシン、オンプレミスから接続してファイル共有できるだけでなく、他のAzureサービスとの連携などにも利用できます。
例えば、Raspberry Pi Zero Wで取得したセンサデータや画像情報、ログデータなどをAzure Filesへ送信します。Azure上で稼働するWindows ServerやLinuxの仮想マシンからAzure Filesをマウントし、仮想マシン上でRaspberry Pi Zero Wから送信されたデータをAzure内で加工処理・バッチ処理することができます。もちろんAzureのクラウドサービスだけではなく、オンプレミスのサーバーや、Windows、macOS、LinuxなどのクライアントPCからAzure Filesを利用することができます。
Azure Filesは2018年11月現在、ローカル冗長ストレージ(LRS)選択時、1GiBあたり6.72円の従量課金になっています(GiB:ギビバイト、2の30乗バイトを表す単位)。
Azure Filesの料金の詳細については以下のURLをご覧下さい。
補足:Raspberry Pi Zero W以外からのファイル送信について
Raspbian Stretch以外の各OSのファイル共有マウント方法についてはマイクロソフトの公式ページをご確認ください。
もしお持ちのPCがSMB 3.0未対応の場合は、以下のURLで紹介した方法をご検討下さい。PCにAzure Storage Explorer をインストールしてファイルを送受信する方法や、REST API、Azure CLI2.0を使う方法があります。
Azureの同一リージョン内の仮想マシンからはSMB 2.1で接続可能です。Azure Filesの仕様については以下を参考にして下さい。
補足:Raspbian StretchからのAzure Filesへのファイル共有マウントについて
Linuxの場合、SMB 3.0の暗号化機能は、Kernel 4.11で導入されました。この機能を使用すると、オンプレミスまたは他のAzureリージョンからもAzureファイル共有をマウントできるようになります。よって、Raspbian StretchからもAzure Filesをマウントできるようになります。
なお、カーネルバージョンを確認したい場合は以下のコマンドを実行します。
$ uname -r 4.14.20+
Kernel 4.11未満でも、smbclient を使ったAzure Filesへの接続は可能ですので、後半で「smbclient コマンドを使ったファイル送信」についても紹介しています。
ファイアウォールでインターネットへのTCP445が拒否されていると、Azure Filesとの通信ができません。ご自宅やオフィスのルーターでTCP445を拒否していないか確認しましょう。アンチウイルスソフトでもファイアウォール機能が有効になっている場合がありますので、もし繋がらない場合は確認してみましょう。
ストレージの作成および設定
Azureで作成したリソースグループに、Raspberry Pi Zero Wと連携するAzure Filesを作成します。
ストレージアカウントの作成例
Azure ポータルを開き、ストレージのセットアップをします。
名前は、自身のアカウント内ではなく、Azure全体でユニーク(一意)である必要があります。
- 名前:ユニークな名前を入力
- デプロイモデル:Resource Manager
- アカウントの種類:Storage(汎用 v1)
- パフォーマンス:Standard
- レプリケーション:ローカル冗長ストレージ(LRS)
- 安全な転送が必須:無効
- リソースグループ:pi-zero
- 場所:東日本
ファイル共有設定
次に、ファイル共有の設定をします。以下の手順で行います。詳細は画像を参照してください。
- ストレージアカウントの概要で「ファイル」を選択する
- 「+ファイル共有」をクリックしファイル共有を新規作成する
- クォータを設定して容量の上限(GiB指定)を設定する
- 作成した共有ファイル用ディレクトリ「pifile」が作成された