行ってきました。
入るとまずはキッチンどーん!
後ろから始終調理音が聞こえてくる勉強会は初めてでした。
内容
OpenStack
無知だったので勉強になりました。
AWSとの差異や利点はあまり分からなかったけれど、AWSが最大公約数的な形で機能拡張していくとのことなので、色々面白そうな機能を独自路線で作っていってくれれば面白いかも?
あとPython触ってる端くれとしてはGUIがDjangoで出来てるってのもいい感じ。
以下、メモ。
プライベートクラウドをやってみたかった。
Cactusが現行バージョン
AWSとの機能比較
ロードバランシングはない
Cloud ControllerによってNovaプロセスを動かす。
デフォルトのハイパーバイザーはKVM
NW構成
FlatManaget
FlatDHCPManager
VLANManeger
novaコマンド
インスタンス起動・停止
スナップショットの作成
とか
euca2oolコマンド
Pythonで出来てる
novaコマンドとほとんど々ことができる
CloundControllerが停止してもComputeNOでとインスタンスに影響はない
ComputeNodeが停止すると稼働状況が伝わらない
デフォルトではvirtioを有効にして起動される
DjangoベースのGUIが付属している
ElasticFoxでも管理できる
WebAPIはある
CloudControllerは冗長化できる?
→出来るはず
スケールアウトする?
→多分。Eucalyptusがスケールしないから作ったという話なので
AmebaPicoとAWSについて
AmebaPiggの海外版?のAmebaPicoでのAWS運用のお話。
ZooKeeperを触ったことがないのでちょっと調べたところ、以下のページが勉強になりました。(日本語
MongoDB、ちゃんと勉強しないとな…と思いました。
以下、メモ。
サーバ構成(全部AWS
キャッシュが効く静的データはCloudFront(CDN
細かい大量のコマンド独自のバイナリプロトコル(Socketサーバで受ける
分散Lockサーバ(ZooKeeper
キャッシュサーバ(memcached
DB(MongoDB
ログ集計サーバ(ElasticMapReduce
とかとか
EBSにバックアップ
Socketサーバ
ノンブロッキングIO
ID管理サーバ
ユーザIDの発行
UIDと認証機関でのIDの対を管理
Point管理サーバ
ユーザIDにひもづくポイント(サービス内通貨)を管理
ID管理サーバが発行したトークン付きのリクエストで処理
DB
エンティティはバイナリ形式でKeyValueストア可能なインターフェイスを持たせて定義
3台構成のレプリカセットを6シャード
プライマリ・セカンダリ・セカンダリ(on EBS)
Flashについて
クライアントで最初にメインモジュールを読み込み
→必要におうじてサブモジュールをロード
サーバとのイベント部分にはデリゲートインターフェイスを用意
Flashとサーバ側との分業体制をきちんと整備
EC2について
60個ぐらい運用していて、2、3ヶ月に一回くらいで落ちる(バージニアだから?
落ちたり特定ポートが死んだらリブート
落ちやすいので、冗長性をきちんと確保する
MongoDB
コネクションプールが枯渇する
シャードを増やした
スペックの高いインスタンスを利用
オートバランシングの挙動
そもそもバランシングのされ方が微妙
レプリカセットのコンフィグ情報未反映問題
コンフィグ反映には全台再起動が必要
画像配信システム
ここからはクックパッドの方の発表。
画像変換あたりの技術とかはやったこともなければ聞いたこともないという感じなので知らない単語が多かったす。
発表途中のアンケートでは、Apacheモジュールを書いている人が結構多かったのかな?一番前に座っていたので分かりませんでしたが。
今だとmod_wsgiだし開発止まっちゃったけど、mod_pythonの勉強でもしようかな…と思ったり。
以下、メモ
以前
ユーザの画像をAPサーバでコピー・リサイズしてストレージにぶっこむ
そしてそれを配信
どの画像サイズ、形が適切か?
→新サイズを試すたびに画像を800万枚リサイズ
iPhoneアプリとかに対応するためにまたリサイズ?
リリースも遅くなる
画像800万枚
秒間7000枚のリクエスト
クラウド移行を検討中(EC2へ
NFSをやめたい
現行(TOFUシステム
ストレージには1枚だけ溜め込む
リクエストのたびにリサイズする
URLにサイズと画質をぶっこむ
実装
Apache Module(mod_tofu.so
画像変換
ImageMagick
ストレージ
S3
AKAMAI(CDN)の後ろにELBでバランスしてApache
S3での苦労
APIが変になった
Akamai OR CloudFront?
EC2をオリジンに使用できるようになった(CloudFrontが)けど、
Akamaiの方が速い。
Akamaiのキャッシュ率はそんなに良くない。
昔はVarnishをELBの後ろに置いていたけど、値段が高い。
tofuを増やした方が安いので、今はそうしていて、Varnishは使っていない。
AWS移行にむけて(分散DNS
非常に色々と網羅された内容で素晴らしいお話が聞けました。
あまり深い内容ではなかったけれど、全体像を伝え、そして現行の問題点とそれを改善するために分散DNSを作ったという話の流れは非常によくわかった。
メモを取らずに聴き入っちゃってました。
クックパッドのインフラは今回発表された方がリーダとしてまとめてるのかなぁと思った。
Heartbeatのバージョンが古かったので、そこは上げた方が…とは思いました。
まとめ
今回も色々なお話が聴けて非常に勉強になりました。
僕は仕事的にはこんな大規模Webサービスに関わっていないので、負荷分散やDB周り以外のキャッシュシステム導入みたいなことをやったことがなかった。
で、Squidはやったんですが、Varnishはやったことないのでnginxと組み合わせたWebサイト構築をやってみたいと思います。
あと、LTで聞いたtmpfsは今まであまり気にしたことがありませんでしたが、永続性を必要としないところには使ってみるのもいいかなと思いました。
最後に、クックパッドさん、サイバーエージェントさんありがとうございました!
0 件のコメント:
コメントを投稿