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

IoTデバイスの疑似データ送信システムにおける サーバーレスなログ処理機構の試行錯誤

A9f8382f6cdd535370c723eba233a8f7?s=47 Keita Mohri
December 14, 2019

IoTデバイスの疑似データ送信システムにおける サーバーレスなログ処理機構の試行錯誤

ServerlessDays Fukuoka 2019

A9f8382f6cdd535370c723eba233a8f7?s=128

Keita Mohri

December 14, 2019
Tweet

Transcript

  1. *P5σόΠεͷٙࣅσʔλૹ৴γεςϜʹ͓͚Δ αʔόʔϨεͳϩάॲཧػߏͷࢼߦࡨޡ 4FSWFSMFTT%BZT'VLVPLB  4BU ໟརܒଠ

  2.  ‣ 'VTJD$P -UE ‣ ϓϦϯγύϧΤϯδχΞNPDLNPDLνʔϜϦʔμʔ ‣ "84 403"$0. (P

    3VCZ ‣ ਺࣌ؒͰ׬શཧղʂΘΓͱΰπ͍,VCFSOFUFTϋϯζΦϯʂʂ w IUUQTRJJUBDPN,UB.JUFNTDFDEEGEE ໟརܒଠʢ΋͏Γ͚͍ͨʣ
  3. *P5σόΠεͷٙࣅσʔλૹ৴γεςϜʹ͓͚Δ αʔόʔϨεͳϩάॲཧػߏͷࢼߦࡨޡ

  4.  *P5։ൃऀ޲͚ͷٙࣅσʔλੜ੒ɾૹ৴αʔϏε NPDLNPDL 8FCίϯιʔϧ͔Β੍ޚ Backend ٙࣅσʔλ Ծ૝σόΠε NPDL ࣮σόΠεͳ͠Ͱ #BDLFOEͷ

    ςετ΍ෛՙࢼݧ͕ ࣮ࢪՄೳʹ
  5. ը໘Πϝʔδ  ࢥ͍௨ΓͷϑΥʔϚοτͰ+40/σʔλΛੜ੒ Ծ૝σόΠεͷεςʔλεͱͦͷมԽΛ೚ҙʹઃఆ ͞·͟·ͳ࣌ܥྻσʔλੜ੒ػೳ

  6. *P5σόΠεͷٙࣅσʔλૹ৴γεςϜʹ͓͚Δ αʔόʔϨεͳϩάॲཧػߏͷࢼߦࡨޡ

  7. γεςϜશମ૾ 

  8.  PublicSubnet Web Web WebίϯιʔϧͰ ಈ࡞Λઃఆ mockΛૢ࡞ PrivateSubnet RDS

  9.  PublicSubnet PrivateSubnet Web Web Worker Worker WebίϯιʔϧͰ ಈ࡞Λઃఆ mockΛૢ࡞

    mockૢ࡞JobΛ ൃߦ PrivateSubnet RDS
  10.  PublicSubnet PrivateSubnet S3 Bucket (Lot) S3 Bucket (Binary) Web

    Web Worker Worker mockૢ࡞JobΛ ൃߦ ઃఆϑΝΠϧΛ Ξοϓϩʔυ mockαʔόʔʹ ૢ࡞ࢦࣔ PrivateSubnet Mock Mock Mock Mock Mock Mock WebίϯιʔϧͰ ಈ࡞Λઃఆ mockΛૢ࡞ PrivateSubnet RDS
  11.  PublicSubnet PrivateSubnet S3 Bucket (Lot) S3 Bucket (Binary) Web

    Web Worker Worker mockૢ࡞JobΛ ൃߦ ઃఆϑΝΠϧΛ Ξοϓϩʔυ mockαʔόʔʹ ૢ࡞ࢦࣔ ઃఆϑΝΠϧ όΠφϦΛDL PrivateSubnet Mock Mock Mock Mock Mock Mock WebίϯιʔϧͰ ಈ࡞Λઃఆ mockΛૢ࡞ PrivateSubnet RDS
  12.  PublicSubnet PrivateSubnet S3 Bucket (Lot) S3 Bucket (Binary) Web

    Web Worker Worker mockૢ࡞JobΛ ൃߦ ઃఆϑΝΠϧΛ Ξοϓϩʔυ mockαʔόʔʹ ૢ࡞ࢦࣔ ઃఆϑΝΠϧ όΠφϦΛDL PrivateSubnet Mock Mock Mock Mock Mock Mock WebίϯιʔϧͰ ಈ࡞Λઃఆ mockΛૢ࡞ mockϓϩηε ىಈ PrivateSubnet RDS
  13.  PublicSubnet PrivateSubnet S3 Bucket (Lot) S3 Bucket (Binary) Web

    Web Worker Worker mockૢ࡞JobΛ ൃߦ ઃఆϑΝΠϧΛ Ξοϓϩʔυ mockαʔόʔʹ ૢ࡞ࢦࣔ ઃఆϑΝΠϧ όΠφϦΛDL PrivateSubnet Mock Mock Mock Mock Mock Mock mockϓϩηε ىಈ WebίϯιʔϧͰ ಈ࡞Λઃఆ mockΛૢ࡞ PrivateSubnet mockՔಇঢ়گ Λ௨஌ RDS ϩάॲཧػߏ ʁ Log Storage ϩάૹ৴ ϩάอଘ
  14.  PublicSubnet PrivateSubnet S3 Bucket (Lot) S3 Bucket (Binary) Web

    Web Worker Worker mockૢ࡞JobΛ ൃߦ ઃఆϑΝΠϧΛ Ξοϓϩʔυ mockαʔόʔʹ ૢ࡞ࢦࣔ ઃఆϑΝΠϧ όΠφϦΛDL PrivateSubnet Mock Mock Mock Mock Mock Mock mockϓϩηε ىಈ WebίϯιʔϧͰ ಈ࡞Λઃఆ mockΛૢ࡞ PrivateSubnet mockՔಇঢ়گ Λ௨஌ RDS ϩάॲཧػߏ ʁ Log Storage ϩάૹ৴ ϩάอଘ Mock Mock [ mock ] Go੡όΠφϦ͔Βཱͯͨ Ծ૝σόΠε໾ϓϩηε [ tower ] Go੡όΠφϦ͔Βཱͯͨ mock؅ཧϓϩηε
  15. ϩάॲཧػߏ 

  16.  <*/165> ֤NPDLϓϩηε͕ ٙࣅσʔλૹ৴ͷͨͼʹ ϩάΛੜ੒ɾૹ৴ <065165> Կ͔͠ΒͷετϨʔδʹ ੜϩάΛอଘ <065165> ϩάΛղੳͯ͠

    NPDLͷՔಇঢ়ଶΛ௨஌ PrivateSubnet Worker Worker PrivateSubnet Mock Mock Mock Mock Mock Mock ϩάॲཧػߏ ʁ Log Storage
  17. ը໘ͰݟΔͱʜ  <065165>NPDLͷՔಇঢ়ଶΛදࣔ <065165>อଘͨ͠ϩάΛදࣔάϥϑදࣔ

  18. *P5σόΠεͷٙࣅσʔλૹ৴γεςϜʹ͓͚Δ αʔόʔϨεͳϩάॲཧػߏͷࢼߦࡨޡ

  19. ϙΠϯτ 

  20.  PrivateSubnet Worker Worker PrivateSubnet Mock Mock Mock Mock Mock

    Mock ϩάॲཧػߏ ʁ Log Storage NPDLͷՔಇ਺͸ ࠷େͰສ୆ Քಇ਺͔Β ͍͖ͳΓສʹͳΔ͜ͱ΋
  21.  PrivateSubnet Worker Worker PrivateSubnet Mock Mock Mock Mock Mock

    Mock ϩάॲཧػߏ ʁ Log Storage NPDLͷՔಇ਺͸ ࠷େͰສ୆ Քಇ਺͔Β ͍͖ͳΓສʹͳΔ͜ͱ΋ NPDLͷσʔλૹ৴ִؒ͸ ࠷খͰඵ
  22.  ૹ৴ͨٙ͠ࣅσʔλͷ αΠζʹΑͬͯ ϩάͷαΠζ͸େ͖͘มಈ ,#ະຬd਺े,# PrivateSubnet Worker Worker PrivateSubnet Mock

    Mock Mock Mock Mock Mock ϩάॲཧػߏ ʁ Log Storage NPDLͷՔಇ਺͸ ࠷େͰສ୆ Քಇ਺͔Β ͍͖ͳΓສʹͳΔ͜ͱ΋ NPDLͷσʔλૹ৴ִؒ͸ ࠷খͰඵ
  23.  ૹ৴ͨٙ͠ࣅσʔλͷ αΠζʹΑͬͯ ϩάͷαΠζ͸େ͖͘มಈ ,#ະຬd਺े,# NPDLͷՔಇঢ়ଶΛ ϦΞϧλΠϜʹ൓ө͍ͨ͠ PrivateSubnet Worker Worker

    PrivateSubnet Mock Mock Mock Mock Mock Mock ϩάॲཧػߏ ʁ Log Storage NPDLͷՔಇ਺͸ ࠷େͰສ୆ Քಇ਺͔Β ͍͖ͳΓສʹͳΔ͜ͱ΋ NPDLͷσʔλૹ৴ִؒ͸ ࠷খͰඵ
  24.  ૹ৴ͨٙ͠ࣅσʔλͷ αΠζʹΑͬͯ ϩάͷαΠζ͸େ͖͘มಈ ,#ະຬd਺े,# NPDLͷՔಇঢ়ଶΛ ϦΞϧλΠϜʹ൓ө͍ͨ͠ PrivateSubnet Worker Worker

    PrivateSubnet Mock Mock Mock Mock Mock Mock ϩάॲཧػߏ ʁ Log Storage NPDLͷՔಇ਺͸ ࠷େͰສ୆ Քಇ਺͔Β ͍͖ͳΓສʹͳΔ͜ͱ΋ NPDLͷσʔλૹ৴ִؒ͸ ࠷খͰඵ Ұఆظ͕ؒܦաͨ͠Β ϩάΛফ͍ͨ͠
  25.  ૹ৴ͨٙ͠ࣅσʔλͷ αΠζʹΑͬͯ ϩάͷαΠζ͸େ͖͘มಈ ,#ະຬd਺े,# NPDLͷՔಇ਺ʹΑͬͯ අ༻΋εέʔϧ͍ͤͨ͞ NPDLͷՔಇঢ়ଶΛ ϦΞϧλΠϜʹ൓ө͍ͨ͠ PrivateSubnet

    Worker Worker PrivateSubnet Mock Mock Mock Mock Mock Mock ϩάॲཧػߏ ʁ Log Storage NPDLͷՔಇ਺͸ ࠷େͰສ୆ Քಇ਺͔Β ͍͖ͳΓສʹͳΔ͜ͱ΋ NPDLͷσʔλૹ৴ִؒ͸ ࠷খͰඵ Ұఆظ͕ؒܦաͨ͠Β ϩάΛফ͍ͨ͠
  26.  ͋ͳͨͳΒͲ͏͢Δʁ

  27. /PX-PBEJOH powerd by ʮ࣮ࣸ൛ϞΫ͑΋ΜJO&YQMPSFSdѪɾ͓΅͍͑ͯ·͔͢dʯ https://speakerdeck.com/ktam1219/shi-xie-ban-mokuemon-in-explorer-ai-oboeteimasuka

  28. ୈ̍ੈ୅

  29. ‣ NPDLαʔόʔʹ͸Կ΋Πϯετʔϧ͠ͳ͍  ؂ࢹͱ͔ΞοϓάϨʔυͱ͔͕໘౗ ‣ ϩάॲཧػߏʹωοτϫʔΫଳҬΛۃྗׂ͔ͳ͍  ϝΠϯػೳͷٙࣅσʔλૹ৴ʹ࢖͍͍ͨ ୈੈ୅ํ਑ 

  30.  PrivateSubnet Worker Worker PrivateSubnet Mock Mock Mock Mock Mock

    Mock S3 Bucket S3 Bucket Lambda ૹ৴ຖʹϩάΛ ॻ͖ग़͢ 1෼ຖʹશmockͷ ϩάΛूܭ S3΁ͷputͰ Lambda͕ൃՐ mockͷঢ়ଶΛ HTTPͰ఻͑Δ mockຖʹϩάΛ όϥͯ͠อଘ
  31. ୈੈ୅݁Ռ  (PPE #BE ‣ NPDLαʔόʔʹԿ΋Πϯετʔϧ ͠ͳ͍͍ͯ͘ ‣ ϩάॲཧػߏʹׂ͘ωοτϫʔΫଳ Ҭ͕࠷௿ݶ

    ‣ ϩάͷ఻ୡʹ͕͔͔࣌ؒΔ ‣ ϩάͷू໿෼ղॲཧ͕͋ΔͨΊ
 ϩάͷαΠζ͕େ͖͘Ͱ͖ͳ͍ ‣ ҟৗܥ·Ͱߟ͑ΔͱUPXFSͰͷϩά ू໿ॲཧ͕ෳࡶʹͳΔ ‣ 4͔ΒظؒࢦఆͰϩάΛऔΓʹ͍͘ ‣ XPSLFSʹNPDLঢ়ଶΛ఻͑Δͱ͜ Ζ͕ಉظత w ࣦഊ࣌ͷ࠶ૹॲཧΛͤͶ͹
  32. ୈੈ୅݁Ռ  (PPE #BE ‣ NPDLαʔόʔʹԿ΋Πϯετʔϧ ͠ͳ͍͍ͯ͘ ‣ ϩάॲཧػߏʹׂ͘ωοτϫʔΫଳ Ҭ͕࠷௿ݶ

    ‣ ϩάͷ఻ୡʹ͕͔͔࣌ؒΔ ‣ ϩάͷू໿෼ղॲཧ͕͋ΔͨΊ
 ϩάͷαΠζ͕େ͖͘Ͱ͖ͳ͍ ‣ ҟৗܥ·Ͱߟ͑ΔͱUPXFSͰͷϩά ू໿ॲཧ͕ෳࡶʹͳΔ ‣ 4͔ΒظؒࢦఆͰϩάΛऔΓʹ͍͘ ‣ XPSLFSʹNPDLঢ়ଶΛ఻͑Δͱ͜ Ζ͕ಉظత w ࣦഊ࣌ͷ࠶ૹॲཧΛͤͶ͹ ͳΜ͔μα͍ʂ
  33. /PX-PBEJOH

  34. ୈ̎ੈ୅

  35. ‣ NPDLαʔόʔʹ͸Կ΋Πϯετʔϧ͠ͳ͍  ΍ͬͺΓ؂ࢹͱ͔ΞοϓάϨʔυͱ͔͕໘౗ ‣ ϩάॲཧػߏʹωοτϫʔΫଳҬΛ͋Δఔ౓ׂ͜͏  ଍Γͳ͔ͬͨΒ͓ۚͷྗʹཔͬͯੜ͖͍ͯ͜͏ ‣ 4͔Β%ZOBNP%#ʹม͑ͯΈΑ͏

     %ZOBNP%#ͳΒ֤NPDL͔Β௚઀ϩάΛೖΕͯ΋େৎ෉ͦ͏  ΫΤϦ͕ॻ͚ΔͷͰอଘͨ͠ϩά͕औಘ͠΍͍͢  Ͱ΋ΩϟύγςΟͷ؅ཧ͕໘౗ʜ ୈ̎ੈ୅ํ਑ 
  36. %ZOBNP%#0O%FNBOEര஀ʂ  !SF*OWFOU

  37. %ZOBNP%#0O%FNBOEര஀ʂ 

  38. ࢲͷͨΊͷΞοϓσʔτ͔ 

  39. ‣ ैདྷͷ%ZOBNP%#Ͱ͸ɺΩϟύγςΟϢχοτ ಡΈॻ͖ੑೳ Λ
 ͋Β͔͡Ίઃఆ͓ͯ͘͠ඞཁ͕͋ͬͨ  8$6 8SJUF$BQBDJUZ6OJU  

    3$6 3FBE$BQBDJUZ6OJU  ‣ ΩϟύγςΟϢχοτͷΦʔτεέʔϦϯά͸ઃఆͰ͖Δ͕ɺ
 ॠؒతʹεέʔϧ͢ΔΘ͚Ͱ͸ͳ͍ ෼ऑ͔͔Δ  ‣ 0O%FNBOEϞʔυͰ͸ɺ࢖ͬͨΩϟύγςΟϢχοτʹରͯ͠
 ैྔ՝ۚͯ͘͠ΕΔʂ  ͋Β͔͡ΊΩϟύγςΟϢχοτΛઃఆ͓ͯ͘͠ඞཁ͕ͳ͍ʂ %ZOBNP%#0O%FNBOEര஀ʂ 
  40.  PrivateSubnet Worker Worker PrivateSubnet Mock Mock Mock Mock Mock

    Mock DynamoDB (On-Demand) Lambda SNS SQS ֤mock͕௚઀ DynamoDBʹϩάΛ ॻ͖ࠐΉ Worker͔ΒσʔλΛ औΓʹߦ͘͜ͱͰ ඇಉظʹσʔλΛߋ৽ DynamoDB Streamsʹ ΑͬͯLambdaΛൃՐ ੜϩά͸DynamoDBΛࢀর TTLͰҰఆظؒܦաޙʹ࡟আ
  41. ୈੈ୅݁Ռ  (PPE #BE ‣ NPDLՔಇঢ়ଶͷ఻ୡ͕΄΅ϦΞϧ λΠϜ ‣ ػߏ͕ൺֱత؆୯ʹͳͬͨ ‣

    ϩάͷू໿෼ղॲཧ͕ͳ͘ͳͬͨ ͷͰɺେ͖Ίͷϩά΋ૹΕΔΑ͏ʹ ‣ ϩάॲཧػߏʹׂ͘ωοτϫʔΫ
 ଳҬ͕େ͖͘ͳͬͨ ‣ %ZOBNP%#0O%FNBOE͸
 ΰϦΰϦ࢖͏ͱߴ͍ʜ
  42. ୈੈ୅݁Ռ  (PPE #BE ‣ NPDLՔಇঢ়ଶͷ఻ୡ͕΄΅ϦΞϧ λΠϜ ‣ ػߏ͕ൺֱత؆୯ʹͳͬͨ ‣

    ϩάͷू໿෼ղॲཧ͕ͳ͘ͳͬͨ ͷͰɺେ͖Ίͷϩά΋ૹΕΔΑ͏ʹ ‣ ϩάॲཧػߏʹׂ͘ωοτϫʔΫ
 ଳҬ͕େ͖͘ͳͬͨ ‣ %ZOBNP%#0O%FNBOE͸
 ΰϦΰϦ࢖͏ͱߴ͍ʜ #JLLVSJ ‣ ࢥͬͨҎ্ʹॠؒతʹεέʔϧ͢Δ w ਺෼Ͱ<8$6>Ͱ΋0,
  43. /PX-PBEJOH

  44. ୈ̏ੈ୅

  45. ‣ NPDLαʔόʔʹ͸Կ΋Πϯετʔϧ͠ͳ͍  ΍ͬͺΓ؂ࢹͱ͔ΞοϓάϨʔυͱ͔͕໘౗ ‣ ϩάॲཧػߏʹωοτϫʔΫଳҬΛ͋Δఔ౓ׂ͜͏  ଍Γͳ͔ͬͨΒ͓ۚͷྗʹཔͬͯੜ͖͍ͯ͜͏ ‣ %ZOBNP%#0O%FNBOE͸୤٫͠Α͏

     ͓ۚʹ΋ݶք͕͋ΔΑͶ ୈ̏ੈ୅ํ਑ 
  46. ‣ ΩϟύγςΟ͕ৗʹେ͖͘มಈ͢Δ৔߹͸༗ޮ ‣ NPDLNPDLͰ΋มಈ͸͢Δ͕ɺ֤NPDL͕ॻ͖ࠐΉྔ͸Ұఆ  ؤுΕ͹1SPWJTJPOFE͕࢖͑ΔͷͰ͸ʁ ΰϦΰϦ%ZOBNP%#0O%FNBOE  ΋ͣͬ͠ͱҰఆͰ࢖͍ଓ͚ͨΒʜ 0O%FNBOE

    1SPWJTJPOFE ར༻͍ͯ͠ΔΩϟύγςΟͷ໿ഒΛ ϓϩϏδϣϯ͍ͯ͠Δঢ়ଶ ʹ
  47. ࢲͷͨΊͷΞοϓσʔτ ͡Όͳ͔͔ͬͨ΋ 

  48. ‣ ىಈ࣌ʹඞཁͳΩϟύγςΟΛ༧ଌͰ͖Ε͹࣮ݱ͢Δ  ૹ৴σʔλαΠζʹΑͬͯϩάͷαΠζ͕େ͖͘มಈ  ૹ৴σʔλαΠζΛ༧ଌ͢Δͷ͸ࠔ೉ %ZOBNP%#0O%FNBOE͔Βͷ୤٫ 

  49. ը໘ͰݟΔͱʜʢ࠶ܝʣ  <065165>NPDLͷՔಇঢ়ଶΛදࣔ <065165>อଘͨ͠ϩάΛදࣔάϥϑදࣔ

  50. ը໘ͰݟΔͱʜʢ࠶ܝʣ  <065165>NPDLͷՔಇঢ়ଶΛදࣔ <065165>อଘͨ͠ϩάΛදࣔάϥϑදࣔ ૹ৴σʔλͷ৘ใΛ ࢖͍ͬͯΔͷ͸͚ͩ͜͜ ผͷػߏͰอଘͯ͠ΈΑ͏

  51. ‣ ෳ਺ͷαʔόʔ͔ΒϚ΢ϯτͰ͖Δڞ༗ετϨʔδ  ωοτϫʔΫϑΝΠϧγεςϜͱͯ͠Ϛ΢ϯτ ‣ ༰ྔ͕ࣗಈͰεέʔϧ͢Δ ‣ εϧʔϓοτ੍͕ޚՄೳ  όʔετεϧʔϓοτϑΝΠϧγεςϜͷαΠζʹ߹Θͤͯεέʔϧ

     ϓϩϏδϣϯυεϧʔϓοτεϧʔϓοτΛ௚઀ઃఆ ‣ ෳ਺ͷ";͔ΒΞΫηεՄೳ "NB[PO&MBTUJD'JMF4ZTUFN &'4 
  52.  PrivateSubnet Worker Worker PrivateSubnet Mock Mock Mock Mock Mock

    Mock DynamoDB (Provisioned) Lambda SNS SQS DynamoDBʹ͸ mockঢ়ଶߋ৽༻ͷϩά EFSʹ͸׬શͳϩάΛ ॻ͖ࠐΉ ΩϟύγςΟ͸ mockىಈ࣌ʹௐ੔ EFS
  53. ‣ ΩϟύγςΟ͸૿΍͢ํ޲ʹ͸ճ਺੍ݶ͕ແ͍͚ͲɺݮΒ͢ํ޲ ʹ͸ճ਺੍ݶ͕͋Δ  NPDLͷՔಇ୯Ґ͝ͱʹඞཁͳ8$6Λࢉग़ͯ͠௥Ճ  DSPOͰ࣌ؒຖʹՔಇ୯Ґͷ8$6ͷ߹ܭ஋Λग़ͯ͠ద༻ %ZOBNP%#ͷ8$6ߋ৽ 

  54. ୈੈ୅݁Ռ  (PPE #BE ‣ %ZOBNP%#ͷඅ༻͕࠷దԽ͞Εͨ ‣ ϩάॲཧػߏʹׂ͘ωοτϫʔΫ
 ଳҬ͕΋ͬͱେ͖͘ͳͬͨ ‣

    Ұఆ࣌ؒܦաޙʹ&'4͔ΒσʔλΛ ࡟আ͢Δͷ͕खؒ ‣ &'4΋*0Λ૿΍ͦ͏ͱ͢ΔͱͦΕͳ Γʹඅ༻͕ʜ
  55. ୈੈ୅݁Ռ  (PPE #BE ‣ %ZOBNP%#ͷඅ༻͕࠷దԽ͞Εͨ ‣ ϩάॲཧػߏʹׂ͘ωοτϫʔΫ
 ଳҬ͕΋ͬͱେ͖͘ͳͬͨ ‣

    Ұఆ࣌ؒܦաޙʹ&'4͔ΒσʔλΛ ࡟আ͢Δͷ͕खؒ ‣ &'4΋*0Λ૿΍ͦ͏ͱ͢ΔͱͦΕͳ Γʹඅ༻͕ʜ :BSBLBTIJ ‣ ςετ؀ڥͰ8$6໭Βͣߴֹ੥ٻ
  56. /PX-PBEJOH

  57. ୈ̐ੈ୅

  58. ‣ NPDLαʔόʔʹԿ͔ΛΠϯετʔϧ͢ΔͷΛڐ༰͠Α͏  શମతʹ͜ͳΕ͖ͯͨͷͰɺࠓͳΒ͍͚Δؾ͕͢Δ ‣ ࠓͦ͜,JOFTJTͱ޲͖߹͓͏  γϟʔυ͕ෳ਺ʹͳΔͱͪΐͬͱେม͚ͩͲ ‣ ૣ͘΋&'4͔Β୤٫͍ͨ͠ؾ࣋ͪ

     ωοτϫʔΫଳҬͷϘτϧωοΫʹͳΓ͕ͪ  ͓ۚͰղܾͰ͖Δ͚Ͳ͓ۚ͸େࣄ  ϩάͷͨΊʹNPDL͔ΒϲॴʹσʔλΛૹ͍ͬͯΔͷ΋͔ͬ͜ѱ͍ ୈ̐ੈ୅ํ਑ 
  59. ‣ ,JOFTJT%BUB4USFBNTʹσʔλΛ౤͛ࠐΉϥΠϒϥϦ ‣ ͋Δఔ౓σʔλΛ·ͱΊͯૹͬͯ͘ΕΔ  γϟʔυ͋ͨΓͷॻ͖ࠐΈ੍ݶΛΫϦΞ͠΍͘͢ͳΔ w .#ඵ w ϨίʔυඵίϨ

     ωοτϫʔΫଳҬతʹ΋΍͞͠Ί  -BNCEB࣮ߦճ਺తʹ΋΍͞͠Ί ‣ ૹ৴͕ඇಉظʹͳΔ ‣ qVFOUEͱ૊Έ߹Θͤͯ࢖͏ͱ΍Γ΍͍͢  BXTqVFOUQMVHJOLJOFTJT "NB[PO,JOFTJT1SPEVDFS-JCSBSZ ,1- 
  60. ‣ ͦͷ໊ͷ௨ΓϩάΛ؅ཧͯ͘͠ΕΔ΍ͭ  $MPVE8BUDI-PHT*OTJHIUTͰϩάσʔλΛ෼ੳ͢Δ͜ͱ΋Մೳ  อଘظؒ΋ઃఆͰ͖Δʂ ‣ ୈੈ୅ͷͱ͖ʹҰճݕ౼͚ͯͨ͠Ͳ
 ੍ݶ಺༰Λצҧ͍͍ͯͯ͠Ϙπʹʜʂ ‣

    ϩά౤ೖස౓ͷ੍ݶ؇࿨͕ඞཁ  σϑΥϧτͰ͸݅ඵͷτϥϯβΫγϣϯ BQOPSUIFBTU "NB[PO$MPVE8BUDI-PHT 
  61.  PrivateSubnet Worker Worker PrivateSubnet Mock Mock Mock Mock Mock

    Mock Lambda SNS SQS Kinesis
 Data Streams KPLͰσʔλΛ ·ͱΊͯૹ৴ CloudWatch Logs ΞΧ΢ϯτ͝ͱʹLogGroup mock͝ͱʹLogStream
  62. ୈੈ୅݁Ռ  (PPE #BE ‣ &'4͔Βͷ୤٫ ‣ ϩάॲཧػߏʹׂ͘ωοτϫʔΫଳ Ҭ͕খ͘͞ͳͬͨ

  63. ୈੈ୅݁Ռ  (PPE #BE ‣ &'4͔Βͷ୤٫ ‣ ϩάॲཧػߏʹׂ͘ωοτϫʔΫଳ Ҭ͕খ͘͞ͳͬͨ *LLB

    ‣ ͍ͭʹNPDLαʔόʔʹΠϯετʔ ϧͨ͠ ‣ ,1-ͰϩάΛू໿ͯ͠ૹΔͨΊɺ NPDLঢ়ଶͷ఻ୡϥά͕ŧŔŕŪũƄſ
  64. /PX-PBEJOH

  65. ୈੈ୅ʁ

  66. ظ଴ͷ৽੕"NB[PO5JNFTUSFBN  !SF*OWFOU

  67. ‣ ߴ଎Ͱεέʔϥϒϧͳ׬શϚωʔδυܕͷ࣌ܥྻσʔλϕʔε  ॻ͖ࠐΈΫΤϦετϨʔδʹΑΔैྔ՝ۚ  *0ͷੑೳ ੍ݶ ͸·ͩग़͍ͯͳ͍ʜ  σʔλอଘظ͕ؒઃఆͰ͖ΔͷͰ࡟আॲཧ΋ඞཁͳ͍ʁ

    ظ଴ͷ৽੕"NB[PO5JNFTUSFBN 
  68. SF*OWFOU΋ ऴΘͬͨࠓʂ 

  69. 

  70. 

  71. /PX-PBEJOH

  72. ·ͱΊ

  73. ‣ େྔͷNPDL͔Βൃੜ͢ΔϩάΛॲཧ͢ΔػߏͷมભΛݟ͖ͯͨ ‣ ͳʹ͛ʹશ෦TFSWFSMFTT  අ༻΋NPDLͷՔಇ਺ʹԠͯ͡εέʔϧ͢Δ ෦෼͕ଟ͍  ‣ ࣗ෼Ͱ͸࡞Δͷ͕೉͍͠ػߏ͕ͨ͘͞Μ༻ҙ͞Ε͍ͯͯ


    ؾܰʹࢼߦࡨޡ͕Ͱ͖Δͷ͸Ϋϥ΢υͳΒͰ͸  ύζϧͷΑ͏ʹ͍Ζ͍Ζ૊Έ߹Θ͍ͤͯ͘ͷ͸ָ͍͠ʂ ‣ େن໛ͳσʔλΛѻ͏ͱ͖ʹ࠷ޙʹϘτϧωοΫʹͳΔͷ͸΍ͬͺΓ*0 ·ͱΊ 
  74. ͝ਗ਼ௌ
 ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ NPDLNPDL͕ ؾʹͳΔํ͸ޙΖͷϒʔε΁ʂ