Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
FOLIOモバイルアプリのインフラ構成/folio-mobile-infra-archit...
Search
Shohei Koyama
November 27, 2018
Programming
3
2.4k
FOLIOモバイルアプリのインフラ構成/folio-mobile-infra-architecture
Shohei Koyama
November 27, 2018
Tweet
Share
More Decks by Shohei Koyama
See All by Shohei Koyama
成長をサポートするピープルマネジメントのやり方
sioncojp
11
2.9k
FargateでService,RunTask,Cronを運用する/fargate-service-runtask-cron-operation-tips
sioncojp
5
5.3k
FOLIOのterraform運用tips/folio-terraform-operation-tips
sioncojp
2
4k
SSM+yamlを使って開発別に 暗号化したDBパスワードを読み込む / yamlssm-sample
sioncojp
2
2.6k
私が最近Mackerelでやったこと
sioncojp
1
5k
Go開発環境と勉強方法
sioncojp
0
430
MackerelでGetWild
sioncojp
4
7.6k
Other Decks in Programming
See All in Programming
「正規表現をつくる」をつくる / make "make regex"
makenowjust
1
360
歴史から学ぶ「Why PHP?」 PHPを書く理由を改めて理解する / Learning from History: “Why PHP?” Rediscovering the Reasons for Writing PHP
seike460
PRO
0
150
しっかり学ぶ java.lang.*
nagise
1
310
Bakuraku E2E Scenario Test System Architecture #bakuraku_qa_study
teyamagu
PRO
0
720
What’s Fair is FAIR: A Decentralised Future for WordPress Distribution
rmccue
0
170
AIエージェントでのJava開発がはかどるMCPをAIを使って開発してみた / java mcp for jjug
kishida
4
550
JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 / Learning Post-Quantum Crypto Basics from JEP 496 & 497
mackey0225
2
230
開発生産性が組織文化になるまでの軌跡
tonegawa07
0
150
CloudflareのSandbox SDKを試してみた
syumai
0
140
KoogではじめるAIエージェント開発
hiroaki404
1
470
Module Harmony
petamoriken
1
220
Java_プロセスのメモリ監視の落とし穴_NMT_で見抜けない_glibc_キャッシュ問題_.pdf
ntt_dsol_java
0
150
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
670
Being A Developer After 40
akosma
91
590k
Designing for Performance
lara
610
69k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
The World Runs on Bad Software
bkeepers
PRO
72
12k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.1k
Transcript
FOLIOϞόΠϧΞϓϦͷ Πϯϑϥߏ גࣜձࣾFOLIO / Site Reliability Engineer ބࢁ ᠳฏ(@sion_cojp)
ބࢁ ᠳฏ / @sion_cojp ݩFPSϓϩήʔϚʔͰΞδΞνϟϯϐΦϯ גࣜձࣾFOLIO / SRE 自己紹介
- ߏ - σϓϩΠ - ηΩϡϦςΟ - ϩά - ϞχλϦϯά
- ϝϯςφϯεը໘ - ͦͷଞ 目次
None
73 ⟎䟝植㹋 73 ⟎䟝植㹋 㼐 㼐 ؝أفٖ ؝أفٖ ❨鿪 ❨鿪
➂䊨濼腉 ؕآظ鍑犜 ϑΥϦΦʮVRʯʮژʯͳͲɺ ଟ࠼ͳςʔϚΛ͑ΒΜͰࢿ͕ Ͱ͖ΔΦϯϥΠϯূ݊Ͱ͢ɻ σʔλαϯϓϧͰ͋Γɺকདྷͷӡ༻ՌΛࣔࠦຢอূ͢ΔͷͰ͋Γ·ͤΜɻ ۚ༥ͷऔҾʹ͓͍ͯɺגՁͷมಈʹΑΓଛࣦ͕ੜ͡Δ͓ͦΕ͕͋Γ·͢ɻৄࡉܖక݁લަॻ໘Λ͓ಡΈ͍ͩ͘͞ɻ גࣜձࣾFOLIO ۚ༥औҾۀऀ ؔ౦ࡒہʢۚʣୈ2983߸ɹՃೖڠձɿຊূ݊ۀڠձɺҰൠࣾஂ๏ਓຊࢿސۀڠձ
ϞόΠϧΞϓϦपΓͷΠϯϑϥΛ հ͠·͢ 本スライドは
ߏਤ
構成図
3छྨͷterraform moduleͰߏ - ALB - Fargate - Sorry module便利 Route53は
module使ってません
ALB module
Fargate module
Sorry module
moduleԽͨ͜͠ͱͰɺDockerfile͑͋͞Ε FargateͷαʔϏε্ཱ͕͙ͪ͛͢ΕΔ ͜ͷߏͰɺstage1CPU, MEM: 2Gͷίϯςφ1ӡ༻ Ͱ$15/day ͘Β͍Ͱ͢ ӡ༻ίετΛߟ͑Δͱ͓ಘͩͱࢥ͍·͢ ʢΠϯϑϥ΄΅ݟͯͳ͍ʣ 構成について一言
σϓϩΠ
こんな感じ
デプロイツール slack-deployͱ͍͏Goͷchatopsπʔϧ slackͰinteractiveʹબ ͦΕΛݩʹฒྻॲཧͰEC2্ͰίϚϯυΛ࣮ߦ ݱࡏ۪ʹaws cli͕ॻ͔ΕͨεΫϦϓτΛ࣮ ߦͤͯ͞·͕͢ɺ Fargate༻ͷdeployπʔϧΛGoͰ࡞த
chatops周りの構成図 ECRは一つのアカウントで 全てのイメージを管理
slack-deployのconfig一部 github.com/sioncojp/tomlssm を使ってdecryptさせてます
余談 ͪΖΜslack-deployͷdeployslack-deploy
ηΩϡϦςΟ
セキュリティ SSHଘࡏ͠·ͤΜ IAMϧʔϧ࠷খݶʹߜͬͯ·͢ sshなくても苦労はない むしろ安心感
セキュリティ ίϯςφ੬ऑੑanchoreͱ͍͏αʔϏε ΛϩʔΧϧͰಈ͔ͤΔΑ͏ʹͯ͠அ ECRの機能として早く欲しい!
ϩά
ログ
ログ Fargateͷlog driverCloudwatch͚ͩͰ͢ Cloudwatch͔Βੜϩά:s3 ͱ ϦΞϧλΠϜϩά: datadog logsʹग़ྗ͢Δmodule Λ࡞ͬͯӡ༻ͯ͠·͢ ʢtargetʹcloudwatchͷlog
groupΛࢦఆ͢Δ͚ͩʣ
ログ - moduleはこんな感じ - σʔλΛfirehoseʹ์ΓࠐΉ: cloudwatch -> kinesis firehose -
datadog logsʹग़ྗ: lambda - ੜϩάอଘ s3ʹग़ྗ: firehose
ϞχλϦϯά
モニタリング externalࢹಉ͡Α͏ʹFargateͰ DatadogΛཱͯͯɺ͔ͦ͜Βࢹͯ͠·͢ internalࢹDatadogͰɺ terraformͰཧͯ͠·͢ 12月のパブリックβで Datadogの機能として使える らしいよ!
ϝϯςφϯεը໘
メンテナンス画面 લஈͷwafͰ͔ࣾΒͷΞΫηεͷΈڐՄ ϝϯςφϯεը໘s3ʹอ͞Εͨ503.json ͷσʔλΛΞϓϦʹฦ٫
メンテナンス画面のON/OFFもslackから
ͦͷଞ
ドキュメント ߏਤΠϯϑϥܥͷใαʔϏεଆͷ ϦϙδτϦʹೖΕͯ·͢ terraformίϝϯτΛత֬ʹ͢ྗ υΩϡϝϯτྨ͕શͯgit্ʹ͋Δҙࣝ ʢconfluenceͳͲͦͷଞۃྗΘͳ͍ʣ
サービス側のREADME.md draw.ioのxmlも保管
terraformのコメント集 dataやresourceの上の行には自 明でもコメントを入れてます
リリース前確認 https://landing.google.com/sre/sre-book/chapters/ launch-checklist/ ΛϕʔεʹಠࣗʹνΣοΫϦετΛఆٛ͠ ϦϦʔεલͷ֬ೝΛSRE + αʔϏε୲ऀͰͬͯ ·͢ ref: https://gist.github.com/sioncojp/57d672fff1a35f3a10dd12526d54afbb
チェックリストの一部
メディア露出等のスパイク対応 + ஆػਃ
コンテナ運用最高! ؆୯ʂָνϯʂ
総評 Dockerfile͚ͩ࡞ͬͯ͘ΕͨΒ͍͍ײ͡ͷΠϯ ϑϥ࡞ΔΑʂ + ࡞ͬͨޙ͋·Γ໘ݟͳͯ͘ྑ͍Πϯϑ ϥ ͱ͍͏ؾ࣋ͪͰͬͯ·ͨ͠
総評 ݁Ռɺͦͷ௨ΓʹͳͬͯΔͱࢥ͏ͷͰ ҆ఆͨ͠ྑ͍ӡ༻͕Ͱ͖ͯ·͢
総評 ͨͩ·ͩΔ͜ͱ͕͋ΔͷͰ ͜Ε͔Βվળ͍͖ͯ͠·͢
以上 ͋Γ͕ͱ͏͍͟͝·ͨ͠