AWSで容量制限付きの共有フォルダサーバーを作成する

こんにちは。エンジニアの藤井です。

AWSで共有フォルダ用サーバーを構築するにはいくつか方法がありそうですが、
今回はSambaを使ってEC2でLinuxインスタンスを作成し、また、容量制限をしたいのでストレージはEBSにて作成をしてみようと思います。

では始めて行きましょう
容量制限付き、共有フォルダ用サーバー作成

1.まずはEC2にてLinuxインスタンスを作成します。

①AWSコンソールから、EC2に進み、インスタンス作成をクリックします。
AWS EC2インスタンス作成

 

②今回はCentOS7でインスタンス作成を進めます。
インスタンス作成の詳細は省きます。テスト用なのでt2.micro 、EBSは8GBで作成してみましたが。
AWS EC2インスタンス
※後ほど共有用のEBSを作成してアタッチします。

 

③EC2インスタンスのセキュリティグループ設定を行います。
今回は純粋にファイル共有するのみですので、22ポート(SSH)、445ポート(SAMBA)、10000ポート(WEBMIN)を各接続元IPアドレスを設定して開けておきます。

 

2.SSHにて接続し、各種設定をしていきます。

初期設定

①アップデート

②タイムゾーン変更

→確認します

③日本語ロケール追加

→確認します

④setenforce 0 だと一時的な変更になるので、設定ファイルの値を変更します。

SETLINUX=disabled

⑤rebootで再起動して設定を反映させます。

→再起動後に再度SSH接続して、確認します。

問題なかったでしょうか?
では引き続き、各種インストール設定を続けます。

 

SAMBAのインストールと設定

①インストール
yumのリストにあるかの確認、infoで情報も確認できます。

witchでプログラムの場所を確認できます。

②起動と再起動設定

③sambaのディレクトリにある、smb.confのバックアップを作成しておきます。

 

ユーザー作成

①samba用にまずはLinuxユーザー作成します

②Linuxユーザー確認

③sambaユーザーを作成してパスワード設定

パスワードを聞かれるので入力します。メモも忘れずに。

④sambaユーザー確認

共有したいディレクトリを作成

homeディレクトリの権限とユーザー・グループ

 

3.EBS追加

共有フォルダ用のEBSを作成します。

今回は10GBのEBSを作成し、前の手順で作成していたEC2インスタンスにアタッチします。

①AWSコンソールから、EBSに進み、ボリュームの作成をクリックします。

②今回はボリュームサイズを10GBにして作成してみます。
AWS EBS ボリュームの作成

③しばらくするとボリュームが作成されますので、
対象のボリュームを選択し、アクションメニューからボリュームのアタッチを選択します。
AWS EBS をEC2にアタッチ

④アタッチする対象のEC2を選びます。
AWS EBSをEC2にアタッチ

⑤EBSの「アタッチ済情報」欄に、対象のEC2のIDが表示されます。
EC2からも確認できますね。
対象のEC2を選択し、画面下側の「ストレージ」タブをクリックして確認します。
AWS EC2 ストレージ詳細

⑥SSHで接続し、

でも確認できます↓
AWS EBSアタッチ

アタッチできましたね。

EBSのマウント、初期化

lsblkコマンドで、アタッチを確認しましたが、デバイスにはファイルシステムが存在しているかを確認します。

デバイスに関する情報を表示すると、出力に data だけが表示されています。この場合は、デバイスにはファイルシステムが存在していないため、ファイルシステムを作成する必要があります。

こちらのコマンドで、マウントして使用する前に、ボリュームにファイルシステムを作成します。

(※コマンドが使えなければインストールしましょう→ https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-using-volumes.html )

→確認しておきましょう

AWS EC2 ファイルシステム

作成したディレクトリにボリュームをマウントします。

4.QUOTA

QUOTAのインストールと設定

①quotaがインストールされているか確認します。

インストールされていたので、そのまま進みます。

②起動時にユーザークオータ設定込みでマウントするためにUUIDを表示させます

③起動時に読み込みたいのでfstabに記載

追記する→ UUID=9bxxxxxxxxxxxxxxxxxx /home/share xfs defaults,usrquota

このような感じです↓
linux quota

④ディスクの使用状況などを保存するために、quotaのデータベースファイルを作成

⑤smb.confへの追記

以下の記述を追加します。↓
[share]
comment = share
path = /home/share
※このように追記しておくことで、Windowsから接続するときに、\\サーバーIP\home\share\user1と記述しなくても、\\サーバーIP\user1で接続が可能です。
また、共有プリンタを使用しないので、[global]のpirinting等をコメントアウトする、ログファイルに記述する設定など必要に応じて修正します。

設定完了したら再起動しておきます。

ユーザー追加

共有フォルダを使用するユーザを追加します。

こちらはlinuxアクセスしない、Sambaだけのユーザーとなります。

パスワードを入力。メモも忘れずに。

ディレクトリ権限は0700、所有者・グループが作成したuser1になっていることを確認。
なっていなければ、↓こちらのコマンドで設定しておきます。

ユーザーごとの容量制限

ユーザー毎のquota設定をします。10MBで設定してみます。

5.Windowsから共有フォルダにアクセス!

では、Windowsサーバーから、共有フォルダにアクセスしてみます。

ネットワークドライブの割り当て

①エクスプローラーからCドライブを右クリックして、「ネットワークドライブの割り当て」を選択します。
Windows ネットワークドライブの割り当て

②サーバーのIPアドレスに作成したディレクトリをつけてアクセスします。
例:\\123.123.123.123\user1

③ネットワーク資格情報の入力で、設定ユーザー名:user1、設定したパスワードを入力します
ネットワーク資格情報の入力

アクセスできました!
windows エクスプローラー アクセス完了

④容量制限がうまく効いているか確認します。
フォルダに10MBに満たないファイルを入れておいた状態で、10MBを超えるようになるサイズのファイルをコピーしようとすると、
容量が足りないという情報ウィンドウが表示されました。問題なさそうですね。

※ユーザーを追加する際には、④⑤を行ってユーザーを増やしてください。
これで完了でもいいのですが、Webminで管理できるよう、Webminインストールも行っておきます。

6.Webmin

Webminのインストール

①Perlモジュールのインストール

②Webminのインストール
このページのリストから最新版を確認する。→ http://download.webmin.com/download/yum/

※これで、Windows側のブラウザでhttps://IPアドレス:10000 からログイン画面にアクセスできるようになります。

Webminのログインと言語設定

では、ログインするためにパスワードを設定しておく必要がありますので、まずはrootのパスワードを設定します。

①rootのパスワードを設定
SSHで接続したコンソールで、

パスワードを入力します。メモも忘れずに。

②ブラウザでhttps://IPアドレス:10000にアクセスします。
httpアクセス

〇プライバシーが保護されません。と出ていますが「詳細設定」をクリックします。

httpアクセス
一番下に表示された「IPアドレスにアクセスできません。」のリンクをクリックします。

③Webminログイン画面が表示されたら、root、先ほど設定したパスワードを入力してログインします。
Webminの言語設定 Webminメニュー→Change Language and Theme
(Webmin UI Languageと、Webmin UI Loceleを日本語に変更)

こちらで日本語設定になりました。
(「システム」→「ユーザーとグループ」メニューで、ユーザーの確認や追加が行えます。)
webminで管理できるのは使い勝手がよいのではないでしょうか。

以上、容量制限付き共有ファイル用サーバー、構築完了です。

AWSでの共有フォルダ用サーバー構築について

AWS上で共有フォルダ用サーバーを構築するには、他にも方法があります。
今回のようにEBSを使用すると、ユーザー毎に容量制限が行える。
ただし、EBSを使用すると、未使用領域があっても料金がかかってしまいます。

たとえばEC2と合わせてS3を使用して構築した場合、容量制限ができないですがS3料金は使用容量等のみとなります。
どのような構築方法が適しているのか、接続ユーザー数や、予算に合わせて検討が必要ですね。
また、Amazon FSxでも同じような環境を構築できるのかも、調査したいと思います。

少し長いブログになってしまいましたが、ありがとうございました!

この記事が気に入ったら
いいね ! しよう

Twitter で
The following two tabs change content below.
サイト管理者
サイト管理者
株式会社ギークフィードのサイト編集担当者です。 弊社へのお問い合わせ・質問は、お問い合わせページからお願いいたします。

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ