$30 off During Our Annual Pro Sale. View Details »

Introduction of SQALE

SHIBATA Hiroshi
March 15, 2014
760

Introduction of SQALE

SHIBATA Hiroshi

March 15, 2014
Tweet

Transcript

  1. !
    Introduction of SQALE
    !
    Hiroshi SHIBATA
    @hsbt
    WIDE Camp Spring 2014

    View Slide

  2. self

    View Slide

  3. SHIBATA Hiroshi(@hsbt)

    View Slide

  4. Ruby
    Jenkins
    RailsGirls
    tDiary

    View Slide

  5. View Slide

  6. View Slide

  7. ຊࣾ
    ࢧࣾ

    View Slide

  8. View Slide

  9. ϛυϧ΢ΣΞͷΞοϓάϨʔυ
    ࣾ಺։ൃج൫ͷߏங
    ౷ܭج൫ͷߏங
    +409ͷӡ༻੔උ
    HJUIVC
    ηΩϡϦςΟ؂ࠪ
    ίʔυϨϏϡʔ
    ςετج൫ͷߏங
    ΞΫηεղੳج൫ͷߏங
    ։ൃϓϩηε
    ৽ਓڭҭ
    ݪߘࣥච
    ΧϯϑΝϨϯεൃද
    044։ൃ αʔόʔߏ੒؅ཧͷ࡮৽
    ϦʔϯελʔτΞοϓ
    +FOLJOT
    3VCZ3BJMT
    3%#.4

    View Slide

  10. ϛυϧ΢ΣΞͷΞοϓάϨʔυ
    ࣾ಺։ൃج൫ͷߏங
    ౷ܭج൫ͷߏங
    +409ͷӡ༻੔උ
    HJUIVC
    ηΩϡϦςΟ؂ࠪ
    ίʔυϨϏϡʔ
    ςετج൫ͷߏங
    ΞΫηεղੳج൫ͷߏங
    ։ൃϓϩηε
    ৽ਓڭҭ
    ݪߘࣥච
    ΧϯϑΝϨϯεൃද
    044։ൃ αʔόʔߏ੒؅ཧͷ࡮৽
    ϦʔϯελʔτΞοϓ
    +FOLJOT
    3VCZ3BJMT
    3%#.4

    View Slide

  11. 00:03:00

    View Slide

  12. SQALE

    View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. Ruby on Rails
    AWS/LXC
    puppet/chef

    View Slide

  17. Ruby on Rails
    ๛෋ͳϛυϧ΢ΣΞ
    ࣗಈςετ
    Open Source

    View Slide

  18. AWS
    EC2
    EBS
    Route53
    ELB
    RDS
    αʔόʔ
    ӬଓԽྖҬ(Ϣʔβʔσʔλ)
    ϢʔβʔυϝΠϯ
    ϦόʔεϓϩΩγ
    ڞ༗DB

    View Slide

  19. AWS
    Amazon Linux
    Patched Kernel
    RedHat Linux ϕʔε
    ӡ༻ϊ΢ϋ΢͕͋Δ
    grsecurity
    fork bomb
    restrict bind

    View Slide

  20. AWS
    ฼؋ͷEC2Πϯελϯε
    lxc ͰϚϧνςφϯτΛ࣮ݱ
    Ruby ͱ PHP Λར༻Մೳ

    View Slide

  21. 00:06:00

    View Slide

  22. 1BB4ͷ࡞Γํ
    4RBMFͷ৔߹
    !IJCPNB
    QBQFSCPZDP

    View Slide

  23. 3VCZίϯςφ
    w /HJOY3VCZ 3BDLΞϓϦ
    Λಈ͔ͤΔ-9$؀ڥ
    w 3VCZʙͷ࠷৽ύονϨϕϧΛఏڙ
    w TVQFSWJTPSEͰ/HJOYͱ3BDLΞϓϦΛ؂ࢹ
    w 44) $SPO࢖༻Մ
    w σϓϩΠ͢ΔͱCVOEMFJOTUBMM BTTFUTQSFDPNQJMFͳͲΛ
    ࣗಈͰߦ͍3BDLΞϓϦΛ࠶ىಈ͢Δ
    ஫΋ఏڙத

    View Slide

  24. 3VCZίϯςφ
    w /HJOY͸QPSUOͰMJTUFO

    w TTIE͸QPSUOͰMJTUFO

    w O͸ίϯςφ͝ͱʹҰҙͷ਺஋
    w OFUXPSLOBNFTQBDF͸࢖༻͍ͯ͠ͳ͍
    w ίϯςφ಺Ͱ5$1QPSUͷCJOE
    Λ੍ݶ͢Δύον౰ͯͨ

    View Slide

  25. 1)1ίϯςφ
    w "QBDIFQIQ—GQNΛಈ͔ͤΔ-9$؀ڥ
    w ܥΛఏڙ
    w TVQFSWJTPSEͰ"QBDIFͱQIQGQNΛ؂ࢹ
    w 44) $SPO࢖༻Մ

    View Slide

  26. SPPUGT
    w ίϯςφ༻ͷϑΝΠϧπϦʔΛSPPUGTͱݺΜͰ͍·͢
    w શͯͷίϯςφͰNPVOU͢ΔσΟϨΫτϦπϦʔ

    View Slide

  27. $ sudo yum --releasever=$ver --installroot=/var/rootfs/$role/ groupinstall Base
    SPPUGTͷߏங
    w 3VCZ 1)1ͦΕͧΕ༻ͷSPPUGT 㲈DISPPU؀ڥ
    Λ࡞Δ
    ZVNJOTUBMMSPPUͰϕʔεΛ࡞Δ
    SVCZ΍DIFGTPMP΋ೖΕΔ
    DISPPUͯ͠DIFGTPMPͰϖνϖνͯ͠ߏங
    ɾ/HJOYͱ͔"QBDIFͱ͔3VCZ 1)1Λ͍Εͯ͘
    w ߏங࣌ʹMYDͷςϯϓϨʔτ͸࢖ͬͯͳ͍
    w ͓खຊͱͯ͠Կ౓΋ࢀর͠·ͨ͠

    View Slide

  28. SPPUGT
    w SPPUGTΛMYDTUBSUىಈ࣌ʹͱͯ͠NPVOUCJOE SP

    ߋʹϢʔβྖҬ
    ΛNPVOUCJOE
    w ϢʔβྖҬҎ֎͸SFBEPOMZ FSSOPJT&30'4

    View Slide

  29. Ϧιʔε੍ݶ
    w 2ίϯςφͷ$16 ϝϞϦͷϦιʔε੍ݶ͸
    w "DHSPVQDQVTFU DHSPVQNFNPSZͰجຊ௨Γ
    w MYDTUBSUͷઃఆϑΝΠϧʹهड़
    w ಈతʹมߋ͢Δӡ༻͸ ·ͩ
    ͍ͯ͠ͳ͍

    View Slide

  30. MYDTUBSUͷ؂ࢹ
    w MYDTUBSU͸NPOJUͰ؂ࢹ
    MYDTUBSU͕όάͰࢭ·ͬͨ͜ͱ͸ࠓΜॴ؍ଌͯ͠ແ͍

    w ͘͝ॳظʹTVQFSWJTPSEͰ؂ࢹ͕ͯͨ͠
    TVQFSWJTPSEΛఀࢭ͢ΔͱMYDTUBSU͕PSQIBOFE
    ʹͳͬͯ໽հͳͷͰNPOJUʹͨ͠

    View Slide

  31. 00:10:00

    View Slide

  32. ϧʔςΟϯά
    w ίϯςφΛ࡞ͬͯ࣍ʹߟ͑ͳ͍ͱ͍͚ͳ͍͜ͱ
    w υϝΠϯ؅ཧͲ͏͢Δ
    w )551 44) (JU PWFS44)
    ͰͲ͏ΞΫηεͤ͞Δ
    w ϩʔυόϥϯα΍ϦόʔεϓϩΩγΛհͯ͠ΞΫηε͍ͤͨ͞
    w )5513FWFSTF1SPYZ
    w 44)3FWFSTF1SPYZ

    View Slide

  33. υϝΠϯ؅ཧ
    w 3PVUFͰTRBMFKQυϝΠϯΛ؅ཧ
    w $/".&Λ&-#ʹ޲͚͍ͯΔ
    w
    w ίϯςφ࡞੒ഁغͷλΠϛϯάͰ3PVUFͷ"1*Λୟ͘
    ELB Proxy
    CNAME: ruby-hiboma.sqale.jp
    ruby-hiboma.sqale.jp. 0 IN CNAME proxy-lb001-******.ap-northeast-1.elb.amazonaws.com.
    Route53
    HTTP
    DNS

    View Slide

  34. )551ͷಈతϧʔςΟϯά
    Redis
    ELB
    Nginx
    +
    Lua
    CNAME: ruby-hiboma.sqale.jp
    Hostϔομ (CNAME) ಺෦ϗετ
    ruby-hiboma.sqale.jp users001.sqale.lan:8000
    php-sushi.sqale.jp users002.sqale.lan:8100
    users001.sqale.lan:8001
    Hostϔομ(CNAME) Λ Redis ʹ౤͛ͯ ಺෦ϗετʹม׵
    CNAME Λ ELB ʹ޲͚ͯΔ
    (Route53؅ཧ)
    ᶃ ᶄ


    View Slide

  35. 44)ͷϧʔςΟϯά
    ELB
    SSH
    Router
    Patched
    OpenSSH
    SSH
    Git
    SFTP
    Git Server
    File server
    DB (MySQL)
    ެ։伴ೝূ
    ɾϢʔβ͕ొ࿥ͨ͠ެ։伴ͱর߹͢Δ
    ɾऩ༰͞Ε͍ͯΔίϯςφΛ໰͍߹ΘͤΔ
    SSH
    Git
    SFTP
    Git
    SFTP
    SSH
    ᶃ ᶄ


    View Slide

  36. HJUQVTIͷϧʔςΟϯά
    ELB
    SSH
    Router
    Patched
    OpenSSH
    git push
    Build Server
    Git Server
    DB (MySQL)
    ...
    ...
    ᶃ ᶄ


    bundle install
    assets:precompile
    etc ...
    git ͷ hook εΫϦϓτ
    ͰΩϡʔʹjob௥Ճ
    git clone
    rsync
    RackΞϓϦͷ࠶ىಈ

    View Slide

  37. ಠࣗυϝΠϯ44-
    w 44-͝ͱʹ&-#ΛׂΓ౰ͯ
    w 44-ূ໌ॻΛΞοϓϩʔυͯ͠΋Β͍&-#ʹΞλον
    Redis
    ELB
    Nginx
    +
    Lua
    ELB
    ಠࣗυϝΠϯ
    HTTPS
    +SSL
    HTTP

    View Slide

  38. 00:13:00

    View Slide

  39. Feature
    ϩάू໿
    ࣾ಺ϓϥοτϑΥʔϜ
    fluentd, logplex, etc.
    طଘͷϗεςΟϯά΁ͷԠ༻
    ࠷৽ͷ Ruby ͱ PHP ͷఏڙ
    ӬଓԽσʔλͷݟ௚͠

    View Slide

  40. Feature
    গਓ਺Ͱͷӡ༻
    ઐ༻Πϯελϯε
    OSSͷੵۃత׆༻
    ࣗಈԽ
    ϏδωεϢʔε
    VPS

    View Slide

  41. View Slide

  42. 00:15:00

    View Slide