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
スタートアップにおけるクラウド上でのシステム設計の進化とその実践
Search
Kohei Higuchi
December 13, 2023
Technology
4
1.2k
スタートアップにおけるクラウド上でのシステム設計の進化とその実践
JAWS Festa in Kyushu 2023.10.7 での登壇資料です
Kohei Higuchi
December 13, 2023
Tweet
Share
Other Decks in Technology
See All in Technology
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
220
ガバメントクラウドのセキュリティ対策事例について
fujisawaryohei
0
530
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
110
祝!Iceberg祭開幕!re:Invent 2024データレイク関連アップデート10分総ざらい
kniino
3
260
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
560
DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル
spatial_ai_network
2
110
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
コンテナセキュリティのためのLandlock入門
nullpo_head
2
320
KubeCon NA 2024 Recap: How to Move from Ingress to Gateway API with Minimal Hassle
ysakotch
0
200
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
190
PHPからGoへのマイグレーション for DMMアフィリエイト
yabakokobayashi
1
170
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
8
7.3k
Featured
See All Featured
Building Adaptive Systems
keathley
38
2.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
The Cost Of JavaScript in 2023
addyosmani
45
7k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Git: the NoSQL Database
bkeepers
PRO
427
64k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Making Projects Easy
brettharned
116
5.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Automating Front-end Workflow
addyosmani
1366
200k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
Transcript
2023.10.7 JAWS Festa in Kyushu スタートアップにおけるクラ ウド上でのシステム設計の 進化とその実践
自己紹介 • 樋口 浩平(ひぐち こうへい) • 2013年、ヤマップに2番目にジョイン • YAMAPローンチ前から開発に関わり、システム開 発責任者として従事した後、CTOとしてエンジニア
組織のパフォーマンス最大化に努める • 好きな山は宝満山 • アビスパ福岡サポーター
YAMAPについて 電波が届かない山の中でも、GPSで現在地と登山ルートがわ かる、登山を楽しく安全にするアプリ 日本最大の登山・アウトドアプラットフォーム
YAMAPについて 400万ダウンロードを超え、国内トップシェアとなっている 毎週10万件の登山記録と250万枚の写真が投稿され、 毎月10億件のAPIリクエストを受け付ける
• クラウド上のシステム設計の変遷 • システム設計をリニューアルしたときの話 • リニューアルの社内合意形成の進め方 今日話すこと
システム構成変遷の年表 シード アーリー ミドル レイター 2013年 2016年 2018年 2020年 ローンチ
資金調達 資金調達 資金調達 リニューアル リニューアル 日々ブラッシュアップ
立ち上げ期の小咄 メールアドレスとパスワードが入れ替わる事件 メールアドレス「もしかして...」 パスワード「私たち...」 _人人人人人人人人人人人人人_ > 入れ替わってるーー!? <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
2013年のインフラ構成 • EC2インスタンスが1台とS3があるのみ • Webサーバ、DB、開発環境、管理画面すべてEC2の中にAll in One
あんなトラブル、こんな障害 • アクセスが増えると、すぐにCPU使用率が100%になる • ボトルネックが多すぎて原因が分からない • スケールアップするために全部を再起動しないといけない • 開発環境で障害が起きて Production環境もろとも落ちる
リニューアル計画 • Web サーバと DB の分離 • Web サーバのインスタンスを分けて配置する •
ALB で負荷分散 • Web の Auto Scalling • 他多数
2016年のインフラ構成
2019年にフルリニューアル • バックエンドの API を Rails で作り直す • ECS で
Docker コンテナ化 • Terraform での管理に着手 • フロントエンドを分離して Vue.js で実装 • Web サイトのデザインをリニューアル • ドメイン変更 yamap.co.jp -> yamap.com
社内合意形成 • アプリケーションまでリニューアルするので、新機能開発は1年以上停滞 することになる • 重要な経営の意思決定になる • エンジニアではない方には建築に例えて説明してみる • ローンチ時はプレハブ。増改築を繰り返して今の状態。
このままではビルは建てられない。基礎から建て替える必要がある
2019年のインフラ構成
2023年のインフラ構成 • 運用の自動化、省力化 • IaC が進み、いい感じになっている • ほぼ全て Terraform で管理されている
• ほぼ全て Auto Scaling されている • ECS と Lambda を適切に使い分けている • Aurora の Graviton2 インスタンスを早期導入した
2023年のインフラ構成
2023年のインフラチーム体制 • インフラは 2022 年 4 月まで 1 人で運用していた •
1 人でも運用できていたのは AWS のマネージドサービスのおかげ
カンブリア砲にも耐えるインフラ • 6/29のカンブリア宮殿でYAMAPの特集回が放送された • アクセスがスパイクするもサービスへの影響は無し
まとめ • スタートアップの初期フェーズでは、とりあえずアプリケーションが動けば良 いというケースがある • その後、改善を重ねていくことが大事 • 大きなロードマップを描いて • 小さなことからコツコツと
• 社内説明は相手にとって分かりやすい説明を