こんにちは。ますのです。
開発部門より「Amazon S3に日々蓄積されるデータを、ドメイン参加しているWindowsの共有フォルダに同期したい!」というオーダーを承りました。
当初は「rclone」でGoogleDriveやOneDriveへの同期を検討していましたが、社内情シス的な目線や会社事情(ITポリシー / ユーザ部門の現在の使い方を変えたくないという要望 / etc…)により無しの判断となりました。
もういっそのこと、共有サーバをLinux端末にmountしてAWSのcliでsync処理した方が早いのでは…??という結論に至りました。
LPIC1の勉強でなんとなく覚えたmountやfstabについて忘れていたので備忘メモとなります。
なんだかんだmountは使うので覚えておいて損はないですからね!
ざっくりと やりたいことの概要図
- 何かしらのシステムでAWS S3 Bucketへデータが蓄積される(←詳細は知らないであります
- Amazon Linux2の好きな位置にWindowsServerの共有フォルダをmountする
- Amazon Linux2でAWS CLIの「s3 sync」コマンドでデータを同期する
Windowsの共有フォルダをマウントするために「cifs-utils」「samba-client」を使う
Amazon Linux2やCentOS上にWindows共有フォルダをマウントするためには「cifs-utils」や「samba-client」をインストールする必要があります。
WindowsServerに接続する際のプロトコルでCIFSやSMBを利用しているためですね。細かいところは割愛。というより理解していないです。すみません。。。
今回は簡単に設定できた「cifs-utiles」の例で実施しました。
先ずはインストール済かどうか確認。
何も表示されなければインストールされていないので、yumでインストール開始します。
mountコマンドを使ってWindows共有フォルダをマウントする
環境は整いました!ということでマウントです。
今回はドメイン参加済のWindowsServerの共有フォルダへ実施するので、ドメイン名やパスワード、ドメイン名を記載します。
$ sudo mount -t cifs -o user=【ドメインユーザ名】,password=【ドメインユーザのパスワード】,domain=【ドメイン名】,uid=【Linux側の実行ユーザ名】,gid=【Linux側の実行ユーザのグループ名】,file_mode=0775,dir_mode=0775 【マウントするWindowsServer共有フォルダのパス】 【Linuxマウントフォルダ】
//実際に入力する時の例(青:Windows側、赤:Linux側)
$ sudo mount -t cifs -o user=Win-User,password=win-user-passwd,domain=xxx.co.jp,uid=linux-sync-user,gid=linux-sync-group,file_mode=0775,dir_mode=0775 //192.168.11.22/共有01 /mnt/win-sync/
オプション | オプション概要 | 設定した理由 |
-t タイプ (※–types) | マウント先のファイルシステムタイプを指定する。 | 【cifs】 Windowsでも確認が出来る「cifs」のファイルシステムを指定する。 |
-o オプション (※–options) | マウントオプション(「,」区切りで複数指定可能)ファイルシステムに依存しないものを指定する。 | 【user/password/domain】 ドメイン名と共有フォルダにアクセス可能なユーザを指定する必要があるため「user/password/domain」を指定する。 |
【uid/gid】 sync処理を実行するユーザをマウントフォルダに付与する必要があるため「uid/gid」でユーザ名を指定する。 |
||
【file_mode=0775,dir_mode=0775】 マウント先のアクセス権限を指定するために「file_mode=0775,dir_mode=0775」を念のため付与する。 |
と、どなたかのWebサイトで見たのでIPアドレスを指定しています。
検証をしていないので何とも言えずです。。。
また、「touch」コマンドでデータを作成し、WindowsServer上でもデータが作成出来ていれば完璧です。
mountを解除するには「umount」コマンドを使う
念のためにマウントした部分が解除できるかも確認。
$ sudo umount (マウント先)
//入力例に沿った場合の解除
$sudo umount /mnt/win-sync/
OS再起動時に自動マウントするために「/etc/fstab」へ追記する
OS再起動をするとmountコマンドでマウントした内容は解除されてしまいます。
都度mountコマンドを打つの嫌ですよね。それを回避するために「/etc/fstab」への記載も忘れずにやりましょう!
【マウントするWindowsServer共有フォルダのパス】 【Linuxマウントフォルダ】 cifs user=【ドメインユーザ名】,password=【ドメインユーザのパスワード】,domain=【ドメイン名】,uid=【Linux側の実行ユーザ名】,gid=【Linux側の実行ユーザのグループ名】,file_mode=0775,dir_mode=0775 0 0//実際に入力する時の例
//192.168.11.22/共有01 /mnt/win-sync/ cifs Win-User,password=win-user-passwd,domain=xxx.co.jp,uid=linux-sync-user,gid=linux-sync-group,file_mode=0775,dir_mode=0775 0 0
自信をもって「init 6」を打ち込んでも起動時には指定のマウント先にデータがあるはずです。
「aws s3 sync」でS3バケットからAmazon Linux2へ同期する s3://mybucket .
IAMのS3バケットアクセスの設定とaws configureの設定を行ったらあとは同期コマンドを打つだけです!
多分こんな感じになるんじゃないかと。ここから先は検証お願いしちゃったので、勘です。
FSxも試してみたいですが若干お高いイメージなのです。
ストレージの扱い方やmount、CLIの使い方など、色々応用出来そうな点が多く使えそうなものがないか模索します。