オープンイノベーションAsustorのNASをWebサーバーとして使う方法【vol.39】

AsustorのNASをWebサーバーとして使う方法【vol.39】

こんにちは!R&Dセンターの長尾です。

私の所属しているチームでは、社内のAsustor NAS上でWebサーバーを動かしています。
Webサーバーといっても自社開発のてんかく忍者のことなのですが、これをNAS上で動作させて社内からアクセスし、検証したりしています。

思えば最初は「NASでWebサーバー動くっけ?」と手探りで進めていた時期がありました。(遠い目)
ということで今回は、どんな感じでNAS上でWebサーバーを動かしているのかについて軽く共有します。

 

 

Web Centerを使ってWebサーバーを立てる

当チームが採っている方法ではないのですが、まずは王道であり簡単な方法をご紹介しておきます。

AsustorのNASには、標準でWeb CenterというWebサーバー用アプリがインストールされています。

asustor_nas_webserver_01_webcenter.png

これを活用して次の設定をすると一瞬でNASをWebサーバー化できます。

 

  1. インプリメンテーションのタブでサーバーとPHPをインストール
  2. WebサーバータブでWebサーバーインプリメンテーションを選択
    (上の画像の例では「Apache HTTP Server」を選択しています)
  3. 「Webサーバーポートを有効にする」にチェックを付ける
    (上の画像の例ではポート番号は「20080」を指定しています)
  4. PHPインプリメンテーションを選択
    (上の画像の例では「PHP8」を選択しています)
  5. 設定を適用する

これらの設定をした後に http://NASのIP:20080 にアクセスすると次のようなページが表示され、Webサーバーとして稼働していることがわかります。

asustor_nas_webserver_02_webcenter.png

ちなみにこのページは /volume1/Web/index.php ファイルが使用されています。 (volume1はシステムボリューム名)

index.phpの内容を変更したり index.html に置き換えたりすることで自分のコンテンツに書き換えることができます。

 

Web Centerのドキュメントで細かい情報を確認できます。

 

 

Dockerを使ってWebサーバーを立てる 

Web Centerを使うと一瞬でWebサーバーを立てることができますが、実は当チームではWeb Centerは使わずDockerを使ってWebサーバーを立てています。

Dockerは標準では使えないのですが、Asustor NASのパッケージ管理アプリApp CentralからDocker-ceというパッケージをインストールすると使用可能になります。

 

App CentralでDocker-ceアプリが有効になっている様子:

asustor_nas_webserver_03_docker_ce.png

Portainer CEというアプリをインストールするとNASの管理画面からDockerコンテナの管理をすることが出来るようになります。
これもApp Centralからインストール可能です。

とはいえdockerのCUIを使えばどの環境でも同じコマンドを流用できるので、当チームではPortainer CEは使っていません。

 

CUIからコマンドを発行するにはSSHで接続してターミナル画面を開く必要があります。

 

SSHサービスの設定も

サービス > 端末

で用意されているGUIを操作して直感的にできます。

asustor_nas_webserver_04_ssh.png

SSHサービスの設定ができたら次のようにログインして

ssh ユーザー名@NASのIPアドレス

 

Webサーバー用のディレクトリを作り、そこにマウントする形で ubuntu/apache2 コンテナを立ち上げます。

# カレントディレクトリをSSHログインユーザーのホームディレクトリに
cd ~
# wwwディレクトリを作成
mkdir www
# wwwの中に入る
cd www
# Dockerコンテナを作成
sudo docker run --name my-server -dp 8888:80 -e TZ=JST \
-v .:/var/www/html ubuntu/apache2 # 動作検証用にindex.htmlを作成 echo "Hello Asustor NAS Web Server!" > index.html

 

この手順の後で http://NASのIP:8888/index.html にブラウザからアクセスすれば表示を確認できます。

asustor_nas_webserver_05_hello.png

Webサーバーが用済みになったら

sudo docker rm -f my-server

とてコンテナを削除します。

 

余談ですが、dockerコマンドを使うたびに sudo コマンドを使っているのを見て気になった方、Linux管理者としてよい感性だと思います。

dockerの仕様として、dockerコマンドを使うユーザーがLinuxシステムのdockerグループに属していれば sudo を省略することができるようになります。

 

この辺りの設定方法については Linux post-installation steps for Docker Engine にドキュメントがありますが、Asustor NASの場合は少し事情が異なり、NASの管理画面からdockerグループを作成し、そこにdockerコマンドを扱うユーザーを所属させる方法が適切のようです。

asustor_nas_webserver_06_docker_group.png

てんかく忍者はdocker composeを活用して3つのDockerコンテナを連携起動させているのですがdocker技術の延長線上であり、NASとdockerを組み合わせれば色々と活用の幅が広がると思います。

 

インターネット公開はNG

NAS上に立てたWebサーバーはルーターにポートフォワーディング設定をするとインターネットからアクセスできるようになります。
ただし破滅的なまでにセキュリティリスクが高まるためインターネット公開はNGです。

ローカルネットワークからの使用にとどめておきましょう。

もちろん当社もNASはローカルネットワーク内での活用にとどめていて、インターネットへ公開しているものはクラウドサービスを活用するようにしています。

 

 

あとがき

今回はAsustorのNASをWebサーバーとして使う方法について情報共有してみました。

もし当社の取り組みに興味をお持ちでしたらお気軽にお問い合わせ下さい。

今後も面白そうなテーマを見つけては情報共有していきます。

 

 

▼この記事を書いたひと

R&Dセンター 長尾 賢志

Pythonでデータ解析・可視化、SwiftUIで簡単なiOSアプリ作成、Dockerでハードに依存しない環境を構築、AWSでコスト最適化のトライ、などをしています。保有資格:ソフトウェア開発技術者

 

おすすめの関連記事


お問い合わせ

ご意見・ご質問などお気軽にお問い合わせ下さい。
ナカシャクリエイテブ株式会社

●富士見事務所 TEL : 052-228-8744(交通部営業課) FAX : 052-323-3337(交通部共通)
〒460-0014 愛知県名古屋市中区富士見町13−22 ファミール富士見711  地図

PoCのお問い合わせ:交通部営業課
技術的なお問い合わせ:R&Dセンター

Email:メールでのお問い合わせ