AWS ⾏行行
⾃自⼰己
• 
     o                         AWS
     o                                     ⽤用

            ⽤用
• 
     o  AWS
         •  elasticfox-ec2tag IAM Fox R53 Fox
     o  Ruby
         •  zipruby libarchive rua…etc
• 
•  AWS   ⽤用
•  AWS
•             ⾏行行
•    1000 ⼈人          ⽤用
•    94
•    ⽉月 PV 4.9 PV
•    Ruby on Rails + MySQL
•  PC
  o  cookpad.com
• 
     o  m.cookpad.com
•  iPhone
•  Android
PV
 0:00
 1:00
 2:00
 3:00
 4:00
 5:00
 6:00
 7:00
 8:00
 9:00
10:00
11:00
             ⼀一⽇日 PV




12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00
PV
PV




     4⽉月   5⽉月   6⽉月   7⽉月   8⽉月   9⽉月 10⽉月 11⽉月 12⽉月 1⽉月   2⽉月   3⽉月
AWS   ⽤用
AWS   ⽤用
AWS    ⽤用


  o 
AWS       ⽤用


  o            ⼊入
  o  ⾃自
AWS    ⽤用


  o    ⾜足
       ⼤大
AWS        ⽤用


  o  AWS
     10
AWS    ⽤用


  o 
AWS   ⽤用
AWS        ⽤用

  AWS ⽤用
AWS        ⽤用
  o 
      • 
      • 
  o  AWS
      • 
      • 
AWS        ⽤用


  o  EC2        ⾼高
AWS   ⽤用
AWS    ⽤用
 iDC    ⼤大   ⾦金金
AWS    ⽤用
 AWS        ⾦金金
AWS         ⽤用

  o  EC2

  o              ⾦金金
       •               ⼤大

  o 
DNS

 AMI



 ⻑⾧長

MySQL
o 
        o 

DNS

 AMI



 ⻑⾧長
MySQL
EC2



DNS

 AMI



 ⻑⾧長

MySQL
o 

        o 
DNS          ⽤用
 AMI



 ⻑⾧長

MySQL
DNS
        o               ⼆二
 AMI
             •  Basic
             • 
 ⻑⾧長

MySQL
DNS

 AMI



 ⻑⾧長

MySQL
o  Basic

DNS          •  ping icmp
 AMI         •  http
        o 
 ⻑⾧長
             •  ⽣生          Nagios
MySQL
             •              Munin
DNS

 AMI



 ⻑⾧長

MySQL
DNS
        o 
 AMI
             •          ⼠士
             •  Basic
 ⻑⾧長

MySQL
o  App   DB



DNS

 AMI



 ⻑⾧長

MySQL
o  Basic   DNS



DNS

 AMI



 ⻑⾧長

MySQL
o                              IP

        o  Elastic Load Balancing
DNS                             10.0.0.0/8
 AMI
             •       IP
             • 
 ⻑⾧長
        o                 iptables
MySQL        •  ⼈人
DNS     o  EC2      IP
 AMI        •  ⽌止             IP

        o     DNS        IP
 ⻑⾧長

MySQL
o  DNS Active-Active     2
            •         Elastic IP
        o          resolv.conf 2
DNS

 AMI



 ⻑⾧長

MySQL
o  DNS Name



DNS      ) Name:dev
 AMI      dev.ap-northeast-1.compute.internal


 ⻑⾧長

MySQL
o  resolv.conf            cron
            •      IP
               resolv.conf
DNS         •  DNS ⽚片⽅方      ⽌止          resolv.conf
 AMI



 ⻑⾧長

MySQL
o  cron   DNS Public DNS Name
                   Public DNS Name Elastic IP


DNS

 AMI



 ⻑⾧長

MySQL
o  Public DNS Name   IP
              DNS       IP


DNS

 AMI



 ⻑⾧長

MySQL
o                  IP resolv.conf
        o 
             resolv.conf
DNS

 AMI



 ⻑⾧長

MySQL
DNS
        o  CentOS5.5
 AMI    o                  EBS
        o        32bit   64bit
           64bit   ⼀一
 ⻑⾧長

MySQL
o     AMI          AMI

        o    AMI
DNS
        o           Chef     ⼊入
 AMI



 ⻑⾧長

MySQL
DNS     o                       ⽣生
 AMI         •  Nagios + nrpe
        o 
 ⻑⾧長
             •  Munin

MySQL
o  Nagios   ⽣生
        o  Munin         CPU   ⽤用

DNS

 AMI



 ⻑⾧長

MySQL
o                     ⾃自
             Nagios   Munin
        o 
DNS

 AMI



 ⻑⾧長

MySQL
DNS
        o      ⽤用              ⽅方
 AMI
             •  Elastic IP   ⽤用
             •  Nagios         AMI
 ⻑⾧長

MySQL
Elastic IP     ⽤用
           o  Nagios   LDAP   ⻑⾧長   ⽤用

DNS

 AMI



 ⻑⾧長

MySQL
o           Elastic IP Public DNS
             Name

DNS

 AMI



 ⻑⾧長

MySQL
o             IP   ⾃自
                             ⾏行行
        o  ⾃自
DNS             ⾏行行
        o 
 AMI
                ⾏行行

 ⻑⾧長

MySQL
o 
                        ⾃自   Elastic IP

DNS     o  Elastic IP

 AMI



 ⻑⾧長

MySQL
Nagios        AMI
          o  Nagios
                       AMI
DNS       o  Munin           ⽤用
 AMI



 ⻑⾧長

MySQL
o  Elastic IP   ⽤用
DNS         • 
                ⽤用
 AMI
        o  Nagios        AMI
            •  5 10
 ⻑⾧長                         ⽤用
MySQL
DNS
        o  keepalived        ⽐比
 AMI           ⻑⾧長
        o          Heartbeat      ⻑⾧長
                    ⾏行行
 ⻑⾧長

MySQL
DNS

 AMI



 ⻑⾧長

MySQL
o  EC2     Slave
        o        EBS
        o        ⽇日    Snapshot
DNS

 AMI



 ⻑⾧長

MySQL
o  Snapshot



DNS

 AMI



 ⻑⾧長

MySQL
o  Snapshot
           Position
        o 
DNS

 AMI



 ⻑⾧長

MySQL
⾏行行
⾏行行
⾏行行
o                    DNS
   EC2 iDC
o  DB     Read EC2
o  DB   Write iDC      ⾏行行
⾏行行
MasterDB EC2   ⾏行行
⾏行行
o            MasterDB EC2   ⾏行行
o    iDC
o      iDC
AWS移行に向けたクックパッドの取り組み

AWS移行に向けたクックパッドの取り組み

  • 1.
  • 2.
    ⾃自⼰己 •  o  AWS o  ⽤用 ⽤用 •  o  AWS •  elasticfox-ec2tag IAM Fox R53 Fox o  Ruby •  zipruby libarchive rua…etc
  • 3.
    •  •  AWS ⽤用 •  AWS •  ⾏行行
  • 5.
    •  1000 ⼈人 ⽤用 •  94 •  ⽉月 PV 4.9 PV •  Ruby on Rails + MySQL
  • 6.
    •  PC o  cookpad.com
  • 7.
    •  o  m.cookpad.com
  • 8.
  • 9.
    PV 0:00 1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00 9:00 10:00 11:00 ⼀一⽇日 PV 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 20:00 21:00 22:00 23:00
  • 10.
    PV PV 4⽉月 5⽉月 6⽉月 7⽉月 8⽉月 9⽉月 10⽉月 11⽉月 12⽉月 1⽉月 2⽉月 3⽉月
  • 11.
    AWS ⽤用
  • 12.
    AWS ⽤用
  • 13.
    AWS ⽤用 o 
  • 14.
    AWS ⽤用 o  ⼊入 o  ⾃自
  • 15.
    AWS ⽤用 o  ⾜足 ⼤大
  • 16.
    AWS ⽤用 o  AWS 10
  • 17.
    AWS ⽤用 o 
  • 18.
    AWS ⽤用
  • 19.
    AWS ⽤用 AWS ⽤用
  • 20.
    AWS ⽤用 o  •  •  o  AWS •  • 
  • 21.
    AWS ⽤用 o  EC2 ⾼高
  • 22.
    AWS ⽤用
  • 23.
    AWS ⽤用 iDC ⼤大 ⾦金金
  • 24.
    AWS ⽤用 AWS ⾦金金
  • 25.
    AWS ⽤用 o  EC2 o  ⾦金金 •  ⼤大 o 
  • 27.
  • 28.
    o  o  DNS AMI ⻑⾧長 MySQL
  • 29.
  • 30.
    o  o  DNS ⽤用 AMI ⻑⾧長 MySQL
  • 31.
    DNS o  ⼆二 AMI •  Basic •  ⻑⾧長 MySQL
  • 32.
  • 33.
    o  Basic DNS •  ping icmp AMI •  http o  ⻑⾧長 •  ⽣生 Nagios MySQL •  Munin
  • 34.
  • 35.
    DNS o  AMI •  ⼠士 •  Basic ⻑⾧長 MySQL
  • 36.
    o  App DB DNS AMI ⻑⾧長 MySQL
  • 37.
    o  Basic DNS DNS AMI ⻑⾧長 MySQL
  • 38.
    o  IP o  Elastic Load Balancing DNS 10.0.0.0/8 AMI •  IP •  ⻑⾧長 o  iptables MySQL •  ⼈人
  • 39.
    DNS o  EC2 IP AMI •  ⽌止 IP o  DNS IP ⻑⾧長 MySQL
  • 40.
    o  DNS Active-Active 2 •  Elastic IP o  resolv.conf 2 DNS AMI ⻑⾧長 MySQL
  • 41.
    o  DNS Name DNS ) Name:dev AMI dev.ap-northeast-1.compute.internal ⻑⾧長 MySQL
  • 42.
    o  resolv.conf cron •  IP resolv.conf DNS •  DNS ⽚片⽅方 ⽌止 resolv.conf AMI ⻑⾧長 MySQL
  • 43.
    o  cron DNS Public DNS Name Public DNS Name Elastic IP DNS AMI ⻑⾧長 MySQL
  • 44.
    o  Public DNSName IP DNS IP DNS AMI ⻑⾧長 MySQL
  • 45.
    o  IP resolv.conf o  resolv.conf DNS AMI ⻑⾧長 MySQL
  • 46.
    DNS o  CentOS5.5 AMI o  EBS o  32bit 64bit 64bit ⼀一 ⻑⾧長 MySQL
  • 47.
    o  AMI AMI o  AMI DNS o  Chef ⼊入 AMI ⻑⾧長 MySQL
  • 48.
    DNS o  ⽣生 AMI •  Nagios + nrpe o  ⻑⾧長 •  Munin MySQL
  • 49.
    o  Nagios ⽣生 o  Munin CPU ⽤用 DNS AMI ⻑⾧長 MySQL
  • 50.
    o  ⾃自 Nagios Munin o  DNS AMI ⻑⾧長 MySQL
  • 51.
    DNS o  ⽤用 ⽅方 AMI •  Elastic IP ⽤用 •  Nagios AMI ⻑⾧長 MySQL
  • 52.
    Elastic IP ⽤用 o  Nagios LDAP ⻑⾧長 ⽤用 DNS AMI ⻑⾧長 MySQL
  • 53.
    o  Elastic IP Public DNS Name DNS AMI ⻑⾧長 MySQL
  • 54.
    o  IP ⾃自 ⾏行行 o  ⾃自 DNS ⾏行行 o  AMI ⾏行行 ⻑⾧長 MySQL
  • 55.
    o  ⾃自 Elastic IP DNS o  Elastic IP AMI ⻑⾧長 MySQL
  • 56.
    Nagios AMI o  Nagios AMI DNS o  Munin ⽤用 AMI ⻑⾧長 MySQL
  • 57.
    o  Elastic IP ⽤用 DNS •  ⽤用 AMI o  Nagios AMI •  5 10 ⻑⾧長 ⽤用 MySQL
  • 58.
    DNS o  keepalived ⽐比 AMI ⻑⾧長 o  Heartbeat ⻑⾧長 ⾏行行 ⻑⾧長 MySQL
  • 59.
  • 60.
    o  EC2 Slave o  EBS o  ⽇日 Snapshot DNS AMI ⻑⾧長 MySQL
  • 61.
    o  Snapshot DNS AMI ⻑⾧長 MySQL
  • 62.
    o  Snapshot Position o  DNS AMI ⻑⾧長 MySQL
  • 63.
  • 64.
  • 65.
    ⾏行行 o  DNS EC2 iDC o  DB Read EC2 o  DB Write iDC ⾏行行
  • 66.
  • 67.
    ⾏行行 o  MasterDB EC2 ⾏行行 o  iDC o  iDC