2012.07.06松尾康博 @understeer#mongodbcasual
• 名前     松尾康博• Twitter @understeer• 職業:Ust職人見習い • (AWSソリューションアーキテクト)• 前やってたこと •   Java + Messaging middle ware •   Xen + C...
MongoDBとのかかわりモンゴモンゴ呟いてたら @doryokujin に絡まれMongo Tokyo 2011から MongoDB JPを手伝いなんやかんやで MongoDB JPのUst担当しなんやかんやで #*study のUstもやっ...
てことで
まともにMongoつかってないかじゅあるな奴がかじゅあるに話すよ((((;゚Д゚))))
AWSって何よ? #ステマ
これだけ押さえておけばおkサービス         特徴Amazon S3    99.99999999999%の耐久性と99.99%の可用性を             持つオブジェクトストレージ             EBSスナップショット...
リージョンとアベイラビリティゾーン 1リージョン内にAZ(データセンター群)が複数拠点存在 AZはお互いに地理的・電源的・ネットワーク的に分離されている AZ間は高速専用線で接続(リージョン間はインターネット経由)
Amazon EC2(Elastic Compute Cloud)とは?必要な時に必要な台数を数分で調達できる仮想サーバ初期費用無し、1時間ごとの従量課金起動するリージョンとアベイラビリティゾーンを選べる               A    ...
最近の一般的なLAMP on AWS                 192.168.0.0/16                                                                         ...
10genがAWSでMongoDB売ってるし動くだろうけど・・・
MongoDB on AWSで気になること性能運用管理可用性・耐久性
ディスクの性能
EBSのチューニングEBSは1本 100 IOPS程度が目安例) 400GiBを1本 で約100 IOPS
EBSのチューニングEBSを複数使って RAID例) /Data は200GiBを4本 RAID10で約200+ IOPS例) Log, Journal, Config Serverは RAID1にしておく
EBSのチューニングインスタンスを大きくするとEBSの性能も上がるのでディスク本数を増やしてもサチらない(m1.xlarge, c1.xlarge, m2.4xlarge)例) 100GiBを8本 RAID10で400+ IOPS
EBSのチューニングそれでもWriteの性能を稼ぎたいときは最終手段のShard!
ディスクの運用管理
EBSとスナップショット           Region                                 事前にEBSスナップショット取得   Availability Zone - a                    ...
スナップショットでバックアップ      mongodをFlush& Lock            > db.fsyncLock();      (必要なら)Filesystemをfreeze            $ xfs_freeze ...
スナップショットからリストア      各スナップショットからボリューム作成           $ ec2-create-volume –snapshot snap-xxx           $ ec2-create-volume –sna...
可用性・耐久性
データを無くさないためにレプリカセットにしたったぜ ( ー`дー´)m9 EBSまるごと使えなくなったら?((((;゚Д゚))))  エッ? あと、N/Wとか電源とか、DCまるごと使えなく なったら?((((;゚Д゚)))) (´Д`)
Replica sets on AWS 一方のゾーンにMongoDB +   Arbiterインスタンス 他方のゾーンにMongoDB
Sharded Replica sets on AWS 両ゾーンにConfig Server (t1.microでOK) 両ゾーンにShardを配置
ゾーンを活用すると               片方のゾーンで何かあっても                    データが残る                  そのまま使い続けられる アーキテクチャーセンター   http://aws.ama...
続きはこちらAmazon EC2 – MongoDB• http://www.mongodb.org/display/DOCS/Amazon+EC2MongoDB on AWS White paper• http://d36cz9buwru1t...
まとめ• 可用性重要• アベイラビリティゾーンを使おう• バックアップ重要• スナップショットを使おう
Upcoming SlideShare
Loading in...5
×

MongoDB on EC2 #mongodbcasual

6,333

Published on

This presentation tells about how to use Multi-AZ with Replica Set.

Published in: Technology
0 Comments
14 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,333
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
2
Comments
0
Likes
14
Embeds 0
No embeds

No notes for slide

Transcript of "MongoDB on EC2 #mongodbcasual"

  1. 1. 2012.07.06松尾康博 @understeer#mongodbcasual
  2. 2. • 名前 松尾康博• Twitter @understeer• 職業:Ust職人見習い • (AWSソリューションアーキテクト)• 前やってたこと • Java + Messaging middle ware • Xen + CentOS + PHP + MySQL • KVM + CentOS + Ubuntu + Ruby + Subversion • ふしおにお + もんごさん
  3. 3. MongoDBとのかかわりモンゴモンゴ呟いてたら @doryokujin に絡まれMongo Tokyo 2011から MongoDB JPを手伝いなんやかんやで MongoDB JPのUst担当しなんやかんやで #*study のUstもやってたら銀河さんに拉致られる ⇐イマココ
  4. 4. てことで
  5. 5. まともにMongoつかってないかじゅあるな奴がかじゅあるに話すよ((((;゚Д゚))))
  6. 6. AWSって何よ? #ステマ
  7. 7. これだけ押さえておけばおkサービス 特徴Amazon S3 99.99999999999%の耐久性と99.99%の可用性を 持つオブジェクトストレージ EBSスナップショットの保存先EBS ボリューム EC2インスタンスにアタッチして使うブロックス トレージ。スナップショットの取得が可能。 RAID0, RAID10等の構成でIOPS向上が可能EC2 インスタンス いわゆる仮想サーバ。EBSボリュームをアタッ チ・デタッチ可能リージョン 1つのリージョン内に複数のアベイラビリティアベイラビリティゾーン ゾーン(データセンター群)があり、複数ゾー ンを組み合わせて使うことで可用性向上が可能
  8. 8. リージョンとアベイラビリティゾーン 1リージョン内にAZ(データセンター群)が複数拠点存在 AZはお互いに地理的・電源的・ネットワーク的に分離されている AZ間は高速専用線で接続(リージョン間はインターネット経由)
  9. 9. Amazon EC2(Elastic Compute Cloud)とは?必要な時に必要な台数を数分で調達できる仮想サーバ初期費用無し、1時間ごとの従量課金起動するリージョンとアベイラビリティゾーンを選べる A B EC2 1 EC2
  10. 10. 最近の一般的なLAMP on AWS 192.168.0.0/16 DBのデータもアベイアベイラビリティ ラビリティゾーンをゾーンをまたいで またがせる。サーバを配置 障害時はフェイル オーバーVPC使ってIP固定 Public Subnet Public Subnet 192.168.0.0/24 192.168.1.0/24 ディスクまるごとス ナップショット Snapshot VPC Private Subnet VPC Private Subnet 192.168.2.0/24 192.168.3.0/24 Availability Zone Availability Zone Virtual Private Cloud
  11. 11. 10genがAWSでMongoDB売ってるし動くだろうけど・・・
  12. 12. MongoDB on AWSで気になること性能運用管理可用性・耐久性
  13. 13. ディスクの性能
  14. 14. EBSのチューニングEBSは1本 100 IOPS程度が目安例) 400GiBを1本 で約100 IOPS
  15. 15. EBSのチューニングEBSを複数使って RAID例) /Data は200GiBを4本 RAID10で約200+ IOPS例) Log, Journal, Config Serverは RAID1にしておく
  16. 16. EBSのチューニングインスタンスを大きくするとEBSの性能も上がるのでディスク本数を増やしてもサチらない(m1.xlarge, c1.xlarge, m2.4xlarge)例) 100GiBを8本 RAID10で400+ IOPS
  17. 17. EBSのチューニングそれでもWriteの性能を稼ぎたいときは最終手段のShard!
  18. 18. ディスクの運用管理
  19. 19. EBSとスナップショット Region 事前にEBSスナップショット取得 Availability Zone - a スナップショットからボリューム作成。その際に、アベイ ラビリティゾーンを指定。 複製したボリュームは任意のインスタンスにアタッチして 利用可能 アベイラビリティゾーンを指定することで、別アベイラビ リティゾーンに複製を作成することも可能 EBS EB EBS EBS スナップショット元のボリュームに問題があった場合、ス ナップショットからボリュームを復元することで、バックSnapshot アップからのリカバリとなる Amazon Simple Storage Service (S3)
  20. 20. スナップショットでバックアップ mongodをFlush& Lock > db.fsyncLock(); (必要なら)Filesystemをfreeze $ xfs_freeze –f /path/to/mongo 各ボリュームのスナップショット取得 $ ec2-create-snapshot –d xxx vol-xxxxxx $ ec2-create-snapshot –d xxx vol-yyyyy ・・・・ FilesystemのunfreezeとMongodのunlock $ xfs_freeze –u /path/to/mongo > db.fsyncUnlock();
  21. 21. スナップショットからリストア 各スナップショットからボリューム作成 $ ec2-create-volume –snapshot snap-xxx $ ec2-create-volume –snapshot snap-yyy $ ec2-create-volume –snapshot snap-zzz 各ボリュームをアタッチ $ ec2-attach-volume –device /dev/sdf vol-xxxxxx $ ec2-attach-volume –device /dev/sdg vol-yyyyy RAID,LVM復旧、MongoDB起動
  22. 22. 可用性・耐久性
  23. 23. データを無くさないためにレプリカセットにしたったぜ ( ー`дー´)m9 EBSまるごと使えなくなったら?((((;゚Д゚)))) エッ? あと、N/Wとか電源とか、DCまるごと使えなく なったら?((((;゚Д゚)))) (´Д`)
  24. 24. Replica sets on AWS 一方のゾーンにMongoDB + Arbiterインスタンス 他方のゾーンにMongoDB
  25. 25. Sharded Replica sets on AWS 両ゾーンにConfig Server (t1.microでOK) 両ゾーンにShardを配置
  26. 26. ゾーンを活用すると 片方のゾーンで何かあっても データが残る そのまま使い続けられる アーキテクチャーセンター http://aws.amazon.com/jp/architecture/
  27. 27. 続きはこちらAmazon EC2 – MongoDB• http://www.mongodb.org/display/DOCS/Amazon+EC2MongoDB on AWS White paper• http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_M ongoDB.pdf
  28. 28. まとめ• 可用性重要• アベイラビリティゾーンを使おう• バックアップ重要• スナップショットを使おう

×