Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

MongoDB on EC2 #mongodbcasual

9,466 views

Published on

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

Published in: Technology
  • Be the first to comment

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. まとめ• 可用性重要• アベイラビリティゾーンを使おう• バックアップ重要• スナップショットを使おう

×