SlideShare a Scribd company logo
1 of 31
Download to read offline
RDS!スケールアップ前の
アプリチューニング
(ざっくり版)
2013年8月31日
朝永 将
tomonaga (at) birdsong.jp
自己紹介
• LAMP一筋13年
• 2010年∼ 株式会社NEO COSMIC
- ビジュアルノベルアプリ『牡丹の庭』他、11タイトルの開発
• 2013年∼ フリーランス
- ソーシャルアプリ開発
- 講師・ITアドバイザー
• 小鳥好き
- Facebook: masaru.tomonaga
こんな運用してませんか?
★ 「DB重いなぁ。。」
• 「取り急ぎスペックあげておきますか∼」
•
(以降、何度か繰り返し)
★ 「いやー、やっぱDB厳しいなぁ。。」
• 「これ以上スペック上げられません!」
★ 「」
('A`)ヴァー
突然の死!
フロント(Webサーバ)は
スケールしやすいが、
DBは・・・!?
Webサーバ(EC2 etc...)
• スケールアウト・スケールアップして力
技で捌く
DBサーバ(RDS)
• データの整合性を考慮すると、単純にRDSを
追加するだけでは対応できない。
• Webよりスケールアウトの難易度が高
い。
• スケールアップするにも限界がある。
(4xlargeとか)
アプリ側を
改修しないと・・・
• とりあえず勘で直してみる
• 工数足りません!
• 予算ありません!
• 実装で担当者しか改修できません!
(※担当者逃亡中)
だめです!
Amazonさんに
問い合わせる
AWSではアプリ改修
してくれません!
(ヒントは頂けるかもしれないけど…)
ググる。
[RDS 重い どうにか]
神頼み!
がんばって、どうに
かしてください。
(棒読み)
まじめな話
どうすれば良い?
技術的なところ(1)
• slowlogを出さない
• Explainで確認→クエリ最適化
• テーブルパーティショニング
• 1億レコード以上のテーブルを作らない
設計(メンテも手間!)
技術的なところ(2)
• ランニングコストが掛かりますが…
• KVSへ一部移行(ElastiCacheなど)
• リードレプリカの活用
• 水平分割(一定のレンジごとにサーバ
を分ける)
マネージメント的なところ(1)
• 対・エンジニア向け
• 少なくともslowlogは出させない!
• とりあえず動けば良い→技術的負債
• 実装担当者のマインドを育成(プロダ
クトに対する責任)
マネージメント的なところ(2)
• 対・上長、役員向け
• クラウドだから簡単に拡張できるんでしょ?
• DB高負荷時のリスク説明(図表を書いて!)
• 予算要求は松竹梅方式で
• 定期的に負荷データを収集・共有する
大事な事なので2度言
います
slowlogを出さない
出したままスケール
してもメリットを活
かせない
技術的負債
体感的には年利40%
出資法違反ですね!
金利だけ返している
状態になり得る
slowlog ダメ、ゼッタイ。
今日はありがとうご
ざいました!

More Related Content

What's hot

mod_perlで動くアプリをどう置くか #hachiojipm
mod_perlで動くアプリをどう置くか #hachiojipmmod_perlで動くアプリをどう置くか #hachiojipm
mod_perlで動くアプリをどう置くか #hachiojipm鉄次 尾形
 
ふくてん#2 Powershellとossで作るお手軽モニタリング環境
ふくてん#2 Powershellとossで作るお手軽モニタリング環境ふくてん#2 Powershellとossで作るお手軽モニタリング環境
ふくてん#2 Powershellとossで作るお手軽モニタリング環境yukiusagi2052
 
エディタ遍歴2014 #hachiojipm
エディタ遍歴2014 #hachiojipmエディタ遍歴2014 #hachiojipm
エディタ遍歴2014 #hachiojipm鉄次 尾形
 
けちけちで(すみません)Azure IaaS
けちけちで(すみません)Azure IaaSけちけちで(すみません)Azure IaaS
けちけちで(すみません)Azure IaaSyukiusagi2052
 
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話torisoup
 
UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話torisoup
 
もちょブログ解析入門
もちょブログ解析入門もちょブログ解析入門
もちょブログ解析入門sudosan
 
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例Satoshi Yamafuji
 
Node.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れる
Node.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れるNode.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れる
Node.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れるYuusuke Takeuchi
 
Railsによるワイルドなソフトウェア開発
Railsによるワイルドなソフトウェア開発Railsによるワイルドなソフトウェア開発
Railsによるワイルドなソフトウェア開発Drecom Co., Ltd.
 
超簡単になった EC-CUBE3 のインストール
超簡単になった EC-CUBE3 のインストール超簡単になった EC-CUBE3 のインストール
超簡単になった EC-CUBE3 のインストールKentaro Ohkouchi
 
DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
DeNA×マネーフォワード×Wantedly RailsエンジニアセミナーDeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
DeNA×マネーフォワード×Wantedly RailsエンジニアセミナーNao Minami
 
20160727 jaws ug-kobe_short_speak_alexa
20160727 jaws ug-kobe_short_speak_alexa20160727 jaws ug-kobe_short_speak_alexa
20160727 jaws ug-kobe_short_speak_alexaDaiki Mori
 
ログレスの戦闘から見るデータ同期について
ログレスの戦闘から見るデータ同期についてログレスの戦闘から見るデータ同期について
ログレスの戦闘から見るデータ同期についてSatoshi Yamafuji
 
Neo4j Profile Export/Import Tool
Neo4j Profile Export/Import ToolNeo4j Profile Export/Import Tool
Neo4j Profile Export/Import ToolMasahiro Satake
 
SQLドリルの話(仮)
SQLドリルの話(仮)SQLドリルの話(仮)
SQLドリルの話(仮)Yuuki Tan-nai
 

What's hot (17)

mod_perlで動くアプリをどう置くか #hachiojipm
mod_perlで動くアプリをどう置くか #hachiojipmmod_perlで動くアプリをどう置くか #hachiojipm
mod_perlで動くアプリをどう置くか #hachiojipm
 
ふくてん#2 Powershellとossで作るお手軽モニタリング環境
ふくてん#2 Powershellとossで作るお手軽モニタリング環境ふくてん#2 Powershellとossで作るお手軽モニタリング環境
ふくてん#2 Powershellとossで作るお手軽モニタリング環境
 
エディタ遍歴2014 #hachiojipm
エディタ遍歴2014 #hachiojipmエディタ遍歴2014 #hachiojipm
エディタ遍歴2014 #hachiojipm
 
けちけちで(すみません)Azure IaaS
けちけちで(すみません)Azure IaaSけちけちで(すみません)Azure IaaS
けちけちで(すみません)Azure IaaS
 
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
 
UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話UnityとNCMBでユーザ管理を実装してみた話
UnityとNCMBでユーザ管理を実装してみた話
 
もちょブログ解析入門
もちょブログ解析入門もちょブログ解析入門
もちょブログ解析入門
 
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
 
Node.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れる
Node.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れるNode.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れる
Node.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れる
 
Railsによるワイルドなソフトウェア開発
Railsによるワイルドなソフトウェア開発Railsによるワイルドなソフトウェア開発
Railsによるワイルドなソフトウェア開発
 
超簡単になった EC-CUBE3 のインストール
超簡単になった EC-CUBE3 のインストール超簡単になった EC-CUBE3 のインストール
超簡単になった EC-CUBE3 のインストール
 
DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
DeNA×マネーフォワード×Wantedly RailsエンジニアセミナーDeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
DeNA×マネーフォワード×Wantedly Railsエンジニアセミナー
 
20160727 jaws ug-kobe_short_speak_alexa
20160727 jaws ug-kobe_short_speak_alexa20160727 jaws ug-kobe_short_speak_alexa
20160727 jaws ug-kobe_short_speak_alexa
 
ログレスの戦闘から見るデータ同期について
ログレスの戦闘から見るデータ同期についてログレスの戦闘から見るデータ同期について
ログレスの戦闘から見るデータ同期について
 
Neo4j Profile Export/Import Tool
Neo4j Profile Export/Import ToolNeo4j Profile Export/Import Tool
Neo4j Profile Export/Import Tool
 
NoNoSQL
NoNoSQLNoNoSQL
NoNoSQL
 
SQLドリルの話(仮)
SQLドリルの話(仮)SQLドリルの話(仮)
SQLドリルの話(仮)
 

Similar to RDS!スケールアップ前のアプリチューニング(ざっくり版)

20170117 jpoug spm公開版
20170117 jpoug spm公開版20170117 jpoug spm公開版
20170117 jpoug spm公開版t8kobayashi
 
DDDハンズオン
DDDハンズオンDDDハンズオン
DDDハンズオンSoudai Sone
 
パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)odakeiji
 
B 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureB 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureGoAzure
 
AWSerにも知ってほしいDBの話
AWSerにも知ってほしいDBの話AWSerにも知ってほしいDBの話
AWSerにも知ってほしいDBの話Kenichiro Mori
 
JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方
JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方
JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方Koichiro Nishijima
 
D.N.A. Softwares ご紹介
D.N.A. Softwares ご紹介D.N.A. Softwares ご紹介
D.N.A. Softwares ご紹介IGDA Japan
 
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発infinite_loop
 
RDBってなに?
RDBってなに?RDBってなに?
RDBってなに?Soudai Sone
 
Amazon ec2とは何か?
Amazon ec2とは何か?Amazon ec2とは何か?
Amazon ec2とは何か?Shinya_131
 

Similar to RDS!スケールアップ前のアプリチューニング(ざっくり版) (10)

20170117 jpoug spm公開版
20170117 jpoug spm公開版20170117 jpoug spm公開版
20170117 jpoug spm公開版
 
DDDハンズオン
DDDハンズオンDDDハンズオン
DDDハンズオン
 
パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)
 
B 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureB 2-1 はじめての Windows Azure
B 2-1 はじめての Windows Azure
 
AWSerにも知ってほしいDBの話
AWSerにも知ってほしいDBの話AWSerにも知ってほしいDBの話
AWSerにも知ってほしいDBの話
 
JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方
JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方
JAWS-UG沖縄第1回勉強会 EBS/RDSがなくてもwrite massiveに耐えるDBの作り方
 
D.N.A. Softwares ご紹介
D.N.A. Softwares ご紹介D.N.A. Softwares ご紹介
D.N.A. Softwares ご紹介
 
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
 
RDBってなに?
RDBってなに?RDBってなに?
RDBってなに?
 
Amazon ec2とは何か?
Amazon ec2とは何か?Amazon ec2とは何か?
Amazon ec2とは何か?
 

Recently uploaded

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 

Recently uploaded (7)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 

RDS!スケールアップ前のアプリチューニング(ざっくり版)