More Related Content
PDF
[G-Tech2014講演資料] Microsoft Azureで負荷分散された仮想マシンを作ってみよう ~Amazon Web Servicesと比べな... PPTX
Azure Service Fabric Cluster の作成 PDF
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB PDF
Awsのクラウドデザインパターンをwindows azureに持ってきてみた PPTX
クラウドデザイン パターンに見るクラウドファーストなアプリケーション設計 Data Management編 PPTX
Global Azure Bootcamp 2017 DocumentDB Deep Dive PDF
PDF
Japan Developer Summit (jp) - Cloud Foundry, the Open Platform As A Service What's hot
PDF
オンプレのDbaがazureのデータベースを使ってみた PDF
Windows Server 2019 の Hyper-Converged Infrastructure (HCI) PDF
Windows Azure で 2/29 に起こった問題のまとめ PPTX
Azure Database for MySQL PostgreSQLを使って運用の手間を省きませんか? PPTX
PPTX
Windows Server 2016 で実現しちゃう HCI (Hyper Converged Infrastructure) PDF
PDF
PDF
PHP on Windows Azure in Open Source Conference PDF
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL... PDF
PPTX
JAZUG クラウドデザインパターンのコードを覗く PDF
クラウド時代の Web サイト構築 ~ Windows Azure Web サイト概要 ~ PDF
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント PDF
[Azure Deep Dive] クラウド デザイン パターン ~優れたシステム構築のためのガイダンス~ PDF
Hyper-V 仮想マシンをAzure ARMへV2C移行...のメモ PDF
PPTX
20170902 kixs azure&azure stack PPTX
PDF
Viewers also liked
PPT
PDF
ngServer and-collaboratived-development-between-san-francisco-and-tokyo PPTX
Developer summit continuous deliveryとjenkins PDF
PDF
Layout analyzerでのgroovyの利用について PDF
【17-A-2】 10年後も通用する開発環境の秘訣 <デブサミ2012> PDF
アメーバピグにおける自作サーバ運用それからどうなった ODP
qpstudy 〜初心者にやさしいインフラ勉強会〜 の紹介 PDF
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編) PPTX
KEY
PPTX
ngGoBuilder and collaborative development between San Francisco and Tokyo PDF
ソフトウェアパッケージベンダーのためのクラウドソリューション「SQL Anywhere OnDemand Edition」 KEY
デブサミ2012 appinventorユーザー会 PDF
PDF
PDF
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法- PDF
PDF
【17-E-3】 オンライン機械学習で実現する大規模データ処理 PPT
CouchDB JP Developers Dummit LT Similar to 大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
PDF
PDF
PDF
泥臭い運用から、プログラマブルインフラ構築(に行きたい) PDF
PDF
ソーシャルゲームにおけるAWS/MongoDB利用事例 PDF
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land KEY
ソーシャルゲームログ解析基盤のMongoDB活用事例 PDF
DB tech showcase: 噂のMongoDBその用途は? PPT
PPTX
日本語:Mongo dbに於けるシャーディングについて PDF
PDF
MongoDBではじめるカジュアルなタイムラインシステム PPT
PDF
PDF
PDF
PDF
DOC
DOC
PDF
More from Akihiro Kuwano
PDF
PDF
PDF
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。 PPT
PDF
PDF
PDF
18 a-6 ameba pigg backend practice 20110217 PDF
PDF
PDF
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴 PDF
PDF
PDF
PDF
PDF
PDF
PDF
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮) PPTX
PDF
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。 PDF
Recently uploaded
PDF
エンジニアが選ぶべきAIエディタ & Antigravity 活用例@ウェビナー「触ってみてどうだった?Google Antigravity 既存IDEと... PPTX
楽々ナレッジベース「楽ナレ」3種比較 - Dify / AWS S3 Vector / Google File Search Tool PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #2 PDF
20251210_MultiDevinForEnterprise on Devin 1st Anniv Meetup PDF
流行りに乗っかるClaris FileMaker 〜AI関連機能の紹介〜 by 合同会社イボルブ PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #1 大規模化するピグライフを支えるインフラ ~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.