FOLIOモバイルアプリのインフラ構成/folio-mobile-infra-architecture

9531f234b83ebdc2e656b4ad3f36006e?s=47 Shohei Koyama
November 27, 2018

 FOLIOモバイルアプリのインフラ構成/folio-mobile-infra-architecture

9531f234b83ebdc2e656b4ad3f36006e?s=128

Shohei Koyama

November 27, 2018
Tweet

Transcript

  1. FOLIOϞόΠϧΞϓϦͷ Πϯϑϥߏ੒ גࣜձࣾFOLIO / Site Reliability Engineer ބࢁ ᠳฏ(@sion_cojp)

  2. ބࢁ ᠳฏ / @sion_cojp ݩFPSϓϩήʔϚʔͰΞδΞνϟϯϐΦϯ גࣜձࣾFOLIO / SRE 自己紹介

  3. - ߏ੒ - σϓϩΠ - ηΩϡϦςΟ - ϩά - ϞχλϦϯά

    - ϝϯςφϯεը໘ - ͦͷଞ 目次
  4. None
  5. 73 ⟎䟝植㹋 73 ⟎䟝植㹋 㼐぀ 㼐぀ ؝أفٖ ؝أفٖ ❨鿪 ❨鿪

    ➂䊨濼腉 ؕآظ鍑犜 ϑΥϦΦ͸ʮVRʯ΍ʮژ౎ʯͳͲɺ ଟ࠼ͳςʔϚΛ͑ΒΜͰ౤ࢿ͕ Ͱ͖ΔΦϯϥΠϯূ݊Ͱ͢ɻ σʔλ౳͸αϯϓϧͰ͋Γɺকདྷͷӡ༻੒Ռ౳Λࣔࠦຢ͸อূ͢Δ΋ͷͰ͸͋Γ·ͤΜɻ
 ۚ༥঎඼ͷऔҾʹ͓͍ͯ͸ɺגՁͷมಈ౳ʹΑΓଛࣦ͕ੜ͡Δ͓ͦΕ͕͋Γ·͢ɻৄࡉ͸ܖ໿క݁લަ෇ॻ໘Λ͓ಡΈ͍ͩ͘͞ɻ גࣜձࣾFOLIO ۚ༥঎඼औҾۀऀ ؔ౦ࡒ຿ہ௕ʢۚ঎ʣୈ2983߸ɹՃೖڠձɿ೔ຊূ݊ۀڠձɺҰൠࣾஂ๏ਓ೔ຊ౤ࢿސ໰ۀڠձ
  6. ϞόΠϧΞϓϦपΓͷΠϯϑϥΛ ঺հ͠·͢ 本スライドは

  7. ߏ੒ਤ

  8. 構成図

  9. 3छྨͷterraform moduleͰߏ੒ - ALB - Fargate - Sorry module便利 Route53は


    module使ってません
  10. ALB module

  11. Fargate module

  12. Sorry module

  13. moduleԽͨ͜͠ͱͰɺDockerfile͑͋͞Ε͹ FargateͷαʔϏε্ཱ͕͙ͪ͛͢ΕΔ ͜ͷߏ੒Ͱɺstage͸1CPU, MEM: 2Gͷίϯςφ1୆ӡ༻ Ͱ$15/day ͘Β͍Ͱ͢ ӡ༻ίετΛߟ͑Δͱ͓ಘͩͱࢥ͍·͢ ʢΠϯϑϥ΄΅ݟͯͳ͍ʣ 構成について一言

  14. σϓϩΠ

  15. こんな感じ

  16. デプロイツール slack-deployͱ͍͏Go੡ͷchatopsπʔϧ slackͰinteractiveʹબ୒ ͦΕΛݩʹฒྻॲཧͰEC2্ͰίϚϯυΛ࣮ߦ ݱࡏ͸۪௚ʹaws cli͕ॻ͔ΕͨεΫϦϓτΛ࣮ ߦͤͯ͞·͕͢ɺ Fargate༻ͷdeployπʔϧΛGoͰ࡞੒த

  17. chatops周りの構成図 ECRは一つのアカウントで 全てのイメージを管理

  18. slack-deployのconfig一部 github.com/sioncojp/tomlssm を使ってdecryptさせてます

  19. 余談 ΋ͪΖΜslack-deployͷdeploy΋slack-deploy

  20. ηΩϡϦςΟ

  21. セキュリティ SSH͸ଘࡏ͠·ͤΜ IAMϧʔϧ΋࠷খݶʹߜͬͯ·͢ sshなくても苦労はない むしろ安心感

  22. セキュリティ ίϯςφ੬ऑੑ͸anchoreͱ͍͏αʔϏε ΛϩʔΧϧͰಈ͔ͤΔΑ͏ʹͯ͠਍அ ECRの機能として早く欲しい!

  23. ϩά

  24. ログ

  25. ログ Fargateͷlog driver͸Cloudwatch͚ͩͰ͢ Cloudwatch͔Βੜϩά:s3 ͱ ϦΞϧλΠϜϩά: datadog logsʹग़ྗ͢Δmodule Λ࡞ͬͯӡ༻ͯ͠·͢ ʢtargetʹcloudwatchͷlog

    groupΛࢦఆ͢Δ͚ͩʣ
  26. ログ - moduleはこんな感じ - σʔλΛfirehoseʹ์ΓࠐΉ: cloudwatch -> kinesis firehose -

    datadog logsʹग़ྗ: lambda - ੜϩάอଘ s3ʹग़ྗ: firehose
  27. ϞχλϦϯά

  28. モニタリング external؂ࢹ͸ಉ͡Α͏ʹFargateͰ DatadogΛཱͯͯɺ͔ͦ͜Β؂ࢹͯ͠·͢ internal؂ࢹ΋DatadogͰɺ terraformͰ؅ཧͯ͠·͢ 12月のパブリックβで Datadogの機能として使える らしいよ!

  29. ϝϯςφϯεը໘

  30. メンテナンス画面 લஈͷwafͰࣾ಺͔ΒͷΞΫηεͷΈڐՄ ϝϯςφϯεը໘͸s3ʹอ؅͞Εͨ503.json ͷσʔλΛΞϓϦʹฦ٫

  31. メンテナンス画面のON/OFFもslackから

  32. ͦͷଞ

  33. ドキュメント ߏ੒ਤ΍Πϯϑϥܥͷ৘ใ͸αʔϏεଆͷ
 ϦϙδτϦʹೖΕͯ·͢ terraform͸ίϝϯτΛత֬ʹ࢒͢౒ྗ υΩϡϝϯτྨ͕શͯgit্ʹ͋Δҙࣝ ʢconfluenceͳͲͦͷଞ͸ۃྗ࢖Θͳ͍ʣ

  34. サービス側のREADME.md draw.ioのxmlも保管

  35. terraformのコメント集 dataやresourceの上の行には自 明でもコメントを入れてます

  36. リリース前確認 https://landing.google.com/sre/sre-book/chapters/ launch-checklist/ ΛϕʔεʹಠࣗʹνΣοΫϦετΛఆٛ͠ ϦϦʔεલͷ֬ೝΛSRE + αʔϏε୲౰ऀͰ΍ͬͯ ·͢ ref: https://gist.github.com/sioncojp/57d672fff1a35f3a10dd12526d54afbb

  37. チェックリストの一部

  38. メディア露出等のスパイク対応 + ஆػਃ੥

  39. コンテナ運用最高! ؆୯ʂָνϯʂ

  40. 総評 Dockerfile͚ͩ࡞ͬͯ͘ΕͨΒ͍͍ײ͡ͷΠϯ ϑϥ࡞ΔΑʂ + ࡞ͬͨޙ͋·Γ໘౗ݟͳͯ͘΋ྑ͍Πϯϑ ϥ ͱ͍͏ؾ࣋ͪͰ΍ͬͯ·ͨ͠

  41. 総評 ݁Ռɺͦͷ௨ΓʹͳͬͯΔͱࢥ͏ͷͰ ҆ఆͨ͠ྑ͍ӡ༻͕Ͱ͖ͯ·͢

  42. 総評 ͨͩ·ͩ΍Δ͜ͱ͕͋ΔͷͰ ͜Ε͔Β΋վળ͍͖ͯ͠·͢

  43. 以上 ͋Γ͕ͱ͏͍͟͝·ͨ͠