« CTC cloudageフォーラム | トップページ | Developers Summit2日目 »

2015/02/19

Developers Summit1日目

【うちのWebサイトが使えなくなる!? SSL署名アルゴリズム「SHA-2」移行のポイントと、複数証明書の管理・運用の効率化 】
・Chrome39以降、SHA-1のサイトでは警告を出す。
・2008年にMD-5の証明書が破られてSHA-1にした。
・Microsoftは2017/1/1以降、SHA-1を利用したサーバ証明書の受け入れを停止(玉虫色)
・MozillaはGoogleと同じように警告を出すように、2015年の早い段階でバージョンアップ
・サーバ間通信はすべてのサーバでSHA-2に置き換える必要がある。
・古い携帯はSHA-2に未対応のものがあります。
・ルートCAがSHA-1でも中間証明以降がSHA-2ならChromeでも警告はでません
・シマンテックではSHA-2接続の検証サイトを用意しています
・CSR生成の手順は変わりません
・クロスルート証明も引き続き発行します
・SHA-1証明書は2016年末までが有効期間です。

【DMM.make AKIBAが出来るまで、そしてこれから。】
・Ti64ではなく、純チタンでの出力ができるよ!
→NTTデータが販売してくれました。5万円/キロとドイツから輸入する場合の半額ぐらいです。
・ソフトウェア技術者の見学が増えています。
・秋葉原には試験機材(高温、振動など)まであります。
・チップマウンタもあります。
・"グローバルニッチ"という言葉
・ハードウェアをもう少し簡単に考えていきましょう

【体感!「IBM Bluemix」が実現するリアルに迅速な開発】
* オンプレorIaaSからBluemixへの移植時に考慮する点
# アプリケーションの言語
# DBサーバの互換性
# デプロイ方法の違い
# DBの接続情報
# ログってどこにあるの?

# アプリケーションサーバの選択肢
→CloudFoundryにあるビルドパックを持ち込めます。Apache+Perlもあるよ
→DevOpsもビッグデータ解析もあるよ。Dockerもあるよ。
# データベースの選択肢
→NoSQLもあるよ
# war/earのままでデプロイ可能
→CloudFoundryの標準CLIでOK
# DBコネクションだけは注意が必要
バインドしたサービスの接続情報は環境変数から取得可能(JSON形式)
セキュアな接続が可能になります。
# 運用ログ
→APサーバのログはビルトインで見えます。


* Watson(人工知能)のサービスが使えるのはBluemixだけ!
現在、英語とスペイン語だけが対象ですが、日本語レッスン中です。


【NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした】
* Cybozuでは自前で1000台超の物理サーバをホスティング。VMは数倍。
* 1億リクエスト/日
* サブドメイン処理の裏側
1サブドメインごとに1設定ファイル →設定変更にかかる時間が線形で増えていく

●ミッション:設定変更を1秒で終わらせる
* これまではLBとしてApache2.2を使用
→サブドメインごとに設定ファイルが必要
→設定ファイルを安全にリロードするには再起動が必要
* 仕組みの転換
→サブドメインのアクセス時に設定ファイルを動的に読み込む
* どうやる?
Apache2.4にパッチをあてすぎると、本家の変更に追随できなくなる。
そうだ!Luaがあるじゃないか!
→実績十分のnginxを採用。

●nginxとlua-nginx-module
* nginxはイベント駆動型のHTTPサーバ
→大量リクエストの処理が得意

●nginxの設定の基本
* location
URIに応じて設定を変えるためのディレクティブ

* internal redirect
location間を移動する仕組み

* lua-nginx-module
HTTP処理の様々なタイミングでluaを記述した任意のコードを実行できる
可能なこと
→HTTPヘッダの読み書き
→locationに対応するアクセス
→internal redirect

●データベースファイルの読み込み
* テキスト形式
luaを使って、Hostヘッダをもとにファイルを読み込む

●アクセスごとに設定すべきこと
# 利用アプリケーション
URLのパスで振り分け
# IP制限
標準モジュールではアクセスごとに動的制限はできない。
割りきってガリガリ書きました。
# Basic認証
標準モジュールでリクエストごとにパスワードファイルを変更することができる。
がしかし、認証自体が全ドメインにかかってしまう。
認証の必要ないサブドメインも存在する。
Basic認証の必要ない場合に、accessフェイズより前にluaでinternal redirectするようにした。
# クライアント認証
クライアント証明書はSSL/TLS接続で利用できる認証方法
サーバ証明書とは別にHTTPサーバがクライアントに証明書を要求する。
クライアントはサーバが持つCAが発行した証明書を送信する必要がある。
CybozuではサブドメインごとにCAを作成。

SNIはTLS拡張のひとつでTLSハンドシェイク時にアクセスしたいFQDNをサーバに渡すこと。
NameVirtualHostでもFQDNごとに証明書を変えることができる。
クライアント認証では対応するサブドメインの証明書だけがリストアップされるようにしたい。
(デフォルトではブラウザに複数の証明書がインストールされているとORIGINが同じものが全部出る)

●LBを複数サーバにした場合の問題
→LBごとにSSLハンドシェイクを行うので、iOSだと証明書選択ダイアログが複数回でる。
→LB全体で状態を共有できない

そのため
* 複数サーバ間でのセッション共有パッチ
* DoS対策のためのセマフォパッチ
を作成しました。OSSとして公開予定です。

●パフォーマンスについて
リクエストごとにluaを実行するためパフォーマンス劣化が懸念されたが問題なし。

●nginxによるメリット
* 大量のコネクションを扱えるのでkeepalivewp伸ばした
* 送信トラフィックが顕著に落ちた
* サーバ証明書の送信量が減ったことが理由

|

« CTC cloudageフォーラム | トップページ | Developers Summit2日目 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: Developers Summit1日目:

« CTC cloudageフォーラム | トップページ | Developers Summit2日目 »