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

This is My Architectureの発表感想とサーバレスアーキテクチャ

shunp
February 12, 2019
140

This is My Architectureの発表感想とサーバレスアーキテクチャ

re:Invent2018の金融reCapとして発表したスライド資料です。
日本金融業界からは初となる「This is My Architecture」に出演しましたが、そこで発表した仮想通貨ウォレットシステムのサーバレスに関する内容と、ブロックチェーン/サーバレスの新サービスに関する考察をまとめています。

shunp

February 12, 2019
Tweet

Transcript

  1. re:Invent2018
    Allۚ༥ reCap
    2019.02.12 খ஑ॣฏ
    This is My Architectureͷൃදײ૝ͱαʔόϨεΞʔΩςΫνϟʹؔͯ͠

    View Slide

  2. ࣗݾ঺հ

    View Slide

  3. profile:
    name: খ஑ ॣฏ(͍͚͜͠ΎΜ΃͍)
    address: ໨ࠇͷΤϯδχΞγΣΞϋ΢ε
    sns:
    twitter: @shunpei42ba_
    qiita: shunp
    like:
    aws:
    - Lambda
    - DynamoDB
    koike.yml
    Qiita Twitter

    View Slide

  4. Simplex Inc.

    View Slide

  5. ΩϟϐλϧϚʔέοτ
    ιϦϡʔγϣϯ
    ΤΫΠςΟ
    ιϦϡʔγϣϯ
    ࠴݊
    ιϦϡʔγϣϯ
    FX
    ιϦϡʔγϣϯ
    ࢿ࢈ӡ༻
    ιϦϡʔγϣϯ
    Ծ૝௨՟
    ιϦϡʔγϣϯ
    ओʹۚ༥ػؔΛର৅ͱͨ͠แׅతͳιϦϡʔγϣϯͷఏڙ

    View Slide

  6. औҾγεςϜ ΢ΥϨοτγεςϜ
    ϒϩοΫνΣʔϯʹ઀ଓͨ͠Ծ૝௨՟Λอ؅͢ΔγεςϜ
    This is My Architectureʹબఆʂ
    Ծ૝௨՟ιϦϡʔγϣϯ
    DMM BitcoinͳͲ
    ෳ਺ͷԾ૝௨՟γεςϜΛ։ൃ
    νϟʔτ/ೖग़ݿը໘/໿ఆॲཧͳͲ
    ߴ଎ͳτϥϯβΫγϣϯॲཧ͕ٻΊΒΕΔ

    View Slide

  7. This is My Architecture ͱ͸ʁ
    ҰݴͰද͢ͱ
    ʮΞʔΩςΫνϟࣗຫେձʯ
    γϯϓϨ
    Ϋε͔Β
    Ծ૝௨՟΢ΥϨοτγεςϜͷ
    ΞʔΩςΫνϟ͕બग़
    https://aws.amazon.com/jp/this-is-my-architecture/

    View Slide

  8. (ࣸਅ)

    View Slide

  9. ɾϥεϕΨεݱ஍ʹͯࡱӨ
    ɾձ࿩ܗࣜ(ӳޠ)
    ɾεϐʔν࣌ؒ͸5෼લޙ
    ɾ؂ಜͱΧϝϥ3୆ͷελδΦ
    ɾ3ճࡱӨ
    ɾϝΠΫ
    ɾ଍Γͳ͍ΞΠίϯ͸ֆ৺ͰΧόʔ

    View Slide

  10. ࣮ࡍʹ࿩ͨ͠
    Ծ૝௨՟΢ΥϨοτγεςϜͷ
    ΞʔΩςΫνϟ֓ཁ

    View Slide

  11. ɹ
    Blockchain
    EC2
    Lambda
    API
    Gateway
    Lambda
    Dynamo
    DB
    Docker
    EBS
    Lambda
    EC2
    Lambda
    Lambda
    Dynamo
    DB
    Docker
    Lambda
    SNS
    API
    Gateway
    SNS EBS
    CompanyA
    CompanyB
    Bitcoin
    Ethereum (same as above)
    RDS
    RDS
    Cloud
    HSM
    Cloud
    HSM

    View Slide

  12. ɹ
    Blockchain
    EC2
    Lambda
    API
    Gateway
    Lambda
    Dynamo
    DB
    Docker
    EBS
    Lambda
    EC2
    Lambda
    Lambda
    Dynamo
    DB
    Docker
    Lambda
    SNS
    API
    Gateway
    SNS EBS
    CompanyA
    CompanyB
    Bitcoin
    Ethereum (same as above)
    RDS
    RDS
    Cloud
    HSM
    Cloud
    HSM
    Withdraw Request
    Withdraw Logic Send to Blockchain Network

    View Slide

  13. ɹ
    Blockchain
    EC2
    Lambda
    API
    Gateway
    Lambda
    Dynamo
    DB
    Docker
    EBS
    Lambda
    EC2
    Lambda
    Lambda
    Dynamo
    DB
    Docker
    Lambda
    SNS
    API
    Gateway
    SNS EBS
    CompanyA
    CompanyB
    Bitcoin
    Ethereum (same as above)
    RDS
    RDS
    Cloud
    HSM
    Cloud
    HSM
    Notify BlockData
    Notify Each Company Service

    View Slide

  14. ɹ
    Blockchain
    EC2
    Lambda
    API
    Gateway
    Lambda
    Dynamo
    DB
    Docker
    EBS
    Lambda
    EC2
    Lambda
    Lambda
    Dynamo
    DB
    Docker
    Lambda
    SNS
    API
    Gateway
    SNS EBS
    CompanyA
    CompanyB
    Bitcoin
    Ethereum (same as above)
    RDS
    RDS
    Cloud
    HSM
    Cloud
    HSM
    Taking regular snapshot

    View Slide

  15. ɹ
    Blockchain
    EC2
    Lambda
    API
    Gateway
    Lambda
    Dynamo
    DB
    Docker
    EBS
    Lambda
    EC2
    Lambda
    Lambda
    Dynamo
    DB
    Docker
    Lambda
    SNS
    API
    Gateway
    SNS EBS
    CompanyA
    CompanyB
    Bitcoin
    Ethereum (same as above)
    RDS
    RDS
    Cloud
    HSM
    Cloud
    HSM
    Separate VPC
    Exposed through a PrivateLink

    View Slide

  16. New Services

    View Slide

  17. Managed Blockchain
    “ϑϧϚωʔδυͳϒϩοΫνΣʔϯωοτϫʔΫΛఏڙ”

    View Slide

  18. ECS
    EC2
    EthereumωοτϫʔΫಠࣗߏங
    EC2
    Geth Geth
    Managed
    Blockchain
    Managed Blockchain(Ethereum)
    Docker Image
    Build
    Local
    ECR
    Push
    Dockerfile
    (Geth)
    Docker Hub
    ALB
    HTTP Request
    EBS ͜Ε͚ͩ..?
    Ethereum͸৘ใ͕গͳ͍
    ࠓޙͷެ։৘ใʹظ଴

    View Slide

  19. Quantum Ledger Database
    (QLDB)
    “มߋ࡟আͰ͖ͳ͍σʔλϕʔε”

    View Slide

  20. Blockchain
    Node
    QLDB
    QLDB
    Node
    Node
    Node Node
    Data Data Data
    ෼ࢄͯ͠σʔλ؅ཧΛߦ͏
    Good: ߋ৽΍࡟আ͕Ͱ͖ͳ͍
    Bad : ॲཧ͕஗͍/೉қ౓ߴ͍
    தԝूݖͰσʔλ؅ཧΛߦ͏
    ɾߋ৽΍࡟আ͕Ͱ͖ͳ͍
    ɾSQLϥΠΫʹΫΤϦൃߦՄೳ
    ɾαʔόϨε
    ސ٬͕ຊ౰ʹٻΊ͍ͯͨ΋ͷ͸ͪ͜Βʁ
    ࣮༻Խ͞ΕͨϢʔεέʔε͸·ͩগͳ͍

    View Slide

  21. DynamoDB
    “τϥϯβΫγϣϯػೳ௥ՃͱΦϯσϚϯυΩϟύγςΟ”

    View Slide

  22. ࠓճͷΞοϓσʔτޙ
    DynamoDB
    Table A
    Item1
    Item2
    ैདྷͷ੍໿
    ɾItem಺͸ΞτϛοΫ
    ɾItemΛ·͙ͨͱΞτϛοΫʹͰ͖ͳ͍
    DynamoDB
    Table A
    Item3
    DynamoDB
    Table A
    Item1
    Item2
    Item3
    ɾItemΛ·͍ͨͰ΋ΞτϛοΫՄ
    ɾͨͩ͠ɺ10ݸͷItemͱ࠷େ4MB·Ͱͱ͍͏੍໿
    DynamoDB
    Table A
    ɹτϥϯβΫγϣϯॲཧ
    0
    25
    50
    75
    100
    4݄ 5݄ 6݄ 7݄
    ༧૝ΩϟύγςΟ ݁ՌΩϟύγςΟ
    ਖ਼֬ʹΩϟύγςΟͷ༧૝͕Ͱ͖ͳ͍ˍΊΜͲ͍͘͞
    ैྔ՝ۚํࣜΛࢦఆՄೳʹʂ

    View Slide

  23. Lambda
    “Custom Runtime ͱ Lambda Layers”

    View Slide

  24. Lambda Lambda Lambda
    Lambda Lambda
    DynamoDB DynamoDB
    ֤Lambdaʹڞ௨ॲཧΛॻ͘ඞཁ͕͋ͬͨ
    Ex) ྫ֎ϋϯυϥ,DBϥούʔ
    ϝϯςφϯε࣌ʹશͯͷLambdaΛमਖ਼͢Δඞཁ͕͋Δ
    ڞ௨ॲཧͷ෦඼Խ͕Մೳ
    Lambda
    Lambda
    Lambda Lambda
    ʲQiitaʳRustͰαʔόϨε΍Γ͍ͨਓ͕Ұ൪࠷ॳʹݟΔ৔ॴ
    https://qiita.com/shunp/items/8b11450155266d2fcfc1
    ※ϨΠϠ࡞੒ͰCustom Runtime͸બ୒Ͱ͖ͳ͍ͷͰ஫ҙ
    Lambda Layers
    ࢖༻Մೳͳݴޠ
    Go/Java/Python/Node.js…
    Custome Runtime
    ࣮࣭ݴޠͷ੍໿͕ͳ͘ͳΔ

    View Slide

  25. Amplify Console
    “ϑϩϯτΤϯυ༻ͷCI/CDύΠϓϥΠϯ”

    View Slide

  26. CodePipeline
    Amplify Console
    ैདྷͷύΠϓϥΠϯ Amplify Console
    CodeCommit
    Vue.js
    CodeBuild
    CodeCommit
    CloudFront Route53
    S3
    GitHub
    Jenkins
    CircleCI
    Build
    Deploy
    Vue.js Vue.js
    GitHub
    CDN
    1. CodeCommit Λར༻͢Δ৔߹ 2. GitHub Λར༻͢Δ৔߹ CodeCommitͱGitHubͰϑϩʔʹมԽͳ͠
    HTTPS
    HTTPS
    ɾCodeCommit/GitHub/GitLab/BitBucketʹରԠ
    ɾCodeBuild΍S3ɺCloudFrontͷઃఆ͕ෆཁ
    ɾιʔείʔυͷมߋ͕Ϛʔδ͞ΕΔͱύΠϓϥΠϯ͕૸Δ
    ʲQiitaʳVue.jsʴAmplifyΛۦ࢖͢Ε͹ϞμϯͳWebΞϓϦΛ20෼Ͱެ։Ͱ͖Δ
    https://qiita.com/shunp/items/d491adfadd570f66f990
    Route53

    View Slide

  27. Future

    View Slide

  28. ϒϩοΫνΣʔϯؔ࿈ϓϩμΫτνʔϜͷࠓޙ
    ɾۚ༥ྖҬҎ֎ͷσʔλ؅ཧ
    ɾDEXʢ෼ࢄܕऔҾॴʣΛ༻͍ͨαΠυνΣʔϯͷݚڀ
    ɾಠࣗτʔΫϯͷ࡞੒ͱτʔΫϯΤίϊϛʔͷӡӦ
    ɾAR/VRΛ࢖ͬͨମײܕΠϯλϑΣʔεͷಋೖ
    ʲهࣄʳERC1155͕Մೳʹ͢ΔήʔϜԽ͞Εͨੈք؍ͷઃܭ
    https://lab.stir.network/2018/11/08/design-of-a-gaming-worldview-that-erc1155-enables/

    View Slide

  29. “Simplex Tech Blog” ͸͡Ί·ͨ͠!
    https://blog.simplex.ne.jp
    2/23(౔) JAWS DAYS 2019
    10:10 ~ αʔόϨεͰಈ͔͢τʔΫϯൃߦϓϥοτϑΥʔϜ
    https://jawsdays2019.jaws-ug.jp/session/1564/
    Ҿ͖ଓ͖৘ใൃ৴
    ଓ͚͍͖ͯ·͢ʂ

    View Slide