何か長いタイトルになってしまいましたけど、これは今回開発に入っている案件でイライラしていることです。
Webサイトを開発する上で、必ずテストサーバーや本番サーバーに作成したファイルをアップしなければいけません。テスト担当者にテストしてもらうためにも、毎回テストサーバーにアップします。
レンタルサーバーと契約しているのであれば、
- FTPで接続してファイルをアップ。
- scpでファイルをアップ。
などで行うかと思います。通常は前者でしょうか。FTPのポートを開けたくないというのであれば、後者のsshのサーバーを用意してscpでしょうか。
社内にテストサーバーがあれば、
- ファイルをテストサーバーのネットワークドライブにしてコピー。
などもできます。
しかし、どのファイルがアップされたが把握するのは面倒な場合、
- Subversionでファイルをバージョン管理させて、コミットしてテストサーバーでアップデートする。
なども可能です。本番サーバーからはSVNのログからファイルをFTPやSCPにアップするという手順になります。
まあ、普通はこれでいいのですが、今回の案件はちょっと面倒です。FTPでアップする前に、VPNでリモート接続しなければいけません。
いちいちVPNに接続してから、FTPでアップするとなると、その間は外部のインターネットに接続できなくなってしまいます。しかも、テストサーバーへのアクセスはインターネット経由ですので、アップした後にVPNを切断しなければいけないという面倒さ。
サーバー管理者に言わせるとVPNと使うのはセキュリティのためと言うことらしいが、VPNのID/パスワードを漏れてしまうとダメではないか? それにFTPで使うなんて、ちょっとおかしい。
それにVPNで接続/切断という工程が入るので、リズムが切れる。
お付き合い会社で一番良い方法であると思ったのは、sshの公開・秘密キーを使ってscpでファイルをアップさせること。この方法だと、
- ユーザーの認証もコントロールできる。
- サーバーとの間も暗号化されるのでFTPよりは安全。
- 接続したままで、インターネットにあるサーバーを確認できる。
- FTPサーバーを立てる必要はない。
のメリットがあります。
ちょっとしたことでも、開発の人間のモチベーションを下げてしまうのです。