brainwarsのopsworks活用事例
TRANSCRIPT
• インフラ全般 (AWS, Chef)
• サーバ (Rails, Socket.IO, fabric)
• フロント (cocos2d-x, C++)
• 開発/運用支援 (開発用Docker, Adminサーバ)
• ChatOps推進 (slack, hubot)
• その他必要なことはなんでも
(コーヒー豆購入, 卓球王者,
バランスボール&スタンディングデスク布教)
主な担当
MySQL
ELB
EC2
EC2
S3
OpsWorks
ElastiCache (Redis) DynamoDB RDS
(MySQL) SES SNS SQS
Easy Deployment, Auto Scale (Load & Time)
EC2
ユーザデータゴースト用 バトルログ
ランキング, 一時データ ISP
プロフィール画像, 言語ファイル, etc
メール送信
SNS
送信失敗時
CloudWatch
Route 53
device token登録
Slack
プッシュ通知
リアルタイム対戦
Socket Server
API Server
Auto Scale
名前変更, BAN, コイン付与, …
Admin Server
APKビルド
画像削除
全体構成
Dynamic DynamoDB
fabric, rake tasks
OpsWorksの特徴• Chefを利用したアプリケーション管理サービス
• 環境構築とアプリケーションのデプロイを自動化
• 幅広いアーキテクチャをデフォルトでサポート
• Chefのレシピ追加などでカスタマイズも可能
• ELBと自動連携
• オートスケール設定
2014年10月時点• OpsWorksはすでに導入済み
• 運用に関わる課題
• ピーク時間にサーバを手動で追加
• 想定外の負荷で慌てて手動で追加
• CloudWatchのALARM入れ忘れで監視漏れ
• 起動に時間がかかる(7分以上)
• OpsWorks利用時の問題点
• Socket Serverの接続数が1,000超で限界に
現在• CloudWatchのALARM入れ忘れで監視漏れ
• Chefのカスタムレシピで対応!
(独自メトリクス、ALARM登録など)
• Socket Serverの接続数が1,000超で限界に
• file descriptorのチューニング
• monitプロセスを再起動
(チューニング内容が反映されていないため)
現在• 起動速度向上(カスタムAMI、EBS-Bootを利用)
7分以上 → 2分弱に短縮!
http://blog.celingest.com/en/2014/04/25/benckmark-boot-time-comparison-opsworks/
参考データ
その他課題• デプロイすると勝手にELBと連携しちゃう…
メンテ状態に切り替えて、 ELBからEC2切り離して、 アプリをデプロイっと!
さてEC2に直接アクセスで サーバの動作確認を…えっ? すでにELBで外部に公開されてる?!
ヽ(=´▽`=)ノ
∑(゚д゚lll)