渡邊です。
Amazon LinuxのEC2インスタンス上に、ローカルのWindows PCとファイル共有するSambaを構築する機会がありましたので、レシピとして紹介致します。
EC2インスタンスの作成
まずはEC2インスタンスを作成します。
AMIは「Amazon Linux」を選択します。
今回は「t2.micro」で十分です。
今回はデフォルト設定で次の設定へ進みます。
今回は「8GB」で十分です。
必要なタグを設定します。今回は「Name」のみ設定します。
Samba用の設定を追加します。後から設定してもOKです。
外部からSambaにアクセス出来るように、次のポートのinboundを開放しておきます。
・UDP 137番ポート:NetBIOS ネーム・サービス(名前登録など)用
・UDP 138番ポート:NetBIOS データグラム・サービス(ブラウジングなど)用
・TCP 139番ポート:NetBIOS over TCP(ファイル / 印刷サービスなど )用
・TCP 445番ポート:ダイレクト・ホスティング SMB(ファイル / 印刷サービスなど)用
「作成」ボタンを押下します。
キーペアを設定します。ここでは既存のキーペアを使用します。
「インスタンスの表示」ボタンを押下して、EC2インスタンスの起動を待ちます。
Elastic IPの割り当て
利便性のため、作成したEC2インスタンスにElastic IPを割り当てます。
EC2の画面の左ペインから「Elastic IP」を選択し、「新しいアドレスの割り当て」ボタンを押下します。
「割り当て」ボタンを押下します。
Elastic IPを取得出来ました。
取得したElastic IPはメモ等で控えておき、「閉じる」ボタンを押下します。
取得したElastic IPを選択し、「アクション」を押下します。
リストの中から「アドレスの関連付け」を選択します。
インスタンスに先程作成したEC2インスタンスを指定して、
「関連付け」ボタンを押下します。
「閉じる」ボタンを押下します。
Sambaインストール
Sambaをインストールします。
作成したEC2インスタンスにSSHでログインし、yumでSambaをインストールします。
1 |
$ sudo yum install samba |
Samba設定
Sambaを設定します。
まずSamba用にユーザを作成し、Sambaユーザとします。
1 2 3 4 5 6 7 8 9 10 |
$ sudo useradd kcsamba $ sudo passwd kcsamba Changing password for user kcsamba New Password: Retype new password: passwd: all authentication tokens updated successfully. $ sudo smbpasswd -a kcsamba New SMB password: Retype new SMB password: Added user kcsamba. |
Windows PCとファイル共有するためのフォルダを作成します。
今回はSambaユーザのホームディレクトリ配下にフォルダを作成して、これを共有することにします。
1 2 3 4 |
$ su kcsamba Password: $ cd $ mkdir samba |
Sambaの設定ファイルを編集します。
編集前のファイルをバックアップとしてコピーしておきます。
1 2 |
$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original $ sudo vi /etc/samba/smb.conf |
今回は下記のように設定しました。
・「load printers」の値を「no」に変更して、プリンタ共有を無効化します。
・「encrypt passwords = yes」を追記して、パスワードの暗号化を有効にします。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
・ [global] workgroup = SAMBA security = user passdb backend = tdbsam printing = cups printcap name = cups load printers = no cups options = raw encrypt passwords = yes |
シェア名を「kcsamba」として、共有フォルダなどを設定します。
今回はユーザ名とシェア名を同一にしましたが、同一である必要はありません。
1 2 3 4 |
[kcsamba] comment = knowledgecommunication path = /home/kcsamba/samba writable = yes |
Sambaを起動させます。
1 |
$ sudo service smb start |
自動起動設定もしておきます。
1 2 |
$ sudo chkconfig smb on $ sudo chkconfig | grep smb |
動作確認
動作を確認します。
ローカルのWindows PCから、エクスプローラのアドレスバーに
「\\(EC2インスタンスのElastic IP)\(シェア名)」を入力します。
ユーザ名とパスワードを要求されるので、
Sambaユーザのユーザ名とパスワードを入力します。
接続出来ました。フォルダはまだ空です。
まず、EC2インスタンスから共有フォルダ配下にファイルを作成します。
1 |
$ touch /home/kcsamba/samba/kcsamba-test1.txt |
ローカルのWindows PCから共有フォルダ配下を見ると、ファイルが作成されたことを確認出来ます。
次は、ローカルのWindows PCから共有フォルダへファイルをコピーします。
ファイルをコピー出来ました。
EC2インスタンスから共有フォルダ配下を見ると、
ローカルからコピーされたファイルを確認出来ます。
1 |
$ ls -lh /home/kcsamba/samba |
MS Officeファイルの保護ビューと信頼済みサイトの設定
最後にTipsを1つご紹介します。
リモートホスト上のMS Officeファイルを開くと、保護ビューの表示になって、
編集するには「編集を有効にする」ボタンを押下する必要があります。
ファイルを開く度に「編集を有効にする」ボタンを押下するのが煩わしい場合は、
リモートホスト(今回の場合はSambaサーバ)を信頼済みサイトとして設定することで、
ファイルを開くとともに編集が有効になります。
おわりに
以上、EC2インスタンス上にSambaを構築する手順をまとめました。
AWSでのファイルを共有も、今回のようにSambaを構築することで簡単に実現出来ます。AWSでのファイル共有方法には、他にもs3fsでS3のバケットをマウントするなどの方法があります。
最後までお読み頂きありがとうございました。