Slide 1

Slide 1 text

Михаил  Карпицкий   MaeSens.by  

Slide 2

Slide 2 text

А  нужен  ли  AWS?   •  Небольшой  проект  –  mongolab   •  Все  сейчас  работает  и  ничего  не  планирует   расти   •  Хочу  пробовать  облака!   •  Не  устраивает  текущая  производительность   •  Предполагаем  рост  

Slide 3

Slide 3 text

OK!  Amazon!  

Slide 4

Slide 4 text

Типы  EC2-­‐инстансов  

Slide 5

Slide 5 text

Бюджетный  вариант  Replica  Sets   app   mongod   (primary)   mongod   (secondary)   mongod   (arbiter)  

Slide 6

Slide 6 text

primary/secondary   mongod   EBS   EBS   EBS   EBS   EBS   EBS   EBS   /data/db   /data/db/journal   /var/log   Raid10   Raid1  

Slide 7

Slide 7 text

Настройки  OS   •  ext4,  xfs   •  raid10,  raid1   •  $  blockdev  -­‐-­‐setra  128  /dev/md0  (read-­‐ahead)   •  выключить  ayme,  dirayme     #  cat  /etc/fstab     UUID=6..  /data/db  ext4  noayme,nodirayme  0  0    

Slide 8

Slide 8 text

Security  group   internet   app   mongod   mongod   Port  22,  80,  443   Port  22   Port  22   Port  27017   Port  27017   Port  27017  

Slide 9

Slide 9 text

Security  group   •  Порт  22  из  0.0.0.0/0   •  Порты  27017,  27018  и  27019  из  security   group  приложения   •  Порты  27017,  27018  и  27019  из  security   group  mongo  

Slide 10

Slide 10 text

>  rs.status()   •  $  mongo   •  >  rs.iniyate()   •  >  rs.add(node1)   •  >  rs.add(node2)   •  >  rs.status()  

Slide 11

Slide 11 text

Backup  (вариант  1)   •  >  use  admin   •  >  db.runCommand({fsync:1,  lock:1});   •  $  ec2-­‐create-­‐snapshot  –d  backup-­‐date  vol-­‐ {1..4}   •  >  db.$cmd.sys.unlock.findOne();  

Slide 12

Slide 12 text

Backup  (вариант  2)   •  $  mongodump  –d  database   •  $  tar  zcvf  /backups/backup-­‐date.tgz  dump   •  $  ec2-­‐create-­‐snapshot  –d  backups-­‐vol-­‐date   backup-­‐vol-­‐1  

Slide 13

Slide 13 text

Вопросы?   •  Михаил  Карпицкий   •  hŠp://maesens.by/     •  [email protected]   •  skype:  michael.karpitsky