EC2にSambaを構築してWindowsからファイル共有してみた

渡邊です。

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をインストールします。

Samba設定

Sambaを設定します。

まずSamba用にユーザを作成し、Sambaユーザとします。

Windows PCとファイル共有するためのフォルダを作成します。
今回はSambaユーザのホームディレクトリ配下にフォルダを作成して、これを共有することにします。

Sambaの設定ファイルを編集します。
編集前のファイルをバックアップとしてコピーしておきます。

今回は下記のように設定しました。
・「load printers」の値を「no」に変更して、プリンタ共有を無効化します。
・「encrypt passwords = yes」を追記して、パスワードの暗号化を有効にします。

シェア名を「kcsamba」として、共有フォルダなどを設定します。
今回はユーザ名とシェア名を同一にしましたが、同一である必要はありません。

Sambaを起動させます。

自動起動設定もしておきます。

動作確認

動作を確認します。

ローカルのWindows PCから、エクスプローラのアドレスバーに
「\\(EC2インスタンスのElastic IP)\(シェア名)」を入力します。
ユーザ名とパスワードを要求されるので、
Sambaユーザのユーザ名とパスワードを入力します。


接続出来ました。フォルダはまだ空です。

まず、EC2インスタンスから共有フォルダ配下にファイルを作成します。

ローカルのWindows PCから共有フォルダ配下を見ると、ファイルが作成されたことを確認出来ます。

次は、ローカルのWindows PCから共有フォルダへファイルをコピーします。


ファイルをコピー出来ました。

EC2インスタンスから共有フォルダ配下を見ると、
ローカルからコピーされたファイルを確認出来ます。

MS Officeファイルの保護ビューと信頼済みサイトの設定

最後にTipsを1つご紹介します。

リモートホスト上のMS Officeファイルを開くと、保護ビューの表示になって、
編集するには「編集を有効にする」ボタンを押下する必要があります。

ファイルを開く度に「編集を有効にする」ボタンを押下するのが煩わしい場合は、
リモートホスト(今回の場合はSambaサーバ)を信頼済みサイトとして設定することで、
ファイルを開くとともに編集が有効になります。

おわりに

以上、EC2インスタンス上にSambaを構築する手順をまとめました。

AWSでのファイルを共有も、今回のようにSambaを構築することで簡単に実現出来ます。AWSでのファイル共有方法には、他にもs3fsでS3のバケットをマウントするなどの方法があります。

最後までお読み頂きありがとうございました。