More Related Content
PDF
Japan Developer Summit (jp) - Cloud Foundry, the Open Platform As A Service PDF
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB PDF
PPTX
クラウドデザイン パターンに見るクラウドファーストなアプリケーション設計 Data Management編 PPTX
Azure Service Fabric Cluster の作成 PPTX
Global Azure Bootcamp 2017 DocumentDB Deep Dive PDF
Awsのクラウドデザインパターンをwindows azureに持ってきてみた PDF
[G-Tech2014講演資料] Microsoft Azureで負荷分散された仮想マシンを作ってみよう ~Amazon Web Servicesと比べな... What's hot
PPTX
JAZUG クラウドデザインパターンのコードを覗く PDF
PDF
Hyper-V 仮想マシンをAzure ARMへV2C移行...のメモ PDF
Windows Server 2019 の Hyper-Converged Infrastructure (HCI) PDF
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント PDF
PDF
オンプレのDbaがazureのデータベースを使ってみた PPTX
Azure Database for MySQL PostgreSQLを使って運用の手間を省きませんか? PDF
Windows Azure で 2/29 に起こった問題のまとめ PDF
[Azure Deep Dive] クラウド デザイン パターン ~優れたシステム構築のためのガイダンス~ PPTX
PDF
PDF
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL... PPTX
20170902 kixs azure&azure stack PDF
PPTX
Windows Server 2016 で実現しちゃう HCI (Hyper Converged Infrastructure) PDF
クラウド時代の Web サイト構築 ~ Windows Azure Web サイト概要 ~ PDF
PHP on Windows Azure in Open Source Conference PDF
PPTX
Viewers also liked
PPTX
ngGoBuilder and collaborative development between San Francisco and Tokyo PDF
ngServer and-collaboratived-development-between-san-francisco-and-tokyo PDF
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編) PDF
PDF
ソフトウェアパッケージベンダーのためのクラウドソリューション「SQL Anywhere OnDemand Edition」 PDF
【17-E-3】 オンライン機械学習で実現する大規模データ処理 PPT
ODP
qpstudy 〜初心者にやさしいインフラ勉強会〜 の紹介 PDF
アメーバピグにおける自作サーバ運用それからどうなった PDF
PDF
Layout analyzerでのgroovyの利用について PDF
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法- PPTX
Developer summit continuous deliveryとjenkins PDF
PDF
PDF
【17-A-2】 10年後も通用する開発環境の秘訣 <デブサミ2012> KEY
PPTX
PPT
CouchDB JP Developers Dummit LT KEY
デブサミ2012 appinventorユーザー会 Similar to 大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
PDF
PDF
PDF
ソーシャルゲームにおけるAWS/MongoDB利用事例 PDF
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land PDF
PDF
PPT
PDF
KEY
ソーシャルゲームログ解析基盤のMongoDB活用事例 DOC
DOC
PDF
PPT
PDF
PDF
DB tech showcase: 噂のMongoDBその用途は? PDF
MongoDBではじめるカジュアルなタイムラインシステム PDF
泥臭い運用から、プログラマブルインフラ構築(に行きたい) PPTX
日本語:Mongo dbに於けるシャーディングについて PDF
PDF
More from Akihiro Kuwano
PDF
PDF
PDF
PDF
PDF
PPTX
PDF
PDF
PDF
PDF
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴 PDF
PDF
PDF
PDF
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。 PDF
PDF
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮) PDF
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。 PDF
PPT
PDF
18 a-6 ameba pigg backend practice 20110217 大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
- 1.
- 2.
自己紹介
桑野章弘
サイバーエージェント
Ameba を運営しています。
- Blogを中心として様々なサービスがあります。
ピグライフの運用/構築を担当
Twitter
@kuwa_tw
Blog
http://d.hatena.ne.jp/akuwano/
著書/活動
「MySQLによるタフなサイトの作り方」
勉強会(hbstudy, qpstudyほか)などでの発表など
2
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
ピグライフのアーキテクチャ:全体構成
BackEnd
FrontEnd
ユーザ/エリ
ア等の状態
staticサーバ Node.jsサーバ
Socketサーバ
データ
mongodbサーバ
Flashデータ 必要なデータ
→リクエスト の取得
/取得
HTTP
WebSocket接続
・ユーザ情報
・チャット
データ
→リクエスト
/取得
ユーザ
(ブラウザ)
11
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
アーキテクチャの課題
開発スピードの構造
ユーザーコレクションに最終ログインタイムを追加し
たい場合
{
"_id" : "1234567889",
"userid" : "akuwano",
"username" : "Akihiro Kuwano"
}
17
- 18.
アーキテクチャの課題
開発スピードの構造
ユーザーコレクションに最終ログインタイムを追加し
たい場合
{
"_id" : "1234567889",
"userid" : "akuwano",
"lastLoginTime" : ISODate("2011-12-25T14:22:46.777Z"),
"username" : "Akihiro Kuwano"
}
18
- 19.
- 20.
MongoDBの構成
Sharding
アプリケーションサーバ データをChunk ReplicaSetsに
の単位に分ける よりサーバの冗
⻑性を確保
DATA
mongos
Mongod[ShardA]
Mongod[ShardB]
mongoc
Mongod[ShardC]
20
- 21.
MongoDBの構成
Sharding
アプリケーションサーバ データをChunk ReplicaSetsに
の単位に分ける よりサーバの冗
⻑性を確保
ChunkA ChunkB ChunkC
mongos
mongocは
Mongod[ShardA]
シャーディング
情報を持つ
Mongod[ShardB]
mongoc
ChunkA -> ShardA
ChunkB -> ShardB Mongod[ShardC]
ChunkC -> ShardC
21
- 22.
MongoDBの構成
アプリケーションサーバ ReplicaSetsに
Sharding よりサーバの冗
データをChunk ⻑性を確保
の単位に分ける
mongos
mongocは
ChunkA Mongod[ShardA]
シャーディング
情報を持つ
ChunkB Mongod[ShardB]
mongoc
ChunkA -> ShardA
ChunkB -> ShardB ChunkC Mongod[ShardC]
ChunkC -> ShardC
22
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
実運用での課題:サーバキャパプラ
サーバキャパプラ
mongod
DISK I/O:定期的に書きだすのである程度の性能が必要
- ioDriveで⾼速に処理することも可能だが、レプリケーションが
停止する可能性があるのでサーバ単体で使った方がioDriveの性
能を使い切ることができます
CPU:書き込みはグローバルロックが存在しているために、
複数コアを効率良く使えません
メモリ:Index、データをメモリにキャッシュするため多け
れば多いほどよいです
アクセスが多岐に渡る場合にはIndexがメモリから溢れてし
まうので、パフォーマンスが落ちる。その場合ページフォル
トが⼤量に発生し始めるのでそれが目安
31
- 32.
実運用での課題:運用面
index
特定のカラムで検索を⾏う場合にはindexを貼る事で⾼速化を
図ります
2.0系でIndexが⾼速化 & コンパクト化されているので
Indexを多用する場合はバージョンアップする
32
- 33.
実運用での課題:運用面
Index
Indexの確認->explain() Indexなし
replSetTest1001:PRIMARY> db.User.find({'Field02': 'test'}).explain()
{
{"_id" : "1234567889",
"cursor" : "BasicCursor",
"userid" : "akuwano",
"nscanned" : 706456,
"username" : "Akihiro Kuwano"
} "nscannedObjects" : 706456,
"n" : 1,
"millis" : 749,
"nYields" : 0,
"nChunkSkips" : 0,
"isMultiKey" : false,
"indexOnly" : false,
"indexBounds" : {
}
}
33
- 34.
実運用での課題:運用面
Index
Indexの確認->explain() Indexあり
replSetTest1001:PRIMARY> db.User.find({'Field01': 'test'}).explain()
{
"cursor" : "BtreeCursor testIndex_1",
{ "nscanned" : 1,
"_id" : "1234567889", : 1,
"nscannedObjects"
"userid" : "akuwano",
"n" : 1,
"username": :7,
"millis" "Akihiro Kuwano"
} "nYields" : 0,
"nChunkSkips" : 0,
"isMultiKey" : false,
"indexOnly" : false,
"indexBounds" : {
"Field01" : [
[
"test",
"test"
]
]
}
}
34
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.