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

SORACOM Technology Camp 2020 - Day2 Deep Dive: IoTデバイス設計におけるベストプラクティス /technology-camp2020-day2-s08

SORACOM
PRO
November 18, 2020

SORACOM Technology Camp 2020 - Day2 Deep Dive: IoTデバイス設計におけるベストプラクティス /technology-camp2020-day2-s08

多くのIoTデバイスは一度設置されると、問題が起きた際に現地に駆けつけて調査や対応が物理的に難しくなります。また、デバイスの数が増えてくると個別の対応はより困難になります。理想的なIoTデバイスは、ハードウェアの故障やソフトウェアのトラブル、回線の一時的な障害に対して自律的な回復手段を持っていることが求められます。

本セッションではそういったデバイスを実装するために考慮すべきプラクティスをご紹介します。

株式会社ソラコム
ソリューションアーキテクト 小梁川 貴史

SORACOM
PRO

November 18, 2020
Tweet

More Decks by SORACOM

Other Decks in Technology

Transcript

  1. %FFQ%JWF*P5σόΠεઃܭʹ͓͚Δ
    ϕετϓϥΫςΟε
    ιϦϡʔγϣϯΞʔΩςΫτɿখྊ઒

    View Slide

  2. ຊ೔ͷϋογϡλά
    TPSBDPN
    !403"$0.@13
    IUUQTXXXGBDFCPPLDPNTPSBDPNKQ

    View Slide

  3. ࣗݾ঺հ
    גࣜձࣾιϥίϜ ιϦϡʔγϣϯΞʔΩςΫτ
    খྊ઒ و࢙ ͜΍ͳ͕Θ ͔ͨ͠

    ܦྺ
    • 4*ձࣾͰ։ൃΠϯϑϥઃܭɺߏஙͳͲ෯޿͘ܦݧ
    • ిػϝʔΧʔͰࣗࣾαʔϏεɺࣾ಺ڞ௨ϓϥοτϑΥʔϜͷ։ൃɺӡ༻
    • ֎ࢿܥΫϥ΢υͷιϦϡʔγϣϯΞʔΩςΫτͱͯ͠
    ύʔτφʔ୲౰ *P5εϖγϟϦετϓϩτλΠϐϯά

    View Slide

  4. ౰ηογϣϯʹ͍ͭͯ
    • ͓࿩͢Δ͜ͱ͠ͳ͍͜ͱ
    • ͜͜Ͱ͓࿩͢ΔσόΠε͸σόΠε্Ͱಈ͘ιϑτ΢ΣΞʹ͍ͭͯߟ͑Δ
    ΂͖ඇػೳཁ݅Λத৺ʹ͓࿩͠·͢ɻϋʔυ΢ΣΞతͳσόΠε
    ηϯαʔͳͲͷ࿩͸௚઀తʹ͸ग़͖ͯ·ͤΜɻ
    • σόΠεͱந৅తͳදݱͱͳΓ·͕͢ɺ*P5σόΠεͱͯ͠௨৴Λߦ͏΋
    ͷΛࢦͯ͠ར༻͍ͯ͠·͢ɻʢ*P5ήʔτ΢ΣΠ΍#$ͷ੡඼ʣ
    • ඞͣ͠΋ղͱͳ͍ͬͯΔ΋ͷͰ͸ͳ͘ɺ๨Ε͕ͪͳݕ౼߲໨΍ͦΕʹର͢
    Δରࡦྫͱͯ͠͝঺հ͠·͢ɻ
    • ର৅ͷํ
    • *P5γεςϜΞʔΩςΫτ
    • σόΠεઃܭऀ
    • *P5γεςϜʹؔΘΔόοΫΤϯυٕज़ऀ

    View Slide

  5. "HFOEB
    • ϓϩϏδϣχϯά
    • ঢ়ଶ؅ཧ
    • ϦϞʔτίϚϯυϦϞʔτϝϯςφϯε
    • ෼ࢄ
    • ·ͱΊ

    View Slide

  6. "HFOEB
    • ϓϩϏδϣχϯά
    • ঢ়ଶ؅ཧ
    • ϦϞʔτίϚϯυϦϞʔτϝϯςφϯε
    • ෼ࢄ
    • ·ͱΊ

    View Slide

  7. ϓϩϏδϣχϯά
    σόΠεΛར༻͢Δ·Ͱͷ޻ఔͰߟ͑Δ΂͖಺༰ʹ͍ͭͯ੔ཧ͠·͢ɻ
    ҎԼྫͰ͕͢ɺॳظઃఆ෦෼͸ɺόοΫΤϯυ։ൃऀͱͷဃ཭ΛੜΈ΍
    ͍ͨ͢ΊʹɺશମΛઃܭ্ͨ͠Ͱػೳઃܭɺ෼୲Λݕ౼͢Δඞཁ͕͋Γ
    ·͢ɻ
    ###$੡඼ͷ޻৔ੜ࢈ηοτΞοϓ͔Βར༻͞ΕΔ·Ͱͷϑ
    ϩʔ
    ֎෦͔Βߪೖͨ͠(BUFXBZ΁ͷॳظηοτΞοϓ
    ࣮σόΠεͱόοΫΤϯυαʔϏε΁ͷొ࿥

    View Slide

  8. Α͋͘Δٞ࿦
    • ޻৔ͰͰ͖Δ͜ͱͷൣғͷ֬ೝ
    • ೝূ৘ใͱͳΔݸผೝূݤͷઃఆ͸೉͍͜͠ͱ͕ଟ͍
    • ෺ཧͷػثͱόοΫΤϯυΫϥ΢υαʔϏεͷݻ༗ࣝผࢠ
    %#ͱͷඥ෇͚ઃఆ
    • ੡඼ग़ՙલͷςετɺग़ՙ·Ͱͷϑϩʔ
    • ࣮ࡍͷՔಇςετ͕͋Δ৔߹ɺ՝͕ۚ࢝·ͬͯ͠·͏
    403"$0.ͷ4*.΋ಉ༷ɺάϩʔόϧ4*.Λ͝ར༻͍ͨͩ͘
    ͜ͱͰதஅதεςʔλεͰແବΛল͚ΔՄೳੑ΋͋Γ·͢

    View Slide

  9. ղܾࡦ
    • ϒʔτετϥοϐϯάॲཧ
    • σόΠεॳճىಈ࣌ͷ௨৴Ͱ޻৔ग़ՙͰઃఆͰ͖ͳ͍ॲཧΛ
    σόΠεଆͷॲཧͱͯ͠࡞ΓࠐΉ
    • 403"$0. ϝλσʔλαʔϏε΍Ϋϥ΢υαʔϏεͷ
    ূ໌ॻൃߦػೳΛར༻
    • ࡏݿظ͕ؒ͋Δ੡඼
    • ར༻։࢝ΛτϨʔεͰ͖ΔΑ͏ͳΠϕϯτ؅ཧɺ౷ܭػೳΛར
    ༻ɻ403"$0.4*.Λར༻͢Δ৔߹͸403"$0.*P54*.ɺ
    Πϕϯτϋϯυϥͷݕ౼

    View Slide

  10. "HFOEB
    • ϓϩϏδϣχϯά
    • ঢ়ଶ؅ཧ
    • ϦϞʔτίϚϯυϦϞʔτϝϯςφϯε
    • ෼ࢄ
    • ·ͱΊ

    View Slide

  11. σόΠε؅ཧ
    ੡඼ग़ՙࡁσόΠεͷঢ়ଶΛ؅ཧ͢Δ͜ͱͰɺӡ༻࣌ʹ͓͚Δ
    όοΫΦϑΟεۀ຿ͱͯ͠ͷσόΠε؅ཧ΍ϑΝʔϜ΢ΣΞ
    ΞοϓσʔτͷΑ͏ͳ௨஌ɺྉۚʹؔΘΔ಺༰Λݕ౼͓ͯ͘͠
    ͱن໛͕େن໛ʹͳͬͨͱ͖ʹ΋γεςϜͰରԠ͕ՄೳʹͳΓ
    ·͢ɻ
    ΦϯϥΠϯͷσόΠεʁ
    GJSNWFS YZͷ΋ͷ͸ʁ
    γεςϜؒ࿈ܞ
    ঢ়ଶ໰͍߹Θͤ ࣮ଶͱ%#ͷTZOD
    TIBEPXEJHJUBMUXJO

    View Slide

  12. Α͋͘Δ՝୊
    • ࣮ࡍͷσόΠεͱΫϥ΢υ΍ࣗࣾϗετʹ͓͚Δ؅ཧ༻
    ͷ࿦ཧ໊ɺ4*.ͷ؅ཧΛ͍ͨ͠
    • 4*.ͷར༻ྉ͕ߴ͍͚Ͳɺ͜Ε͸Ͳ͜Ͱ࢖ΘΕ͍ͯΔσό
    ΠεͩΖ͏ʁ
    • ར༻Λ΍ΊͨσόΠεͷ4*.͸ͲΕͩΖ͏
    • σόΠε͸ࠓΦϯϥΠϯͳͷ͔ʁ
    • ࠓࢢ৔ʹग़͍ͯΔσόΠεͰ࢖ΘΕ͍ͯΔͷঢ়ଶ
    • σόΠεͷઃఆมߋɺϑΝʔϜ΢ΣΞΞοϓσʔτΛߦ
    ͍͍ͨ
    • ݸผɺಛఆɺάϧʔϓ୯ҐͳͲͷ؅ཧ୯Ґͷઃܭ
    • ܰ౓ͷઃఆมߋ
    • ΞϓϦέʔγϣϯશମͰͷઃఆมߋ

    View Slide

  13. ղܾࡦ
    • σόΠε؅ཧ
    • σόΠε؅ཧ༻ͷ%#΍Ϋϥ΢υαʔϏεͷػೳͷ׆༻ɺ
    403"$0.ͷ৔߹ 4*.ϝλαʔϏεͷ׆༻ͳͲ
    • ࣗ෼ͷϢʔεέʔεԿΛத৺ʹσόΠεΛΈΔͷ͔Ͱ࿦ཧ໊΍Ϋ
    ΤϦͷઃܭΛ͢Δ͜ͱ͕ॏཁ
    • ઃఆมߋ΍ϑΝʔϜ΢ΣΞΞοϓσʔτ
    • Ϋϥ΢υαʔϏεͷσόΠε؅ཧػೳͰ͸ɺઃఆมߋͱ௨
    ஌ػೳ͕ҰମԽ͍ͯ͠Δ΋ͷ͕͋Δ
    • ঢ়ଶ֬ೝ༻ͷϝοηʔδػೳɺ"1*ͷݕ౼
    • ϑΝʔϜϑΝΠϧͷஔ͖৔ॴͳͲͷݕ౼ɿΦϒδΣΫτετϨʔ
    δ΍ 403"$0.)BSWFTU'JMFTͷར༻Λݕ౼ɻ
    オブジェクトストレージを利用する場合はセキュアアクセスの設計も重要

    View Slide

  14. 403"$0.)BSWFTU'JMFTΛ׆༻ͨ͠
    ϑΝʔϜΞοϓσʔτ௨஌ͷྫ
    ࠷৽'8
    ೔࣍ि݄࣍࣍Ͱ໰͍߹Θͤ
    6QMPBE
    )BSWFTU'JMFTͰ͸ϑΝΠϧͷϝλ৘ใͱͯ͠&5BHΛαϙʔτͯ͠
    ͍ΔͨΊมߋ͕ಉ͡ύεʹ໰͍߹ΘͤΛͯ͠มߋ͕͋ͬͨࡍʹͷΈ
    μ΢ϯϩʔυ͕Մೳ
    &5BHʹมߋ͕͋ͬͨࡍʹμ΢ϯϩʔυ
    )BSWFTU'JMFT
    403"$0.TFSWJDFFOEQPJOU ΍
    Ϋϥ΢υαʔϏεࣗࣾαʔϏεͷ
    ΤϯυϙΠϯτ

    '8μ΢ϯϩʔυ
    ηϯγϯάσʔλͷΞοϓϩʔυ͸
    ར༻͍ͯ͠ΔΤϯυϙΠϯτ΁

    View Slide

  15. "HFOEB
    • ϓϩϏδϣχϯά
    • ঢ়ଶ؅ཧ
    • ϦϞʔτίϚϯυϦϞʔτϝϯςφϯε
    • ෼ࢄ
    • ·ͱΊ

    View Slide

  16. ϦϞʔτίϚϯυϝϯςφϯε
    *P5σόΠεͷಛੑͱͯ͠ɺଟ͘ͷ৔߹σόΠε΁ͷ
    ϑΟʔυόοΫ΍ίϚϯυ࣮ߦΛߦ͍͍ͨέʔε͸ଟ
    ͋͘Γ·͢ɻ͜͜Ͱ͸Α͋͘ΔϑΟʔυόοΫύλʔ
    ϯͱཁ݅ʹ͍ͭͯ੔ཧ͠·͢ɻ
    • σόΠεͷঢ়ଶ
    • ઃఆ
    • ࠶ىಈ
    σόΠεͷঢ়ଶ͸ʁ
    ίϚϯυ࣮ߦΛ͍ͨ͠
    ݁Ռ
    DPNNBOE

    View Slide

  17. Α͋͘Δٞ࿦
    • σόΠεͷঢ়ଶऔಘͳͲσόΠεͷࠓͷঢ়ଶΛऔಘ
    ͍ͨ͠
    • σόΠεͷઃఆঢ়گ
    • ͓٬༷͔Βෆௐͷ໰͍߹Θͤͷ࿈བྷΛݩʹ
    ෆఆظͳϩάऔಘ΍NFNPSZEVNQͷऔಘͳͲ
    ࡞ۀ΍ϫʔΫϩʔυΛέΞ͍ͨ͠
    • ௚઀తͳ(6*ͷૢ࡞ɺ΋͘͠͸ෆఆظͳλΠϛϯά
    ͔ͭෆఆظͳίϚϯυͷ࣮ߦΛߦ͍͍ͨ
    • σόΠε΁ͷ௚઀઀ଓ
    • ϩάΠϯ

    View Slide

  18. ղܾࡦ
    ௨৴ϕʔεͰͷίϚϯυ࣮ߦґཔ
    • ࣄલʹ΍Γ͍ͨ͜ͱ͕੔ཧͰ͖͓ͯΓɺίϚϯυ͕ࣄલʹ
    ༻ҙͰ͖Δ
    • σόΠε04ͷίϚϯυͰ࣮ݱͰ͖Δ
    • ্ه͕੔ཧͰ͖͍ͯΔલఏͰɺ.255)551 5$16%1
    ʹ
    ΑΔίϚϯυ࣮ߦͷݕ౼͕Ͱ͖·͢ɻϝοηʔδͷϖΠϩʔυ
    .255ͷ৔߹ UPQJD
    ʹίϯςΩετ٧ΊͯɺσόΠε͕ίϚ
    ϯυΛ࣮ߦɺ݁ՌΛϦϓϥΠͰ௨஌͢Δ

    View Slide

  19. ղܾࡦ
    ௚઀ϩάΠϯͰͷૢ࡞
    *171/΍ɺηΩϡΞτϯωϦϯάαʔϏεͷར༻Λݕ౼͢Δ
    ඞཁ͕͋Γ·͢ɻ
    403"$0.ͷ৔߹ɺ403"$0.(BUF /BQUFSαʔϏε
    ͷར༻͕ީิͱͳΓ·͢ɻ

    View Slide

  20. ͓٬༷γεςϜ
    SORACOM Canal
    SORACOM Direct
    SORACOM Door
    SORACOM Gate
    ઀ଓ༻αʔό
    SORACOM Gate


    ਖ਼౰ͳϢʔβ
    ΞΫηεΛϦΫΤετ
    ʢ4*.*% ϙʔτ ༗ޮظؒʣ
    άϩʔόϧ*1ͱϙʔτ
    403"$0.
    /BQUFS
    ࢦఆͷάϩʔόϧ*1ͱ
    ϙʔτʹΞΫηε
    403"$0.(BUF
    403"$0./BQUFS

    View Slide

  21. "HFOEB
    • ϓϩϏδϣχϯά
    • ঢ়ଶ؅ཧ
    • ϦϞʔτίϚϯυϦϞʔτϝϯςφϯε
    • ෼ࢄ
    • ·ͱΊ

    View Slide

  22. ෼ࢄͷඞཁੑ
    খن໛ͳ͏ͪ͸໰୊͕ͳ͔ͬͨ͸ͣͳͷʹɺσόΠεͷ୆਺͕
    ૿͑ΔʹͭΕͯ௨৴ྔɺ௨৴Τϥʔ͕ൃੜ૿Ճ͍ͯ͠Δɻ
    σʔλΛ΍ΓऔΓ͢Δࡍͷ࣌ؒىಈ΍पظىಈΛ࣌ࠁϕʔεʹ
    ͢Δͱॲཧ΍௨৴͕ඇޮ཰ʹͳΔ͜ͱ͕͋Δɻ
    DSPO EBUBTFOE
    JGIUUQFSSPS\
    TMFFQ
    SFUSZ
    ^

    View Slide

  23. Α͋͘Δ՝୊ ޙͰؾ͕ͭ͜ͱ͕ଟ͍ͷͰٞ࿦Ͱ͸ͳ͘՝୊

    • ͳͥूத͕ඇޮ཰ͳͷ͔
    • Ϋϥ΢υαʔόͷεέʔϧ؍఺ͱͯ͠୹࣌ؒߴෛՙͰ΋εέʔϧ͕ؒʹ߹
    Θͳ͍͜ͱ͕͋Δɻ
    • όοΫΤϯυͷॲཧྔΛ௒͑ΔϦΫΤετϦτϥΠ͕ଓ͘ͱαʔϏεμ
    ΢ϯ΋ى͖ಘΔ
    • ίετ؍఺ͱͯ͠΋ɺશମͱͯ͠ͷ୯Ґ࣌ؒʹඞཁͳॲཧྔ͕૿͑Δɺ௨
    ৴ྔ͕૿͑Δ
    定刻起動、固定リトライ値の設定
    retry
    瞬間的なピークが続き
    処理が捌ききれない、
    ピークに合わせたサー
    バの準備は無駄が多い
    (オートスケールなども
    間に合わない)
    retry
    データ取得は定時、送信タイミング/retryに
    幅を持たせる
    許容可能な時間の分
    だけピークを低くでき
    る。バックエンドの
    リソースも均等に使う
    ことでメリットがでる

    View Slide

  24. ରࡦ
    • ෼ࢄͷߟ͑ํ
    • ཚ਺΍4FFE஋+JUUFSʹΑΔ෼ࢄΞϧΰϦζϜ
    • αʔόαΠυ͔ΒͷϨεϙϯεͰͷXBJU෼ࢄɺϝϯςϯεதͷ
    ରԠ
    • ڐ༰Ͱ͖Δσʔλ౸ୡͷ෯ɺ݁Ռ੔߹ੑͰૹ৴λΠϛϯάʹ͹Β
    ͖͕ͭ͋ͬͨ΋Α͍ઃܭͷݕ౼
    • ϦτϥΠͷߟ͑ํ
    • ϦτϥΠͷߟ͑ํͱͯ͠ΤΫεϙωϯγϟϧόοΫΦϑ
    ࢦ਺ؔ਺తޙୀ
    ͱ͍͏ߟ͑ํ͕͋Δ
    • ௨৴Τϥʔͱϝϯςφϯε͸ίʔυΛ෼͚ΔͳͲΤϥʔʹ͖ͪΜ
    ͱҙຯఆٛɺͦΕʹ߹ΘͤͨσόΠεΞΫγϣϯͷ࣮૷Λ͢Δ

    View Slide

  25. "HFOEB
    • ϓϩϏδϣχϯά
    • ঢ়ଶ؅ཧ
    • ϦϞʔτίϚϯυϦϞʔτϝϯςφϯε
    • ෼ࢄ
    • ·ͱΊ

    View Slide

  26. ·ͱΊ
    ຊ೔͸։ൃॳظʹɺ๨ΕΒΕ͕ͪͳඇػೳཁ݅ʹ
    ϑΥʔΧεΛ౰͓ͯͯ࿩͍͖ͤͯͨͩ͞·ͨ͠ɻ
    օ༷͕࢖ΘΕ͍ͯΔzσόΠεzͷఆٛʹΑΓɺຊ೔ͷ࿩
    ʹ͋Δ࿩ʹɺ౰ͯ͸·Δ΋ͷ΍౰ͯ͸·Βͳ͍΋ͷ͕
    ͋Δ͔ͱࢥ͍·͢ͷͰɺνΣοΫͷΑ͏ͳܗͰݟ͍ͯ
    ͚ͨͩΕ͹ͱࢥ͍·͢ɻ

    View Slide

  27. ؔ࿈ηογϣϯͷ͝঺հ
    %BZ
    • σόΠεɺΫϥ΢υͷ૒ํ޲௨৴
    σβΠϯύλʔϯͱ࣮ફ
    • %FFQ%JWFແઢςΫϊϩδʔͱ
    ௨৴ϓϩτίϧͱলిྗੑೳ

    View Slide

  28. 403"$0.ͷئ͍
    Ϋϥ΢υ 㱺ଟ͘ͷϏδωεɺ8FCαʔϏε
    403"$0. 㱺ଟ͘ͷ*P5ϏδωεɺγεςϜ
    ͨ͘͞Μͷ
    *P5ϓϨΠϠʔ͕ੜ·Ε·͢Α͏ʹ

    View Slide

  29. ੈքதͷώτͱϞϊΛͭͳ͛
    ڞ໐͢Δࣾձ΁

    View Slide