Techmix Hokkaido 2014で発表しました。~サーバー設定のお話
12月6日(土)、Techmix Hokkaido 2014で発表しました。
今回は「サーバー設定のお話」と題した内容で、資料はこちら。
発表内容については悩みましたが、さまざまな分野のITエンジニアさんたちが発表される中で唯一のインフラ担当ということで、Linuxサーバーのセキュリティ、チューニングに関する基本的な内容としました。
固い内容だったので「ワクワクしよう」というイベントの趣旨に沿えたかどうかわかりませんが(笑)、少しでも参考になれば。
他のスピーカーのみなさんの発表は、ふだん聞けない濃ゆくて興味深い話でしたが、@ursmさんの開発環境(机と椅子)の話が一番インパクトがありました。
お誘いいただいたスタッフの皆さん、ありがとうございました。
スピーカーのみなさん、参加されたみなさん、お疲れさまでした。
・Techmix hokkaido 2014 ツイートまとめ
https://togetter.com/li/755086
(2014.12.19追記)
僕の発表内容に関していくつかツイートされていたので、少しコメントします。
ツイートは内容が変わらない範囲で少し文章を変更しています。
- FTPはパスワードが平文で流れるより、プロトコルの性質上、ファイアウォールの設定がザルになりやすいのが問題だからよくない。
「ファイアウォールがザルになりやすい」については、パッシブのデータ通信で使用する最大ポートと最小ポートを指定することで、ファイアウォールで開けるポートを限定できるのでザルにはならないと思います。
(僕の知識不足で、ポート番号以外の要素があるのでしたらすみません。)
もちろん、パスワード認証不可、公開鍵認証必須、chrootでSFTPのみとすればより安全なのですが、ユーザーにとってはSFTPは少し敷居が高いと感じられる方も多いと思うんですよね。
使い慣れたソフトでは対応していないケースもあるでしょうし。
サーバー側でも、SSH/SFTPのchrootは少し設定が複雑になってしまいますし。
安全性とユーザーの利便性の両面を損なわないようにするには、FTPSはよい落としどころではないかと思います。
- (Apacheについて)最近のAjax多用システムだと同時接続多そう。→画像ファイルを別ドメインに置いてブラウザからの同時接続数が増えるとさらにきついので、前段にリバースプロキシを置くと意外と効く。
なるほど、フロントエンドの実装によっても同時接続が変わってくるんですね。
リバースプロキシについてはご指摘のとおりで、静的ファイルはアプリケーションの前段で処理すると、負荷を上げず、効率がよいと思います。
- (Apacheのところは)prefork前提の話ですね。workerはあまり使われていないのだろうか。
ご指摘のとおり、MPMはprefork前提でのお話でした。
スライドp.15のApacheの最大メモリ使用量の計算では、preforkでもworkerでも同じですが、p.17の最大接続数(MaxClients)はpreforkのお話でした。
workerについては、「Apache 2.2でも不安定」という話を聞いたことがあり、不安定となる可能性があるものをわざわざ使わなくても、ということで僕は使ったことがありません。
Apache 2.4ではスレッドタイプのeventがデフォルトになったはずですが、CentOSやAmazon Linuxのデフォルト設定ではpreforkのままです。
これは、eventがまだ不安定だと考えているのか、2.2のパラメータをできるだけ引き継げるように考慮されたのか、よくわかりません。
ただ、スレッドタイプのものを使いたいのであれば、.htaccessを使いたいとか、Apacheにしかないモジュールを使いたいとかの特別な理由がない限り、Nginxに切り替えてしまったほうがよいように思います。