通信方式としてhttpsとsftpが思いついたのですが、どちらがよいでしょうか?感覚的にはsftpがいい気がするのですが、httpsでだめな理由が自分でもうまく説明できません。
双方の利点と欠点、お勧め理由などあれば教えてください。
ファイル転送のやり方にもよりますが、
単純に受け取り側サーバから持ってくる動作だけを考慮されているのであれば、
HTTP 通信でことが足りると思います。
それとは別に、
第三者クライアントから A サーバと B サーバ間で転送させたい、
などの要求に応えられるのが FTP 通信の利点です。
その他にも put で送り側からデータを流したい場合など、
ファイル転送の細かいハンドリングが出来るのが FTP の利点であり、
そのために FW などの設定を考慮しなければならないのが弱点であります。
それぞれの利点をまとめると、
・FTP:ファイル転送の細かいハンドリングが出来る
・HTTP:FW 設定などは通常通りで細かい設定を気にしなくて良い
という感じでしょうか。弱点は、双方共にその逆然りです。
FTP の細かいお話はこちらが参考になります。
http://www.atmarkit.co.jp/fnetwork/rensai/netpro11/netpro01.html
また、FTP のコントロール性については、こちらです。
http://www.atmarkit.co.jp/fnetwork/rensai/tcp05/01.html
ちなみに rsync という手もあると思います。
https だと一般の人に配布するならいいですが、特定の環境にコピーするだけだと認証が面倒ですね。
サーバー証明書とか、クライアント証明書とか設定する事になりますし。
あと、今回の用途では問題無さそうですがあくまで HTTP なのであまり巨大なファイルだとタイムアウトしたりします。
反面 sftp であれば認証機能は ssh のものがそのまま使えます。
設定方法も色々なサイトで解説されています。
どちらでも使うことは当然出来ますが、HTTPS だと面倒に感じますね。
>非常に大量(3万件くらい)のファイルをサーバ間でセキュア
サーバが固定であれば繰り返し通信を行う効率を考えた場合、
つど認証を行う方式よりすべての通信経路をVPN等で
暗号化通信したをまず検討したいところです。
http://ja.wikipedia.org/wiki/HTTPS
https/sftpも最後の通信手段は同じ
sftp ファイル転送を主体に考えれらた
専用プログラムなのでプロトコルがあり
複数ファイルも簡単に遅れる。
認証方法も明確、簡単
https
→ サーバー側のデータは暗号化されるが
受信プログラムを作成する必要がある
又、転送が正常に完了したか判断しにく
専用の認証や、ファイルシステムへの保存
方法などを個別に作る必要があるが柔軟性がある
感覚的には、ファイルをある程度まとめて
圧縮して1ファイルにしてVPNで転送、
リモートで一括展開したい感じです。
コメント(1件)
冷静に考えるとFWやスイッチが間に多数挟まっていますので、HTTP(S)以外のポートを空けてもらう調整が大変そうということに気づきました。
実装はHTTP(S)の方が面倒くさそうですがこちらでなんとかしてみます。
ありがとうございました。