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
マップを速く表示するために
tsuboyan5
0
170
GitHub ActionsをTypeScriptで作ろう!
sansantech
PRO
2
370
Eight Engineering Unit 紹介資料
sansan33
PRO
0
3k
Type Challengesに新しい問題を追加して Type ChallengesのMaintainerになった話
ysknsid25
3
630
OCI Database Management サービス詳細
oracle4engineer
PRO
1
4.5k
初めてのGoogle Cloud by AWS出身者
harukasakihara
1
710
バックエンドのコードファーストなOpenAPIスキーマ駆動開発 - TSKaigi2025
yujitorii
1
250
Data Hubグループ 紹介資料
sansan33
PRO
0
1.7k
さくらのクラウド 開発の挑戦とその舞台裏
kazeburo
0
690
toittaにOpenTelemetryを導入した話 / Mackerel APM リリースパーティ
cohalz
1
170
AWS LambdaをTypeScriptで動かして分かった、Node.jsのTypeScriptサポートの利点と課題
smt7174
1
2.8k
KMP導⼊において、マネジャーとして考えた事
sansantech
PRO
1
170
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Statistics for Hackers
jakevdp
799
220k
The Cult of Friendly URLs
andyhume
78
6.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の特集回が放送された • アクセスがスパイクするもサービスへの影響は無し
まとめ • スタートアップの初期フェーズでは、とりあえずアプリケーションが動けば良 いというケースがある • その後、改善を重ねていくことが大事 • 大きなロードマップを描いて • 小さなことからコツコツと
• 社内説明は相手にとって分かりやすい説明を