こんにちは。エンジニアの藤井です。
AWSで共有フォルダ用サーバーを構築するにはいくつか方法がありそうですが、
今回はSambaを使ってEC2でLinuxインスタンスを作成し、また、容量制限をしたいのでストレージはEBSにて作成をしてみようと思います。
では始めて行きましょう
容量制限付き、共有フォルダ用サーバー作成
目次 [非表示]
1.まずはEC2にてLinuxインスタンスを作成します。
①AWSコンソールから、EC2に進み、インスタンス作成をクリックします。
②今回はCentOS7でインスタンス作成を進めます。
インスタンス作成の詳細は省きます。テスト用なのでt2.micro 、EBSは8GBで作成してみましたが。
※後ほど共有用の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ユーザー確認
共有したいディレクトリを作成
3.EBS追加
共有フォルダ用のEBSを作成します。
今回は10GBのEBSを作成し、前の手順で作成していたEC2インスタンスにアタッチします。
①AWSコンソールから、EBSに進み、ボリュームの作成をクリックします。
②今回はボリュームサイズを10GBにして作成してみます。
③しばらくするとボリュームが作成されますので、
対象のボリュームを選択し、アクションメニューからボリュームのアタッチを選択します。
④アタッチする対象のEC2を選びます。
⑤EBSの「アタッチ済情報」欄に、対象のEC2のIDが表示されます。
EC2からも確認できますね。
対象のEC2を選択し、画面下側の「ストレージ」タブをクリックして確認します。
⑥SSHで接続し、
でも確認できます↓
アタッチできましたね。
EBSのマウント、初期化
lsblkコマンドで、アタッチを確認しましたが、デバイスにはファイルシステムが存在しているかを確認します。
デバイスに関する情報を表示すると、出力に data だけが表示されています。この場合は、デバイスにはファイルシステムが存在していないため、ファイルシステムを作成する必要があります。
こちらのコマンドで、マウントして使用する前に、ボリュームにファイルシステムを作成します。
(※コマンドが使えなければインストールしましょう→ https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-using-volumes.html )
→確認しておきましょう
作成したディレクトリにボリュームをマウントします。
4.QUOTA
QUOTAのインストールと設定
①quotaがインストールされているか確認します。
インストールされていたので、そのまま進みます。
②起動時にユーザークオータ設定込みでマウントするためにUUIDを表示させます
③起動時に読み込みたいのでfstabに記載
追記する→ UUID=9bxxxxxxxxxxxxxxxxxx /home/share xfs defaults,usrquota
このような感じです↓
④ディスクの使用状況などを保存するために、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ドライブを右クリックして、「ネットワークドライブの割り当て」を選択します。
②サーバーのIPアドレスに作成したディレクトリをつけてアクセスします。
例:\\123.123.123.123\user1
③ネットワーク資格情報の入力で、設定ユーザー名:user1、設定したパスワードを入力します
アクセスできました!
④容量制限がうまく効いているか確認します。
フォルダに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にアクセスします。
〇プライバシーが保護されません。と出ていますが「詳細設定」をクリックします。
一番下に表示された「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でも同じような環境を構築できるのかも、調査したいと思います。
少し長いブログになってしまいましたが、ありがとうございました!

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