Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[東京]Cloud_Automatorで攻めのシステム運用 AMIMOTO スタック編

[東京]Cloud_Automatorで攻めのシステム運用 AMIMOTO スタック編

More Decks by Amimoto - Flexible Cloud WordPress Hosting

Other Decks in Technology

Transcript

  1. AWSͷӡ༻ࣗಈԽαʔϏε Cloud Automator Ͱ"߈Ί"ͷγεςϜӡ༻ AMIMOTOฤ
    @Amimoto_Ami
    amimoto-ami.com
    AMIMOTOͷαʔϏεઃܭࢥ૝ͱͦͷࠜఈʹ͋Δ૝͍

    View Slide

  2. WordPressϢʔβʔͷ໨త͸ίϯςϯπͷެ։
    ͦΕҎ্Ͱ΋ҎԼͰ΋ͳ͍ʂ

    View Slide

  3. ֓ཁ
    AMIMOTOΛར༻͢Ε͹AWS্ʹ਺ΫϦοΫͰߴ଎ʹνϡʔχϯά͞Εͨ

    WordPressαΠτ͕Ͱ͖͕͋Γ·͢ɻ
    ͔͠͠ɺͦΕ͸AMIMOTOΛར༻͢ΔϝϦοτͷණࢁͷҰ֯Ͱ͔͋͠Γ·ͤΜɻ
    AMIMOTOΛར༻͢ΔਅͷՁ஋͸ɺʮϏδωε΁ͷूதͰ͖Δ͜ͱʯʹ͋Γ·͢ɻ
    ࢲͨͪAMIMOTO։ൃTeam͸ɺৗʹͦΕ͚ͩΛߟ͑ͯαʔϏεͷઃܭΛߦͬͯ·͢ɻ

    View Slide

  4. AMIMOTOΛࢧ͑Δٕज़ج൫ͱαʔϏε
    1. Automation → పఈతʹࣗಈԽ
    2. Cloud Native → ϚωʔδυαʔϏεΛϑϧ׆༻
    3. MicroServices → ૄ݁߹ͳػೳ࣮૷
    ͜ΕΒʹΑͬͯɺ୭΋͕؆୯ʹಉ͡඼࣭ͷ؀ڥ΍αʔϏεͰΛ։ൃɺӡ༻؅ཧΛՄೳʹ͢
    Δ͜ͱͰʮϏδωε΁ूதʯ͕Ͱ͖Δ؀ڥͮ͘ΓΛࢧԉͰ͖ΔϓϥοτϑΥʔϜΛఏڙ͠
    ͍ͯ·͢ɻ

    View Slide

  5. ໰୊ͱ՝୊
    1.AWSͷεέʔϥϏϦςΟΛ࠷େݶʹൃشͰ͖ͳ͍ɻWordPressͷਂ͍ҋɻ
    2.ංେԽ͠ଓ͚ΔσʔλϕʔεͱେྔͷPluginʹΑΔີ݁߹Խɻϝϯςφϯεෆೳঢ়ଶɻ

    View Slide

  6. ղܾखஈͱํ๏
    1.JIN-KEI CloudfFormation ʹΑΔ (Infrastructure as Code with WordPress)
    2.MicroServices ߏ੒ / Server-less Architecture ʹΑΔ Ϟμϯͳ։ൃΞϓϩʔν

    View Slide

  7. Session1

    View Slide

  8. WordPress
    with
    Infrastructure as Code
    @Amimoto_Ami
    ja.amimoto-ami.com

    View Slide

  9. ͱΓ͋͑ͣϓϥάΠϯ
    WordPress + ύϑΥʔϚϯε
    ਓྗͰαʔόΛνϡʔχϯά
    ਓྗͰΞϓϦΛνϡʔχϯά

    View Slide

  10. ʊਓਓਓਓਓਓਓʊ
    ʼɹAWSؔ܎ͳ͍ɹʻ
    ʉY^Y^Y^Y^Y^Yʉ

    View Slide

  11. ໰୊఺
    ͦΜͳʹGoogle͕ා͍͔ʁ
    ݁ہEC2
    AWSͷαʔϏε࢖͑ͯͳ͍
    ਓྗཔΓ͸ҋΛੜΉ

    View Slide

  12. Let’s ࣗಈԽ

    View Slide

  13. AutoScaling
    WordPress + ࣗಈԽ
    ϚωʔδυαʔϏεͷ׆༻
    CloudFormationͰႈ౳Խ

    View Slide

  14. AutoScaling
    WordPress + ࣗಈԽ
    ϚωʔδυαʔϏεͷ׆༻
    CloudFormationͰႈ౳Խ

    View Slide

  15. 8PSE1SFTTͰ΋ϚωʔδυαʔϏε͸࢖͑Δ
    w "NB[PO3%4
    w "NB[PO4
    w "NB[PO$MPVE'SPOU
    w "NB[PO$FSUJpDBUJPO.BOBHFS
    w FUDʜ
    Managed Services
    6TF.BOHFE4FSWJDF

    View Slide

  16. ෺ཧ૚
    04
    ϛυϧ΢ΣΞ
    ΞϓϦέʔγϣϯ
    ෺ཧ૚
    04
    ϛυϧ΢ΣΞ
    ΞϓϦέʔγϣϯ
    ੹೚ڥք
    ੹೚ڥք
    EC2ͷ৔߹ ϚωʔδυαʔϏεͷ৔߹

    View Slide

  17. ϚωʔδυαʔϏεͰ
    ʮϝϯς͕ඞཁͳྖҬʯΛ
    ۃྗݮΒ͢
    Managed Services
    6TF.BOHFE4FSWJDF

    View Slide

  18. AutoScaling
    WordPress + ࣗಈԽ
    ϚωʔδυαʔϏεͷ׆༻
    CloudFormationͰႈ౳Խ

    View Slide

  19. ϚωʔδυαʔϏεΛ࢖ͬͯ΋ɺ
    ߏங͕ෳࡶԽͯ͠͠·ͬͨΒ
    ݁ہਓྗʹґଘ͢Δ

    View Slide

  20. ྫ͑͹͜ͷߏ੒

    View Slide

  21. ઌ΄Ͳͷߏ੒Λ࡞ΔϋϯζΦϯ
    https://amimoto.doorkeeper.jp/events/41522

    View Slide

  22. ઌ΄Ͳͷߏ੒Λ࡞ΔϋϯζΦϯ
    https://amimoto.doorkeeper.jp/events/41522

    View Slide

  23. ઌ΄Ͳͷߏ੒Λ࡞ΔϋϯζΦϯ
    https://amimoto.doorkeeper.jp/events/41522
    ख࡞ۀͩͱ΄΅೔͔͔Δ

    View Slide

  24. View Slide

  25. WPϓϥάΠϯ࿈ܞ΋ࣗಈԽ
    CloudFormation
    ίʔυͰϦιʔεΛఆٛ
    kumogataͰϢχοτԽ

    View Slide

  26. GitHubʹίʔυެ։ࡁΈ
    https://github.com/megumiteam/amimoto-enterprise-cfn

    View Slide

  27. ϦιʔεຖʹϑΝΠϧΛ෼ׂ͠ɺ࠶ར༻ੑΛߴΊΔ
    _include 'include/vpc/vpc.rb'
    _include 'include/ec2/waithandle_ec2.rb'
    _include "include/security_group.rb"
    _include "include/elb.rb"
    _include 'include/iam/for_stack_001.rb'
    _include "include/cloudfront/cf.rb"
    _include "include/s3/s3-media.rb"
    https://github.com/megumiteam/amimoto-enterprise-cfn/blob/master/
    include/001-base-resource.rb

    View Slide

  28. AWS MPʹ΋ܝࡌࡁΈ
    https://aws.amazon.com/marketplace/pp/B01B3ZE1NC/

    View Slide

  29. Aurora൛΋ϦϦʔεࡁ(Ұ෦)
    https://aws.amazon.com/marketplace/pp/B01B3ZE1NC/
    "VSPSB3FBEMZ

    View Slide

  30. ख࡞ۀͩͱ൒೔Ҏ্͔͚ͯࣗྗߏங
    $MPVE'PSNBUJPOͳΒ෼଴͚ͭͩ
    ͲͪΒ͕ϏδωεʹߩݙͰ͖·͔͢ʁ

    View Slide

  31. AutoScaling
    WordPress + ࣗಈԽ
    ϚωʔδυαʔϏεͷ׆༻
    CloudFormationͰႈ౳Խ

    View Slide

  32. ϑΝΠϧγεςϜ͕ωοΫ
    AutoScaling
    αʔόͷ૿ݮΛࣗಈԽ
    མͪͯ΋ࣗಈͰ෮چͰ͖Δ

    View Slide

  33. ϑΝΠϧγεςϜ

    View Slide

  34. View Slide

  35. ࣮͸CloudFormationରԠͯ͠Δ
    http://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-
    resource-efs-filesystem.html

    View Slide

  36. ϓϨϏϡʔ൛ͱ͍͑Ͳɺ
    ޫ໌͸͍ͯ͞͠Δ

    View Slide

  37. AMIMOTOϚωʔδυͰͷAutoScaleߏ੒

    View Slide

  38. "VUP4DBMFߏ੒Λ
    ϝϯς͠ͳ͍ͱμϝ
    ͱ͍͏໰୊

    View Slide

  39. ྫ͑͹͜Μͳ໰୊
    w $PEF%FQMPZΤʔδΣϯτ͕མͪͨΒͲ͏͢Δ͔ʁ
    w ಉ͡ߏ੒Λօ͕࡞ΕΔͷ͔ʁ
    w "84.BSLFU1MBDFʹग़ͤΔ͔ʁ

    View Slide

  40. Now Developing

    View Slide

  41. Session2

    View Slide

  42. AMIMOTO + Server-less Architecture
    @Amimoto_Ami
    amimoto-ami.com
    AMIMOTOʹ͓͚ΔαʔόϨεΞʔΩςΫνϟͷ׆༻ʹ͍ͭͯ

    View Slide

  43. Summary
    1. Πϯϑϥϝϯςφϯε͔Βͷ։์
    2. ίετ࠷దԽ
    3. MicroServicesʹΑΔૄ݁߹ͳػೳ࣮૷
    AMIMOTOͷػೳ։ൃ͸ҎԼͷϝϦοτΛڗड͢ΔͨΊʹαʔόϨεΞʔΩςΫνϟͰͷ࣮
    ૷ʹऔΓ૊ΜͰ͍·͢:

    View Slide

  44. 1. Πϯϑϥϝϯςφϯε͔Βͷ։์
    2. ίετ࠷దԽ
    3. MicroServicesʹΑΔૄ݁߹ͳػೳ࣮૷

    View Slide

  45. ෺ཧ૚
    04
    ϛυϧ΢ΣΞ
    ΞϓϦέʔγϣϯ
    ෺ཧ૚
    04
    ϛυϧ΢ΣΞ
    ΞϓϦέʔγϣϯ
    ੹೚ڥք
    ੹೚ڥք
    EC2ͷ৔߹ Lambdaͷ৔߹

    View Slide

  46. 1. Πϯϑϥϝϯςφϯε͔Βͷ։์
    2. ίετ࠷దԽ
    3. MicroServicesʹΑΔૄ݁߹ͳػೳ࣮૷

    View Slide

  47. ࣌ؒ
    ίετ
    ࣌ؒ
    ίετ
    EC2ͷ৔߹ Lambdaͷ৔߹

    View Slide

  48. 1. Πϯϑϥϝϯςφϯε͔Βͷ։์
    2. ίετ࠷దԽ
    3. MicroServicesʹΑΔૄ݁߹ͳػೳ࣮૷

    View Slide

  49. ௨ৗͷWordPressͷػೳ։ൃ
    8PSE1SFTT$PSF

    1MVHJO
    1MVHJO
    1MVHJO
    1MVHJO

    1MVHJO

    View Slide

  50. ൃੜ͢Δ໰୊఺
    • ιʔείʔυͷංେԽ
    • DBͷංେԽ
    • DB͕୯Ұো֐఺ͱͳΔ
    Auto Scalling͕ແҙຯʹ
    • ػೳͱίΞɺςʔϚ͕ີ
    ݁߹ʹ
    8PSE1SFTT$PSF
    1MVHJO 1MVHJO 1MVHJO 1MVHJO
    1MVHJO 1MVHJO 1MVHJO 1MVHJO
    1MVHJO 1MVHJO 1MVHJO 1MVHJO

    View Slide

  51. Solution
    MicroServicesͱ͍͏ൃ૝

    View Slide

  52. Microservices
    • γεςϜΛෳ਺ͷίϯϙʔωϯτͰߏங
    • ίϯϙʔωϯτ͸ͦΕͧΕಠཱͨ͠γε
    ςϜͱͯ͠ՔಇͰ͖Δ
    • ૄ݁߹
    • RestfulͳAPIͰγεςϜΛ࿈݁

    View Slide

  53. 8PSE1SFTT$PSF
    $POOFDUPS1MVHJO
    "1* "1* "1*
    .JDSP4FSWJDF .JDSP4FSWJDF .JDSP4FSWJDF
    ͜Ε͔ΒͷWordPressͷػೳ։ൃ

    View Slide

  54. ࣮૷ࣄྫ 1

    View Slide

  55. Problem
    ݕࡧػೳͷڧԽ

    View Slide

  56. 1. શจݕࡧͷػೳ͸ͳ͍ɻ୯७ͳλΠτϧͱຊจͷLIKEݕࡧ
    2. ΧελϜϑΟʔϧυΛݕࡧର৅ʹΧελϚΠζ͢Δͱٸܹʹݕࡧ͕஗͘ͳΔέʔε͕༗Δ
    3. ίϯςϯπͷྔʹൺྫͯ͠DBͷෛՙ্͕͕Δ
    Problem

    View Slide

  57. AMAZON 

    Elasticsearch
    ੌ͍ݕࡧ

    View Slide

  58. Architecture
    8PSE1SFTT$PSF
    $POOFDUPS1MVHJO
    "1*
    ".";0/&MBTUJDTFBSDI

    View Slide

  59. ࣮૷ࣄྫ 2

    View Slide

  60. Problem
    αΠτ಺ݕࡧ͔Βͷച্σʔλΛՄࢹԽ͍ͨ͠

    View Slide

  61. AMAZON 

    lambda
    AMAZON 

    DynamoDB
    AMAZON 

    API Gateway
    Server-less ArchitectureͰՄࢹԽػೳΛ࣮૷

    View Slide

  62. Architecture
    8PSE1SFTT$PSF
    $POOFDUPS1MVHJO
    "1* "1* "1*
    'VMMUFYUTFBSDI
    $PMMFDU
    TVCTDSJQUJPOEBUB
    7JTVBMJTF
    TVCTDSJQUJPOEBUB

    View Slide

  63. View Slide

  64. 'VMM5FYU
    4FBSDI
    %BUB7JTVBMJTJOH
    %BUB$PMMFDUJPO

    View Slide

  65. View Slide

  66. ࣮૷ࣄྫ 3

    View Slide

  67. Problem
    AMIMOTOͷϢʔβίϯιʔϧ͕ཉ͍͠

    View Slide

  68. Cognito 

    User Pools
    ੌ͍Ϣʔβೝূج൫

    View Slide

  69. View Slide

  70. View Slide

  71. View Slide

  72. Server-less ArchitectureʹΑΔ։ൃख๏ͷมԽ

    View Slide

  73. ͳͥ։ൃख๏ͷมԽ͕ى͜Δͷ͔
    1. ssh઀ଓͷଘࡏ͠ͳ͍ੈքͰͷ։ൃɺςετɺσϓϩΠ
    2. αʔόαΠυϨϯμϦϯά͔ΒΫϥΠΞϯταΠυϨϯμϦϯά΁
    ࠓ·Ͱαʔό͕ଘࡏ͢ΔલఏͰൃల͖ͯͨ͠։ൃख๏͕Ұ੾࢖͑ͳ͘ͳΔ

    View Slide

  74. 1. ssh઀ଓͷଘࡏ͠ͳ͍ੈքͰͷ։ൃɺςετɺσϓϩΠ
    2. αʔόαΠυϨϯμϦϯά͔ΒΫϥΠΞϯταΠυϨϯμϦϯά΁

    View Slide

  75. • API Gateway, LambdaͷϓϩδΣΫτ؅ཧ
    • ϩʔΧϧ؀ڥͰͷLambda࣮ߦ
    • API GatewayͷҰݩతͳઃఆ
    • ։ൃɺεςʔδϯάɺຊ൪؀ڥͷ੾Γସ͑
    • AWS؀ڥ΁ͷσϓϩΠ
    • ࣗ࡞ͷΞϓϦέʔγϣϯͷGithub΁ͷެ։
    Serverless Framework

    View Slide

  76. 1. ssh઀ଓͷଘࡏ͠ͳ͍ੈքͰͷ։ൃɺςετɺσϓϩΠ
    2. αʔόαΠυϨϯμϦϯά͔ΒΫϥΠΞϯταΠυϨϯμϦϯά΁

    View Slide

  77. • ViewʹಛԽͨ͠UIϥΠϒϥϦ
    • ϓϦίϯύΠϧʹΑΔϨϯμϦϯά
    • ܰྔͰίʔυ͕ॻ͖΍͍͢
    • API Gateway LambdaͷΞϓϦέʔγϣϯͷ

    Viewͱͯ͠࡞Γ΍͍͢
    Riot.js

    View Slide

  78. http://qiita.com/horike37
    ࠓ೔঺հͨ͠ΞʔΩςΫνϟͷৄࡉ͸QiitaͷํʹιʔείʔυؚΊͯॻ͍͍ͯ·͢
    ڵຯ͋Δํ͸ੋඇͷ͍ͧͯΈ͍ͯͩ͘͞

    View Slide

  79. ·ͱΊ

    View Slide

  80. ໰୊ͱ՝୊
    1.AWSͷεέʔϥϏϦςΟΛ࠷େݶʹൃشͰ͖ͳ͍ɻWordPressͷਂ͍ҋɻ
    2.ංେԽ͠ଓ͚ΔσʔλϕʔεͱେྔͷPluginʹΑΔີ݁߹Խɻϝϯςφϯεෆೳঢ়ଶɻ

    View Slide

  81. ղܾ

    View Slide

  82. ໰୊ͱ՝୊
    ߏங͸ࣗಈԽͰ͖͚ͨͲ……

    ͱ͜ΖͰӡ༻͸ʁ

    View Slide

  83. ʊਓਓਓਓਓਓਓਓਓਓਓʊ
    ʼɹӡ༻΋ࣗಈԽ͍ͨ͠ɹʻ
    ʉY^Y^Y^Y^Y^Y^Y^Y^Y^Yʉ

    View Slide

  84. Next Stage

    View Slide

  85. @Amimoto_Ami
    amimoto-ami.com
    THANK YOU!

    View Slide