SlideShare a Scribd company logo
1 of 18
もう2度と止まらせない
2017/02/11 SpeeeKaigi #2
shogo.hashimoto
・橋本将吾
・サーバエンジニア
・VICOLLEというサービスをローンチしました!
https://www.vicolle.jp
・Java好きです(Androidアプリ趣味でつくったり)
・最近はジムいくのが趣味です
自己紹介
そうだスケールしよう!
VICOLLEを紹介したらトラフィックが急増した!
さぁサーバを増やすんだ〜〜
DEMO
インフラは大変
・ユーザは増え続ける
・データも増え続ける
・サーバは死ぬ
でもユーザは待ってくれない
サーバは止まりやすい
・トラフィックがサーバの処理量を超える
・デプロイ時にWebサーバ、アプリケーションサーバが停止する
・メンテナンスのテスト時にバランサーから外す
・OSアップデート
・インフラ操作のミス
・など
某ブログで「無駄なインフラコストはバグ」と言われるくらい
札束で解決は最終手段
クラウドならスケールとシュリンクはやろう
前プロジェクトのメディアでは・・・
スケールアウトに関してはサーバを作成しておいて、
トリガーによってサーバを起動する。起動するだけだから速い!
Google Analytics
CloudStack
監視サーバ
Ruby App1 App2 App3 App4
稼働中 起動中 停止中
Analytics-APIによりリアルタイムの
セッション数を定期的に取得
これでもいいのだけど・・・
停止中サーバのアップデートするのが面倒・・・
バランサーから外す => 起動 => アップデート(設定変更) => 停止・・・・
その他にも・・・><
改善
やりたいこと
・アプリケーションやミドルウェア設定なら起動時に最新の状態にする
(テンプレートの再作成はOSアップデートくらい)
・手動、自動が可能
・AWSのAutoScalingっぽいことがやりたい
・ABテストやメンテナンステストなど環境切り分けもできる
(ブルーグリーンデプロイメント)
スケールのアーキテクチャ
管理ツール
テンプレート
バランサー CloudStack
APP APP-AUTO
サーバ作成タスク
サーバ負荷チェック起動タスク
サーバ作成タスク
【タスクの引数】
サーバグループ名
・API
・WEB
インスタンスのタイプ
・1core 2core・・・・
・1GB 2GB・・・・
サーバ作成タスク
インスタンスの作成
戻り値:新しいインスタンスのID
新しいインスタンスのIPアドレス
を取得し、バランサーに追加
サーバ起動タスク(CentOS7)
・サーバ起動時に自動でJenkinsの起動タスクを叩く
サーバ起動タスク(CentOS7)
Jenkinsからサーバ初期タスクを実行する
アプリケーションのコピー
・Rails
・Puma
・bundle install
ミドルウェアの設定
・nginx設定更新、起動
などなど
スケールアウトできたか見てみる
さてはて・・・
スケールインさせてますか?
スケールアウトだけやって満足してはいけないと思う。
スケールイン(シュリンク)をしないのはバグと一緒だと思います。
事業コストが余計にかかるのはエンジニアの責任でしょう!
今後の構想
自作なのでやりたい放題できる
メトリックスをより良い精度でやりたい
スケールアウトとスケールアップのハイブリットで!
現状キックから3-5分 => 3分以内 => 1分以内にしたい
ブルーグリーンデプロイ、ABテスト
GUI操作(Jujuのようなもの)

More Related Content

What's hot

Javaの速度比較
Javaの速度比較Javaの速度比較
Javaの速度比較Satoshi Kubo
 
a-blog cmsのインポート機能を使いこなす
a-blog cmsのインポート機能を使いこなすa-blog cmsのインポート機能を使いこなす
a-blog cmsのインポート機能を使いこなすSeiko Kuchida
 
安く・速く・安定したウェブを作る方法
安く・速く・安定したウェブを作る方法安く・速く・安定したウェブを作る方法
安く・速く・安定したウェブを作る方法Kei Mikage
 
Vagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみようVagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみようTakuma Morikawa
 
Immutable infrastructure
Immutable infrastructureImmutable infrastructure
Immutable infrastructureKeisuke Aono
 
About SnapKit - Open source lab -
About SnapKit - Open source lab -About SnapKit - Open source lab -
About SnapKit - Open source lab -Daisuke Yamashita
 
実践・ブラウザテスト自動化
実践・ブラウザテスト自動化実践・ブラウザテスト自動化
実践・ブラウザテスト自動化takahiro sakuma
 
a-sap09「a-blog cmsとWordPress」
a-sap09「a-blog cmsとWordPress」a-sap09「a-blog cmsとWordPress」
a-sap09「a-blog cmsとWordPress」Seiko Kuchida
 
a-sap10「モジュールIDを理解する」
a-sap10「モジュールIDを理解する」a-sap10「モジュールIDを理解する」
a-sap10「モジュールIDを理解する」Seiko Kuchida
 
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer220130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2Y Watanabe
 
AWS で VDI / DaaS っぽいものを作ってみた
AWS で VDI / DaaS っぽいものを作ってみたAWS で VDI / DaaS っぽいものを作ってみた
AWS で VDI / DaaS っぽいものを作ってみたHideaki Aoyagi
 
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜furandon_pig
 
FreeBSD VPSでLive Migration
FreeBSD VPSでLive MigrationFreeBSD VPSでLive Migration
FreeBSD VPSでLive Migrationspg_games
 
Memtest86をかけてみた話
Memtest86をかけてみた話Memtest86をかけてみた話
Memtest86をかけてみた話Yasuaki Sera
 

What's hot (20)

About Reauire.js
About Reauire.jsAbout Reauire.js
About Reauire.js
 
node.js
node.jsnode.js
node.js
 
Javaの速度比較
Javaの速度比較Javaの速度比較
Javaの速度比較
 
a-blog cmsのインポート機能を使いこなす
a-blog cmsのインポート機能を使いこなすa-blog cmsのインポート機能を使いこなす
a-blog cmsのインポート機能を使いこなす
 
安く・速く・安定したウェブを作る方法
安く・速く・安定したウェブを作る方法安く・速く・安定したウェブを作る方法
安く・速く・安定したウェブを作る方法
 
Cpi mega mix
Cpi mega mixCpi mega mix
Cpi mega mix
 
Antのススメ
AntのススメAntのススメ
Antのススメ
 
Vagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみようVagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみよう
 
Immutable infrastructure
Immutable infrastructureImmutable infrastructure
Immutable infrastructure
 
About SnapKit - Open source lab -
About SnapKit - Open source lab -About SnapKit - Open source lab -
About SnapKit - Open source lab -
 
実践・ブラウザテスト自動化
実践・ブラウザテスト自動化実践・ブラウザテスト自動化
実践・ブラウザテスト自動化
 
a-sap09「a-blog cmsとWordPress」
a-sap09「a-blog cmsとWordPress」a-sap09「a-blog cmsとWordPress」
a-sap09「a-blog cmsとWordPress」
 
a-sap10「モジュールIDを理解する」
a-sap10「モジュールIDを理解する」a-sap10「モジュールIDを理解する」
a-sap10「モジュールIDを理解する」
 
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer220130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
 
ServerSideJavaScript
ServerSideJavaScriptServerSideJavaScript
ServerSideJavaScript
 
AWS で VDI / DaaS っぽいものを作ってみた
AWS で VDI / DaaS っぽいものを作ってみたAWS で VDI / DaaS っぽいものを作ってみた
AWS で VDI / DaaS っぽいものを作ってみた
 
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
 
FreeBSD VPSでLive Migration
FreeBSD VPSでLive MigrationFreeBSD VPSでLive Migration
FreeBSD VPSでLive Migration
 
Memtest86をかけてみた話
Memtest86をかけてみた話Memtest86をかけてみた話
Memtest86をかけてみた話
 
BIOSからUEFI
BIOSからUEFIBIOSからUEFI
BIOSからUEFI
 

Similar to もう2度と止まらせない

B 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureB 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureGoAzure
 
Windows azureって何
Windows azureって何Windows azureって何
Windows azureって何Kana SUZUKI
 
Linuxサーバのセキュリティ対策 part3 - ファイル転送編
Linuxサーバのセキュリティ対策 part3 - ファイル転送編Linuxサーバのセキュリティ対策 part3 - ファイル転送編
Linuxサーバのセキュリティ対策 part3 - ファイル転送編Kazunori Inaba
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Yusuke Wada
 
dockerでImmutable InfrastructureなWordPressを考える
dockerでImmutable InfrastructureなWordPressを考えるdockerでImmutable InfrastructureなWordPressを考える
dockerでImmutable InfrastructureなWordPressを考えるGMOインターネット
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話Masataka Tsukamoto
 
Linuxサーバのセキュリティ対策 part2 - Apache編
Linuxサーバのセキュリティ対策 part2 - Apache編Linuxサーバのセキュリティ対策 part2 - Apache編
Linuxサーバのセキュリティ対策 part2 - Apache編Kazunori Inaba
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoKyosuke Inoue
 
サービスを日々運用し続けながら最新版のRailsに追従させる極意
サービスを日々運用し続けながら最新版のRailsに追従させる極意サービスを日々運用し続けながら最新版のRailsに追従させる極意
サービスを日々運用し続けながら最新版のRailsに追従させる極意Teruo Adachi
 
IaaSクラウド比較
IaaSクラウド比較IaaSクラウド比較
IaaSクラウド比較Kazunori Inaba
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネット株式会社
 
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)Yoshiharu Hashimoto
 
Javaアプリサーバとりあえずの監視 第二回 渋谷Java #shibuya_java
Javaアプリサーバとりあえずの監視 第二回 渋谷Java #shibuya_java Javaアプリサーバとりあえずの監視 第二回 渋谷Java #shibuya_java
Javaアプリサーバとりあえずの監視 第二回 渋谷Java #shibuya_java chonaso
 
IaaSクラウド比較'14
IaaSクラウド比較'14IaaSクラウド比較'14
IaaSクラウド比較'14Kazunori Inaba
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編Asami Abe
 
Linuxサーバーのセキュリティ対策 part4
Linuxサーバーのセキュリティ対策 part4Linuxサーバーのセキュリティ対策 part4
Linuxサーバーのセキュリティ対策 part4Kazunori Inaba
 
EC-CUBEによるECサイトの負荷対策
EC-CUBEによるECサイトの負荷対策EC-CUBEによるECサイトの負荷対策
EC-CUBEによるECサイトの負荷対策Kazunori Inaba
 

Similar to もう2度と止まらせない (20)

B 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureB 2-1 はじめての Windows Azure
B 2-1 はじめての Windows Azure
 
Windows azureって何
Windows azureって何Windows azureって何
Windows azureって何
 
Linuxサーバのセキュリティ対策 part3 - ファイル転送編
Linuxサーバのセキュリティ対策 part3 - ファイル転送編Linuxサーバのセキュリティ対策 part3 - ファイル転送編
Linuxサーバのセキュリティ対策 part3 - ファイル転送編
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
 
Osoljp201204
Osoljp201204Osoljp201204
Osoljp201204
 
第39回「Windows Server 2003 EOSに備えよう -SQL Serverはどうする?-」(2014/12/18 on しすなま!)
第39回「Windows Server 2003 EOSに備えよう -SQL Serverはどうする?-」(2014/12/18 on しすなま!)第39回「Windows Server 2003 EOSに備えよう -SQL Serverはどうする?-」(2014/12/18 on しすなま!)
第39回「Windows Server 2003 EOSに備えよう -SQL Serverはどうする?-」(2014/12/18 on しすなま!)
 
dockerでImmutable InfrastructureなWordPressを考える
dockerでImmutable InfrastructureなWordPressを考えるdockerでImmutable InfrastructureなWordPressを考える
dockerでImmutable InfrastructureなWordPressを考える
 
初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話初心者がOpenIndianaで自宅サーバを作ったよって話
初心者がOpenIndianaで自宅サーバを作ったよって話
 
Linuxサーバのセキュリティ対策 part2 - Apache編
Linuxサーバのセキュリティ対策 part2 - Apache編Linuxサーバのセキュリティ対策 part2 - Apache編
Linuxサーバのセキュリティ対策 part2 - Apache編
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in Tokyo
 
Zabbix勉強会
Zabbix勉強会Zabbix勉強会
Zabbix勉強会
 
サービスを日々運用し続けながら最新版のRailsに追従させる極意
サービスを日々運用し続けながら最新版のRailsに追従させる極意サービスを日々運用し続けながら最新版のRailsに追従させる極意
サービスを日々運用し続けながら最新版のRailsに追従させる極意
 
IaaSクラウド比較
IaaSクラウド比較IaaSクラウド比較
IaaSクラウド比較
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
 
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
 
Javaアプリサーバとりあえずの監視 第二回 渋谷Java #shibuya_java
Javaアプリサーバとりあえずの監視 第二回 渋谷Java #shibuya_java Javaアプリサーバとりあえずの監視 第二回 渋谷Java #shibuya_java
Javaアプリサーバとりあえずの監視 第二回 渋谷Java #shibuya_java
 
IaaSクラウド比較'14
IaaSクラウド比較'14IaaSクラウド比較'14
IaaSクラウド比較'14
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編
 
Linuxサーバーのセキュリティ対策 part4
Linuxサーバーのセキュリティ対策 part4Linuxサーバーのセキュリティ対策 part4
Linuxサーバーのセキュリティ対策 part4
 
EC-CUBEによるECサイトの負荷対策
EC-CUBEによるECサイトの負荷対策EC-CUBEによるECサイトの負荷対策
EC-CUBEによるECサイトの負荷対策
 

もう2度と止まらせない